From cc42a0071e4255e6153af9fcf2660f4e32f91f87 Mon Sep 17 00:00:00 2001 From: maayan Date: Thu, 23 Jan 2025 12:56:21 -0500 Subject: [PATCH 1/7] introduce multi chain swap components --- apps/nextjs-example/package.json | 1 + apps/nextjs-example/src/app/swap/page.tsx | 7 + .../cross-chain-core/dist/CrossChainCore.d.ts | 25 + .../dist/CrossChainCore.d.ts.map | 1 + .../cross-chain-core/dist/index.d.ts | 5 + .../cross-chain-core/dist/index.d.ts.map | 1 + .../cross-chain-core/dist/index.js | 899 +++++++++++ .../cross-chain-core/dist/index.js.map | 1 + .../cross-chain-core/dist/index.mjs | 874 +++++++++++ .../cross-chain-core/dist/index.mjs.map | 1 + .../dist/providers/wormhole/config/index.d.ts | 4 + .../providers/wormhole/config/index.d.ts.map | 1 + .../wormhole/config/mainnet/chains.d.ts | 17 + .../wormhole/config/mainnet/chains.d.ts.map | 1 + .../wormhole/config/mainnet/index.d.ts | 3 + .../wormhole/config/mainnet/index.d.ts.map | 1 + .../wormhole/config/mainnet/tokens.d.ts | 4 + .../wormhole/config/mainnet/tokens.d.ts.map | 1 + .../wormhole/config/testnet/chains.d.ts | 19 + .../wormhole/config/testnet/chains.d.ts.map | 1 + .../wormhole/config/testnet/index.d.ts | 3 + .../wormhole/config/testnet/index.d.ts.map | 1 + .../wormhole/config/testnet/tokens.d.ts | 4 + .../wormhole/config/testnet/tokens.d.ts.map | 1 + .../dist/providers/wormhole/config/types.d.ts | 46 + .../providers/wormhole/config/types.d.ts.map | 1 + .../dist/providers/wormhole/index.d.ts | 54 + .../dist/providers/wormhole/index.d.ts.map | 1 + .../wormhole/signers/AptosLocalSigner.d.ts | 17 + .../signers/AptosLocalSigner.d.ts.map | 1 + .../wormhole/signers/EthereumSigner.d.ts | 5 + .../wormhole/signers/EthereumSigner.d.ts.map | 1 + .../wormhole/signers/SolanaSigner.d.ts | 27 + .../wormhole/signers/SolanaSigner.d.ts.map | 1 + .../providers/wormhole/signers/SuiSigner.d.ts | 5 + .../wormhole/signers/SuiSigner.d.ts.map | 1 + .../providers/wormhole/signers/index.d.ts | 15 + .../providers/wormhole/signers/index.d.ts.map | 1 + .../wormhole/utils/chains/index.d.ts | 3 + .../wormhole/utils/chains/index.d.ts.map | 1 + .../wormhole/utils/chains/mainnet/index.d.ts | 60 + .../utils/chains/mainnet/index.d.ts.map | 1 + .../wormhole/utils/chains/testnet/index.d.ts | 65 + .../utils/chains/testnet/index.d.ts.map | 1 + .../wormhole/utils/tokens/index.d.ts | 3 + .../wormhole/utils/tokens/index.d.ts.map | 1 + .../wormhole/utils/tokens/mainnet.d.ts | 15 + .../wormhole/utils/tokens/mainnet.d.ts.map | 1 + .../wormhole/utils/tokens/testnet.d.ts | 11 + .../wormhole/utils/tokens/testnet.d.ts.map | 1 + .../dist/signers/AptosLocalSigner.d.ts | 17 + .../dist/signers/AptosLocalSigner.d.ts.map | 1 + .../dist/signers/EthereumSigner.d.ts | 5 + .../dist/signers/EthereumSigner.d.ts.map | 1 + .../dist/signers/SolanaSigner.d.ts | 27 + .../dist/signers/SolanaSigner.d.ts.map | 1 + .../cross-chain-core/dist/signers/index.d.ts | 14 + .../dist/signers/index.d.ts.map | 1 + .../dist/utils/chains/index.d.ts | 3 + .../dist/utils/chains/index.d.ts.map | 1 + .../dist/utils/chains/mainnet/index.d.ts | 45 + .../dist/utils/chains/mainnet/index.d.ts.map | 1 + .../dist/utils/chains/testnet/index.d.ts | 50 + .../dist/utils/chains/testnet/index.d.ts.map | 1 + .../cross-chain-core/dist/utils/logger.d.ts | 6 + .../dist/utils/logger.d.ts.map | 1 + .../dist/utils/tokens/mainnet.d.ts | 15 + .../dist/utils/tokens/mainnet.d.ts.map | 1 + .../dist/utils/tokens/testnet.d.ts | 11 + .../dist/utils/tokens/testnet.d.ts.map | 1 + .../cross-chain-core/dist/version.d.ts | 2 + .../cross-chain-core/dist/version.d.ts.map | 1 + .../cross-chain-core/dist/wallets/aptos.d.ts | 10 + .../dist/wallets/aptos.d.ts.map | 1 + .../cross-chain-core/dist/wallets/core.d.ts | 1 + .../dist/wallets/core.d.ts.map | 1 + .../cross-chain-core/dist/wallets/evm.d.ts | 1 + .../dist/wallets/evm.d.ts.map | 1 + .../cross-chain-core/dist/wallets/index.d.ts | 1 + .../dist/wallets/index.d.ts.map | 1 + .../cross-chain-core/dist/wallets/solana.d.ts | 1 + .../dist/wallets/solana.d.ts.map | 1 + .../cross-chain-core/dist/wallets/sui.d.ts | 1 + .../dist/wallets/sui.d.ts.map | 1 + .../cross-chain-core/src/version.ts | 1 + .../dist/WalletProvider.d.ts | 14 + .../dist/WalletProvider.d.ts.map | 1 + .../dist/components/EthereumWalletItem.d.ts | 1 + .../components/EthereumWalletItem.d.ts.map | 1 + .../dist/components/SolanaWalletItem.d.ts | 1 + .../dist/components/SolanaWalletItem.d.ts.map | 1 + .../cross-chain-react/dist/index.d.ts | 4 + .../cross-chain-react/dist/index.d.ts.map | 1 + .../cross-chain-react/dist/index.js | 192 +++ .../cross-chain-react/dist/index.js.map | 1 + .../cross-chain-react/dist/index.mjs | 166 ++ .../cross-chain-react/dist/index.mjs.map | 1 + .../cross-chain-react/dist/useWallet.d.ts | 24 + .../cross-chain-react/dist/useWallet.d.ts.map | 1 + .../aptos/dist/index.d.ts | 39 + .../aptos/dist/index.d.ts.map | 1 + .../aptos/dist/index.js | 118 ++ .../aptos/dist/index.js.map | 1 + .../aptos/dist/index.mjs | 99 ++ .../aptos/dist/index.mjs.map | 1 + .../core/dist/index.d.ts | 41 + .../core/dist/index.d.ts.map | 1 + .../core/dist/index.js | 52 + .../core/dist/index.js.map | 1 + .../core/dist/index.mjs | 20 + .../core/dist/index.mjs.map | 1 + .../eip6963/dist/index.d.ts | 72 + .../eip6963/dist/index.d.ts.map | 1 + .../eip6963/dist/index.js | 348 +++++ .../eip6963/dist/index.js.map | 1 + .../eip6963/dist/index.mjs | 329 ++++ .../eip6963/dist/index.mjs.map | 1 + .../eip6963/dist/index2.d.ts | 26 + .../eip6963/dist/index2.d.ts.map | 1 + .../eip6963/dist/utils.d.ts | 3 + .../eip6963/dist/utils.d.ts.map | 1 + .../solana/dist/index.d.ts | 37 + .../solana/dist/index.d.ts.map | 1 + .../solana/dist/index.js | 292 ++++ .../solana/dist/index.js.map | 1 + .../solana/dist/index.mjs | 281 ++++ .../solana/dist/index.mjs.map | 1 + .../solana/dist/utils.d.ts | 4 + .../solana/dist/utils.d.ts.map | 1 + .../AIP62StandardWallets/WalletStandard.d.ts | 44 + .../WalletStandard.d.ts.map | 1 + .../dist/AIP62StandardWallets/index.d.ts | 3 + .../dist/AIP62StandardWallets/index.d.ts.map | 1 + .../dist/AIP62StandardWallets/registry.d.ts | 15 + .../AIP62StandardWallets/registry.d.ts.map | 1 + .../dist/AIP62StandardWallets/sdkWallets.d.ts | 4 + .../AIP62StandardWallets/sdkWallets.d.ts.map | 1 + .../dist/AIP62StandardWallets/types.d.ts | 10 + .../dist/AIP62StandardWallets/types.d.ts.map | 1 + .../LegacyWalletPlugins/WalletCoreV1.d.ts | 50 + .../LegacyWalletPlugins/WalletCoreV1.d.ts.map | 1 + .../dist/LegacyWalletPlugins/conversion.d.ts | 21 + .../LegacyWalletPlugins/conversion.d.ts.map | 1 + .../dist/LegacyWalletPlugins/index.d.ts | 4 + .../dist/LegacyWalletPlugins/index.d.ts.map | 1 + .../dist/LegacyWalletPlugins/types.d.ts | 116 ++ .../dist/LegacyWalletPlugins/types.d.ts.map | 1 + .../dist/WalletCore.d.ts | 279 ++++ .../dist/WalletCore.d.ts.map | 1 + .../dist/WalletCoreNew.d.ts | 231 +++ .../dist/WalletCoreNew.d.ts.map | 1 + .../dist/__tests__/WalletCore.test.d.ts | 2 + .../dist/__tests__/WalletCore.test.d.ts.map | 1 + .../dist/constants.d.ts | 30 + .../dist/constants.d.ts.map | 1 + .../dist/error/index.d.ts | 83 + .../dist/error/index.d.ts.map | 1 + .../dist/ga/index.d.ts | 7 + .../dist/ga/index.d.ts.map | 1 + .../wallet-adapter-core-new/dist/index.d.ts | 7 + .../dist/index.d.ts.map | 1 + .../wallet-adapter-core-new/dist/index.js | 1357 +++++++++++++++++ .../wallet-adapter-core-new/dist/index.js.map | 1 + .../wallet-adapter-core-new/dist/index.mjs | 1330 ++++++++++++++++ .../dist/index.mjs.map | 1 + .../dist/utils/aptosConnect.d.ts | 18 + .../dist/utils/aptosConnect.d.ts.map | 1 + .../dist/utils/helpers.d.ts | 39 + .../dist/utils/helpers.d.ts.map | 1 + .../dist/utils/index.d.ts | 4 + .../dist/utils/index.d.ts.map | 1 + .../dist/utils/localStorage.d.ts | 4 + .../dist/utils/localStorage.d.ts.map | 1 + .../utils/scopePollingDetectionStrategy.d.ts | 2 + .../scopePollingDetectionStrategy.d.ts.map | 1 + .../dist/utils/walletSelector.d.ts | 61 + .../dist/utils/walletSelector.d.ts.map | 1 + .../wallet-adapter-core-new/dist/version.d.ts | 2 + .../dist/version.d.ts.map | 1 + .../dist/WalletProviderNew.d.ts | 12 + .../dist/WalletProviderNew.d.ts.map | 1 + .../dist/components/AboutAptosConnect.d.ts | 60 + .../components/AboutAptosConnect.d.ts.map | 1 + .../dist/components/AptosPrivacyPolicy.d.ts | 13 + .../components/AptosPrivacyPolicy.d.ts.map | 1 + .../dist/components/WalletItem.d.ts | 17 + .../dist/components/WalletItem.d.ts.map | 1 + .../dist/components/utils.d.ts | 20 + .../dist/components/utils.d.ts.map | 1 + .../dist/graphics/LinkGraphic.d.ts | 3 + .../dist/graphics/LinkGraphic.d.ts.map | 1 + .../dist/graphics/SmallAptosLogo.d.ts | 3 + .../dist/graphics/SmallAptosLogo.d.ts.map | 1 + .../dist/graphics/WalletGraphic.d.ts | 3 + .../dist/graphics/WalletGraphic.d.ts.map | 1 + .../dist/graphics/Web3Graphic.d.ts | 3 + .../dist/graphics/Web3Graphic.d.ts.map | 1 + .../wallet-adapter-react-new/dist/index.d.ts | 7 + .../dist/index.d.ts.map | 1 + .../wallet-adapter-react-new/dist/index.js | 738 +++++++++ .../dist/index.js.map | 1 + .../wallet-adapter-react-new/dist/index.mjs | 716 +++++++++ .../dist/index.mjs.map | 1 + .../dist/useWalletNew.d.ts | 23 + .../dist/useWalletNew.d.ts.map | 1 + packages/wallet-adapter-swap/.eslintrc.js | 4 + packages/wallet-adapter-swap/.gitignore | 1 + packages/wallet-adapter-swap/.npmignore | 4 + packages/wallet-adapter-swap/CHANGELOG.md | 687 +++++++++ packages/wallet-adapter-swap/README.md | 283 ++++ packages/wallet-adapter-swap/components.json | 18 + packages/wallet-adapter-swap/package.json | 91 ++ .../wallet-adapter-swap/postcss.config.mjs | 9 + .../wallet-adapter-swap/src/AptosSigner.ts | 122 ++ .../wallet-adapter-swap/src/ChainSelect.tsx | 85 ++ .../wallet-adapter-swap/src/EthereumSigner.ts | 40 + .../src/EthereumWalletItem.tsx | 192 +++ .../src/EthereumWalletSelector.tsx | 192 +++ .../wallet-adapter-swap/src/MultiChain.tsx | 389 +++++ packages/wallet-adapter-swap/src/Signer.ts | 113 ++ .../wallet-adapter-swap/src/SolanaSigner.ts | 430 ++++++ .../src/SolanaWalletItem.tsx | 193 +++ .../src/SolanaWalletSelector.tsx | 192 +++ .../src/WalletSelector.tsx | 292 ++++ packages/wallet-adapter-swap/src/global.css | 59 + .../src/icons/Ethereum.tsx | 26 + .../wallet-adapter-swap/src/icons/Solana.tsx | 42 + .../wallet-adapter-swap/src/icons/USDC.tsx | 29 + packages/wallet-adapter-swap/src/index.tsx | 1 + packages/wallet-adapter-swap/src/lib/utils.ts | 6 + .../wallet-adapter-swap/src/ui/button.tsx | 56 + packages/wallet-adapter-swap/src/ui/card.tsx | 86 ++ .../src/ui/collapsible.tsx | 9 + .../wallet-adapter-swap/src/ui/dialog.tsx | 120 ++ .../src/ui/dropdown-menu.tsx | 198 +++ packages/wallet-adapter-swap/src/ui/input.tsx | 22 + .../wallet-adapter-swap/src/ui/progress.tsx | 28 + .../wallet-adapter-swap/src/ui/select.tsx | 158 ++ packages/wallet-adapter-swap/src/ui/toast.tsx | 127 ++ .../wallet-adapter-swap/src/ui/use-toast.ts | 189 +++ packages/wallet-adapter-swap/src/utils.tsx | 201 +++ .../wallet-adapter-swap/tailwind.config.d.ts | 84 + .../tailwind.config.d.ts.map | 1 + .../wallet-adapter-swap/tailwind.config.ts | 79 + packages/wallet-adapter-swap/tsconfig.json | 13 + 245 files changed, 14878 insertions(+) create mode 100644 apps/nextjs-example/src/app/swap/page.tsx create mode 100644 packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/index.js create mode 100644 packages/cross-chain/cross-chain-core/dist/index.js.map create mode 100644 packages/cross-chain/cross-chain-core/dist/index.mjs create mode 100644 packages/cross-chain/cross-chain-core/dist/index.mjs.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/signers/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/signers/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/version.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/version.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts create mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/src/version.ts create mode 100644 packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts create mode 100644 packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts.map create mode 100644 packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts create mode 100644 packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts.map create mode 100644 packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts create mode 100644 packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts.map create mode 100644 packages/cross-chain/cross-chain-react/dist/index.d.ts create mode 100644 packages/cross-chain/cross-chain-react/dist/index.d.ts.map create mode 100644 packages/cross-chain/cross-chain-react/dist/index.js create mode 100644 packages/cross-chain/cross-chain-react/dist/index.js.map create mode 100644 packages/cross-chain/cross-chain-react/dist/index.mjs create mode 100644 packages/cross-chain/cross-chain-react/dist/index.mjs.map create mode 100644 packages/cross-chain/cross-chain-react/dist/useWallet.d.ts create mode 100644 packages/cross-chain/cross-chain-react/dist/useWallet.d.ts.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js create mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs create mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js create mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs create mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/WalletCore.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/WalletCore.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/constants.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/constants.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/error/index.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/error/index.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/ga/index.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/ga/index.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/index.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/index.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/index.js create mode 100644 packages/wallet-adapter-core-new/dist/index.js.map create mode 100644 packages/wallet-adapter-core-new/dist/index.mjs create mode 100644 packages/wallet-adapter-core-new/dist/index.mjs.map create mode 100644 packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/utils/helpers.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/utils/helpers.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/utils/index.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/utils/index.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts.map create mode 100644 packages/wallet-adapter-core-new/dist/version.d.ts create mode 100644 packages/wallet-adapter-core-new/dist/version.d.ts.map create mode 100644 packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts create mode 100644 packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts.map create mode 100644 packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts create mode 100644 packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts.map create mode 100644 packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts create mode 100644 packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts.map create mode 100644 packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts create mode 100644 packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts.map create mode 100644 packages/wallet-adapter-react-new/dist/components/utils.d.ts create mode 100644 packages/wallet-adapter-react-new/dist/components/utils.d.ts.map create mode 100644 packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts create mode 100644 packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts.map create mode 100644 packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts create mode 100644 packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts.map create mode 100644 packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts create mode 100644 packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts.map create mode 100644 packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts create mode 100644 packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts.map create mode 100644 packages/wallet-adapter-react-new/dist/index.d.ts create mode 100644 packages/wallet-adapter-react-new/dist/index.d.ts.map create mode 100644 packages/wallet-adapter-react-new/dist/index.js create mode 100644 packages/wallet-adapter-react-new/dist/index.js.map create mode 100644 packages/wallet-adapter-react-new/dist/index.mjs create mode 100644 packages/wallet-adapter-react-new/dist/index.mjs.map create mode 100644 packages/wallet-adapter-react-new/dist/useWalletNew.d.ts create mode 100644 packages/wallet-adapter-react-new/dist/useWalletNew.d.ts.map create mode 100644 packages/wallet-adapter-swap/.eslintrc.js create mode 100644 packages/wallet-adapter-swap/.gitignore create mode 100644 packages/wallet-adapter-swap/.npmignore create mode 100644 packages/wallet-adapter-swap/CHANGELOG.md create mode 100644 packages/wallet-adapter-swap/README.md create mode 100644 packages/wallet-adapter-swap/components.json create mode 100644 packages/wallet-adapter-swap/package.json create mode 100644 packages/wallet-adapter-swap/postcss.config.mjs create mode 100644 packages/wallet-adapter-swap/src/AptosSigner.ts create mode 100644 packages/wallet-adapter-swap/src/ChainSelect.tsx create mode 100644 packages/wallet-adapter-swap/src/EthereumSigner.ts create mode 100644 packages/wallet-adapter-swap/src/EthereumWalletItem.tsx create mode 100644 packages/wallet-adapter-swap/src/EthereumWalletSelector.tsx create mode 100644 packages/wallet-adapter-swap/src/MultiChain.tsx create mode 100644 packages/wallet-adapter-swap/src/Signer.ts create mode 100644 packages/wallet-adapter-swap/src/SolanaSigner.ts create mode 100644 packages/wallet-adapter-swap/src/SolanaWalletItem.tsx create mode 100644 packages/wallet-adapter-swap/src/SolanaWalletSelector.tsx create mode 100644 packages/wallet-adapter-swap/src/WalletSelector.tsx create mode 100644 packages/wallet-adapter-swap/src/global.css create mode 100644 packages/wallet-adapter-swap/src/icons/Ethereum.tsx create mode 100644 packages/wallet-adapter-swap/src/icons/Solana.tsx create mode 100644 packages/wallet-adapter-swap/src/icons/USDC.tsx create mode 100644 packages/wallet-adapter-swap/src/index.tsx create mode 100644 packages/wallet-adapter-swap/src/lib/utils.ts create mode 100644 packages/wallet-adapter-swap/src/ui/button.tsx create mode 100644 packages/wallet-adapter-swap/src/ui/card.tsx create mode 100644 packages/wallet-adapter-swap/src/ui/collapsible.tsx create mode 100644 packages/wallet-adapter-swap/src/ui/dialog.tsx create mode 100644 packages/wallet-adapter-swap/src/ui/dropdown-menu.tsx create mode 100644 packages/wallet-adapter-swap/src/ui/input.tsx create mode 100644 packages/wallet-adapter-swap/src/ui/progress.tsx create mode 100644 packages/wallet-adapter-swap/src/ui/select.tsx create mode 100644 packages/wallet-adapter-swap/src/ui/toast.tsx create mode 100644 packages/wallet-adapter-swap/src/ui/use-toast.ts create mode 100644 packages/wallet-adapter-swap/src/utils.tsx create mode 100644 packages/wallet-adapter-swap/tailwind.config.d.ts create mode 100644 packages/wallet-adapter-swap/tailwind.config.d.ts.map create mode 100644 packages/wallet-adapter-swap/tailwind.config.ts create mode 100644 packages/wallet-adapter-swap/tsconfig.json diff --git a/apps/nextjs-example/package.json b/apps/nextjs-example/package.json index f733d9e6..2fcc85e3 100644 --- a/apps/nextjs-example/package.json +++ b/apps/nextjs-example/package.json @@ -17,6 +17,7 @@ "@aptos-labs/wallet-adapter-mui-design": "workspace:*", "@aptos-labs/wallet-adapter-react": "workspace:*", "@aptos-labs/wallet-standard": "^0.3.0", + "@aptos-labs/wallet-adapter-swap": "workspace:*", "@radix-ui/react-collapsible": "^1.0.3", "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-dropdown-menu": "^2.0.6", diff --git a/apps/nextjs-example/src/app/swap/page.tsx b/apps/nextjs-example/src/app/swap/page.tsx new file mode 100644 index 00000000..b1fe961b --- /dev/null +++ b/apps/nextjs-example/src/app/swap/page.tsx @@ -0,0 +1,7 @@ +"use client"; + +import { MultiChain } from "@aptos-labs/wallet-adapter-swap"; + +export default function Swap() { + return ; +} diff --git a/packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts b/packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts new file mode 100644 index 00000000..9952e45f --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts @@ -0,0 +1,25 @@ +import { Account, Network } from "@aptos-labs/ts-sdk"; +export interface CrossChainDappConfig { + network: Network; + disableTelemetry?: boolean; +} +export type AptosAccount = Account; +export type Chain = "Solana" | "Ethereum" | "Aptos"; +export type CCTPProviders = "Wormhole"; +export type UsdcBalance = { + amount: string; + decimal: number; + display: string; +}; +export interface CrossChainProvider { + getQuote(params: TQuoteRequest): Promise; + initiateCCTPTransfer(params: TInitiateTransferRequest): Promise; +} +export declare class CrossChainCore { + readonly _dappConfig: CrossChainDappConfig | undefined; + constructor(args: { + dappConfig: CrossChainDappConfig; + }); + getProvider(providerType: CCTPProviders): CrossChainProvider; +} +//# sourceMappingURL=CrossChainCore.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts.map b/packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts.map new file mode 100644 index 00000000..b3b3aebe --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"CrossChainCore.d.ts","sourceRoot":"","sources":["../src/CrossChainCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAUtD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;AAEnC,MAAM,MAAM,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAEpD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AAEvC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,kBAAkB,CACjC,aAAa,GAAG,GAAG,EACnB,cAAc,GAAG,GAAG,EACpB,wBAAwB,GAAG,GAAG,EAC9B,yBAAyB,GAAG,GAAG;IAE/B,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACzD,oBAAoB,CAClB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACvC;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,WAAW,EAAE,oBAAoB,GAAG,SAAS,CAAC;gBAE3C,IAAI,EAAE;QAAE,UAAU,EAAE,oBAAoB,CAAA;KAAE;IAItD,WAAW,CAAC,YAAY,EAAE,aAAa,GAAG,kBAAkB;CAa7D"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/index.d.ts b/packages/cross-chain/cross-chain-core/dist/index.d.ts new file mode 100644 index 00000000..bb31cd3c --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/index.d.ts @@ -0,0 +1,5 @@ +export * from "./CrossChainCore"; +export * from "./providers/wormhole/config"; +export * from "./providers/wormhole/index"; +export { Network } from "@aptos-labs/ts-sdk"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/index.d.ts.map new file mode 100644 index 00000000..d535ffda --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/index.js b/packages/cross-chain/cross-chain-core/dist/index.js new file mode 100644 index 00000000..b298a66a --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/index.js @@ -0,0 +1,899 @@ +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + AptosMainnetChain: () => AptosMainnetChain, + AptosMainnetUSDCToken: () => AptosMainnetUSDCToken, + AptosTestnetChain: () => AptosTestnetChain, + AptosTestnetUSDCToken: () => AptosTestnetUSDCToken, + Context: () => Context, + CrossChainCore: () => CrossChainCore, + Network: () => import_ts_sdk3.Network, + WormholeProvider: () => WormholeProvider, + mainnetChains: () => mainnetChains, + mainnetTokens: () => mainnetTokens, + testnetChains: () => testnetChains, + testnetTokens: () => testnetTokens +}); +module.exports = __toCommonJS(src_exports); + +// src/providers/wormhole/index.ts +var import_sdk = require("@wormhole-foundation/sdk"); +var import_aptos = __toESM(require("@wormhole-foundation/sdk/aptos")); +var import_solana = __toESM(require("@wormhole-foundation/sdk/solana")); +var import_evm = __toESM(require("@wormhole-foundation/sdk/evm")); + +// src/utils/logger.ts +var logger = { + log: (...args) => { + if (process.env.NODE_ENV === "development") { + console.log(...args); + } + }, + warn: (...args) => { + if (process.env.NODE_ENV === "development") { + console.warn(...args); + } + }, + error: (...args) => { + if (process.env.NODE_ENV === "development") { + console.error(...args); + } + } +}; + +// src/providers/wormhole/index.ts +var import_ts_sdk2 = require("@aptos-labs/ts-sdk"); + +// src/providers/wormhole/signers/AptosLocalSigner.ts +var import_ts_sdk = require("@aptos-labs/ts-sdk"); +var AptosLocalSigner = class { + constructor(chain, options, wallet, feePayerAccount) { + this._chain = chain; + this._options = options; + this._wallet = wallet; + this._sponsorAccount = feePayerAccount; + this._claimedTransactionHashes = ""; + } + chain() { + return this._chain; + } + address() { + return this._wallet.accountAddress.toString(); + } + claimedTransactionHashes() { + return this._claimedTransactionHashes; + } + async signAndSend(txs) { + console.log("Signer signAndSend txs", txs); + const txHashes = []; + for (const tx of txs) { + const txId = await signAndSendTransaction( + tx, + this._wallet, + this._sponsorAccount + ); + txHashes.push(txId); + this._claimedTransactionHashes = txId; + } + return txHashes; + } +}; +async function signAndSendTransaction(request, wallet, sponsorAccount) { + if (!wallet) { + throw new Error("Wallet is undefined"); + } + const payload = request.transaction; + payload.functionArguments = payload.functionArguments.map((a) => { + if (a instanceof Uint8Array) { + return Array.from(a); + } else if (typeof a === "bigint") { + return a.toString(); + } else { + return a; + } + }); + const aptosConfig = new import_ts_sdk.AptosConfig({ + network: import_ts_sdk.Network.TESTNET + }); + const aptos2 = new import_ts_sdk.Aptos(aptosConfig); + const txnToSign = await aptos2.transaction.build.simple({ + data: payload, + sender: wallet.accountAddress.toString(), + withFeePayer: sponsorAccount ? true : false + }); + const senderAuthenticator = await aptos2.transaction.sign({ + signer: wallet, + transaction: txnToSign + }); + const txnToSubmit = { + transaction: txnToSign, + senderAuthenticator + }; + if (sponsorAccount) { + const feePayerSignerAuthenticator = aptos2.transaction.signAsFeePayer({ + signer: sponsorAccount, + transaction: txnToSign + }); + txnToSubmit.feePayerAuthenticator = feePayerSignerAuthenticator; + } + const response = await aptos2.transaction.submit.simple(txnToSubmit); + const tx = await aptos2.waitForTransaction({ + transactionHash: response.hash + }); + return tx.hash; +} + +// src/providers/wormhole/signers/SolanaSigner.ts +var import_web3 = require("@solana/web3.js"); +var import_sdk_solana = require("@wormhole-foundation/sdk-solana"); +var import_web32 = require("@solana/web3.js"); +async function signAndSendTransaction2(request, wallet, options) { + var _a; + if (!wallet) + throw new Error("Wallet not found"); + const commitment = (_a = options == null ? void 0 : options.commitment) != null ? _a : "finalized"; + const connection = new import_web32.Connection("https://api.devnet.solana.com"); + const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(commitment); + const transaction = request.transaction.transaction; + const unsignedTx = await setPriorityFeeInstructions( + connection, + blockhash, + lastValidBlockHeight, + request + ); + let confirmTransactionPromise = null; + let confirmedTx = null; + let txSendAttempts = 1; + let signature = ""; + const tx = await wallet.signTransaction(unsignedTx); + const serializedTx = tx.serialize(); + const sendOptions = { + skipPreflight: true, + maxRetries: 0, + preFlightCommitment: commitment + }; + signature = await connection.sendRawTransaction(serializedTx, sendOptions); + confirmTransactionPromise = connection.confirmTransaction( + { + signature, + blockhash, + lastValidBlockHeight + }, + commitment + ); + const txRetryInterval = 5e3; + while (!confirmedTx) { + confirmedTx = await Promise.race([ + confirmTransactionPromise, + new Promise( + (resolve) => setTimeout(() => { + resolve(null); + }, txRetryInterval) + ) + ]); + if (confirmedTx) { + break; + } + console.log( + `Tx not confirmed after ${txRetryInterval * txSendAttempts++}ms, resending` + ); + try { + await connection.sendRawTransaction(serializedTx, sendOptions); + } catch (e) { + console.error("Failed to resend transaction:", e); + } + } + if (confirmedTx.value.err) { + let errorMessage = `Transaction failed: ${confirmedTx.value.err}`; + if (typeof confirmedTx.value.err === "object") { + try { + errorMessage = `Transaction failed: ${JSON.stringify( + confirmedTx.value.err, + (_key, value) => typeof value === "bigint" ? value.toString() : value + )}`; + } catch (e) { + errorMessage = `Transaction failed: Unknown error`; + } + } + throw new Error(`Transaction failed: ${errorMessage}`); + } + return signature; +} +async function setPriorityFeeInstructions(connection, blockhash, lastValidBlockHeight, request) { + const unsignedTx = request.transaction.transaction; + const computeBudgetIxFilter = (ix) => ix.programId.toString() !== "ComputeBudget111111111111111111111111111111"; + unsignedTx.recentBlockhash = blockhash; + unsignedTx.lastValidBlockHeight = lastValidBlockHeight; + unsignedTx.instructions = unsignedTx.instructions.filter( + computeBudgetIxFilter + ); + unsignedTx.add( + ...await createPriorityFeeInstructions(connection, unsignedTx) + ); + if (request.transaction.signers) { + unsignedTx.partialSign(...request.transaction.signers); + } + return unsignedTx; +} +async function createPriorityFeeInstructions(connection, transaction, commitment) { + let unitsUsed = 2e5; + let simulationAttempts = 0; + simulationLoop: + while (true) { + const response = await connection.simulateTransaction( + transaction + ); + if (response.value.err) { + if (checkKnownSimulationError(response.value)) { + if (simulationAttempts < 5) { + simulationAttempts++; + await sleep(1e3); + continue simulationLoop; + } + } else if (simulationAttempts < 3) { + simulationAttempts++; + await sleep(1e3); + continue simulationLoop; + } + throw new Error( + `Simulation failed: ${JSON.stringify(response.value.err)} +Logs: +${(response.value.logs || []).join("\n ")}` + ); + } else { + if (response.value.unitsConsumed) { + unitsUsed = response.value.unitsConsumed; + } + break; + } + } + const unitBudget = Math.floor(unitsUsed * 1.2); + const instructions = []; + instructions.push( + import_web3.ComputeBudgetProgram.setComputeUnitLimit({ + units: unitBudget + }) + ); + const percentile = 0.9; + const percentileMultiple = 1; + const min = 1e5; + const max = 1e8; + const calculateFee = async (rpcProvider2) => { + if (rpcProvider2 === "triton") { + try { + const fee2 = await (0, import_sdk_solana.determinePriorityFeeTritonOne)( + connection, + transaction, + percentile, + percentileMultiple, + min, + max + ); + return { + fee: fee2, + methodUsed: "triton" + }; + } catch (e) { + console.warn(`Failed to determine priority fee using Triton RPC:`, e); + } + } + try { + const fee2 = await (0, import_sdk_solana.determinePriorityFee)( + connection, + transaction, + percentile, + percentileMultiple, + min, + max + ); + return { + fee: fee2, + methodUsed: "default" + }; + } catch (e) { + console.warn(`Failed to determine priority fee using Triton RPC:`, e); + return { + fee: min, + methodUsed: "minimum" + }; + } + }; + const rpcProvider = determineRpcProvider(connection.rpcEndpoint); + const { fee, methodUsed } = await calculateFee(rpcProvider); + const maxFeeInSol = fee / 1e6 / import_web3.LAMPORTS_PER_SOL * unitBudget; + console.table({ + "RPC Provider": rpcProvider, + "Method used": methodUsed, + "Percentile used": percentile, + "Multiple used": percentileMultiple, + "Compute budget": unitBudget, + "Priority fee": fee, + "Max fee in SOL": maxFeeInSol + }); + instructions.push( + import_web3.ComputeBudgetProgram.setComputeUnitPrice({ microLamports: fee }) + ); + return instructions; +} +function checkKnownSimulationError(response) { + const errors = {}; + if (response.err === "BlockhashNotFound") { + errors["BlockhashNotFound"] = "Blockhash not found during simulation. Trying again."; + } + if (response.logs) { + for (const line of response.logs) { + if (line.includes("SlippageToleranceExceeded")) { + errors["SlippageToleranceExceeded"] = "Slippage failure during simulation. Trying again."; + } + if (line.includes("RequireGteViolated")) { + errors["RequireGteViolated"] = "Swap instruction failure during simulation. Trying again."; + } + } + } + if (isEmptyObject(errors)) { + return false; + } + console.table(errors); + return true; +} +async function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} +var isEmptyObject = (value) => { + if (value === null || value === void 0) { + return true; + } + for (const key in value) { + if (value.hasOwnProperty.call(value, key)) { + return false; + } + } + return true; +}; +function determineRpcProvider(endpoint) { + if (endpoint.includes("rpcpool.com")) { + return "triton"; + } else if (endpoint.includes("helius-rpc.com")) { + return "helius"; + } else if (endpoint.includes("rpc.ankr.com")) { + return "ankr"; + } else { + return "unknown"; + } +} + +// src/providers/wormhole/signers/EthereumSigner.ts +var import_ethers = require("ethers"); +async function signAndSendTransaction3(request, wallet, chainName, options) { + if (!wallet || !wallet.sendTransaction) { + throw new Error("wallet.sendTransaction is undefined"); + } + const actualChainId = await wallet.getConnectedNetwork(); + if (!actualChainId) + throw new Error("No signer found for chain" + chainName); + const expectedChainId = request.transaction.chainId ? (0, import_ethers.getBigInt)(request.transaction.chainId) : void 0; + if (!actualChainId || !expectedChainId || BigInt(actualChainId) !== expectedChainId) { + throw new Error( + `Signer is not connected to the right chain. Expected ${expectedChainId}, got ${actualChainId}` + ); + } + const txHash = await wallet.sendTransaction(request.transaction); + return txHash; +} + +// src/providers/wormhole/signers/SuiSigner.ts +async function signAndSendTransaction4(request, wallet) { + if (!wallet || !wallet.sendTransaction) { + throw new Error("wallet.sendTransaction is undefined"); + } + const response = await wallet.sendTransaction({ + transactionBlock: request.transaction + }); + return response == null ? void 0 : response.id; +} + +// src/providers/wormhole/signers/index.ts +var Signer = class { + constructor(chain, address, options, wallet) { + this._chain = chain; + this._address = address; + this._options = options; + this._wallet = wallet; + } + chain() { + return this._chain.displayName; + } + address() { + return this._address; + } + async signAndSend(txs) { + const txHashes = []; + for (const tx of txs) { + const txId = await signAndSendTransaction5( + this._chain, + tx, + this._wallet, + this._options + ); + txHashes.push(txId); + } + return txHashes; + } +}; +var signAndSendTransaction5 = async (chain, request, wallet, options = {}) => { + if (!wallet) { + throw new Error("wallet is undefined"); + } + if (chain.context === "Solana") { + const signature = await signAndSendTransaction2( + request, + wallet, + options + ); + return signature; + } else if (chain.context === "Ethereum") { + const tx = await signAndSendTransaction3( + request, + wallet, + chain.displayName, + options + ); + return tx; + } else if (chain.context === "Sui") { + const tx = await signAndSendTransaction4( + request, + wallet + ); + return tx; + } else { + throw new Error(`Unsupported chain: ${chain}`); + } +}; + +// src/providers/wormhole/config/types.ts +var Context = /* @__PURE__ */ ((Context2) => { + Context2["ETH"] = "Ethereum"; + Context2["TERRA"] = "Terra"; + Context2["XPLA"] = "XPLA"; + Context2["SOLANA"] = "Solana"; + Context2["ALGORAND"] = "Algorand"; + Context2["NEAR"] = "Near"; + Context2["APTOS"] = "Aptos"; + Context2["SUI"] = "Sui"; + Context2["OTHER"] = "OTHER"; + return Context2; +})(Context || {}); + +// src/providers/wormhole/config/testnet/chains.ts +var testnetChains = { + Sepolia: { + key: "Sepolia", + id: 10002, + context: "Ethereum" /* ETH */, + finalityThreshold: 0, + displayName: "Sepolia", + explorerUrl: "https://sepolia.etherscan.io/", + explorerName: "Etherscan", + gasToken: "ETHsepolia", + chainId: 11155111, + icon: "Ethereum", + maxBlockSearch: 2e3, + symbol: "ETH", + sdkName: "Sepolia", + wrappedGasToken: "0xeef12A83EE5b7161D3873317c8E0E7B76e0B5D9c" + }, + Solana: { + key: "Solana", + id: 1, + context: "Solana" /* SOLANA */, + finalityThreshold: 32, + displayName: "Solana", + explorerUrl: "https://explorer.solana.com/", + explorerName: "Solana Explorer", + gasToken: "SOL", + chainId: 0, + icon: "Solana", + maxBlockSearch: 2e3, + symbol: "SOL", + sdkName: "Solana", + wrappedGasToken: "So11111111111111111111111111111111111111112" + } +}; +var AptosTestnetChain = { + key: "Aptos", + id: 22, + context: "Aptos" /* APTOS */, + finalityThreshold: 0, + displayName: "Aptos", + explorerUrl: "https://explorer.aptoslabs.com?network=testnet", + explorerName: "Aptos Explorer", + gasToken: "APT", + chainId: 0, + icon: "Aptos", + maxBlockSearch: 0, + symbol: "APT", + sdkName: "Aptos" +}; + +// src/providers/wormhole/config/testnet/tokens.ts +var testnetTokens = { + Avalanche: { + symbol: "USDC", + icon: "USDC", + decimals: 6, + tokenId: { + chain: "Avalanche", + address: "0x5425890298aed601595a70AB815c96711a31Bc65" + } + }, + Sepolia: { + symbol: "USDC", + icon: "USDC", + decimals: 6, + tokenId: { + chain: "Sepolia", + address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238" + } + }, + Solana: { + symbol: "USDC", + tokenId: { + chain: "Solana", + address: "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU" + }, + icon: "USDC", + decimals: 6 + }, + Sui: { + symbol: "USDC", + tokenId: { + chain: "Sui", + address: "0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC" + }, + icon: "USDC", + decimals: 6 + } +}; +var AptosTestnetUSDCToken = { + symbol: "USDC", + decimals: 6, + tokenId: { + chain: "Aptos", + address: "0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832" + }, + icon: "USDC" +}; + +// src/providers/wormhole/config/mainnet/chains.ts +var mainnetChains = { + Ethereum: { + key: "Ethereum", + id: 2, + context: "Ethereum" /* ETH */, + finalityThreshold: 64, + displayName: "Ethereum", + explorerUrl: "https://etherscan.io/", + explorerName: "Etherscan", + gasToken: "ETH", + chainId: 1, + icon: "Ethereum", + maxBlockSearch: 2e3, + symbol: "ETH", + sdkName: "Ethereum" + }, + Solana: { + key: "Solana", + id: 1, + context: "Solana" /* SOLANA */, + finalityThreshold: 32, + displayName: "Solana", + explorerUrl: "https://explorer.solana.com/", + explorerName: "Solana Explorer", + gasToken: "SOL", + chainId: 0, + icon: "Solana", + maxBlockSearch: 2e3, + symbol: "SOL", + sdkName: "Solana" + } +}; +var AptosMainnetChain = { + key: "Aptos", + id: 22, + context: "Aptos", + finalityThreshold: 0, + displayName: "Aptos", + explorerUrl: "https://explorer.aptoslabs.com/", + explorerName: "Aptos Explorer", + gasToken: "APT", + chainId: 0, + icon: "Aptos", + maxBlockSearch: 0, + symbol: "APT" +}; + +// src/providers/wormhole/config/mainnet/tokens.ts +var mainnetTokens = { + Ethereum: { + symbol: "USDC", + tokenId: { + chain: "Ethereum", + address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + }, + icon: "USDC", + decimals: 6 + }, + Solana: { + symbol: "USDC", + tokenId: { + chain: "Solana", + address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" + }, + icon: "USDC", + decimals: 6 + }, + Sui: { + symbol: "USDC", + decimals: 6, + tokenId: { + chain: "Sui", + address: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC" + }, + icon: "USDC" + } +}; +var AptosMainnetUSDCToken = { + symbol: "USDC", + tokenId: { + chain: "Aptos", + address: "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b" + }, + icon: "USDC", + decimals: 6 +}; + +// src/providers/wormhole/index.ts +var WormholeProvider = class { + constructor(core) { + this.CHAINS = testnetChains; + this.TOKENS = testnetTokens; + this.APTOS_TOKEN = AptosTestnetUSDCToken; + var _a; + this.crossChainCore = core; + if (((_a = core._dappConfig) == null ? void 0 : _a.network) === import_ts_sdk2.Network.MAINNET) { + this.CHAINS = mainnetChains; + this.TOKENS = mainnetTokens; + this.APTOS_TOKEN = AptosMainnetUSDCToken; + } else { + this.CHAINS = testnetChains; + this.TOKENS = testnetTokens; + this.APTOS_TOKEN = AptosTestnetUSDCToken; + } + } + get wormholeContext() { + return this._wormholeContext; + } + async setWormholeContext(sourceChain) { + var _a; + const dappNetwork = (_a = this.crossChainCore._dappConfig) == null ? void 0 : _a.network; + if (dappNetwork === import_ts_sdk2.Network.DEVNET) { + throw new Error("Devnet is not supported on Wormhole"); + } + if (!sourceChain) { + throw new Error("Origin chain not selected"); + } + const isMainnet = dappNetwork === import_ts_sdk2.Network.MAINNET; + const platforms = [import_aptos.default, import_solana.default, import_evm.default]; + const wh = await (0, import_sdk.wormhole)(isMainnet ? "Mainnet" : "Testnet", platforms); + this._wormholeContext = wh; + } + async getWormholeCctpRoute(sourceChain) { + if (!this._wormholeContext) { + throw new Error("Wormhole context not initialized"); + } + const { sourceToken, destToken } = this.getTokenInfo(sourceChain); + const sourceContext = this._wormholeContext.getPlatform((0, import_sdk.chainToPlatform)(sourceChain)).getChain(sourceChain); + logger.log("sourceContext", sourceContext); + const destContext = this._wormholeContext.getPlatform((0, import_sdk.chainToPlatform)("Aptos")).getChain("Aptos"); + logger.log("destContext", destContext); + const req = await import_sdk.routes.RouteTransferRequest.create( + this._wormholeContext, + { + source: sourceToken, + destination: destToken + }, + sourceContext, + destContext + ); + const resolver = this._wormholeContext.resolver([ + import_sdk.routes.CCTPRoute + ]); + const route = await resolver.findRoutes(req); + const cctpRoute = route[0]; + return { route: cctpRoute, request: req }; + } + async getQuote(input) { + const { amount, sourceChain } = input; + if (!this._wormholeContext) { + await this.setWormholeContext(sourceChain); + } + const { route, request } = await this.getWormholeCctpRoute(sourceChain); + this.wormholeRoute = route; + this.wormholeRequest = request; + const transferParams = { amount, options: { nativeGas: 0 } }; + const validated = await route.validate(request, transferParams); + if (!validated.valid) { + logger.log("invalid", validated.valid); + throw validated.error; + } + const quote = await route.quote(request, validated.params); + if (!quote.success) { + logger.log("quote failed", quote.success); + throw quote.error; + } + this.wormholeQuote = quote; + logger.log("quote", quote); + return quote; + } + async startCCTPTransfer(input) { + const { sourceChain, wallet, destinationAddress } = input; + if (!this._wormholeContext) { + await this.setWormholeContext(sourceChain); + } + if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) { + throw new Error("Wormhole route, request, or quote not initialized"); + } + let signerAddress; + const chainContext = this.getChainConfig(sourceChain).context; + const currentAccount = await wallet.getAccount(); + if (chainContext === "Solana") { + signerAddress = currentAccount.publicKey.toString(); + } else { + signerAddress = currentAccount.address; + } + logger.log("signerAddress", signerAddress); + const signer = new Signer( + this.getChainConfig(sourceChain), + signerAddress, + {}, + wallet + ); + let receipt = await this.wormholeRoute.initiate( + this.wormholeRequest, + signer, + this.wormholeQuote, + import_sdk.Wormhole.chainAddress("Aptos", destinationAddress.toString()) + ); + const originChainTxnId = "originTxs" in receipt ? receipt.originTxs[receipt.originTxs.length - 1].txid : void 0; + return { originChainTxnId: originChainTxnId || "", receipt }; + } + async initiateCCTPTransfer(input) { + var _a; + if (((_a = this.crossChainCore._dappConfig) == null ? void 0 : _a.network) === import_ts_sdk2.Network.DEVNET) { + throw new Error("Devnet is not supported on Wormhole"); + } + if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) { + throw new Error("Wormhole route, request, or quote not initialized"); + } + let { originChainTxnId, receipt } = await this.startCCTPTransfer(input); + const { mainSigner, sponsorAccount } = input; + logger.log("mainSigner", mainSigner.accountAddress.toString()); + let retries = 0; + const maxRetries = 5; + const baseDelay = 1e3; + while (retries < maxRetries) { + try { + for await (receipt of this.wormholeRoute.track(receipt, 120 * 1e3)) { + if (receipt.state >= import_sdk.TransferState.SourceInitiated) { + logger.log("Receipt is on track ", receipt); + try { + const signer = new AptosLocalSigner( + "Aptos", + {}, + mainSigner, + sponsorAccount ? sponsorAccount : void 0 + ); + if (import_sdk.routes.isManual(this.wormholeRoute)) { + const circleAttestationReceipt = await this.wormholeRoute.complete(signer, receipt); + logger.log("Claim receipt: ", circleAttestationReceipt); + const destinationChainTxnId = signer.claimedTransactionHashes(); + return { destinationChainTxnId, originChainTxnId }; + } else { + return { destinationChainTxnId: "", originChainTxnId }; + } + } catch (e) { + console.error("Failed to claim", e); + return { destinationChainTxnId: "", originChainTxnId }; + } + } + } + } catch (e) { + console.error( + `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`, + e + ); + const delay = baseDelay * Math.pow(2, retries); + await (0, import_ts_sdk2.sleep)(delay); + retries++; + } + } + return { destinationChainTxnId: "", originChainTxnId }; + } + getChainConfig(chain) { + const chainConfig = this.CHAINS[chain]; + if (!chainConfig) { + throw new Error(`Chain config not found for chain: ${chain}`); + } + return chainConfig; + } + getTokenInfo(sourceChain) { + const sourceToken = import_sdk.Wormhole.tokenId( + this.TOKENS[sourceChain].tokenId.chain, + this.TOKENS[sourceChain].tokenId.address + ); + const destToken = import_sdk.Wormhole.tokenId( + this.APTOS_TOKEN.tokenId.chain, + this.APTOS_TOKEN.tokenId.address + ); + return { sourceToken, destToken }; + } +}; + +// src/CrossChainCore.ts +var CrossChainCore = class { + constructor(args) { + this._dappConfig = args.dappConfig; + } + getProvider(providerType) { + switch (providerType) { + case "Wormhole": + return new WormholeProvider(this); + default: + throw new Error(`Unknown provider: ${providerType}`); + } + } +}; + +// src/index.ts +var import_ts_sdk3 = require("@aptos-labs/ts-sdk"); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + AptosMainnetChain, + AptosMainnetUSDCToken, + AptosTestnetChain, + AptosTestnetUSDCToken, + Context, + CrossChainCore, + Network, + WormholeProvider, + mainnetChains, + mainnetTokens, + testnetChains, + testnetTokens +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/index.js.map b/packages/cross-chain/cross-chain-core/dist/index.js.map new file mode 100644 index 00000000..5d5c1e6e --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts","../src/providers/wormhole/index.ts","../src/utils/logger.ts","../src/providers/wormhole/signers/AptosLocalSigner.ts","../src/providers/wormhole/signers/SolanaSigner.ts","../src/providers/wormhole/signers/EthereumSigner.ts","../src/providers/wormhole/signers/SuiSigner.ts","../src/providers/wormhole/signers/index.ts","../src/providers/wormhole/config/types.ts","../src/providers/wormhole/config/testnet/chains.ts","../src/providers/wormhole/config/testnet/tokens.ts","../src/providers/wormhole/config/mainnet/chains.ts","../src/providers/wormhole/config/mainnet/tokens.ts","../src/CrossChainCore.ts"],"sourcesContent":["export * from \"./CrossChainCore\";\nexport * from \"./providers/wormhole/config\";\nexport * from \"./providers/wormhole/index\";\nexport { Network } from \"@aptos-labs/ts-sdk\";\n","import { Chain, CrossChainProvider } from \"../../CrossChainCore\";\n\nimport {\n chainToPlatform,\n routes,\n TokenId,\n Wormhole,\n wormhole,\n PlatformLoader,\n TransferState,\n AttestationReceipt,\n} from \"@wormhole-foundation/sdk\";\n\nimport aptos from \"@wormhole-foundation/sdk/aptos\";\nimport solana from \"@wormhole-foundation/sdk/solana\";\nimport evm from \"@wormhole-foundation/sdk/evm\";\nimport sui from \"@wormhole-foundation/sdk/sui\";\n\nimport { CrossChainCore } from \"../../CrossChainCore\";\nimport { logger } from \"../../utils/logger\";\nimport {\n Account,\n AccountAddressInput,\n Ed25519PrivateKey,\n Network,\n sleep,\n} from \"@aptos-labs/ts-sdk\";\nimport { AptosLocalSigner } from \"./signers/AptosLocalSigner\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { Signer } from \"./signers\";\nimport {\n ChainsConfig,\n testnetChains,\n testnetTokens,\n mainnetChains,\n mainnetTokens,\n TokenConfig,\n AptosTestnetUSDCToken,\n AptosMainnetUSDCToken,\n ChainConfig,\n} from \"./config\";\n\nexport type WormholeRouteResponse = routes.Route<\n \"Mainnet\" | \"Testnet\",\n routes.Options,\n routes.ValidatedTransferParams,\n routes.Receipt\n>;\n\nexport type WormholeRequest = routes.RouteTransferRequest<\n \"Mainnet\" | \"Testnet\"\n>;\n\nexport type WormholeQuoteResponse = routes.Quote<\n routes.Options,\n routes.ValidatedTransferParams,\n any\n>;\n\nexport interface WormholeQuoteRequest {\n amount: string;\n sourceChain: Chain;\n}\n\nexport interface WormholeInitiateTransferRequest {\n sourceChain: Chain;\n wallet: AdapterWallet;\n destinationAddress: AccountAddressInput;\n mainSigner: Account;\n sponsorAccount?: Account | Partial>;\n}\n\nexport interface WormholeInitiateTransferResponse {\n destinationChainTxnId: string;\n originChainTxnId: string;\n}\n\nexport interface WormholeStartTransferResponse {\n originChainTxnId: string;\n receipt: routes.Receipt;\n}\n\nexport class WormholeProvider\n implements\n CrossChainProvider<\n WormholeQuoteRequest,\n WormholeQuoteResponse,\n WormholeInitiateTransferRequest,\n WormholeInitiateTransferResponse\n >\n{\n private crossChainCore: CrossChainCore;\n\n private _wormholeContext: Wormhole<\"Mainnet\" | \"Testnet\"> | undefined;\n\n private wormholeRoute: WormholeRouteResponse | undefined;\n private wormholeRequest: WormholeRequest | undefined;\n private wormholeQuote: WormholeQuoteResponse | undefined;\n\n readonly CHAINS: ChainsConfig = testnetChains;\n readonly TOKENS: Record = testnetTokens;\n\n readonly APTOS_TOKEN: TokenConfig = AptosTestnetUSDCToken;\n\n constructor(core: CrossChainCore) {\n this.crossChainCore = core;\n if (core._dappConfig?.network === Network.MAINNET) {\n this.CHAINS = mainnetChains;\n this.TOKENS = mainnetTokens;\n this.APTOS_TOKEN = AptosMainnetUSDCToken;\n } else {\n this.CHAINS = testnetChains;\n this.TOKENS = testnetTokens;\n this.APTOS_TOKEN = AptosTestnetUSDCToken;\n }\n }\n\n get wormholeContext(): Wormhole<\"Mainnet\" | \"Testnet\"> | undefined {\n return this._wormholeContext;\n }\n\n async setWormholeContext(sourceChain: Chain) {\n const dappNetwork = this.crossChainCore._dappConfig?.network;\n if (dappNetwork === Network.DEVNET) {\n throw new Error(\"Devnet is not supported on Wormhole\");\n }\n if (!sourceChain) {\n throw new Error(\"Origin chain not selected\");\n }\n const isMainnet = dappNetwork === Network.MAINNET;\n const platforms: PlatformLoader[] = [aptos, solana, evm];\n const wh = await wormhole(isMainnet ? \"Mainnet\" : \"Testnet\", platforms);\n this._wormholeContext = wh;\n }\n\n async getWormholeCctpRoute(sourceChain: Chain): Promise<{\n route: WormholeRouteResponse;\n request: WormholeRequest;\n }> {\n if (!this._wormholeContext) {\n throw new Error(\"Wormhole context not initialized\");\n }\n\n const { sourceToken, destToken } = this.getTokenInfo(sourceChain);\n\n const sourceContext = this._wormholeContext\n .getPlatform(chainToPlatform(sourceChain))\n .getChain(sourceChain);\n\n logger.log(\"sourceContext\", sourceContext);\n\n const destContext = this._wormholeContext\n .getPlatform(chainToPlatform(\"Aptos\"))\n .getChain(\"Aptos\");\n\n logger.log(\"destContext\", destContext);\n\n const req = await routes.RouteTransferRequest.create(\n this._wormholeContext,\n {\n source: sourceToken,\n destination: destToken,\n },\n sourceContext,\n destContext\n );\n\n const resolver = this._wormholeContext.resolver([\n routes.CCTPRoute, // manual CCTP\n ]);\n\n const route = await resolver.findRoutes(req);\n const cctpRoute = route[0];\n\n return { route: cctpRoute, request: req };\n }\n\n async getQuote(input: WormholeQuoteRequest): Promise {\n const { amount, sourceChain } = input;\n\n if (!this._wormholeContext) {\n await this.setWormholeContext(sourceChain);\n }\n\n const { route, request } = await this.getWormholeCctpRoute(sourceChain);\n this.wormholeRoute = route;\n this.wormholeRequest = request;\n\n // TODO what is nativeGas for?\n const transferParams = { amount, options: { nativeGas: 0 } };\n\n const validated = await route.validate(request, transferParams);\n if (!validated.valid) {\n logger.log(\"invalid\", validated.valid);\n throw validated.error;\n }\n const quote = await route.quote(request, validated.params);\n if (!quote.success) {\n logger.log(\"quote failed\", quote.success);\n throw quote.error;\n }\n this.wormholeQuote = quote;\n logger.log(\"quote\", quote);\n return quote;\n }\n\n async startCCTPTransfer(\n input: WormholeInitiateTransferRequest\n ): Promise {\n const { sourceChain, wallet, destinationAddress } = input;\n\n if (!this._wormholeContext) {\n await this.setWormholeContext(sourceChain);\n }\n if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) {\n throw new Error(\"Wormhole route, request, or quote not initialized\");\n }\n\n let signerAddress: string;\n\n const chainContext = this.getChainConfig(sourceChain).context;\n\n const currentAccount = await wallet.getAccount();\n if (chainContext === \"Solana\") {\n signerAddress = currentAccount.publicKey.toString();\n } else {\n signerAddress = currentAccount.address;\n }\n logger.log(\"signerAddress\", signerAddress);\n\n const signer = new Signer(\n this.getChainConfig(sourceChain),\n signerAddress,\n {},\n wallet\n );\n\n let receipt = await this.wormholeRoute.initiate(\n this.wormholeRequest,\n signer,\n this.wormholeQuote,\n Wormhole.chainAddress(\"Aptos\", destinationAddress.toString())\n );\n\n const originChainTxnId =\n \"originTxs\" in receipt\n ? receipt.originTxs[receipt.originTxs.length - 1].txid\n : undefined;\n\n return { originChainTxnId: originChainTxnId || \"\", receipt };\n }\n\n async initiateCCTPTransfer(\n input: WormholeInitiateTransferRequest\n ): Promise {\n if (this.crossChainCore._dappConfig?.network === Network.DEVNET) {\n throw new Error(\"Devnet is not supported on Wormhole\");\n }\n if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) {\n throw new Error(\"Wormhole route, request, or quote not initialized\");\n }\n let { originChainTxnId, receipt } = await this.startCCTPTransfer(input);\n // should come from transaction signer worker\n const { mainSigner, sponsorAccount } = input;\n\n logger.log(\"mainSigner\", mainSigner.accountAddress.toString());\n\n let retries = 0;\n const maxRetries = 5;\n const baseDelay = 1000; // Initial delay of 1 second\n\n while (retries < maxRetries) {\n try {\n for await (receipt of this.wormholeRoute.track(receipt, 120 * 1000)) {\n if (receipt.state >= TransferState.SourceInitiated) {\n logger.log(\"Receipt is on track \", receipt);\n\n try {\n const signer = new AptosLocalSigner(\n \"Aptos\",\n {},\n mainSigner, // the account that signs the \"claim\" transaction\n sponsorAccount ? sponsorAccount : undefined // the fee payer account\n );\n\n if (routes.isManual(this.wormholeRoute)) {\n const circleAttestationReceipt =\n await this.wormholeRoute.complete(signer, receipt);\n logger.log(\"Claim receipt: \", circleAttestationReceipt);\n const destinationChainTxnId = signer.claimedTransactionHashes();\n return { destinationChainTxnId, originChainTxnId };\n } else {\n // Should be unreachable\n return { destinationChainTxnId: \"\", originChainTxnId };\n }\n } catch (e) {\n console.error(\"Failed to claim\", e);\n return { destinationChainTxnId: \"\", originChainTxnId };\n }\n }\n }\n } catch (e) {\n console.error(\n `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`,\n e\n );\n const delay = baseDelay * Math.pow(2, retries); // Exponential backoff\n await sleep(delay);\n retries++;\n }\n }\n // Should be unreachable\n return { destinationChainTxnId: \"\", originChainTxnId };\n }\n\n getChainConfig(chain: Chain): ChainConfig {\n const chainConfig = this.CHAINS[chain as keyof typeof this.CHAINS];\n if (!chainConfig) {\n throw new Error(`Chain config not found for chain: ${chain}`);\n }\n return chainConfig;\n }\n\n getTokenInfo(sourceChain: Chain): {\n sourceToken: TokenId;\n destToken: TokenId;\n } {\n const sourceToken: TokenId = Wormhole.tokenId(\n this.TOKENS[sourceChain].tokenId.chain as Chain,\n this.TOKENS[sourceChain].tokenId.address\n );\n\n const destToken: TokenId = Wormhole.tokenId(\n this.APTOS_TOKEN.tokenId.chain as Chain,\n this.APTOS_TOKEN.tokenId.address\n );\n\n return { sourceToken, destToken };\n }\n}\n","export const logger = {\n log: (...args: any[]) => {\n if (process.env.NODE_ENV === \"development\") {\n console.log(...args);\n }\n },\n warn: (...args: any[]) => {\n if (process.env.NODE_ENV === \"development\") {\n console.warn(...args);\n }\n },\n error: (...args: any[]) => {\n if (process.env.NODE_ENV === \"development\") {\n console.error(...args);\n }\n },\n};\n","import {\n AccountAuthenticator,\n AnyRawTransaction,\n Aptos,\n AptosConfig,\n Network as AptosNetwork,\n Account,\n} from \"@aptos-labs/ts-sdk\";\n\nimport {\n Chain,\n Network,\n SignAndSendSigner,\n TxHash,\n UnsignedTransaction,\n} from \"@wormhole-foundation/sdk\";\nimport {\n AptosUnsignedTransaction,\n AptosChains,\n} from \"@wormhole-foundation/sdk-aptos\";\n\nexport class AptosLocalSigner\n implements SignAndSendSigner\n{\n _chain: C;\n _options: any;\n _wallet: Account;\n _sponsorAccount: Account | Partial> | undefined;\n _claimedTransactionHashes: string;\n\n constructor(\n chain: C,\n options: any,\n wallet: Account,\n feePayerAccount: Account | Partial> | undefined\n ) {\n this._chain = chain;\n this._options = options;\n this._wallet = wallet;\n this._sponsorAccount = feePayerAccount;\n this._claimedTransactionHashes = \"\";\n }\n\n chain(): C {\n return this._chain;\n }\n address(): string {\n return this._wallet.accountAddress.toString();\n }\n\n claimedTransactionHashes(): string {\n return this._claimedTransactionHashes;\n }\n /* other methods... */\n\n async signAndSend(txs: UnsignedTransaction[]): Promise {\n console.log(\"Signer signAndSend txs\", txs);\n const txHashes: TxHash[] = [];\n\n for (const tx of txs) {\n const txId = await signAndSendTransaction(\n tx as AptosUnsignedTransaction,\n this._wallet,\n this._sponsorAccount\n );\n txHashes.push(txId);\n this._claimedTransactionHashes = txId;\n }\n return txHashes;\n }\n}\n\nexport async function signAndSendTransaction(\n request: UnsignedTransaction,\n wallet: Account,\n sponsorAccount: Account | Partial> | undefined\n) {\n if (!wallet) {\n throw new Error(\"Wallet is undefined\");\n }\n\n const payload = request.transaction;\n // The wallets do not handle Uint8Array serialization\n payload.functionArguments = payload.functionArguments.map((a: any) => {\n if (a instanceof Uint8Array) {\n return Array.from(a);\n } else if (typeof a === \"bigint\") {\n return a.toString();\n } else {\n return a;\n }\n });\n\n const aptosConfig = new AptosConfig({\n network: AptosNetwork.TESTNET,\n });\n const aptos = new Aptos(aptosConfig);\n\n const txnToSign = await aptos.transaction.build.simple({\n data: payload,\n sender: wallet.accountAddress.toString(),\n withFeePayer: sponsorAccount ? true : false,\n });\n const senderAuthenticator = await aptos.transaction.sign({\n signer: wallet,\n transaction: txnToSign,\n });\n\n const txnToSubmit: {\n transaction: AnyRawTransaction;\n senderAuthenticator: AccountAuthenticator;\n feePayerAuthenticator?: AccountAuthenticator;\n } = {\n transaction: txnToSign,\n senderAuthenticator,\n };\n\n if (sponsorAccount) {\n const feePayerSignerAuthenticator = aptos.transaction.signAsFeePayer({\n // TODO: handles sponsor account coming from gas station\n signer: sponsorAccount as Account,\n transaction: txnToSign,\n });\n txnToSubmit.feePayerAuthenticator = feePayerSignerAuthenticator;\n }\n\n const response = await aptos.transaction.submit.simple(txnToSubmit);\n\n const tx = await aptos.waitForTransaction({\n transactionHash: response.hash,\n });\n\n return tx.hash;\n}\n","// This function signs and sends the transaction while constantly checking for confirmation\n// and resending the transaction if it hasn't been confirmed after the specified interval\n\nimport {\n AddressLookupTableAccount,\n Commitment,\n ComputeBudgetProgram,\n ConfirmOptions,\n LAMPORTS_PER_SOL,\n SimulatedTransactionResponse,\n TransactionInstruction,\n TransactionMessage,\n VersionedTransaction,\n} from \"@solana/web3.js\";\n\nimport { Transaction } from \"@solana/web3.js\";\nimport { RpcResponseAndContext, SignatureResult } from \"@solana/web3.js\";\nimport {\n determinePriorityFee,\n determinePriorityFeeTritonOne,\n isVersionedTransaction,\n SolanaUnsignedTransaction,\n} from \"@wormhole-foundation/sdk-solana\";\n\nimport { Connection } from \"@solana/web3.js\";\nimport { Network } from \"@wormhole-foundation/sdk\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\n\nexport type SolanaRpcProvider = \"triton\" | \"helius\" | \"ankr\" | \"unknown\";\n\n// See https://docs.triton.one/chains/solana/sending-txs for more information\nexport async function signAndSendTransaction(\n request: SolanaUnsignedTransaction,\n wallet: AdapterWallet | undefined,\n options?: ConfirmOptions\n) {\n if (!wallet) throw new Error(\"Wallet not found\");\n\n const commitment = options?.commitment ?? \"finalized\";\n // Solana rpc should come from dapp config\n const connection = new Connection(\"https://api.devnet.solana.com\");\n const { blockhash, lastValidBlockHeight } =\n await connection.getLatestBlockhash(commitment);\n\n // Circle Manual CCTP on Wormhole is always of a Trnasaction type\n // https://github.com/wormhole-foundation/wormhole-sdk-ts/blob/f7d992e04f844edcc4128659f12f75ade3553717/platforms/solana/protocols/cctp/src/circleBridge.ts#L173\n const transaction = request.transaction.transaction as Transaction;\n\n /**\n * TODO: Priority Fee is supported, but needs to come from dapp config\n */\n const unsignedTx = await setPriorityFeeInstructions(\n connection,\n blockhash,\n lastValidBlockHeight,\n request\n );\n\n let confirmTransactionPromise: Promise<\n RpcResponseAndContext\n > | null = null;\n let confirmedTx: RpcResponseAndContext | null = null;\n let txSendAttempts = 1;\n let signature = \"\";\n\n // transaction.recentBlockhash = blockhash;\n // if (request.transaction.signers) {\n // transaction.partialSign(...request.transaction.signers);\n // }\n\n const tx = await wallet.signTransaction(unsignedTx);\n const serializedTx = tx.serialize();\n const sendOptions = {\n skipPreflight: true,\n maxRetries: 0,\n preFlightCommitment: commitment, // See PR and linked issue for why setting this matters: https://github.com/anza-xyz/agave/pull/483\n };\n signature = await connection.sendRawTransaction(serializedTx, sendOptions);\n confirmTransactionPromise = connection.confirmTransaction(\n {\n signature,\n blockhash,\n lastValidBlockHeight,\n },\n commitment\n );\n\n // This loop will break once the transaction has been confirmed or the block height is exceeded.\n // An exception will be thrown if the block height is exceeded by the confirmTransactionPromise.\n // The transaction will be resent if it hasn't been confirmed after the interval.\n const txRetryInterval = 5000;\n while (!confirmedTx) {\n confirmedTx = await Promise.race([\n confirmTransactionPromise,\n new Promise((resolve) =>\n setTimeout(() => {\n resolve(null);\n }, txRetryInterval)\n ),\n ]);\n if (confirmedTx) {\n break;\n }\n console.log(\n `Tx not confirmed after ${\n txRetryInterval * txSendAttempts++\n }ms, resending`\n );\n try {\n await connection.sendRawTransaction(serializedTx, sendOptions);\n } catch (e) {\n console.error(\"Failed to resend transaction:\", e);\n }\n }\n\n if (confirmedTx.value.err) {\n let errorMessage = `Transaction failed: ${confirmedTx.value.err}`;\n if (typeof confirmedTx.value.err === \"object\") {\n try {\n errorMessage = `Transaction failed: ${JSON.stringify(\n confirmedTx.value.err,\n (_key, value) =>\n typeof value === \"bigint\" ? value.toString() : value // Handle bigint props\n )}`;\n } catch (e: unknown) {\n // Most likely a circular reference error, we can't stringify this error object.\n // See for more details:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#exceptions\n errorMessage = `Transaction failed: Unknown error`;\n }\n }\n throw new Error(`Transaction failed: ${errorMessage}`);\n }\n\n return signature;\n}\n\nexport async function setPriorityFeeInstructions(\n connection: Connection,\n blockhash: string,\n lastValidBlockHeight: number,\n request: SolanaUnsignedTransaction\n): Promise {\n const unsignedTx = request.transaction.transaction as Transaction;\n\n const computeBudgetIxFilter = (ix: TransactionInstruction) =>\n ix.programId.toString() !== \"ComputeBudget111111111111111111111111111111\";\n\n unsignedTx.recentBlockhash = blockhash;\n unsignedTx.lastValidBlockHeight = lastValidBlockHeight;\n\n // Remove existing compute budget instructions if they were added by the SDK\n unsignedTx.instructions = unsignedTx.instructions.filter(\n computeBudgetIxFilter\n );\n unsignedTx.add(\n ...(await createPriorityFeeInstructions(connection, unsignedTx))\n );\n if (request.transaction.signers) {\n unsignedTx.partialSign(...request.transaction.signers);\n }\n\n return unsignedTx;\n}\n\n// This will throw if the simulation fails\nasync function createPriorityFeeInstructions(\n connection: Connection,\n transaction: Transaction | VersionedTransaction,\n commitment?: Commitment\n) {\n let unitsUsed = 200_000;\n let simulationAttempts = 0;\n\n simulationLoop: while (true) {\n const response = await connection.simulateTransaction(\n transaction as Transaction\n );\n\n if (response.value.err) {\n if (checkKnownSimulationError(response.value)) {\n // Number of attempts will be at most 5 for known errors\n if (simulationAttempts < 5) {\n simulationAttempts++;\n await sleep(1000);\n continue simulationLoop;\n }\n } else if (simulationAttempts < 3) {\n // Number of attempts will be at most 3 for unknown errors\n simulationAttempts++;\n await sleep(1000);\n continue simulationLoop;\n }\n\n // Still failing after multiple attempts for both known and unknown errors\n // We should throw in that case\n throw new Error(\n `Simulation failed: ${JSON.stringify(response.value.err)}\\nLogs:\\n${(\n response.value.logs || []\n ).join(\"\\n \")}`\n );\n } else {\n // Simulation was successful\n if (response.value.unitsConsumed) {\n unitsUsed = response.value.unitsConsumed;\n }\n break;\n }\n }\n\n const unitBudget = Math.floor(unitsUsed * 1.2); // Budget in 20% headroom\n\n const instructions: TransactionInstruction[] = [];\n instructions.push(\n ComputeBudgetProgram.setComputeUnitLimit({\n // Set compute budget to 120% of the units used in the simulated transaction\n units: unitBudget,\n })\n );\n\n // const priorityFeeConfig =\n // config.transactionSettings?.Solana?.priorityFee || {};\n\n // const {\n // percentile = 0.9,\n // percentileMultiple = 1,\n // min = 100_000,\n // max = 100_000_000,\n // } = priorityFeeConfig;\n const percentile = 0.9;\n const percentileMultiple = 1;\n const min = 100_000;\n const max = 100_000_000;\n\n const calculateFee = async (\n rpcProvider?: SolanaRpcProvider\n ): Promise<{ fee: number; methodUsed: \"triton\" | \"default\" | \"minimum\" }> => {\n if (rpcProvider === \"triton\") {\n // Triton has an experimental RPC method that accepts a percentile paramater\n // and usually gives more accurate fee numbers.\n try {\n const fee = await determinePriorityFeeTritonOne(\n connection,\n transaction,\n percentile,\n percentileMultiple,\n min,\n max\n );\n\n return {\n fee,\n methodUsed: \"triton\",\n };\n } catch (e) {\n console.warn(`Failed to determine priority fee using Triton RPC:`, e);\n }\n }\n\n try {\n // By default, use generic Solana RPC method\n const fee = await determinePriorityFee(\n connection,\n transaction,\n percentile,\n percentileMultiple,\n min,\n max\n );\n\n return {\n fee,\n methodUsed: \"default\",\n };\n } catch (e) {\n console.warn(`Failed to determine priority fee using Triton RPC:`, e);\n\n return {\n fee: min,\n methodUsed: \"minimum\",\n };\n }\n };\n\n const rpcProvider = determineRpcProvider(connection.rpcEndpoint);\n\n const { fee, methodUsed } = await calculateFee(rpcProvider);\n\n const maxFeeInSol =\n (fee /\n // convert microlamports to lamports\n 1e6 /\n // convert lamports to SOL\n LAMPORTS_PER_SOL) *\n // multiply by maximum compute units used\n unitBudget;\n\n console.table({\n \"RPC Provider\": rpcProvider,\n \"Method used\": methodUsed,\n \"Percentile used\": percentile,\n \"Multiple used\": percentileMultiple,\n \"Compute budget\": unitBudget,\n \"Priority fee\": fee,\n \"Max fee in SOL\": maxFeeInSol,\n });\n\n instructions.push(\n ComputeBudgetProgram.setComputeUnitPrice({ microLamports: fee })\n );\n return instructions;\n}\n\n// Checks response logs for known errors.\n// Returns when the first error is encountered.\nfunction checkKnownSimulationError(\n response: SimulatedTransactionResponse\n): boolean {\n const errors = {} as any;\n\n // This error occur when the blockhash included in a transaction is not deemed to be valid\n // when a validator processes a transaction. We can retry the simulation to get a valid blockhash.\n if (response.err === \"BlockhashNotFound\") {\n errors[\"BlockhashNotFound\"] =\n \"Blockhash not found during simulation. Trying again.\";\n }\n\n // Check the response logs for any known errors\n if (response.logs) {\n for (const line of response.logs) {\n // In some cases which aren't deterministic, like a slippage error, we can retry the\n // simulation a few times to get a successful response.\n if (line.includes(\"SlippageToleranceExceeded\")) {\n errors[\"SlippageToleranceExceeded\"] =\n \"Slippage failure during simulation. Trying again.\";\n }\n\n // In this case a require_gte expression was violated during a Swap instruction.\n // We can retry the simulation to get a successful response.\n if (line.includes(\"RequireGteViolated\")) {\n errors[\"RequireGteViolated\"] =\n \"Swap instruction failure during simulation. Trying again.\";\n }\n }\n }\n\n // No known simulation errors found\n if (isEmptyObject(errors)) {\n return false;\n }\n\n console.table(errors);\n return true;\n}\n\nexport async function sleep(timeout: number) {\n return new Promise((resolve) => setTimeout(resolve, timeout));\n}\n\n/**\n * Checks whether an object is empty.\n *\n * isEmptyObject(null)\n * // => true\n *\n * isEmptyObject(undefined)\n * // => true\n *\n * isEmptyObject({})\n * // => true\n *\n * isEmptyObject({ 'a': 1 })\n * // => false\n */\nexport const isEmptyObject = (value: object | null | undefined) => {\n if (value === null || value === undefined) {\n return true;\n }\n\n // Check all property keys for any own prop\n for (const key in value) {\n if (value.hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n\n return true;\n};\n\nfunction determineRpcProvider(endpoint: string): SolanaRpcProvider {\n if (endpoint.includes(\"rpcpool.com\")) {\n return \"triton\";\n } else if (endpoint.includes(\"helius-rpc.com\")) {\n return \"helius\";\n } else if (endpoint.includes(\"rpc.ankr.com\")) {\n return \"ankr\";\n } else {\n return \"unknown\";\n }\n}\n","import {\n EvmUnsignedTransaction,\n EvmChains,\n} from \"@wormhole-foundation/sdk-evm\";\nimport { Network } from \"@wormhole-foundation/sdk\";\nimport { getBigInt } from \"ethers\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nexport async function signAndSendTransaction(\n request: EvmUnsignedTransaction,\n wallet: AdapterWallet,\n chainName: string,\n options: any\n): Promise {\n if (!wallet || !wallet.sendTransaction) {\n throw new Error(\"wallet.sendTransaction is undefined\");\n }\n // Ensure the signer is connected to the correct chain\n const actualChainId = await wallet.getConnectedNetwork();\n\n if (!actualChainId) throw new Error(\"No signer found for chain\" + chainName);\n const expectedChainId = request.transaction.chainId\n ? getBigInt(request.transaction.chainId)\n : undefined;\n\n if (\n !actualChainId ||\n !expectedChainId ||\n BigInt(actualChainId) !== expectedChainId\n ) {\n throw new Error(\n `Signer is not connected to the right chain. Expected ${expectedChainId}, got ${actualChainId}`\n );\n }\n\n const txHash = await wallet.sendTransaction(request.transaction);\n\n return txHash;\n}\n","import {\n SuiChains,\n SuiUnsignedTransaction,\n} from \"@wormhole-foundation/sdk-sui\";\nimport { Network } from \"@wormhole-foundation/sdk\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\n\nexport async function signAndSendTransaction(\n request: SuiUnsignedTransaction,\n wallet: AdapterWallet\n): Promise {\n if (!wallet || !wallet.sendTransaction) {\n throw new Error(\"wallet.sendTransaction is undefined\");\n }\n\n const response = await wallet.sendTransaction({\n /* @ts-ignore */\n transactionBlock: request.transaction as TransactionBlock,\n });\n\n return response?.id;\n}\n","import {\n UnsignedTransaction,\n Network,\n Chain,\n TxHash,\n SignAndSendSigner,\n} from \"@wormhole-foundation/sdk\";\nimport { SolanaUnsignedTransaction } from \"@wormhole-foundation/sdk-solana\";\nimport {\n SuiChains,\n SuiUnsignedTransaction,\n} from \"@wormhole-foundation/sdk-sui\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport {\n EvmUnsignedTransaction,\n EvmChains,\n} from \"@wormhole-foundation/sdk-evm\";\n\nimport * as solanaSigner from \"./SolanaSigner\";\nimport * as ethereumSigner from \"./EthereumSigner\";\nimport * as suiSigner from \"./SuiSigner\";\n\nimport { ChainConfig } from \"../config\";\nexport class Signer\n implements SignAndSendSigner\n{\n _chain: ChainConfig;\n _address: string;\n _options: any;\n _wallet: AdapterWallet;\n\n constructor(\n chain: ChainConfig,\n address: string,\n options: any,\n wallet: AdapterWallet\n ) {\n this._chain = chain;\n this._address = address;\n this._options = options;\n this._wallet = wallet;\n }\n\n chain(): C {\n return this._chain.displayName as C;\n }\n address(): string {\n return this._address;\n }\n\n async signAndSend(txs: UnsignedTransaction[]): Promise {\n const txHashes: TxHash[] = [];\n\n for (const tx of txs) {\n const txId = await signAndSendTransaction(\n this._chain,\n tx,\n this._wallet,\n this._options\n );\n txHashes.push(txId);\n }\n return txHashes;\n }\n}\n\nexport const signAndSendTransaction = async (\n chain: ChainConfig,\n request: UnsignedTransaction,\n wallet: AdapterWallet,\n options: any = {}\n): Promise => {\n if (!wallet) {\n throw new Error(\"wallet is undefined\");\n }\n\n if (chain.context === \"Solana\") {\n const signature = await solanaSigner.signAndSendTransaction(\n request as SolanaUnsignedTransaction,\n wallet,\n options\n );\n return signature;\n } else if (chain.context === \"Ethereum\") {\n const tx = await ethereumSigner.signAndSendTransaction(\n request as EvmUnsignedTransaction,\n wallet,\n chain.displayName,\n options\n );\n return tx;\n } else if (chain.context === \"Sui\") {\n const tx = await suiSigner.signAndSendTransaction(\n request as SuiUnsignedTransaction,\n wallet\n );\n return tx;\n } else {\n throw new Error(`Unsupported chain: ${chain}`);\n }\n};\n","import { Chain, ChainId } from \"@wormhole-foundation/sdk\";\n\nexport enum Context {\n ETH = \"Ethereum\",\n TERRA = \"Terra\",\n XPLA = \"XPLA\",\n SOLANA = \"Solana\",\n ALGORAND = \"Algorand\",\n NEAR = \"Near\",\n APTOS = \"Aptos\",\n SUI = \"Sui\",\n OTHER = \"OTHER\",\n}\n\nexport type BaseChainConfig = {\n key: Chain;\n id: ChainId;\n context: Context;\n finalityThreshold: number;\n disabledAsSource?: boolean;\n disabledAsDestination?: boolean;\n};\n\nexport interface ChainConfig extends BaseChainConfig {\n sdkName: Chain;\n displayName: string;\n explorerUrl: string;\n explorerName: string;\n gasToken: string;\n wrappedGasToken?: string;\n chainId: number | string;\n icon: Chain;\n maxBlockSearch: number;\n symbol?: string;\n}\n\nexport type ChainsConfig = {\n [chain in Chain]?: ChainConfig;\n};\n\nexport type TokenConfig = {\n symbol: string;\n name?: string;\n decimals: number;\n icon: string;\n tokenId: {\n chain: Chain;\n address: string;\n };\n};\n","import { Context } from \"../types\";\n\nimport { ChainsConfig } from \"../types\";\n\nexport const testnetChains: ChainsConfig = {\n // Avalanche: {\n // key: \"Avalanche\",\n // id: 6,\n // context: \"Ethereum\",\n // finalityThreshold: 1,\n // displayName: \"Fuji\",\n // explorerUrl: \"https://testnet.avascan.info/blockchain/c/\",\n // explorerName: \"Avascan\",\n // gasToken: \"AVAX\",\n // chainId: 43113,\n // icon: \"Avalanche\",\n // maxBlockSearch: 2000,\n // symbol: \"AVAX\",\n // sdkName: \"Avalanche\",\n // wrappedGasToken: \"0xd00ae08403B9bbb9124bB305C09058E32C39A48c\",\n // },\n Sepolia: {\n key: \"Sepolia\",\n id: 10002,\n context: Context.ETH,\n finalityThreshold: 0,\n displayName: \"Sepolia\",\n explorerUrl: \"https://sepolia.etherscan.io/\",\n explorerName: \"Etherscan\",\n gasToken: \"ETHsepolia\",\n chainId: 11155111,\n icon: \"Ethereum\",\n maxBlockSearch: 2000,\n symbol: \"ETH\",\n sdkName: \"Sepolia\",\n wrappedGasToken: \"0xeef12A83EE5b7161D3873317c8E0E7B76e0B5D9c\",\n },\n Solana: {\n key: \"Solana\",\n id: 1,\n context: Context.SOLANA,\n finalityThreshold: 32,\n displayName: \"Solana\",\n explorerUrl: \"https://explorer.solana.com/\",\n explorerName: \"Solana Explorer\",\n gasToken: \"SOL\",\n chainId: 0,\n icon: \"Solana\",\n maxBlockSearch: 2000,\n symbol: \"SOL\",\n sdkName: \"Solana\",\n wrappedGasToken: \"So11111111111111111111111111111111111111112\",\n },\n // Sui: {\n // key: \"Sui\",\n // id: 21,\n // context: Context.SUI,\n // finalityThreshold: 0,\n // displayName: \"Sui\",\n // explorerUrl: \"https://suiscan.xyz/testnet/\",\n // explorerName: \"Suiscan\",\n // gasToken: \"SUI\",\n // chainId: 0,\n // icon: \"Sui\",\n // maxBlockSearch: 0,\n // symbol: \"SUI\",\n // sdkName: \"Sui\",\n // },\n};\n\nexport const AptosTestnetChain = {\n key: \"Aptos\",\n id: 22,\n context: Context.APTOS,\n finalityThreshold: 0,\n displayName: \"Aptos\",\n explorerUrl: \"https://explorer.aptoslabs.com?network=testnet\",\n explorerName: \"Aptos Explorer\",\n gasToken: \"APT\",\n chainId: 0,\n icon: \"Aptos\",\n maxBlockSearch: 0,\n symbol: \"APT\",\n sdkName: \"Aptos\",\n};\n","import { TokenConfig } from \"../types\";\n\nexport const testnetTokens: Record = {\n Avalanche: {\n symbol: \"USDC\",\n icon: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Avalanche\",\n address: \"0x5425890298aed601595a70AB815c96711a31Bc65\",\n },\n },\n Sepolia: {\n symbol: \"USDC\",\n icon: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Sepolia\",\n address: \"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238\",\n },\n },\n Solana: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Solana\",\n address: \"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n Sui: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Sui\",\n address:\n \"0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n};\n\nexport const AptosTestnetUSDCToken: TokenConfig = {\n symbol: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Aptos\",\n address:\n \"0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832\",\n },\n icon: \"USDC\",\n};\n","import { Context } from \"../types\";\n\nimport { ChainsConfig } from \"../types\";\n\nexport const mainnetChains: ChainsConfig = {\n Ethereum: {\n key: \"Ethereum\",\n id: 2,\n context: Context.ETH,\n finalityThreshold: 64,\n displayName: \"Ethereum\",\n explorerUrl: \"https://etherscan.io/\",\n explorerName: \"Etherscan\",\n gasToken: \"ETH\",\n chainId: 1,\n icon: \"Ethereum\",\n maxBlockSearch: 2000,\n symbol: \"ETH\",\n sdkName: \"Ethereum\",\n },\n Solana: {\n key: \"Solana\",\n id: 1,\n context: Context.SOLANA,\n finalityThreshold: 32,\n displayName: \"Solana\",\n explorerUrl: \"https://explorer.solana.com/\",\n explorerName: \"Solana Explorer\",\n gasToken: \"SOL\",\n chainId: 0,\n icon: \"Solana\",\n maxBlockSearch: 2000,\n symbol: \"SOL\",\n sdkName: \"Solana\",\n },\n // Sui: {\n // key: \"Sui\",\n // id: 21,\n // context: Context.SUI,\n // finalityThreshold: 0,\n // displayName: \"Sui\",\n // sdkName: \"Sui\",\n // explorerUrl: \"https://suiscan.xyz/\",\n // explorerName: \"Suiscan\",\n // gasToken: \"SUI\",\n // chainId: 0,\n // icon: \"Sui\",\n // maxBlockSearch: 0,\n // symbol: \"SUI\",\n // },\n};\n\nexport const AptosMainnetChain = {\n key: \"Aptos\",\n id: 22,\n context: \"Aptos\",\n finalityThreshold: 0,\n displayName: \"Aptos\",\n explorerUrl: \"https://explorer.aptoslabs.com/\",\n explorerName: \"Aptos Explorer\",\n gasToken: \"APT\",\n chainId: 0,\n icon: \"Aptos\",\n maxBlockSearch: 0,\n symbol: \"APT\",\n};\n","import { TokenConfig } from \"../types\";\n\nexport const mainnetTokens: Record = {\n Ethereum: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Ethereum\",\n address: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n Solana: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Solana\",\n address: \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n Sui: {\n symbol: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Sui\",\n address:\n \"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC\",\n },\n icon: \"USDC\",\n },\n};\n\nexport const AptosMainnetUSDCToken: TokenConfig = {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Aptos\",\n address:\n \"0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b\",\n },\n icon: \"USDC\",\n decimals: 6,\n};\n","import { Account, Network } from \"@aptos-labs/ts-sdk\";\n\nimport {\n WormholeInitiateTransferRequest,\n WormholeInitiateTransferResponse,\n WormholeProvider,\n WormholeQuoteRequest,\n WormholeQuoteResponse,\n} from \"./providers/wormhole\";\n\nexport interface CrossChainDappConfig {\n network: Network;\n disableTelemetry?: boolean;\n}\n\nexport type AptosAccount = Account;\n\nexport type Chain = \"Solana\" | \"Ethereum\" | \"Aptos\";\n\nexport type CCTPProviders = \"Wormhole\";\n\nexport type UsdcBalance = {\n amount: string;\n decimal: number;\n display: string;\n};\n\nexport interface CrossChainProvider<\n TQuoteRequest = any,\n TQuoteResponse = any,\n TInitiateTransferRequest = any,\n TInitiateTransferResponse = any,\n> {\n getQuote(params: TQuoteRequest): Promise;\n initiateCCTPTransfer(\n params: TInitiateTransferRequest\n ): Promise;\n}\n\nexport class CrossChainCore {\n readonly _dappConfig: CrossChainDappConfig | undefined;\n\n constructor(args: { dappConfig: CrossChainDappConfig }) {\n this._dappConfig = args.dappConfig;\n }\n\n getProvider(providerType: CCTPProviders): CrossChainProvider {\n switch (providerType) {\n case \"Wormhole\":\n return new WormholeProvider(this) as CrossChainProvider<\n WormholeQuoteRequest,\n WormholeQuoteResponse,\n WormholeInitiateTransferRequest,\n WormholeInitiateTransferResponse\n >;\n default:\n throw new Error(`Unknown provider: ${providerType}`);\n }\n }\n}\n"],"mappings":"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","names":["import_ts_sdk","AptosNetwork","aptos","import_web3","signAndSendTransaction","rpcProvider","fee","signAndSendTransaction","signAndSendTransaction","signAndSendTransaction","Context","aptos","solana","evm","import_ts_sdk"]} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/index.mjs b/packages/cross-chain/cross-chain-core/dist/index.mjs new file mode 100644 index 00000000..1149a566 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/index.mjs @@ -0,0 +1,874 @@ +// src/providers/wormhole/index.ts +import { + chainToPlatform, + routes, + Wormhole, + wormhole, + TransferState +} from "@wormhole-foundation/sdk"; +import aptos from "@wormhole-foundation/sdk/aptos"; +import solana from "@wormhole-foundation/sdk/solana"; +import evm from "@wormhole-foundation/sdk/evm"; + +// src/utils/logger.ts +var logger = { + log: (...args) => { + if (process.env.NODE_ENV === "development") { + console.log(...args); + } + }, + warn: (...args) => { + if (process.env.NODE_ENV === "development") { + console.warn(...args); + } + }, + error: (...args) => { + if (process.env.NODE_ENV === "development") { + console.error(...args); + } + } +}; + +// src/providers/wormhole/index.ts +import { + Network, + sleep as sleep2 +} from "@aptos-labs/ts-sdk"; + +// src/providers/wormhole/signers/AptosLocalSigner.ts +import { + Aptos, + AptosConfig, + Network as AptosNetwork +} from "@aptos-labs/ts-sdk"; +var AptosLocalSigner = class { + constructor(chain, options, wallet, feePayerAccount) { + this._chain = chain; + this._options = options; + this._wallet = wallet; + this._sponsorAccount = feePayerAccount; + this._claimedTransactionHashes = ""; + } + chain() { + return this._chain; + } + address() { + return this._wallet.accountAddress.toString(); + } + claimedTransactionHashes() { + return this._claimedTransactionHashes; + } + async signAndSend(txs) { + console.log("Signer signAndSend txs", txs); + const txHashes = []; + for (const tx of txs) { + const txId = await signAndSendTransaction( + tx, + this._wallet, + this._sponsorAccount + ); + txHashes.push(txId); + this._claimedTransactionHashes = txId; + } + return txHashes; + } +}; +async function signAndSendTransaction(request, wallet, sponsorAccount) { + if (!wallet) { + throw new Error("Wallet is undefined"); + } + const payload = request.transaction; + payload.functionArguments = payload.functionArguments.map((a) => { + if (a instanceof Uint8Array) { + return Array.from(a); + } else if (typeof a === "bigint") { + return a.toString(); + } else { + return a; + } + }); + const aptosConfig = new AptosConfig({ + network: AptosNetwork.TESTNET + }); + const aptos2 = new Aptos(aptosConfig); + const txnToSign = await aptos2.transaction.build.simple({ + data: payload, + sender: wallet.accountAddress.toString(), + withFeePayer: sponsorAccount ? true : false + }); + const senderAuthenticator = await aptos2.transaction.sign({ + signer: wallet, + transaction: txnToSign + }); + const txnToSubmit = { + transaction: txnToSign, + senderAuthenticator + }; + if (sponsorAccount) { + const feePayerSignerAuthenticator = aptos2.transaction.signAsFeePayer({ + signer: sponsorAccount, + transaction: txnToSign + }); + txnToSubmit.feePayerAuthenticator = feePayerSignerAuthenticator; + } + const response = await aptos2.transaction.submit.simple(txnToSubmit); + const tx = await aptos2.waitForTransaction({ + transactionHash: response.hash + }); + return tx.hash; +} + +// src/providers/wormhole/signers/SolanaSigner.ts +import { + ComputeBudgetProgram, + LAMPORTS_PER_SOL +} from "@solana/web3.js"; +import { + determinePriorityFee, + determinePriorityFeeTritonOne +} from "@wormhole-foundation/sdk-solana"; +import { Connection } from "@solana/web3.js"; +async function signAndSendTransaction2(request, wallet, options) { + var _a; + if (!wallet) + throw new Error("Wallet not found"); + const commitment = (_a = options == null ? void 0 : options.commitment) != null ? _a : "finalized"; + const connection = new Connection("https://api.devnet.solana.com"); + const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(commitment); + const transaction = request.transaction.transaction; + const unsignedTx = await setPriorityFeeInstructions( + connection, + blockhash, + lastValidBlockHeight, + request + ); + let confirmTransactionPromise = null; + let confirmedTx = null; + let txSendAttempts = 1; + let signature = ""; + const tx = await wallet.signTransaction(unsignedTx); + const serializedTx = tx.serialize(); + const sendOptions = { + skipPreflight: true, + maxRetries: 0, + preFlightCommitment: commitment + }; + signature = await connection.sendRawTransaction(serializedTx, sendOptions); + confirmTransactionPromise = connection.confirmTransaction( + { + signature, + blockhash, + lastValidBlockHeight + }, + commitment + ); + const txRetryInterval = 5e3; + while (!confirmedTx) { + confirmedTx = await Promise.race([ + confirmTransactionPromise, + new Promise( + (resolve) => setTimeout(() => { + resolve(null); + }, txRetryInterval) + ) + ]); + if (confirmedTx) { + break; + } + console.log( + `Tx not confirmed after ${txRetryInterval * txSendAttempts++}ms, resending` + ); + try { + await connection.sendRawTransaction(serializedTx, sendOptions); + } catch (e) { + console.error("Failed to resend transaction:", e); + } + } + if (confirmedTx.value.err) { + let errorMessage = `Transaction failed: ${confirmedTx.value.err}`; + if (typeof confirmedTx.value.err === "object") { + try { + errorMessage = `Transaction failed: ${JSON.stringify( + confirmedTx.value.err, + (_key, value) => typeof value === "bigint" ? value.toString() : value + )}`; + } catch (e) { + errorMessage = `Transaction failed: Unknown error`; + } + } + throw new Error(`Transaction failed: ${errorMessage}`); + } + return signature; +} +async function setPriorityFeeInstructions(connection, blockhash, lastValidBlockHeight, request) { + const unsignedTx = request.transaction.transaction; + const computeBudgetIxFilter = (ix) => ix.programId.toString() !== "ComputeBudget111111111111111111111111111111"; + unsignedTx.recentBlockhash = blockhash; + unsignedTx.lastValidBlockHeight = lastValidBlockHeight; + unsignedTx.instructions = unsignedTx.instructions.filter( + computeBudgetIxFilter + ); + unsignedTx.add( + ...await createPriorityFeeInstructions(connection, unsignedTx) + ); + if (request.transaction.signers) { + unsignedTx.partialSign(...request.transaction.signers); + } + return unsignedTx; +} +async function createPriorityFeeInstructions(connection, transaction, commitment) { + let unitsUsed = 2e5; + let simulationAttempts = 0; + simulationLoop: + while (true) { + const response = await connection.simulateTransaction( + transaction + ); + if (response.value.err) { + if (checkKnownSimulationError(response.value)) { + if (simulationAttempts < 5) { + simulationAttempts++; + await sleep(1e3); + continue simulationLoop; + } + } else if (simulationAttempts < 3) { + simulationAttempts++; + await sleep(1e3); + continue simulationLoop; + } + throw new Error( + `Simulation failed: ${JSON.stringify(response.value.err)} +Logs: +${(response.value.logs || []).join("\n ")}` + ); + } else { + if (response.value.unitsConsumed) { + unitsUsed = response.value.unitsConsumed; + } + break; + } + } + const unitBudget = Math.floor(unitsUsed * 1.2); + const instructions = []; + instructions.push( + ComputeBudgetProgram.setComputeUnitLimit({ + units: unitBudget + }) + ); + const percentile = 0.9; + const percentileMultiple = 1; + const min = 1e5; + const max = 1e8; + const calculateFee = async (rpcProvider2) => { + if (rpcProvider2 === "triton") { + try { + const fee2 = await determinePriorityFeeTritonOne( + connection, + transaction, + percentile, + percentileMultiple, + min, + max + ); + return { + fee: fee2, + methodUsed: "triton" + }; + } catch (e) { + console.warn(`Failed to determine priority fee using Triton RPC:`, e); + } + } + try { + const fee2 = await determinePriorityFee( + connection, + transaction, + percentile, + percentileMultiple, + min, + max + ); + return { + fee: fee2, + methodUsed: "default" + }; + } catch (e) { + console.warn(`Failed to determine priority fee using Triton RPC:`, e); + return { + fee: min, + methodUsed: "minimum" + }; + } + }; + const rpcProvider = determineRpcProvider(connection.rpcEndpoint); + const { fee, methodUsed } = await calculateFee(rpcProvider); + const maxFeeInSol = fee / 1e6 / LAMPORTS_PER_SOL * unitBudget; + console.table({ + "RPC Provider": rpcProvider, + "Method used": methodUsed, + "Percentile used": percentile, + "Multiple used": percentileMultiple, + "Compute budget": unitBudget, + "Priority fee": fee, + "Max fee in SOL": maxFeeInSol + }); + instructions.push( + ComputeBudgetProgram.setComputeUnitPrice({ microLamports: fee }) + ); + return instructions; +} +function checkKnownSimulationError(response) { + const errors = {}; + if (response.err === "BlockhashNotFound") { + errors["BlockhashNotFound"] = "Blockhash not found during simulation. Trying again."; + } + if (response.logs) { + for (const line of response.logs) { + if (line.includes("SlippageToleranceExceeded")) { + errors["SlippageToleranceExceeded"] = "Slippage failure during simulation. Trying again."; + } + if (line.includes("RequireGteViolated")) { + errors["RequireGteViolated"] = "Swap instruction failure during simulation. Trying again."; + } + } + } + if (isEmptyObject(errors)) { + return false; + } + console.table(errors); + return true; +} +async function sleep(timeout) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} +var isEmptyObject = (value) => { + if (value === null || value === void 0) { + return true; + } + for (const key in value) { + if (value.hasOwnProperty.call(value, key)) { + return false; + } + } + return true; +}; +function determineRpcProvider(endpoint) { + if (endpoint.includes("rpcpool.com")) { + return "triton"; + } else if (endpoint.includes("helius-rpc.com")) { + return "helius"; + } else if (endpoint.includes("rpc.ankr.com")) { + return "ankr"; + } else { + return "unknown"; + } +} + +// src/providers/wormhole/signers/EthereumSigner.ts +import { getBigInt } from "ethers"; +async function signAndSendTransaction3(request, wallet, chainName, options) { + if (!wallet || !wallet.sendTransaction) { + throw new Error("wallet.sendTransaction is undefined"); + } + const actualChainId = await wallet.getConnectedNetwork(); + if (!actualChainId) + throw new Error("No signer found for chain" + chainName); + const expectedChainId = request.transaction.chainId ? getBigInt(request.transaction.chainId) : void 0; + if (!actualChainId || !expectedChainId || BigInt(actualChainId) !== expectedChainId) { + throw new Error( + `Signer is not connected to the right chain. Expected ${expectedChainId}, got ${actualChainId}` + ); + } + const txHash = await wallet.sendTransaction(request.transaction); + return txHash; +} + +// src/providers/wormhole/signers/SuiSigner.ts +async function signAndSendTransaction4(request, wallet) { + if (!wallet || !wallet.sendTransaction) { + throw new Error("wallet.sendTransaction is undefined"); + } + const response = await wallet.sendTransaction({ + transactionBlock: request.transaction + }); + return response == null ? void 0 : response.id; +} + +// src/providers/wormhole/signers/index.ts +var Signer = class { + constructor(chain, address, options, wallet) { + this._chain = chain; + this._address = address; + this._options = options; + this._wallet = wallet; + } + chain() { + return this._chain.displayName; + } + address() { + return this._address; + } + async signAndSend(txs) { + const txHashes = []; + for (const tx of txs) { + const txId = await signAndSendTransaction5( + this._chain, + tx, + this._wallet, + this._options + ); + txHashes.push(txId); + } + return txHashes; + } +}; +var signAndSendTransaction5 = async (chain, request, wallet, options = {}) => { + if (!wallet) { + throw new Error("wallet is undefined"); + } + if (chain.context === "Solana") { + const signature = await signAndSendTransaction2( + request, + wallet, + options + ); + return signature; + } else if (chain.context === "Ethereum") { + const tx = await signAndSendTransaction3( + request, + wallet, + chain.displayName, + options + ); + return tx; + } else if (chain.context === "Sui") { + const tx = await signAndSendTransaction4( + request, + wallet + ); + return tx; + } else { + throw new Error(`Unsupported chain: ${chain}`); + } +}; + +// src/providers/wormhole/config/types.ts +var Context = /* @__PURE__ */ ((Context2) => { + Context2["ETH"] = "Ethereum"; + Context2["TERRA"] = "Terra"; + Context2["XPLA"] = "XPLA"; + Context2["SOLANA"] = "Solana"; + Context2["ALGORAND"] = "Algorand"; + Context2["NEAR"] = "Near"; + Context2["APTOS"] = "Aptos"; + Context2["SUI"] = "Sui"; + Context2["OTHER"] = "OTHER"; + return Context2; +})(Context || {}); + +// src/providers/wormhole/config/testnet/chains.ts +var testnetChains = { + Sepolia: { + key: "Sepolia", + id: 10002, + context: "Ethereum" /* ETH */, + finalityThreshold: 0, + displayName: "Sepolia", + explorerUrl: "https://sepolia.etherscan.io/", + explorerName: "Etherscan", + gasToken: "ETHsepolia", + chainId: 11155111, + icon: "Ethereum", + maxBlockSearch: 2e3, + symbol: "ETH", + sdkName: "Sepolia", + wrappedGasToken: "0xeef12A83EE5b7161D3873317c8E0E7B76e0B5D9c" + }, + Solana: { + key: "Solana", + id: 1, + context: "Solana" /* SOLANA */, + finalityThreshold: 32, + displayName: "Solana", + explorerUrl: "https://explorer.solana.com/", + explorerName: "Solana Explorer", + gasToken: "SOL", + chainId: 0, + icon: "Solana", + maxBlockSearch: 2e3, + symbol: "SOL", + sdkName: "Solana", + wrappedGasToken: "So11111111111111111111111111111111111111112" + } +}; +var AptosTestnetChain = { + key: "Aptos", + id: 22, + context: "Aptos" /* APTOS */, + finalityThreshold: 0, + displayName: "Aptos", + explorerUrl: "https://explorer.aptoslabs.com?network=testnet", + explorerName: "Aptos Explorer", + gasToken: "APT", + chainId: 0, + icon: "Aptos", + maxBlockSearch: 0, + symbol: "APT", + sdkName: "Aptos" +}; + +// src/providers/wormhole/config/testnet/tokens.ts +var testnetTokens = { + Avalanche: { + symbol: "USDC", + icon: "USDC", + decimals: 6, + tokenId: { + chain: "Avalanche", + address: "0x5425890298aed601595a70AB815c96711a31Bc65" + } + }, + Sepolia: { + symbol: "USDC", + icon: "USDC", + decimals: 6, + tokenId: { + chain: "Sepolia", + address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238" + } + }, + Solana: { + symbol: "USDC", + tokenId: { + chain: "Solana", + address: "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU" + }, + icon: "USDC", + decimals: 6 + }, + Sui: { + symbol: "USDC", + tokenId: { + chain: "Sui", + address: "0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC" + }, + icon: "USDC", + decimals: 6 + } +}; +var AptosTestnetUSDCToken = { + symbol: "USDC", + decimals: 6, + tokenId: { + chain: "Aptos", + address: "0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832" + }, + icon: "USDC" +}; + +// src/providers/wormhole/config/mainnet/chains.ts +var mainnetChains = { + Ethereum: { + key: "Ethereum", + id: 2, + context: "Ethereum" /* ETH */, + finalityThreshold: 64, + displayName: "Ethereum", + explorerUrl: "https://etherscan.io/", + explorerName: "Etherscan", + gasToken: "ETH", + chainId: 1, + icon: "Ethereum", + maxBlockSearch: 2e3, + symbol: "ETH", + sdkName: "Ethereum" + }, + Solana: { + key: "Solana", + id: 1, + context: "Solana" /* SOLANA */, + finalityThreshold: 32, + displayName: "Solana", + explorerUrl: "https://explorer.solana.com/", + explorerName: "Solana Explorer", + gasToken: "SOL", + chainId: 0, + icon: "Solana", + maxBlockSearch: 2e3, + symbol: "SOL", + sdkName: "Solana" + } +}; +var AptosMainnetChain = { + key: "Aptos", + id: 22, + context: "Aptos", + finalityThreshold: 0, + displayName: "Aptos", + explorerUrl: "https://explorer.aptoslabs.com/", + explorerName: "Aptos Explorer", + gasToken: "APT", + chainId: 0, + icon: "Aptos", + maxBlockSearch: 0, + symbol: "APT" +}; + +// src/providers/wormhole/config/mainnet/tokens.ts +var mainnetTokens = { + Ethereum: { + symbol: "USDC", + tokenId: { + chain: "Ethereum", + address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + }, + icon: "USDC", + decimals: 6 + }, + Solana: { + symbol: "USDC", + tokenId: { + chain: "Solana", + address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" + }, + icon: "USDC", + decimals: 6 + }, + Sui: { + symbol: "USDC", + decimals: 6, + tokenId: { + chain: "Sui", + address: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC" + }, + icon: "USDC" + } +}; +var AptosMainnetUSDCToken = { + symbol: "USDC", + tokenId: { + chain: "Aptos", + address: "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b" + }, + icon: "USDC", + decimals: 6 +}; + +// src/providers/wormhole/index.ts +var WormholeProvider = class { + constructor(core) { + this.CHAINS = testnetChains; + this.TOKENS = testnetTokens; + this.APTOS_TOKEN = AptosTestnetUSDCToken; + var _a; + this.crossChainCore = core; + if (((_a = core._dappConfig) == null ? void 0 : _a.network) === Network.MAINNET) { + this.CHAINS = mainnetChains; + this.TOKENS = mainnetTokens; + this.APTOS_TOKEN = AptosMainnetUSDCToken; + } else { + this.CHAINS = testnetChains; + this.TOKENS = testnetTokens; + this.APTOS_TOKEN = AptosTestnetUSDCToken; + } + } + get wormholeContext() { + return this._wormholeContext; + } + async setWormholeContext(sourceChain) { + var _a; + const dappNetwork = (_a = this.crossChainCore._dappConfig) == null ? void 0 : _a.network; + if (dappNetwork === Network.DEVNET) { + throw new Error("Devnet is not supported on Wormhole"); + } + if (!sourceChain) { + throw new Error("Origin chain not selected"); + } + const isMainnet = dappNetwork === Network.MAINNET; + const platforms = [aptos, solana, evm]; + const wh = await wormhole(isMainnet ? "Mainnet" : "Testnet", platforms); + this._wormholeContext = wh; + } + async getWormholeCctpRoute(sourceChain) { + if (!this._wormholeContext) { + throw new Error("Wormhole context not initialized"); + } + const { sourceToken, destToken } = this.getTokenInfo(sourceChain); + const sourceContext = this._wormholeContext.getPlatform(chainToPlatform(sourceChain)).getChain(sourceChain); + logger.log("sourceContext", sourceContext); + const destContext = this._wormholeContext.getPlatform(chainToPlatform("Aptos")).getChain("Aptos"); + logger.log("destContext", destContext); + const req = await routes.RouteTransferRequest.create( + this._wormholeContext, + { + source: sourceToken, + destination: destToken + }, + sourceContext, + destContext + ); + const resolver = this._wormholeContext.resolver([ + routes.CCTPRoute + ]); + const route = await resolver.findRoutes(req); + const cctpRoute = route[0]; + return { route: cctpRoute, request: req }; + } + async getQuote(input) { + const { amount, sourceChain } = input; + if (!this._wormholeContext) { + await this.setWormholeContext(sourceChain); + } + const { route, request } = await this.getWormholeCctpRoute(sourceChain); + this.wormholeRoute = route; + this.wormholeRequest = request; + const transferParams = { amount, options: { nativeGas: 0 } }; + const validated = await route.validate(request, transferParams); + if (!validated.valid) { + logger.log("invalid", validated.valid); + throw validated.error; + } + const quote = await route.quote(request, validated.params); + if (!quote.success) { + logger.log("quote failed", quote.success); + throw quote.error; + } + this.wormholeQuote = quote; + logger.log("quote", quote); + return quote; + } + async startCCTPTransfer(input) { + const { sourceChain, wallet, destinationAddress } = input; + if (!this._wormholeContext) { + await this.setWormholeContext(sourceChain); + } + if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) { + throw new Error("Wormhole route, request, or quote not initialized"); + } + let signerAddress; + const chainContext = this.getChainConfig(sourceChain).context; + const currentAccount = await wallet.getAccount(); + if (chainContext === "Solana") { + signerAddress = currentAccount.publicKey.toString(); + } else { + signerAddress = currentAccount.address; + } + logger.log("signerAddress", signerAddress); + const signer = new Signer( + this.getChainConfig(sourceChain), + signerAddress, + {}, + wallet + ); + let receipt = await this.wormholeRoute.initiate( + this.wormholeRequest, + signer, + this.wormholeQuote, + Wormhole.chainAddress("Aptos", destinationAddress.toString()) + ); + const originChainTxnId = "originTxs" in receipt ? receipt.originTxs[receipt.originTxs.length - 1].txid : void 0; + return { originChainTxnId: originChainTxnId || "", receipt }; + } + async initiateCCTPTransfer(input) { + var _a; + if (((_a = this.crossChainCore._dappConfig) == null ? void 0 : _a.network) === Network.DEVNET) { + throw new Error("Devnet is not supported on Wormhole"); + } + if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) { + throw new Error("Wormhole route, request, or quote not initialized"); + } + let { originChainTxnId, receipt } = await this.startCCTPTransfer(input); + const { mainSigner, sponsorAccount } = input; + logger.log("mainSigner", mainSigner.accountAddress.toString()); + let retries = 0; + const maxRetries = 5; + const baseDelay = 1e3; + while (retries < maxRetries) { + try { + for await (receipt of this.wormholeRoute.track(receipt, 120 * 1e3)) { + if (receipt.state >= TransferState.SourceInitiated) { + logger.log("Receipt is on track ", receipt); + try { + const signer = new AptosLocalSigner( + "Aptos", + {}, + mainSigner, + sponsorAccount ? sponsorAccount : void 0 + ); + if (routes.isManual(this.wormholeRoute)) { + const circleAttestationReceipt = await this.wormholeRoute.complete(signer, receipt); + logger.log("Claim receipt: ", circleAttestationReceipt); + const destinationChainTxnId = signer.claimedTransactionHashes(); + return { destinationChainTxnId, originChainTxnId }; + } else { + return { destinationChainTxnId: "", originChainTxnId }; + } + } catch (e) { + console.error("Failed to claim", e); + return { destinationChainTxnId: "", originChainTxnId }; + } + } + } + } catch (e) { + console.error( + `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`, + e + ); + const delay = baseDelay * Math.pow(2, retries); + await sleep2(delay); + retries++; + } + } + return { destinationChainTxnId: "", originChainTxnId }; + } + getChainConfig(chain) { + const chainConfig = this.CHAINS[chain]; + if (!chainConfig) { + throw new Error(`Chain config not found for chain: ${chain}`); + } + return chainConfig; + } + getTokenInfo(sourceChain) { + const sourceToken = Wormhole.tokenId( + this.TOKENS[sourceChain].tokenId.chain, + this.TOKENS[sourceChain].tokenId.address + ); + const destToken = Wormhole.tokenId( + this.APTOS_TOKEN.tokenId.chain, + this.APTOS_TOKEN.tokenId.address + ); + return { sourceToken, destToken }; + } +}; + +// src/CrossChainCore.ts +var CrossChainCore = class { + constructor(args) { + this._dappConfig = args.dappConfig; + } + getProvider(providerType) { + switch (providerType) { + case "Wormhole": + return new WormholeProvider(this); + default: + throw new Error(`Unknown provider: ${providerType}`); + } + } +}; + +// src/index.ts +import { Network as Network2 } from "@aptos-labs/ts-sdk"; +export { + AptosMainnetChain, + AptosMainnetUSDCToken, + AptosTestnetChain, + AptosTestnetUSDCToken, + Context, + CrossChainCore, + Network2 as Network, + WormholeProvider, + mainnetChains, + mainnetTokens, + testnetChains, + testnetTokens +}; +//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/index.mjs.map b/packages/cross-chain/cross-chain-core/dist/index.mjs.map new file mode 100644 index 00000000..4e3d924d --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/providers/wormhole/index.ts","../src/utils/logger.ts","../src/providers/wormhole/signers/AptosLocalSigner.ts","../src/providers/wormhole/signers/SolanaSigner.ts","../src/providers/wormhole/signers/EthereumSigner.ts","../src/providers/wormhole/signers/SuiSigner.ts","../src/providers/wormhole/signers/index.ts","../src/providers/wormhole/config/types.ts","../src/providers/wormhole/config/testnet/chains.ts","../src/providers/wormhole/config/testnet/tokens.ts","../src/providers/wormhole/config/mainnet/chains.ts","../src/providers/wormhole/config/mainnet/tokens.ts","../src/CrossChainCore.ts","../src/index.ts"],"sourcesContent":["import { Chain, CrossChainProvider } from \"../../CrossChainCore\";\n\nimport {\n chainToPlatform,\n routes,\n TokenId,\n Wormhole,\n wormhole,\n PlatformLoader,\n TransferState,\n AttestationReceipt,\n} from \"@wormhole-foundation/sdk\";\n\nimport aptos from \"@wormhole-foundation/sdk/aptos\";\nimport solana from \"@wormhole-foundation/sdk/solana\";\nimport evm from \"@wormhole-foundation/sdk/evm\";\nimport sui from \"@wormhole-foundation/sdk/sui\";\n\nimport { CrossChainCore } from \"../../CrossChainCore\";\nimport { logger } from \"../../utils/logger\";\nimport {\n Account,\n AccountAddressInput,\n Ed25519PrivateKey,\n Network,\n sleep,\n} from \"@aptos-labs/ts-sdk\";\nimport { AptosLocalSigner } from \"./signers/AptosLocalSigner\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { Signer } from \"./signers\";\nimport {\n ChainsConfig,\n testnetChains,\n testnetTokens,\n mainnetChains,\n mainnetTokens,\n TokenConfig,\n AptosTestnetUSDCToken,\n AptosMainnetUSDCToken,\n ChainConfig,\n} from \"./config\";\n\nexport type WormholeRouteResponse = routes.Route<\n \"Mainnet\" | \"Testnet\",\n routes.Options,\n routes.ValidatedTransferParams,\n routes.Receipt\n>;\n\nexport type WormholeRequest = routes.RouteTransferRequest<\n \"Mainnet\" | \"Testnet\"\n>;\n\nexport type WormholeQuoteResponse = routes.Quote<\n routes.Options,\n routes.ValidatedTransferParams,\n any\n>;\n\nexport interface WormholeQuoteRequest {\n amount: string;\n sourceChain: Chain;\n}\n\nexport interface WormholeInitiateTransferRequest {\n sourceChain: Chain;\n wallet: AdapterWallet;\n destinationAddress: AccountAddressInput;\n mainSigner: Account;\n sponsorAccount?: Account | Partial>;\n}\n\nexport interface WormholeInitiateTransferResponse {\n destinationChainTxnId: string;\n originChainTxnId: string;\n}\n\nexport interface WormholeStartTransferResponse {\n originChainTxnId: string;\n receipt: routes.Receipt;\n}\n\nexport class WormholeProvider\n implements\n CrossChainProvider<\n WormholeQuoteRequest,\n WormholeQuoteResponse,\n WormholeInitiateTransferRequest,\n WormholeInitiateTransferResponse\n >\n{\n private crossChainCore: CrossChainCore;\n\n private _wormholeContext: Wormhole<\"Mainnet\" | \"Testnet\"> | undefined;\n\n private wormholeRoute: WormholeRouteResponse | undefined;\n private wormholeRequest: WormholeRequest | undefined;\n private wormholeQuote: WormholeQuoteResponse | undefined;\n\n readonly CHAINS: ChainsConfig = testnetChains;\n readonly TOKENS: Record = testnetTokens;\n\n readonly APTOS_TOKEN: TokenConfig = AptosTestnetUSDCToken;\n\n constructor(core: CrossChainCore) {\n this.crossChainCore = core;\n if (core._dappConfig?.network === Network.MAINNET) {\n this.CHAINS = mainnetChains;\n this.TOKENS = mainnetTokens;\n this.APTOS_TOKEN = AptosMainnetUSDCToken;\n } else {\n this.CHAINS = testnetChains;\n this.TOKENS = testnetTokens;\n this.APTOS_TOKEN = AptosTestnetUSDCToken;\n }\n }\n\n get wormholeContext(): Wormhole<\"Mainnet\" | \"Testnet\"> | undefined {\n return this._wormholeContext;\n }\n\n async setWormholeContext(sourceChain: Chain) {\n const dappNetwork = this.crossChainCore._dappConfig?.network;\n if (dappNetwork === Network.DEVNET) {\n throw new Error(\"Devnet is not supported on Wormhole\");\n }\n if (!sourceChain) {\n throw new Error(\"Origin chain not selected\");\n }\n const isMainnet = dappNetwork === Network.MAINNET;\n const platforms: PlatformLoader[] = [aptos, solana, evm];\n const wh = await wormhole(isMainnet ? \"Mainnet\" : \"Testnet\", platforms);\n this._wormholeContext = wh;\n }\n\n async getWormholeCctpRoute(sourceChain: Chain): Promise<{\n route: WormholeRouteResponse;\n request: WormholeRequest;\n }> {\n if (!this._wormholeContext) {\n throw new Error(\"Wormhole context not initialized\");\n }\n\n const { sourceToken, destToken } = this.getTokenInfo(sourceChain);\n\n const sourceContext = this._wormholeContext\n .getPlatform(chainToPlatform(sourceChain))\n .getChain(sourceChain);\n\n logger.log(\"sourceContext\", sourceContext);\n\n const destContext = this._wormholeContext\n .getPlatform(chainToPlatform(\"Aptos\"))\n .getChain(\"Aptos\");\n\n logger.log(\"destContext\", destContext);\n\n const req = await routes.RouteTransferRequest.create(\n this._wormholeContext,\n {\n source: sourceToken,\n destination: destToken,\n },\n sourceContext,\n destContext\n );\n\n const resolver = this._wormholeContext.resolver([\n routes.CCTPRoute, // manual CCTP\n ]);\n\n const route = await resolver.findRoutes(req);\n const cctpRoute = route[0];\n\n return { route: cctpRoute, request: req };\n }\n\n async getQuote(input: WormholeQuoteRequest): Promise {\n const { amount, sourceChain } = input;\n\n if (!this._wormholeContext) {\n await this.setWormholeContext(sourceChain);\n }\n\n const { route, request } = await this.getWormholeCctpRoute(sourceChain);\n this.wormholeRoute = route;\n this.wormholeRequest = request;\n\n // TODO what is nativeGas for?\n const transferParams = { amount, options: { nativeGas: 0 } };\n\n const validated = await route.validate(request, transferParams);\n if (!validated.valid) {\n logger.log(\"invalid\", validated.valid);\n throw validated.error;\n }\n const quote = await route.quote(request, validated.params);\n if (!quote.success) {\n logger.log(\"quote failed\", quote.success);\n throw quote.error;\n }\n this.wormholeQuote = quote;\n logger.log(\"quote\", quote);\n return quote;\n }\n\n async startCCTPTransfer(\n input: WormholeInitiateTransferRequest\n ): Promise {\n const { sourceChain, wallet, destinationAddress } = input;\n\n if (!this._wormholeContext) {\n await this.setWormholeContext(sourceChain);\n }\n if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) {\n throw new Error(\"Wormhole route, request, or quote not initialized\");\n }\n\n let signerAddress: string;\n\n const chainContext = this.getChainConfig(sourceChain).context;\n\n const currentAccount = await wallet.getAccount();\n if (chainContext === \"Solana\") {\n signerAddress = currentAccount.publicKey.toString();\n } else {\n signerAddress = currentAccount.address;\n }\n logger.log(\"signerAddress\", signerAddress);\n\n const signer = new Signer(\n this.getChainConfig(sourceChain),\n signerAddress,\n {},\n wallet\n );\n\n let receipt = await this.wormholeRoute.initiate(\n this.wormholeRequest,\n signer,\n this.wormholeQuote,\n Wormhole.chainAddress(\"Aptos\", destinationAddress.toString())\n );\n\n const originChainTxnId =\n \"originTxs\" in receipt\n ? receipt.originTxs[receipt.originTxs.length - 1].txid\n : undefined;\n\n return { originChainTxnId: originChainTxnId || \"\", receipt };\n }\n\n async initiateCCTPTransfer(\n input: WormholeInitiateTransferRequest\n ): Promise {\n if (this.crossChainCore._dappConfig?.network === Network.DEVNET) {\n throw new Error(\"Devnet is not supported on Wormhole\");\n }\n if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) {\n throw new Error(\"Wormhole route, request, or quote not initialized\");\n }\n let { originChainTxnId, receipt } = await this.startCCTPTransfer(input);\n // should come from transaction signer worker\n const { mainSigner, sponsorAccount } = input;\n\n logger.log(\"mainSigner\", mainSigner.accountAddress.toString());\n\n let retries = 0;\n const maxRetries = 5;\n const baseDelay = 1000; // Initial delay of 1 second\n\n while (retries < maxRetries) {\n try {\n for await (receipt of this.wormholeRoute.track(receipt, 120 * 1000)) {\n if (receipt.state >= TransferState.SourceInitiated) {\n logger.log(\"Receipt is on track \", receipt);\n\n try {\n const signer = new AptosLocalSigner(\n \"Aptos\",\n {},\n mainSigner, // the account that signs the \"claim\" transaction\n sponsorAccount ? sponsorAccount : undefined // the fee payer account\n );\n\n if (routes.isManual(this.wormholeRoute)) {\n const circleAttestationReceipt =\n await this.wormholeRoute.complete(signer, receipt);\n logger.log(\"Claim receipt: \", circleAttestationReceipt);\n const destinationChainTxnId = signer.claimedTransactionHashes();\n return { destinationChainTxnId, originChainTxnId };\n } else {\n // Should be unreachable\n return { destinationChainTxnId: \"\", originChainTxnId };\n }\n } catch (e) {\n console.error(\"Failed to claim\", e);\n return { destinationChainTxnId: \"\", originChainTxnId };\n }\n }\n }\n } catch (e) {\n console.error(\n `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`,\n e\n );\n const delay = baseDelay * Math.pow(2, retries); // Exponential backoff\n await sleep(delay);\n retries++;\n }\n }\n // Should be unreachable\n return { destinationChainTxnId: \"\", originChainTxnId };\n }\n\n getChainConfig(chain: Chain): ChainConfig {\n const chainConfig = this.CHAINS[chain as keyof typeof this.CHAINS];\n if (!chainConfig) {\n throw new Error(`Chain config not found for chain: ${chain}`);\n }\n return chainConfig;\n }\n\n getTokenInfo(sourceChain: Chain): {\n sourceToken: TokenId;\n destToken: TokenId;\n } {\n const sourceToken: TokenId = Wormhole.tokenId(\n this.TOKENS[sourceChain].tokenId.chain as Chain,\n this.TOKENS[sourceChain].tokenId.address\n );\n\n const destToken: TokenId = Wormhole.tokenId(\n this.APTOS_TOKEN.tokenId.chain as Chain,\n this.APTOS_TOKEN.tokenId.address\n );\n\n return { sourceToken, destToken };\n }\n}\n","export const logger = {\n log: (...args: any[]) => {\n if (process.env.NODE_ENV === \"development\") {\n console.log(...args);\n }\n },\n warn: (...args: any[]) => {\n if (process.env.NODE_ENV === \"development\") {\n console.warn(...args);\n }\n },\n error: (...args: any[]) => {\n if (process.env.NODE_ENV === \"development\") {\n console.error(...args);\n }\n },\n};\n","import {\n AccountAuthenticator,\n AnyRawTransaction,\n Aptos,\n AptosConfig,\n Network as AptosNetwork,\n Account,\n} from \"@aptos-labs/ts-sdk\";\n\nimport {\n Chain,\n Network,\n SignAndSendSigner,\n TxHash,\n UnsignedTransaction,\n} from \"@wormhole-foundation/sdk\";\nimport {\n AptosUnsignedTransaction,\n AptosChains,\n} from \"@wormhole-foundation/sdk-aptos\";\n\nexport class AptosLocalSigner\n implements SignAndSendSigner\n{\n _chain: C;\n _options: any;\n _wallet: Account;\n _sponsorAccount: Account | Partial> | undefined;\n _claimedTransactionHashes: string;\n\n constructor(\n chain: C,\n options: any,\n wallet: Account,\n feePayerAccount: Account | Partial> | undefined\n ) {\n this._chain = chain;\n this._options = options;\n this._wallet = wallet;\n this._sponsorAccount = feePayerAccount;\n this._claimedTransactionHashes = \"\";\n }\n\n chain(): C {\n return this._chain;\n }\n address(): string {\n return this._wallet.accountAddress.toString();\n }\n\n claimedTransactionHashes(): string {\n return this._claimedTransactionHashes;\n }\n /* other methods... */\n\n async signAndSend(txs: UnsignedTransaction[]): Promise {\n console.log(\"Signer signAndSend txs\", txs);\n const txHashes: TxHash[] = [];\n\n for (const tx of txs) {\n const txId = await signAndSendTransaction(\n tx as AptosUnsignedTransaction,\n this._wallet,\n this._sponsorAccount\n );\n txHashes.push(txId);\n this._claimedTransactionHashes = txId;\n }\n return txHashes;\n }\n}\n\nexport async function signAndSendTransaction(\n request: UnsignedTransaction,\n wallet: Account,\n sponsorAccount: Account | Partial> | undefined\n) {\n if (!wallet) {\n throw new Error(\"Wallet is undefined\");\n }\n\n const payload = request.transaction;\n // The wallets do not handle Uint8Array serialization\n payload.functionArguments = payload.functionArguments.map((a: any) => {\n if (a instanceof Uint8Array) {\n return Array.from(a);\n } else if (typeof a === \"bigint\") {\n return a.toString();\n } else {\n return a;\n }\n });\n\n const aptosConfig = new AptosConfig({\n network: AptosNetwork.TESTNET,\n });\n const aptos = new Aptos(aptosConfig);\n\n const txnToSign = await aptos.transaction.build.simple({\n data: payload,\n sender: wallet.accountAddress.toString(),\n withFeePayer: sponsorAccount ? true : false,\n });\n const senderAuthenticator = await aptos.transaction.sign({\n signer: wallet,\n transaction: txnToSign,\n });\n\n const txnToSubmit: {\n transaction: AnyRawTransaction;\n senderAuthenticator: AccountAuthenticator;\n feePayerAuthenticator?: AccountAuthenticator;\n } = {\n transaction: txnToSign,\n senderAuthenticator,\n };\n\n if (sponsorAccount) {\n const feePayerSignerAuthenticator = aptos.transaction.signAsFeePayer({\n // TODO: handles sponsor account coming from gas station\n signer: sponsorAccount as Account,\n transaction: txnToSign,\n });\n txnToSubmit.feePayerAuthenticator = feePayerSignerAuthenticator;\n }\n\n const response = await aptos.transaction.submit.simple(txnToSubmit);\n\n const tx = await aptos.waitForTransaction({\n transactionHash: response.hash,\n });\n\n return tx.hash;\n}\n","// This function signs and sends the transaction while constantly checking for confirmation\n// and resending the transaction if it hasn't been confirmed after the specified interval\n\nimport {\n AddressLookupTableAccount,\n Commitment,\n ComputeBudgetProgram,\n ConfirmOptions,\n LAMPORTS_PER_SOL,\n SimulatedTransactionResponse,\n TransactionInstruction,\n TransactionMessage,\n VersionedTransaction,\n} from \"@solana/web3.js\";\n\nimport { Transaction } from \"@solana/web3.js\";\nimport { RpcResponseAndContext, SignatureResult } from \"@solana/web3.js\";\nimport {\n determinePriorityFee,\n determinePriorityFeeTritonOne,\n isVersionedTransaction,\n SolanaUnsignedTransaction,\n} from \"@wormhole-foundation/sdk-solana\";\n\nimport { Connection } from \"@solana/web3.js\";\nimport { Network } from \"@wormhole-foundation/sdk\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\n\nexport type SolanaRpcProvider = \"triton\" | \"helius\" | \"ankr\" | \"unknown\";\n\n// See https://docs.triton.one/chains/solana/sending-txs for more information\nexport async function signAndSendTransaction(\n request: SolanaUnsignedTransaction,\n wallet: AdapterWallet | undefined,\n options?: ConfirmOptions\n) {\n if (!wallet) throw new Error(\"Wallet not found\");\n\n const commitment = options?.commitment ?? \"finalized\";\n // Solana rpc should come from dapp config\n const connection = new Connection(\"https://api.devnet.solana.com\");\n const { blockhash, lastValidBlockHeight } =\n await connection.getLatestBlockhash(commitment);\n\n // Circle Manual CCTP on Wormhole is always of a Trnasaction type\n // https://github.com/wormhole-foundation/wormhole-sdk-ts/blob/f7d992e04f844edcc4128659f12f75ade3553717/platforms/solana/protocols/cctp/src/circleBridge.ts#L173\n const transaction = request.transaction.transaction as Transaction;\n\n /**\n * TODO: Priority Fee is supported, but needs to come from dapp config\n */\n const unsignedTx = await setPriorityFeeInstructions(\n connection,\n blockhash,\n lastValidBlockHeight,\n request\n );\n\n let confirmTransactionPromise: Promise<\n RpcResponseAndContext\n > | null = null;\n let confirmedTx: RpcResponseAndContext | null = null;\n let txSendAttempts = 1;\n let signature = \"\";\n\n // transaction.recentBlockhash = blockhash;\n // if (request.transaction.signers) {\n // transaction.partialSign(...request.transaction.signers);\n // }\n\n const tx = await wallet.signTransaction(unsignedTx);\n const serializedTx = tx.serialize();\n const sendOptions = {\n skipPreflight: true,\n maxRetries: 0,\n preFlightCommitment: commitment, // See PR and linked issue for why setting this matters: https://github.com/anza-xyz/agave/pull/483\n };\n signature = await connection.sendRawTransaction(serializedTx, sendOptions);\n confirmTransactionPromise = connection.confirmTransaction(\n {\n signature,\n blockhash,\n lastValidBlockHeight,\n },\n commitment\n );\n\n // This loop will break once the transaction has been confirmed or the block height is exceeded.\n // An exception will be thrown if the block height is exceeded by the confirmTransactionPromise.\n // The transaction will be resent if it hasn't been confirmed after the interval.\n const txRetryInterval = 5000;\n while (!confirmedTx) {\n confirmedTx = await Promise.race([\n confirmTransactionPromise,\n new Promise((resolve) =>\n setTimeout(() => {\n resolve(null);\n }, txRetryInterval)\n ),\n ]);\n if (confirmedTx) {\n break;\n }\n console.log(\n `Tx not confirmed after ${\n txRetryInterval * txSendAttempts++\n }ms, resending`\n );\n try {\n await connection.sendRawTransaction(serializedTx, sendOptions);\n } catch (e) {\n console.error(\"Failed to resend transaction:\", e);\n }\n }\n\n if (confirmedTx.value.err) {\n let errorMessage = `Transaction failed: ${confirmedTx.value.err}`;\n if (typeof confirmedTx.value.err === \"object\") {\n try {\n errorMessage = `Transaction failed: ${JSON.stringify(\n confirmedTx.value.err,\n (_key, value) =>\n typeof value === \"bigint\" ? value.toString() : value // Handle bigint props\n )}`;\n } catch (e: unknown) {\n // Most likely a circular reference error, we can't stringify this error object.\n // See for more details:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#exceptions\n errorMessage = `Transaction failed: Unknown error`;\n }\n }\n throw new Error(`Transaction failed: ${errorMessage}`);\n }\n\n return signature;\n}\n\nexport async function setPriorityFeeInstructions(\n connection: Connection,\n blockhash: string,\n lastValidBlockHeight: number,\n request: SolanaUnsignedTransaction\n): Promise {\n const unsignedTx = request.transaction.transaction as Transaction;\n\n const computeBudgetIxFilter = (ix: TransactionInstruction) =>\n ix.programId.toString() !== \"ComputeBudget111111111111111111111111111111\";\n\n unsignedTx.recentBlockhash = blockhash;\n unsignedTx.lastValidBlockHeight = lastValidBlockHeight;\n\n // Remove existing compute budget instructions if they were added by the SDK\n unsignedTx.instructions = unsignedTx.instructions.filter(\n computeBudgetIxFilter\n );\n unsignedTx.add(\n ...(await createPriorityFeeInstructions(connection, unsignedTx))\n );\n if (request.transaction.signers) {\n unsignedTx.partialSign(...request.transaction.signers);\n }\n\n return unsignedTx;\n}\n\n// This will throw if the simulation fails\nasync function createPriorityFeeInstructions(\n connection: Connection,\n transaction: Transaction | VersionedTransaction,\n commitment?: Commitment\n) {\n let unitsUsed = 200_000;\n let simulationAttempts = 0;\n\n simulationLoop: while (true) {\n const response = await connection.simulateTransaction(\n transaction as Transaction\n );\n\n if (response.value.err) {\n if (checkKnownSimulationError(response.value)) {\n // Number of attempts will be at most 5 for known errors\n if (simulationAttempts < 5) {\n simulationAttempts++;\n await sleep(1000);\n continue simulationLoop;\n }\n } else if (simulationAttempts < 3) {\n // Number of attempts will be at most 3 for unknown errors\n simulationAttempts++;\n await sleep(1000);\n continue simulationLoop;\n }\n\n // Still failing after multiple attempts for both known and unknown errors\n // We should throw in that case\n throw new Error(\n `Simulation failed: ${JSON.stringify(response.value.err)}\\nLogs:\\n${(\n response.value.logs || []\n ).join(\"\\n \")}`\n );\n } else {\n // Simulation was successful\n if (response.value.unitsConsumed) {\n unitsUsed = response.value.unitsConsumed;\n }\n break;\n }\n }\n\n const unitBudget = Math.floor(unitsUsed * 1.2); // Budget in 20% headroom\n\n const instructions: TransactionInstruction[] = [];\n instructions.push(\n ComputeBudgetProgram.setComputeUnitLimit({\n // Set compute budget to 120% of the units used in the simulated transaction\n units: unitBudget,\n })\n );\n\n // const priorityFeeConfig =\n // config.transactionSettings?.Solana?.priorityFee || {};\n\n // const {\n // percentile = 0.9,\n // percentileMultiple = 1,\n // min = 100_000,\n // max = 100_000_000,\n // } = priorityFeeConfig;\n const percentile = 0.9;\n const percentileMultiple = 1;\n const min = 100_000;\n const max = 100_000_000;\n\n const calculateFee = async (\n rpcProvider?: SolanaRpcProvider\n ): Promise<{ fee: number; methodUsed: \"triton\" | \"default\" | \"minimum\" }> => {\n if (rpcProvider === \"triton\") {\n // Triton has an experimental RPC method that accepts a percentile paramater\n // and usually gives more accurate fee numbers.\n try {\n const fee = await determinePriorityFeeTritonOne(\n connection,\n transaction,\n percentile,\n percentileMultiple,\n min,\n max\n );\n\n return {\n fee,\n methodUsed: \"triton\",\n };\n } catch (e) {\n console.warn(`Failed to determine priority fee using Triton RPC:`, e);\n }\n }\n\n try {\n // By default, use generic Solana RPC method\n const fee = await determinePriorityFee(\n connection,\n transaction,\n percentile,\n percentileMultiple,\n min,\n max\n );\n\n return {\n fee,\n methodUsed: \"default\",\n };\n } catch (e) {\n console.warn(`Failed to determine priority fee using Triton RPC:`, e);\n\n return {\n fee: min,\n methodUsed: \"minimum\",\n };\n }\n };\n\n const rpcProvider = determineRpcProvider(connection.rpcEndpoint);\n\n const { fee, methodUsed } = await calculateFee(rpcProvider);\n\n const maxFeeInSol =\n (fee /\n // convert microlamports to lamports\n 1e6 /\n // convert lamports to SOL\n LAMPORTS_PER_SOL) *\n // multiply by maximum compute units used\n unitBudget;\n\n console.table({\n \"RPC Provider\": rpcProvider,\n \"Method used\": methodUsed,\n \"Percentile used\": percentile,\n \"Multiple used\": percentileMultiple,\n \"Compute budget\": unitBudget,\n \"Priority fee\": fee,\n \"Max fee in SOL\": maxFeeInSol,\n });\n\n instructions.push(\n ComputeBudgetProgram.setComputeUnitPrice({ microLamports: fee })\n );\n return instructions;\n}\n\n// Checks response logs for known errors.\n// Returns when the first error is encountered.\nfunction checkKnownSimulationError(\n response: SimulatedTransactionResponse\n): boolean {\n const errors = {} as any;\n\n // This error occur when the blockhash included in a transaction is not deemed to be valid\n // when a validator processes a transaction. We can retry the simulation to get a valid blockhash.\n if (response.err === \"BlockhashNotFound\") {\n errors[\"BlockhashNotFound\"] =\n \"Blockhash not found during simulation. Trying again.\";\n }\n\n // Check the response logs for any known errors\n if (response.logs) {\n for (const line of response.logs) {\n // In some cases which aren't deterministic, like a slippage error, we can retry the\n // simulation a few times to get a successful response.\n if (line.includes(\"SlippageToleranceExceeded\")) {\n errors[\"SlippageToleranceExceeded\"] =\n \"Slippage failure during simulation. Trying again.\";\n }\n\n // In this case a require_gte expression was violated during a Swap instruction.\n // We can retry the simulation to get a successful response.\n if (line.includes(\"RequireGteViolated\")) {\n errors[\"RequireGteViolated\"] =\n \"Swap instruction failure during simulation. Trying again.\";\n }\n }\n }\n\n // No known simulation errors found\n if (isEmptyObject(errors)) {\n return false;\n }\n\n console.table(errors);\n return true;\n}\n\nexport async function sleep(timeout: number) {\n return new Promise((resolve) => setTimeout(resolve, timeout));\n}\n\n/**\n * Checks whether an object is empty.\n *\n * isEmptyObject(null)\n * // => true\n *\n * isEmptyObject(undefined)\n * // => true\n *\n * isEmptyObject({})\n * // => true\n *\n * isEmptyObject({ 'a': 1 })\n * // => false\n */\nexport const isEmptyObject = (value: object | null | undefined) => {\n if (value === null || value === undefined) {\n return true;\n }\n\n // Check all property keys for any own prop\n for (const key in value) {\n if (value.hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n\n return true;\n};\n\nfunction determineRpcProvider(endpoint: string): SolanaRpcProvider {\n if (endpoint.includes(\"rpcpool.com\")) {\n return \"triton\";\n } else if (endpoint.includes(\"helius-rpc.com\")) {\n return \"helius\";\n } else if (endpoint.includes(\"rpc.ankr.com\")) {\n return \"ankr\";\n } else {\n return \"unknown\";\n }\n}\n","import {\n EvmUnsignedTransaction,\n EvmChains,\n} from \"@wormhole-foundation/sdk-evm\";\nimport { Network } from \"@wormhole-foundation/sdk\";\nimport { getBigInt } from \"ethers\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nexport async function signAndSendTransaction(\n request: EvmUnsignedTransaction,\n wallet: AdapterWallet,\n chainName: string,\n options: any\n): Promise {\n if (!wallet || !wallet.sendTransaction) {\n throw new Error(\"wallet.sendTransaction is undefined\");\n }\n // Ensure the signer is connected to the correct chain\n const actualChainId = await wallet.getConnectedNetwork();\n\n if (!actualChainId) throw new Error(\"No signer found for chain\" + chainName);\n const expectedChainId = request.transaction.chainId\n ? getBigInt(request.transaction.chainId)\n : undefined;\n\n if (\n !actualChainId ||\n !expectedChainId ||\n BigInt(actualChainId) !== expectedChainId\n ) {\n throw new Error(\n `Signer is not connected to the right chain. Expected ${expectedChainId}, got ${actualChainId}`\n );\n }\n\n const txHash = await wallet.sendTransaction(request.transaction);\n\n return txHash;\n}\n","import {\n SuiChains,\n SuiUnsignedTransaction,\n} from \"@wormhole-foundation/sdk-sui\";\nimport { Network } from \"@wormhole-foundation/sdk\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\n\nexport async function signAndSendTransaction(\n request: SuiUnsignedTransaction,\n wallet: AdapterWallet\n): Promise {\n if (!wallet || !wallet.sendTransaction) {\n throw new Error(\"wallet.sendTransaction is undefined\");\n }\n\n const response = await wallet.sendTransaction({\n /* @ts-ignore */\n transactionBlock: request.transaction as TransactionBlock,\n });\n\n return response?.id;\n}\n","import {\n UnsignedTransaction,\n Network,\n Chain,\n TxHash,\n SignAndSendSigner,\n} from \"@wormhole-foundation/sdk\";\nimport { SolanaUnsignedTransaction } from \"@wormhole-foundation/sdk-solana\";\nimport {\n SuiChains,\n SuiUnsignedTransaction,\n} from \"@wormhole-foundation/sdk-sui\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport {\n EvmUnsignedTransaction,\n EvmChains,\n} from \"@wormhole-foundation/sdk-evm\";\n\nimport * as solanaSigner from \"./SolanaSigner\";\nimport * as ethereumSigner from \"./EthereumSigner\";\nimport * as suiSigner from \"./SuiSigner\";\n\nimport { ChainConfig } from \"../config\";\nexport class Signer\n implements SignAndSendSigner\n{\n _chain: ChainConfig;\n _address: string;\n _options: any;\n _wallet: AdapterWallet;\n\n constructor(\n chain: ChainConfig,\n address: string,\n options: any,\n wallet: AdapterWallet\n ) {\n this._chain = chain;\n this._address = address;\n this._options = options;\n this._wallet = wallet;\n }\n\n chain(): C {\n return this._chain.displayName as C;\n }\n address(): string {\n return this._address;\n }\n\n async signAndSend(txs: UnsignedTransaction[]): Promise {\n const txHashes: TxHash[] = [];\n\n for (const tx of txs) {\n const txId = await signAndSendTransaction(\n this._chain,\n tx,\n this._wallet,\n this._options\n );\n txHashes.push(txId);\n }\n return txHashes;\n }\n}\n\nexport const signAndSendTransaction = async (\n chain: ChainConfig,\n request: UnsignedTransaction,\n wallet: AdapterWallet,\n options: any = {}\n): Promise => {\n if (!wallet) {\n throw new Error(\"wallet is undefined\");\n }\n\n if (chain.context === \"Solana\") {\n const signature = await solanaSigner.signAndSendTransaction(\n request as SolanaUnsignedTransaction,\n wallet,\n options\n );\n return signature;\n } else if (chain.context === \"Ethereum\") {\n const tx = await ethereumSigner.signAndSendTransaction(\n request as EvmUnsignedTransaction,\n wallet,\n chain.displayName,\n options\n );\n return tx;\n } else if (chain.context === \"Sui\") {\n const tx = await suiSigner.signAndSendTransaction(\n request as SuiUnsignedTransaction,\n wallet\n );\n return tx;\n } else {\n throw new Error(`Unsupported chain: ${chain}`);\n }\n};\n","import { Chain, ChainId } from \"@wormhole-foundation/sdk\";\n\nexport enum Context {\n ETH = \"Ethereum\",\n TERRA = \"Terra\",\n XPLA = \"XPLA\",\n SOLANA = \"Solana\",\n ALGORAND = \"Algorand\",\n NEAR = \"Near\",\n APTOS = \"Aptos\",\n SUI = \"Sui\",\n OTHER = \"OTHER\",\n}\n\nexport type BaseChainConfig = {\n key: Chain;\n id: ChainId;\n context: Context;\n finalityThreshold: number;\n disabledAsSource?: boolean;\n disabledAsDestination?: boolean;\n};\n\nexport interface ChainConfig extends BaseChainConfig {\n sdkName: Chain;\n displayName: string;\n explorerUrl: string;\n explorerName: string;\n gasToken: string;\n wrappedGasToken?: string;\n chainId: number | string;\n icon: Chain;\n maxBlockSearch: number;\n symbol?: string;\n}\n\nexport type ChainsConfig = {\n [chain in Chain]?: ChainConfig;\n};\n\nexport type TokenConfig = {\n symbol: string;\n name?: string;\n decimals: number;\n icon: string;\n tokenId: {\n chain: Chain;\n address: string;\n };\n};\n","import { Context } from \"../types\";\n\nimport { ChainsConfig } from \"../types\";\n\nexport const testnetChains: ChainsConfig = {\n // Avalanche: {\n // key: \"Avalanche\",\n // id: 6,\n // context: \"Ethereum\",\n // finalityThreshold: 1,\n // displayName: \"Fuji\",\n // explorerUrl: \"https://testnet.avascan.info/blockchain/c/\",\n // explorerName: \"Avascan\",\n // gasToken: \"AVAX\",\n // chainId: 43113,\n // icon: \"Avalanche\",\n // maxBlockSearch: 2000,\n // symbol: \"AVAX\",\n // sdkName: \"Avalanche\",\n // wrappedGasToken: \"0xd00ae08403B9bbb9124bB305C09058E32C39A48c\",\n // },\n Sepolia: {\n key: \"Sepolia\",\n id: 10002,\n context: Context.ETH,\n finalityThreshold: 0,\n displayName: \"Sepolia\",\n explorerUrl: \"https://sepolia.etherscan.io/\",\n explorerName: \"Etherscan\",\n gasToken: \"ETHsepolia\",\n chainId: 11155111,\n icon: \"Ethereum\",\n maxBlockSearch: 2000,\n symbol: \"ETH\",\n sdkName: \"Sepolia\",\n wrappedGasToken: \"0xeef12A83EE5b7161D3873317c8E0E7B76e0B5D9c\",\n },\n Solana: {\n key: \"Solana\",\n id: 1,\n context: Context.SOLANA,\n finalityThreshold: 32,\n displayName: \"Solana\",\n explorerUrl: \"https://explorer.solana.com/\",\n explorerName: \"Solana Explorer\",\n gasToken: \"SOL\",\n chainId: 0,\n icon: \"Solana\",\n maxBlockSearch: 2000,\n symbol: \"SOL\",\n sdkName: \"Solana\",\n wrappedGasToken: \"So11111111111111111111111111111111111111112\",\n },\n // Sui: {\n // key: \"Sui\",\n // id: 21,\n // context: Context.SUI,\n // finalityThreshold: 0,\n // displayName: \"Sui\",\n // explorerUrl: \"https://suiscan.xyz/testnet/\",\n // explorerName: \"Suiscan\",\n // gasToken: \"SUI\",\n // chainId: 0,\n // icon: \"Sui\",\n // maxBlockSearch: 0,\n // symbol: \"SUI\",\n // sdkName: \"Sui\",\n // },\n};\n\nexport const AptosTestnetChain = {\n key: \"Aptos\",\n id: 22,\n context: Context.APTOS,\n finalityThreshold: 0,\n displayName: \"Aptos\",\n explorerUrl: \"https://explorer.aptoslabs.com?network=testnet\",\n explorerName: \"Aptos Explorer\",\n gasToken: \"APT\",\n chainId: 0,\n icon: \"Aptos\",\n maxBlockSearch: 0,\n symbol: \"APT\",\n sdkName: \"Aptos\",\n};\n","import { TokenConfig } from \"../types\";\n\nexport const testnetTokens: Record = {\n Avalanche: {\n symbol: \"USDC\",\n icon: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Avalanche\",\n address: \"0x5425890298aed601595a70AB815c96711a31Bc65\",\n },\n },\n Sepolia: {\n symbol: \"USDC\",\n icon: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Sepolia\",\n address: \"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238\",\n },\n },\n Solana: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Solana\",\n address: \"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n Sui: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Sui\",\n address:\n \"0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n};\n\nexport const AptosTestnetUSDCToken: TokenConfig = {\n symbol: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Aptos\",\n address:\n \"0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832\",\n },\n icon: \"USDC\",\n};\n","import { Context } from \"../types\";\n\nimport { ChainsConfig } from \"../types\";\n\nexport const mainnetChains: ChainsConfig = {\n Ethereum: {\n key: \"Ethereum\",\n id: 2,\n context: Context.ETH,\n finalityThreshold: 64,\n displayName: \"Ethereum\",\n explorerUrl: \"https://etherscan.io/\",\n explorerName: \"Etherscan\",\n gasToken: \"ETH\",\n chainId: 1,\n icon: \"Ethereum\",\n maxBlockSearch: 2000,\n symbol: \"ETH\",\n sdkName: \"Ethereum\",\n },\n Solana: {\n key: \"Solana\",\n id: 1,\n context: Context.SOLANA,\n finalityThreshold: 32,\n displayName: \"Solana\",\n explorerUrl: \"https://explorer.solana.com/\",\n explorerName: \"Solana Explorer\",\n gasToken: \"SOL\",\n chainId: 0,\n icon: \"Solana\",\n maxBlockSearch: 2000,\n symbol: \"SOL\",\n sdkName: \"Solana\",\n },\n // Sui: {\n // key: \"Sui\",\n // id: 21,\n // context: Context.SUI,\n // finalityThreshold: 0,\n // displayName: \"Sui\",\n // sdkName: \"Sui\",\n // explorerUrl: \"https://suiscan.xyz/\",\n // explorerName: \"Suiscan\",\n // gasToken: \"SUI\",\n // chainId: 0,\n // icon: \"Sui\",\n // maxBlockSearch: 0,\n // symbol: \"SUI\",\n // },\n};\n\nexport const AptosMainnetChain = {\n key: \"Aptos\",\n id: 22,\n context: \"Aptos\",\n finalityThreshold: 0,\n displayName: \"Aptos\",\n explorerUrl: \"https://explorer.aptoslabs.com/\",\n explorerName: \"Aptos Explorer\",\n gasToken: \"APT\",\n chainId: 0,\n icon: \"Aptos\",\n maxBlockSearch: 0,\n symbol: \"APT\",\n};\n","import { TokenConfig } from \"../types\";\n\nexport const mainnetTokens: Record = {\n Ethereum: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Ethereum\",\n address: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n Solana: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Solana\",\n address: \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n Sui: {\n symbol: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Sui\",\n address:\n \"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC\",\n },\n icon: \"USDC\",\n },\n};\n\nexport const AptosMainnetUSDCToken: TokenConfig = {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Aptos\",\n address:\n \"0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b\",\n },\n icon: \"USDC\",\n decimals: 6,\n};\n","import { Account, Network } from \"@aptos-labs/ts-sdk\";\n\nimport {\n WormholeInitiateTransferRequest,\n WormholeInitiateTransferResponse,\n WormholeProvider,\n WormholeQuoteRequest,\n WormholeQuoteResponse,\n} from \"./providers/wormhole\";\n\nexport interface CrossChainDappConfig {\n network: Network;\n disableTelemetry?: boolean;\n}\n\nexport type AptosAccount = Account;\n\nexport type Chain = \"Solana\" | \"Ethereum\" | \"Aptos\";\n\nexport type CCTPProviders = \"Wormhole\";\n\nexport type UsdcBalance = {\n amount: string;\n decimal: number;\n display: string;\n};\n\nexport interface CrossChainProvider<\n TQuoteRequest = any,\n TQuoteResponse = any,\n TInitiateTransferRequest = any,\n TInitiateTransferResponse = any,\n> {\n getQuote(params: TQuoteRequest): Promise;\n initiateCCTPTransfer(\n params: TInitiateTransferRequest\n ): Promise;\n}\n\nexport class CrossChainCore {\n readonly _dappConfig: CrossChainDappConfig | undefined;\n\n constructor(args: { dappConfig: CrossChainDappConfig }) {\n this._dappConfig = args.dappConfig;\n }\n\n getProvider(providerType: CCTPProviders): CrossChainProvider {\n switch (providerType) {\n case \"Wormhole\":\n return new WormholeProvider(this) as CrossChainProvider<\n WormholeQuoteRequest,\n WormholeQuoteResponse,\n WormholeInitiateTransferRequest,\n WormholeInitiateTransferResponse\n >;\n default:\n throw new Error(`Unknown provider: ${providerType}`);\n }\n }\n}\n","export * from \"./CrossChainCore\";\nexport * from \"./providers/wormhole/config\";\nexport * from \"./providers/wormhole/index\";\nexport { Network } from \"@aptos-labs/ts-sdk\";\n"],"mappings":"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","names":["sleep","aptos","signAndSendTransaction","rpcProvider","fee","signAndSendTransaction","signAndSendTransaction","signAndSendTransaction","Context","sleep","Network"]} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts new file mode 100644 index 00000000..b29bd05a --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts @@ -0,0 +1,4 @@ +export * from "./testnet"; +export * from "./mainnet"; +export * from "./types"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts.map new file mode 100644 index 00000000..dcc608f2 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts new file mode 100644 index 00000000..be14776f --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts @@ -0,0 +1,17 @@ +import { ChainsConfig } from "../types"; +export declare const mainnetChains: ChainsConfig; +export declare const AptosMainnetChain: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; +}; +//# sourceMappingURL=chains.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts.map new file mode 100644 index 00000000..7013f513 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/config/mainnet/chains.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,aAAa,EAAE,YA8C3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAa7B,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts new file mode 100644 index 00000000..8d9dbfea --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts @@ -0,0 +1,3 @@ +export * from "./chains"; +export * from "./tokens"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts.map new file mode 100644 index 00000000..40011941 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/config/mainnet/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts new file mode 100644 index 00000000..8a04405c --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts @@ -0,0 +1,4 @@ +import { TokenConfig } from "../types"; +export declare const mainnetTokens: Record; +export declare const AptosMainnetUSDCToken: TokenConfig; +//# sourceMappingURL=tokens.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts.map new file mode 100644 index 00000000..2f305f80 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/config/mainnet/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA6BrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,WASnC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts new file mode 100644 index 00000000..ed032918 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts @@ -0,0 +1,19 @@ +import { Context } from "../types"; +import { ChainsConfig } from "../types"; +export declare const testnetChains: ChainsConfig; +export declare const AptosTestnetChain: { + key: string; + id: number; + context: Context; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + sdkName: string; +}; +//# sourceMappingURL=chains.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts.map new file mode 100644 index 00000000..f450af10 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/config/testnet/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,aAAa,EAAE,YAgE3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAc7B,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts new file mode 100644 index 00000000..8d9dbfea --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts @@ -0,0 +1,3 @@ +export * from "./chains"; +export * from "./tokens"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts.map new file mode 100644 index 00000000..12b133b9 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/config/testnet/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts new file mode 100644 index 00000000..50d969ba --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts @@ -0,0 +1,4 @@ +import { TokenConfig } from "../types"; +export declare const testnetTokens: Record; +export declare const AptosTestnetUSDCToken: TokenConfig; +//# sourceMappingURL=tokens.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts.map new file mode 100644 index 00000000..1110011d --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/config/testnet/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAsCrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,WASnC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts new file mode 100644 index 00000000..7f25d624 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts @@ -0,0 +1,46 @@ +import { Chain, ChainId } from "@wormhole-foundation/sdk"; +export declare enum Context { + ETH = "Ethereum", + TERRA = "Terra", + XPLA = "XPLA", + SOLANA = "Solana", + ALGORAND = "Algorand", + NEAR = "Near", + APTOS = "Aptos", + SUI = "Sui", + OTHER = "OTHER" +} +export type BaseChainConfig = { + key: Chain; + id: ChainId; + context: Context; + finalityThreshold: number; + disabledAsSource?: boolean; + disabledAsDestination?: boolean; +}; +export interface ChainConfig extends BaseChainConfig { + sdkName: Chain; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + wrappedGasToken?: string; + chainId: number | string; + icon: Chain; + maxBlockSearch: number; + symbol?: string; +} +export type ChainsConfig = { + [chain in Chain]?: ChainConfig; +}; +export type TokenConfig = { + symbol: string; + name?: string; + decimals: number; + icon: string; + tokenId: { + chain: Chain; + address: string; + }; +}; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts.map new file mode 100644 index 00000000..80d20e1f --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAE1D,oBAAY,OAAO;IACjB,GAAG,aAAa;IAChB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,KAAK,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,OAAO,EAAE,KAAK,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,KAAK,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG;KACxB,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,WAAW;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,KAAK,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts new file mode 100644 index 00000000..8f48bf0d --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts @@ -0,0 +1,54 @@ +import { Chain, CrossChainProvider } from "../../CrossChainCore"; +import { routes, TokenId, Wormhole, AttestationReceipt } from "@wormhole-foundation/sdk"; +import { CrossChainCore } from "../../CrossChainCore"; +import { Account, AccountAddressInput, Network } from "@aptos-labs/ts-sdk"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; +import { ChainsConfig, TokenConfig, ChainConfig } from "./config"; +export type WormholeRouteResponse = routes.Route<"Mainnet" | "Testnet", routes.Options, routes.ValidatedTransferParams, routes.Receipt>; +export type WormholeRequest = routes.RouteTransferRequest<"Mainnet" | "Testnet">; +export type WormholeQuoteResponse = routes.Quote, any>; +export interface WormholeQuoteRequest { + amount: string; + sourceChain: Chain; +} +export interface WormholeInitiateTransferRequest { + sourceChain: Chain; + wallet: AdapterWallet; + destinationAddress: AccountAddressInput; + mainSigner: Account; + sponsorAccount?: Account | Partial>; +} +export interface WormholeInitiateTransferResponse { + destinationChainTxnId: string; + originChainTxnId: string; +} +export interface WormholeStartTransferResponse { + originChainTxnId: string; + receipt: routes.Receipt; +} +export declare class WormholeProvider implements CrossChainProvider { + private crossChainCore; + private _wormholeContext; + private wormholeRoute; + private wormholeRequest; + private wormholeQuote; + readonly CHAINS: ChainsConfig; + readonly TOKENS: Record; + readonly APTOS_TOKEN: TokenConfig; + constructor(core: CrossChainCore); + get wormholeContext(): Wormhole<"Mainnet" | "Testnet"> | undefined; + setWormholeContext(sourceChain: Chain): Promise; + getWormholeCctpRoute(sourceChain: Chain): Promise<{ + route: WormholeRouteResponse; + request: WormholeRequest; + }>; + getQuote(input: WormholeQuoteRequest): Promise; + startCCTPTransfer(input: WormholeInitiateTransferRequest): Promise; + initiateCCTPTransfer(input: WormholeInitiateTransferRequest): Promise; + getChainConfig(chain: Chain): ChainConfig; + getTokenInfo(sourceChain: Chain): { + sourceToken: TokenId; + destToken: TokenId; + }; +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts.map new file mode 100644 index 00000000..9a48ed98 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/wormhole/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts new file mode 100644 index 00000000..29bbe9ba --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts @@ -0,0 +1,17 @@ +import { Network as AptosNetwork, Account } from "@aptos-labs/ts-sdk"; +import { Chain, Network, SignAndSendSigner, TxHash, UnsignedTransaction } from "@wormhole-foundation/sdk"; +import { AptosChains } from "@wormhole-foundation/sdk-aptos"; +export declare class AptosLocalSigner implements SignAndSendSigner { + _chain: C; + _options: any; + _wallet: Account; + _sponsorAccount: Account | Partial> | undefined; + _claimedTransactionHashes: string; + constructor(chain: C, options: any, wallet: Account, feePayerAccount: Account | Partial> | undefined); + chain(): C; + address(): string; + claimedTransactionHashes(): string; + signAndSend(txs: UnsignedTransaction[]): Promise; +} +export declare function signAndSendTransaction(request: UnsignedTransaction, wallet: Account, sponsorAccount: Account | Partial> | undefined): Promise; +//# sourceMappingURL=AptosLocalSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts.map new file mode 100644 index 00000000..6753b14d --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AptosLocalSigner.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/signers/AptosLocalSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,OAAO,IAAI,YAAY,EACvB,OAAO,EACR,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,qBAAa,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,CAC9D,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAC7E,yBAAyB,EAAE,MAAM,CAAC;gBAGhC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,OAAO,EACf,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS;IAS9E,KAAK,IAAI,CAAC;IAGV,OAAO,IAAI,MAAM;IAIjB,wBAAwB,IAAI,MAAM;IAK5B,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAevE;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,EAClD,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,mBA0D5E"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts new file mode 100644 index 00000000..87a52419 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts @@ -0,0 +1,5 @@ +import { EvmUnsignedTransaction, EvmChains } from "@wormhole-foundation/sdk-evm"; +import { Network } from "@wormhole-foundation/sdk"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; +export declare function signAndSendTransaction(request: EvmUnsignedTransaction, wallet: AdapterWallet, chainName: string, options: any): Promise; +//# sourceMappingURL=EthereumSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts.map new file mode 100644 index 00000000..8ed3b4ab --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"EthereumSigner.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/signers/EthereumSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,SAAS,EACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,EACnD,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,MAAM,CAAC,CAyBjB"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts new file mode 100644 index 00000000..1e9b3f6f --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts @@ -0,0 +1,27 @@ +import { ConfirmOptions, VersionedTransaction } from "@solana/web3.js"; +import { Transaction } from "@solana/web3.js"; +import { SolanaUnsignedTransaction } from "@wormhole-foundation/sdk-solana"; +import { Connection } from "@solana/web3.js"; +import { Network } from "@wormhole-foundation/sdk"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; +export type SolanaRpcProvider = "triton" | "helius" | "ankr" | "unknown"; +export declare function signAndSendTransaction(request: SolanaUnsignedTransaction, wallet: AdapterWallet | undefined, options?: ConfirmOptions): Promise; +export declare function setPriorityFeeInstructions(connection: Connection, blockhash: string, lastValidBlockHeight: number, request: SolanaUnsignedTransaction): Promise; +export declare function sleep(timeout: number): Promise; +/** + * Checks whether an object is empty. + * + * isEmptyObject(null) + * // => true + * + * isEmptyObject(undefined) + * // => true + * + * isEmptyObject({}) + * // => true + * + * isEmptyObject({ 'a': 1 }) + * // => false + */ +export declare const isEmptyObject: (value: object | null | undefined) => boolean; +//# sourceMappingURL=SolanaSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts.map new file mode 100644 index 00000000..75377e83 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"SolanaSigner.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/signers/SolanaSigner.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,cAAc,EAKd,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAIL,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAGzE,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,EAC3C,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,cAAc,mBAqGzB;AAED,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC1C,OAAO,CAAC,WAAW,GAAG,oBAAoB,CAAC,CAqB7C;AAgMD,wBAAsB,KAAK,CAAC,OAAO,EAAE,MAAM,oBAE1C;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,IAAI,GAAG,SAAS,YAa7D,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts new file mode 100644 index 00000000..8d56e21a --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts @@ -0,0 +1,5 @@ +import { SuiChains, SuiUnsignedTransaction } from "@wormhole-foundation/sdk-sui"; +import { Network } from "@wormhole-foundation/sdk"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; +export declare function signAndSendTransaction(request: SuiUnsignedTransaction, wallet: AdapterWallet): Promise; +//# sourceMappingURL=SuiSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts.map new file mode 100644 index 00000000..97c737ec --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"SuiSigner.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/signers/SuiSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,EACnD,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts new file mode 100644 index 00000000..69e8807f --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts @@ -0,0 +1,15 @@ +import { UnsignedTransaction, Network, Chain, TxHash, SignAndSendSigner } from "@wormhole-foundation/sdk"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; +import { ChainConfig } from "../config"; +export declare class Signer implements SignAndSendSigner { + _chain: ChainConfig; + _address: string; + _options: any; + _wallet: AdapterWallet; + constructor(chain: ChainConfig, address: string, options: any, wallet: AdapterWallet); + chain(): C; + address(): string; + signAndSend(txs: UnsignedTransaction[]): Promise; +} +export declare const signAndSendTransaction: (chain: ChainConfig, request: UnsignedTransaction, wallet: AdapterWallet, options?: any) => Promise; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts.map new file mode 100644 index 00000000..ae34a485 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/signers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,MAAM,EACN,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAU3E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,qBAAa,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,CACpD,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,aAAa,CAAC;gBAGrB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,aAAa;IAQvB,KAAK,IAAI,CAAC;IAGV,OAAO,IAAI,MAAM;IAIX,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAcvE;AAED,eAAO,MAAM,sBAAsB,UAC1B,WAAW,WACT,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,UACpC,aAAa,YACZ,GAAG,KACX,OAAO,CAAC,MAAM,CA6BhB,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts new file mode 100644 index 00000000..47ec2875 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts @@ -0,0 +1,3 @@ +export * from "./mainnet"; +export * from "./testnet"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts.map new file mode 100644 index 00000000..9809d660 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/utils/chains/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts new file mode 100644 index 00000000..38b38ceb --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts @@ -0,0 +1,60 @@ +export declare const mainnetChains: { + Ethereum: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + }; + Solana: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + }; + Sui: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + sdkName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + }; +}; +export declare const AptosMainnetChain: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; +}; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts.map new file mode 100644 index 00000000..01defa06 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/wormhole/utils/chains/mainnet/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CzB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAa7B,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts new file mode 100644 index 00000000..07fbc430 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts @@ -0,0 +1,65 @@ +export declare const testnetChains: { + Sepolia: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + sdkName: string; + wrappedGasToken: string; + }; + Solana: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + sdkName: string; + wrappedGasToken: string; + }; + Sui: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + sdkName: string; + }; +}; +export declare const AptosTestnetChain: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + sdkName: string; +}; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts.map new file mode 100644 index 00000000..94490250 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/wormhole/utils/chains/testnet/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEzB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAc7B,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts new file mode 100644 index 00000000..47ec2875 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts @@ -0,0 +1,3 @@ +export * from "./mainnet"; +export * from "./testnet"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts.map new file mode 100644 index 00000000..ffcd6861 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/utils/tokens/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts new file mode 100644 index 00000000..e9c58246 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts @@ -0,0 +1,15 @@ +export declare const mainnetChainTokens: Record; +export declare const AptosMainnetUSDCToken: { + key: string; + symbol: string; + nativeChain: string; + tokenId: { + chain: string; + address: string; + }; + icon: string; + coinGeckoId: string; + color: string; + decimals: number; +}; +//# sourceMappingURL=mainnet.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts.map new file mode 100644 index 00000000..bdb587d0 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mainnet.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/utils/tokens/mainnet.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAqClD,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;CAajC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts new file mode 100644 index 00000000..ecf54cbb --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts @@ -0,0 +1,11 @@ +export declare const testnetChainTokens: Record; +export declare const AptosTestnetUSDCToken: { + symbol: string; + decimals: number; + tokenId: { + chain: string; + address: string; + }; + icon: string; +}; +//# sourceMappingURL=testnet.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts.map new file mode 100644 index 00000000..7b12c055 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"testnet.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/utils/tokens/testnet.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAsClD,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;CASjC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts new file mode 100644 index 00000000..72d4f157 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts @@ -0,0 +1,17 @@ +import { Ed25519Account } from "@aptos-labs/ts-sdk"; +import { Chain, Network, SignAndSendSigner, TxHash, UnsignedTransaction } from "@wormhole-foundation/sdk"; +import { AptosChains } from "@wormhole-foundation/sdk-aptos"; +export declare class AptosLocalSigner implements SignAndSendSigner { + _chain: C; + _options: any; + _wallet: Ed25519Account; + _feePayerAccount: Ed25519Account | undefined; + _claimedTransactionHashes: string; + constructor(chain: C, options: any, wallet: Ed25519Account, feePayerAccount: Ed25519Account | undefined); + chain(): C; + address(): string; + claimedTransactionHashes(): string; + signAndSend(txs: UnsignedTransaction[]): Promise; +} +export declare function signAndSendTransaction(request: UnsignedTransaction, wallet: Ed25519Account, feePayerAccount: Ed25519Account | undefined): Promise; +//# sourceMappingURL=AptosLocalSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts.map new file mode 100644 index 00000000..f49dc57a --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AptosLocalSigner.d.ts","sourceRoot":"","sources":["../../src/signers/AptosLocalSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,qBAAa,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,CAC9D,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,gBAAgB,EAAE,cAAc,GAAG,SAAS,CAAC;IAC7C,yBAAyB,EAAE,MAAM,CAAC;gBAGhC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,cAAc,GAAG,SAAS;IAS7C,KAAK,IAAI,CAAC;IAGV,OAAO,IAAI,MAAM;IAIjB,wBAAwB,IAAI,MAAM;IAK5B,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAevE;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,EAClD,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,cAAc,GAAG,SAAS,mBA0D5C"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts new file mode 100644 index 00000000..b26e9f35 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts @@ -0,0 +1,5 @@ +import { EvmUnsignedTransaction, EvmChains } from "@wormhole-foundation/sdk-evm"; +import { Network } from "@wormhole-foundation/sdk"; +import { Eip6963Wallet } from "@xlabs-libs/wallet-aggregator-evm"; +export declare function signAndSendTransaction(request: EvmUnsignedTransaction, wallet: Eip6963Wallet, chainName: string, options: any): Promise; +//# sourceMappingURL=EthereumSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts.map new file mode 100644 index 00000000..967db907 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"EthereumSigner.d.ts","sourceRoot":"","sources":["../../src/signers/EthereumSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,SAAS,EACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGlE,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,EACnD,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,MAAM,CAAC,CA2BjB"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts new file mode 100644 index 00000000..853a0b2e --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts @@ -0,0 +1,27 @@ +import { SolanaWallet } from "@xlabs-libs/wallet-aggregator-solana"; +import { ConfirmOptions, VersionedTransaction } from "@solana/web3.js"; +import { Transaction } from "@solana/web3.js"; +import { SolanaUnsignedTransaction } from "@wormhole-foundation/sdk-solana"; +import { Connection } from "@solana/web3.js"; +import { Network } from "@wormhole-foundation/sdk"; +export type SolanaRpcProvider = "triton" | "helius" | "ankr" | "unknown"; +export declare function signAndSendTransaction(request: SolanaUnsignedTransaction, wallet: SolanaWallet | undefined, options?: ConfirmOptions): Promise; +export declare function setPriorityFeeInstructions(connection: Connection, blockhash: string, lastValidBlockHeight: number, request: SolanaUnsignedTransaction): Promise; +export declare function sleep(timeout: number): Promise; +/** + * Checks whether an object is empty. + * + * isEmptyObject(null) + * // => true + * + * isEmptyObject(undefined) + * // => true + * + * isEmptyObject({}) + * // => true + * + * isEmptyObject({ 'a': 1 }) + * // => false + */ +export declare const isEmptyObject: (value: object | null | undefined) => boolean; +//# sourceMappingURL=SolanaSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts.map new file mode 100644 index 00000000..dc57ceed --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"SolanaSigner.d.ts","sourceRoot":"","sources":["../../src/signers/SolanaSigner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EAIL,cAAc,EAKd,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAIL,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAGzE,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,EAC3C,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,cAAc,mBA0FzB;AAED,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC1C,OAAO,CAAC,WAAW,GAAG,oBAAoB,CAAC,CAgD7C;AA6MD,wBAAsB,KAAK,CAAC,OAAO,EAAE,MAAM,oBAE1C;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,IAAI,GAAG,SAAS,YAa7D,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/index.d.ts b/packages/cross-chain/cross-chain-core/dist/signers/index.d.ts new file mode 100644 index 00000000..73e1dfaf --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/signers/index.d.ts @@ -0,0 +1,14 @@ +import { UnsignedTransaction, Network, Chain, TxHash, SignAndSendSigner } from "@wormhole-foundation/sdk"; +import { Wallet } from "@xlabs-libs/wallet-aggregator-core"; +export declare class Signer implements SignAndSendSigner { + _chain: C; + _address: string; + _options: any; + _wallet: Wallet; + constructor(chain: C, address: string, options: any, wallet: Wallet); + chain(): C; + address(): string; + signAndSend(txs: UnsignedTransaction[]): Promise; +} +export declare const signAndSendTransaction: (chain: Chain, request: UnsignedTransaction, wallet: Wallet, options?: any) => Promise; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/signers/index.d.ts.map new file mode 100644 index 00000000..dda35969 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/signers/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,MAAM,EACN,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAc5D,qBAAa,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,CACpD,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;gBAEJ,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;IAOnE,KAAK,IAAI,CAAC;IAGV,OAAO,IAAI,MAAM;IAKX,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAevE;AAED,eAAO,MAAM,sBAAsB,UAC1B,KAAK,WACH,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,UACpC,MAAM,YACL,GAAG,KACX,OAAO,CAAC,MAAM,CA2BhB,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts b/packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts new file mode 100644 index 00000000..47ec2875 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts @@ -0,0 +1,3 @@ +export * from "./mainnet"; +export * from "./testnet"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts.map new file mode 100644 index 00000000..8b5e80f8 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/chains/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts b/packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts new file mode 100644 index 00000000..5fc283fb --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts @@ -0,0 +1,45 @@ +export declare const mainnetChains: { + Ethereum: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + }; + Solana: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + }; +}; +export declare const AptosMainnetChain: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; +}; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts.map new file mode 100644 index 00000000..19ba945a --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/chains/mainnet/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BzB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAa7B,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts b/packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts new file mode 100644 index 00000000..55cfb8ae --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts @@ -0,0 +1,50 @@ +export declare const testnetChains: { + Sepolia: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + sdkName: string; + wrappedGasToken: string; + }; + Solana: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + sdkName: string; + wrappedGasToken: string; + }; +}; +export declare const AptosTestnetChain: { + key: string; + id: number; + context: string; + finalityThreshold: number; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + chainId: number; + icon: string; + maxBlockSearch: number; + symbol: string; + sdkName: string; +}; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts.map new file mode 100644 index 00000000..1b413a23 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/chains/testnet/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDzB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAc7B,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts b/packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts new file mode 100644 index 00000000..6bb5e3ec --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts @@ -0,0 +1,6 @@ +export declare const logger: { + log: (...args: any[]) => void; + warn: (...args: any[]) => void; + error: (...args: any[]) => void; +}; +//# sourceMappingURL=logger.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts.map b/packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts.map new file mode 100644 index 00000000..e7c4a8df --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;mBACF,GAAG,EAAE;oBAKJ,GAAG,EAAE;qBAKJ,GAAG,EAAE;CAKvB,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts b/packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts new file mode 100644 index 00000000..e9c58246 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts @@ -0,0 +1,15 @@ +export declare const mainnetChainTokens: Record; +export declare const AptosMainnetUSDCToken: { + key: string; + symbol: string; + nativeChain: string; + tokenId: { + chain: string; + address: string; + }; + icon: string; + coinGeckoId: string; + color: string; + decimals: number; +}; +//# sourceMappingURL=mainnet.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts.map b/packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts.map new file mode 100644 index 00000000..64954cd1 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"mainnet.d.ts","sourceRoot":"","sources":["../../../src/utils/tokens/mainnet.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CA2BlD,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;CAajC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts b/packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts new file mode 100644 index 00000000..ecf54cbb --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts @@ -0,0 +1,11 @@ +export declare const testnetChainTokens: Record; +export declare const AptosTestnetUSDCToken: { + symbol: string; + decimals: number; + tokenId: { + chain: string; + address: string; + }; + icon: string; +}; +//# sourceMappingURL=testnet.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts.map b/packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts.map new file mode 100644 index 00000000..6d567232 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"testnet.d.ts","sourceRoot":"","sources":["../../../src/utils/tokens/testnet.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CA4BlD,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;CASjC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/version.d.ts b/packages/cross-chain/cross-chain-core/dist/version.d.ts new file mode 100644 index 00000000..21f77da0 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/version.d.ts @@ -0,0 +1,2 @@ +export declare const CROSS_CHAIN_CORE_VERSION = "4.23.0"; +//# sourceMappingURL=version.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/version.d.ts.map b/packages/cross-chain/cross-chain-core/dist/version.d.ts.map new file mode 100644 index 00000000..96135975 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/version.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts b/packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts new file mode 100644 index 00000000..e6c66add --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts @@ -0,0 +1,10 @@ +import { Network } from "@aptos-labs/ts-sdk"; +import { AptosWallet as AptosWalletAggregator } from "@xlabs-libs/wallet-aggregator-aptos"; +type DappConfig = { + network: Network; +}; +export declare function getAptosStandardWallets(aptosWalletConfig: DappConfig): AptosWallet[]; +export declare class AptosWallet extends AptosWalletAggregator { +} +export {}; +//# sourceMappingURL=aptos.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts.map b/packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts.map new file mode 100644 index 00000000..b9f1ce33 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"aptos.d.ts","sourceRoot":"","sources":["../../src/wallets/aptos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE3F,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,iBAAiB,EAAE,UAAU,GAC5B,WAAW,EAAE,CASf;AAED,qBAAa,WAAY,SAAQ,qBAAqB;CAAG"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts b/packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts new file mode 100644 index 00000000..629dd7f7 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts @@ -0,0 +1 @@ +//# sourceMappingURL=core.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts.map b/packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts.map new file mode 100644 index 00000000..5015f8b7 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/wallets/core.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts b/packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts new file mode 100644 index 00000000..d3a21a99 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts @@ -0,0 +1 @@ +//# sourceMappingURL=evm.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts.map b/packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts.map new file mode 100644 index 00000000..678677e4 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/wallets/evm.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts b/packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts new file mode 100644 index 00000000..f36479a7 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts @@ -0,0 +1 @@ +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts.map new file mode 100644 index 00000000..a102f601 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallets/index.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts b/packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts new file mode 100644 index 00000000..cf609754 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts @@ -0,0 +1 @@ +//# sourceMappingURL=solana.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts.map b/packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts.map new file mode 100644 index 00000000..1190bcf3 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/wallets/solana.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts b/packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts new file mode 100644 index 00000000..458b3905 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts @@ -0,0 +1 @@ +//# sourceMappingURL=sui.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts.map b/packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts.map new file mode 100644 index 00000000..4fc9a8af --- /dev/null +++ b/packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../src/wallets/sui.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/src/version.ts b/packages/cross-chain/cross-chain-core/src/version.ts new file mode 100644 index 00000000..8aecb7ec --- /dev/null +++ b/packages/cross-chain/cross-chain-core/src/version.ts @@ -0,0 +1 @@ +export const CROSS_CHAIN_CORE_VERSION = "4.23.0"; diff --git a/packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts b/packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts new file mode 100644 index 00000000..af69c543 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts @@ -0,0 +1,14 @@ +import { FC, ReactNode } from "react"; +import { CrossChainDappConfig, WormholeQuoteResponse, WormholeInitiateTransferResponse } from "@aptos-labs/cross-chain-core"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; +export interface AptosCrossChainWalletProviderProps { + children: ReactNode; + dappConfig: CrossChainDappConfig; + disableTelemetry?: boolean; + onError?: (error: any) => void; +} +export type { AdapterWallet }; +export type QuoteResponse = WormholeQuoteResponse; +export type InitiateTransferResponse = WormholeInitiateTransferResponse; +export declare const AptosCrossChainWalletProvider: FC; +//# sourceMappingURL=WalletProvider.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts.map b/packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts.map new file mode 100644 index 00000000..efc005d9 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../src/WalletProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE3D,OAAO,EAGL,oBAAoB,EAEpB,qBAAqB,EACrB,gCAAgC,EAGjC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAI3E,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,oBAAoB,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC;AAED,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAElD,MAAM,MAAM,wBAAwB,GAAG,gCAAgC,CAAC;AAgBxE,eAAO,MAAM,6BAA6B,EAAE,EAAE,CAC5C,kCAAkC,CAyJnC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts b/packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts new file mode 100644 index 00000000..23cb5e02 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts @@ -0,0 +1 @@ +//# sourceMappingURL=EthereumWalletItem.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts.map b/packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts.map new file mode 100644 index 00000000..c5436ae4 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"EthereumWalletItem.d.ts","sourceRoot":"","sources":["../../src/components/EthereumWalletItem.tsx"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts b/packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts new file mode 100644 index 00000000..6ba8ade7 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts @@ -0,0 +1 @@ +//# sourceMappingURL=SolanaWalletItem.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts.map b/packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts.map new file mode 100644 index 00000000..fc7faca5 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"SolanaWalletItem.d.ts","sourceRoot":"","sources":["../../src/components/SolanaWalletItem.tsx"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/index.d.ts b/packages/cross-chain/cross-chain-react/dist/index.d.ts new file mode 100644 index 00000000..c1f358ab --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/index.d.ts @@ -0,0 +1,4 @@ +export * from "@aptos-labs/cross-chain-core"; +export * from "./WalletProvider"; +export * from "./useWallet"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/index.d.ts.map b/packages/cross-chain/cross-chain-react/dist/index.d.ts.map new file mode 100644 index 00000000..43270eea --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/index.js b/packages/cross-chain/cross-chain-react/dist/index.js new file mode 100644 index 00000000..38e668f1 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/index.js @@ -0,0 +1,192 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.tsx +var src_exports = {}; +__export(src_exports, { + AptosCrossChainWalletProvider: () => AptosCrossChainWalletProvider, + WalletContext: () => WalletContext, + useCrossChainWallet: () => useCrossChainWallet +}); +module.exports = __toCommonJS(src_exports); +__reExport(src_exports, require("@aptos-labs/cross-chain-core"), module.exports); + +// src/WalletProvider.tsx +var import_react2 = require("react"); + +// src/useWallet.tsx +var import_react = require("react"); +var DEFAULT_CONTEXT = { + connected: false +}; +var WalletContext = (0, import_react.createContext)( + DEFAULT_CONTEXT +); +function useCrossChainWallet() { + const context = (0, import_react.useContext)(WalletContext); + if (!context) { + throw new Error("useWallet must be used within a WalletContextState"); + } + return context; +} + +// src/WalletProvider.tsx +var import_cross_chain_core = require("@aptos-labs/cross-chain-core"); +var import_wallet_adapter_aggregator_solana = require("@aptos-labs/wallet-adapter-aggregator-solana"); +var import_wallet_adapter_aggregator_eip6963 = require("@aptos-labs/wallet-adapter-aggregator-eip6963"); +var import_wallet_adapter_aggregator_aptos = require("@aptos-labs/wallet-adapter-aggregator-aptos"); +var import_jsx_runtime = require("react/jsx-runtime"); +var initialState = { + connected: false, + account: null, + wallet: null, + sourceChain: null, + setSourceChain: () => { + } +}; +var AptosCrossChainWalletProvider = ({ children, dappConfig, disableTelemetry, onError }) => { + const [{ connected, wallet, account, sourceChain }, setState] = (0, import_react2.useState)(initialState); + const [provider, setProvider] = (0, import_react2.useState)(); + const setSourceChain = (chain) => { + setState((prev) => ({ ...prev, sourceChain: chain })); + }; + const [crossChainCore, setCrossChainCore] = (0, import_react2.useState)(); + (0, import_react2.useEffect)(() => { + const crossChainCore2 = new import_cross_chain_core.CrossChainCore({ dappConfig }); + setCrossChainCore(crossChainCore2); + }, []); + const getSolanaWallets = () => { + return (0, import_wallet_adapter_aggregator_solana.getSolanaStandardWallets)(); + }; + const getEthereumWallets = () => { + return (0, import_wallet_adapter_aggregator_eip6963.fetchEthereumWallets)(); + }; + const getAptosWallets = () => { + return (0, import_wallet_adapter_aggregator_aptos.getAptosWallets)(); + }; + (0, import_react2.useEffect)(() => { + if (!wallet) + return; + const handleAccountChange = (newAccount) => { + setState((prev) => ({ ...prev, account: newAccount })); + }; + const handleNetworkChange = (newNetwork) => { + console.log("handleNetworkChange not implemented"); + }; + wallet.on("accountChange", handleAccountChange); + wallet.on("networkChange", handleNetworkChange); + return () => { + wallet.off("accountChange", handleAccountChange); + wallet.off("networkChange", handleNetworkChange); + }; + }, [wallet]); + const getQuote = async (amount, sourceChain2) => { + try { + const provider2 = crossChainCore == null ? void 0 : crossChainCore.getProvider("Wormhole"); + if (!provider2) { + throw new Error("Provider not found"); + } + setProvider(provider2); + const quote = await (provider2 == null ? void 0 : provider2.getQuote({ + amount, + sourceChain: sourceChain2 + })); + return quote; + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const initiateTransfer = async (sourceChain2, mainSigner, sponsorAccount) => { + try { + if (!provider) { + throw new Error("Provider is not set"); + } + const { originChainTxnId, destinationChainTxnId } = await provider.initiateCCTPTransfer({ + sourceChain: sourceChain2, + wallet, + destinationAddress: "0x38383091fdd9325e0b8ada990c474da8c7f5aa51580b65eb477885b6ce0a36b7", + mainSigner, + sponsorAccount + }); + return { originChainTxnId, destinationChainTxnId }; + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const connect = async (wallet2) => { + try { + const response = await wallet2.connect(); + console.log("WalletProvider connect response", response); + setState((state) => ({ + ...state, + connected: true, + wallet: wallet2, + account: response + })); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const disconnect = async () => { + try { + await (wallet == null ? void 0 : wallet.disconnect()); + setState((state) => ({ + ...state, + connected: false, + wallet: null + })); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WalletContext.Provider, { + value: { + connected, + account, + isLoading: false, + getSolanaWallets, + getEthereumWallets, + getAptosWallets, + connect, + disconnect, + wallet, + getQuote, + initiateTransfer, + sourceChain, + setSourceChain + }, + children + }); +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + AptosCrossChainWalletProvider, + WalletContext, + useCrossChainWallet +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/index.js.map b/packages/cross-chain/cross-chain-react/dist/index.js.map new file mode 100644 index 00000000..8eb3d894 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.tsx","../src/WalletProvider.tsx","../src/useWallet.tsx"],"sourcesContent":["export * from \"@aptos-labs/cross-chain-core\";\nexport * from \"./WalletProvider\";\nexport * from \"./useWallet\";\n","import { FC, ReactNode, useEffect, useState } from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport {\n Chain,\n CrossChainCore,\n CrossChainDappConfig,\n Network,\n WormholeQuoteResponse,\n WormholeInitiateTransferResponse,\n CrossChainProvider,\n AptosAccount,\n} from \"@aptos-labs/cross-chain-core\";\nimport { AccountInfo, NetworkInfo } from \"@aptos-labs/wallet-standard\";\nimport { getSolanaStandardWallets } from \"@aptos-labs/wallet-adapter-aggregator-solana\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { fetchEthereumWallets as fetchEthereumWalletsAggregator } from \"@aptos-labs/wallet-adapter-aggregator-eip6963\";\nimport { getAptosWallets as getAptosStandardWallets } from \"@aptos-labs/wallet-adapter-aggregator-aptos\";\n\nexport interface AptosCrossChainWalletProviderProps {\n children: ReactNode;\n dappConfig: CrossChainDappConfig;\n disableTelemetry?: boolean;\n onError?: (error: any) => void;\n}\n\nexport type { AdapterWallet };\n\nexport type QuoteResponse = WormholeQuoteResponse;\n\nexport type InitiateTransferResponse = WormholeInitiateTransferResponse;\n\nconst initialState: {\n connected: boolean;\n account: AccountInfo | null;\n wallet: AdapterWallet | null;\n sourceChain: Chain | null;\n setSourceChain: (chain: Chain) => void;\n} = {\n connected: false,\n account: null,\n wallet: null,\n sourceChain: null,\n setSourceChain: () => {},\n};\n\nexport const AptosCrossChainWalletProvider: FC<\n AptosCrossChainWalletProviderProps\n> = ({ children, dappConfig, disableTelemetry, onError }) => {\n const [{ connected, wallet, account, sourceChain }, setState] =\n useState(initialState);\n\n const [provider, setProvider] = useState();\n\n const setSourceChain = (chain: Chain) => {\n setState((prev) => ({ ...prev, sourceChain: chain }));\n };\n\n const [crossChainCore, setCrossChainCore] = useState();\n\n useEffect(() => {\n const crossChainCore = new CrossChainCore({ dappConfig });\n setCrossChainCore(crossChainCore);\n }, []);\n\n // TODO fix me, on first load I get an empty array\n const getSolanaWallets = (): ReadonlyArray => {\n return getSolanaStandardWallets();\n };\n\n const getEthereumWallets = (): ReadonlyArray => {\n return fetchEthereumWalletsAggregator();\n };\n\n const getAptosWallets = (): ReadonlyArray => {\n //console.log(\"getAptosStandardWallets\", getAptosStandardWallets());\n return getAptosStandardWallets();\n };\n\n useEffect(() => {\n if (!wallet) return;\n\n const handleAccountChange = (newAccount: AccountInfo | null) => {\n setState((prev) => ({ ...prev, account: newAccount }));\n };\n\n const handleNetworkChange = (newNetwork: NetworkInfo | null) => {\n //setState((prev) => ({ ...prev, sourceChain: newNetwork.name }));\n console.log(\"handleNetworkChange not implemented\");\n };\n\n // Register the listener\n wallet.on(\"accountChange\", handleAccountChange);\n wallet.on(\"networkChange\", handleNetworkChange);\n return () => {\n wallet.off(\"accountChange\", handleAccountChange);\n wallet.off(\"networkChange\", handleNetworkChange);\n };\n }, [wallet]);\n\n const getQuote = async (\n amount: string,\n sourceChain: Chain\n ): Promise => {\n try {\n const provider = crossChainCore?.getProvider(\"Wormhole\");\n\n if (!provider) {\n throw new Error(\"Provider not found\");\n }\n setProvider(provider);\n\n const quote = await provider?.getQuote({\n amount,\n sourceChain,\n });\n\n return quote;\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const initiateTransfer = async (\n sourceChain: Chain,\n mainSigner: AptosAccount,\n sponsorAccount?: AptosAccount | Partial>\n ): Promise<{ originChainTxnId: string; destinationChainTxnId: string }> => {\n try {\n if (!provider) {\n throw new Error(\"Provider is not set\");\n }\n const { originChainTxnId, destinationChainTxnId } =\n await provider.initiateCCTPTransfer({\n sourceChain,\n wallet,\n destinationAddress:\n \"0x38383091fdd9325e0b8ada990c474da8c7f5aa51580b65eb477885b6ce0a36b7\",\n mainSigner,\n sponsorAccount,\n });\n\n return { originChainTxnId, destinationChainTxnId };\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const connect = async (wallet: AdapterWallet): Promise => {\n try {\n const response = await wallet.connect();\n console.log(\"WalletProvider connect response\", response);\n setState((state) => ({\n ...state,\n connected: true,\n wallet: wallet,\n account: response,\n }));\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const disconnect = async () => {\n try {\n await wallet?.disconnect();\n setState((state) => ({\n ...state,\n connected: false,\n wallet: null,\n }));\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n return (\n \n {children}\n \n );\n};\n","import {\n Chain,\n Network,\n UsdcBalance,\n WormholeQuoteResponse,\n AptosAccount,\n} from \"@aptos-labs/cross-chain-core\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { AccountInfo } from \"@aptos-labs/wallet-standard\";\nimport { createContext, useContext } from \"react\";\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n wallet: AdapterWallet | null;\n account: AccountInfo | null;\n getSolanaWallets: () => ReadonlyArray;\n getEthereumWallets: () => ReadonlyArray;\n getAptosWallets: () => ReadonlyArray;\n connect: (wallet: AdapterWallet) => Promise;\n disconnect: () => Promise;\n getQuote: (\n amount: string,\n sourceChain: Chain\n ) => Promise;\n initiateTransfer: (\n sourceChain: Chain,\n mainSigner: AptosAccount,\n sponsorAccount?: AptosAccount | Partial>\n ) => Promise<{ originChainTxnId: string; destinationChainTxnId: string }>;\n sourceChain: Chain | null;\n setSourceChain: (chain: Chain) => void;\n}\n\nexport const WalletContext = createContext(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useCrossChainWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n"],"mappings":"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","names":["import_react","crossChainCore","fetchEthereumWalletsAggregator","getAptosStandardWallets","sourceChain","provider","wallet"]} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/index.mjs b/packages/cross-chain/cross-chain-react/dist/index.mjs new file mode 100644 index 00000000..1b8e4690 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/index.mjs @@ -0,0 +1,166 @@ +// src/index.tsx +export * from "@aptos-labs/cross-chain-core"; + +// src/WalletProvider.tsx +import { useEffect, useState } from "react"; + +// src/useWallet.tsx +import { createContext, useContext } from "react"; +var DEFAULT_CONTEXT = { + connected: false +}; +var WalletContext = createContext( + DEFAULT_CONTEXT +); +function useCrossChainWallet() { + const context = useContext(WalletContext); + if (!context) { + throw new Error("useWallet must be used within a WalletContextState"); + } + return context; +} + +// src/WalletProvider.tsx +import { + CrossChainCore +} from "@aptos-labs/cross-chain-core"; +import { getSolanaStandardWallets } from "@aptos-labs/wallet-adapter-aggregator-solana"; +import { fetchEthereumWallets as fetchEthereumWalletsAggregator } from "@aptos-labs/wallet-adapter-aggregator-eip6963"; +import { getAptosWallets as getAptosStandardWallets } from "@aptos-labs/wallet-adapter-aggregator-aptos"; +import { jsx } from "react/jsx-runtime"; +var initialState = { + connected: false, + account: null, + wallet: null, + sourceChain: null, + setSourceChain: () => { + } +}; +var AptosCrossChainWalletProvider = ({ children, dappConfig, disableTelemetry, onError }) => { + const [{ connected, wallet, account, sourceChain }, setState] = useState(initialState); + const [provider, setProvider] = useState(); + const setSourceChain = (chain) => { + setState((prev) => ({ ...prev, sourceChain: chain })); + }; + const [crossChainCore, setCrossChainCore] = useState(); + useEffect(() => { + const crossChainCore2 = new CrossChainCore({ dappConfig }); + setCrossChainCore(crossChainCore2); + }, []); + const getSolanaWallets = () => { + return getSolanaStandardWallets(); + }; + const getEthereumWallets = () => { + return fetchEthereumWalletsAggregator(); + }; + const getAptosWallets = () => { + return getAptosStandardWallets(); + }; + useEffect(() => { + if (!wallet) + return; + const handleAccountChange = (newAccount) => { + setState((prev) => ({ ...prev, account: newAccount })); + }; + const handleNetworkChange = (newNetwork) => { + console.log("handleNetworkChange not implemented"); + }; + wallet.on("accountChange", handleAccountChange); + wallet.on("networkChange", handleNetworkChange); + return () => { + wallet.off("accountChange", handleAccountChange); + wallet.off("networkChange", handleNetworkChange); + }; + }, [wallet]); + const getQuote = async (amount, sourceChain2) => { + try { + const provider2 = crossChainCore == null ? void 0 : crossChainCore.getProvider("Wormhole"); + if (!provider2) { + throw new Error("Provider not found"); + } + setProvider(provider2); + const quote = await (provider2 == null ? void 0 : provider2.getQuote({ + amount, + sourceChain: sourceChain2 + })); + return quote; + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const initiateTransfer = async (sourceChain2, mainSigner, sponsorAccount) => { + try { + if (!provider) { + throw new Error("Provider is not set"); + } + const { originChainTxnId, destinationChainTxnId } = await provider.initiateCCTPTransfer({ + sourceChain: sourceChain2, + wallet, + destinationAddress: "0x38383091fdd9325e0b8ada990c474da8c7f5aa51580b65eb477885b6ce0a36b7", + mainSigner, + sponsorAccount + }); + return { originChainTxnId, destinationChainTxnId }; + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const connect = async (wallet2) => { + try { + const response = await wallet2.connect(); + console.log("WalletProvider connect response", response); + setState((state) => ({ + ...state, + connected: true, + wallet: wallet2, + account: response + })); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const disconnect = async () => { + try { + await (wallet == null ? void 0 : wallet.disconnect()); + setState((state) => ({ + ...state, + connected: false, + wallet: null + })); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + return /* @__PURE__ */ jsx(WalletContext.Provider, { + value: { + connected, + account, + isLoading: false, + getSolanaWallets, + getEthereumWallets, + getAptosWallets, + connect, + disconnect, + wallet, + getQuote, + initiateTransfer, + sourceChain, + setSourceChain + }, + children + }); +}; +export { + AptosCrossChainWalletProvider, + WalletContext, + useCrossChainWallet +}; +//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/index.mjs.map b/packages/cross-chain/cross-chain-react/dist/index.mjs.map new file mode 100644 index 00000000..26b041c8 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.tsx","../src/WalletProvider.tsx","../src/useWallet.tsx"],"sourcesContent":["export * from \"@aptos-labs/cross-chain-core\";\nexport * from \"./WalletProvider\";\nexport * from \"./useWallet\";\n","import { FC, ReactNode, useEffect, useState } from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport {\n Chain,\n CrossChainCore,\n CrossChainDappConfig,\n Network,\n WormholeQuoteResponse,\n WormholeInitiateTransferResponse,\n CrossChainProvider,\n AptosAccount,\n} from \"@aptos-labs/cross-chain-core\";\nimport { AccountInfo, NetworkInfo } from \"@aptos-labs/wallet-standard\";\nimport { getSolanaStandardWallets } from \"@aptos-labs/wallet-adapter-aggregator-solana\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { fetchEthereumWallets as fetchEthereumWalletsAggregator } from \"@aptos-labs/wallet-adapter-aggregator-eip6963\";\nimport { getAptosWallets as getAptosStandardWallets } from \"@aptos-labs/wallet-adapter-aggregator-aptos\";\n\nexport interface AptosCrossChainWalletProviderProps {\n children: ReactNode;\n dappConfig: CrossChainDappConfig;\n disableTelemetry?: boolean;\n onError?: (error: any) => void;\n}\n\nexport type { AdapterWallet };\n\nexport type QuoteResponse = WormholeQuoteResponse;\n\nexport type InitiateTransferResponse = WormholeInitiateTransferResponse;\n\nconst initialState: {\n connected: boolean;\n account: AccountInfo | null;\n wallet: AdapterWallet | null;\n sourceChain: Chain | null;\n setSourceChain: (chain: Chain) => void;\n} = {\n connected: false,\n account: null,\n wallet: null,\n sourceChain: null,\n setSourceChain: () => {},\n};\n\nexport const AptosCrossChainWalletProvider: FC<\n AptosCrossChainWalletProviderProps\n> = ({ children, dappConfig, disableTelemetry, onError }) => {\n const [{ connected, wallet, account, sourceChain }, setState] =\n useState(initialState);\n\n const [provider, setProvider] = useState();\n\n const setSourceChain = (chain: Chain) => {\n setState((prev) => ({ ...prev, sourceChain: chain }));\n };\n\n const [crossChainCore, setCrossChainCore] = useState();\n\n useEffect(() => {\n const crossChainCore = new CrossChainCore({ dappConfig });\n setCrossChainCore(crossChainCore);\n }, []);\n\n // TODO fix me, on first load I get an empty array\n const getSolanaWallets = (): ReadonlyArray => {\n return getSolanaStandardWallets();\n };\n\n const getEthereumWallets = (): ReadonlyArray => {\n return fetchEthereumWalletsAggregator();\n };\n\n const getAptosWallets = (): ReadonlyArray => {\n //console.log(\"getAptosStandardWallets\", getAptosStandardWallets());\n return getAptosStandardWallets();\n };\n\n useEffect(() => {\n if (!wallet) return;\n\n const handleAccountChange = (newAccount: AccountInfo | null) => {\n setState((prev) => ({ ...prev, account: newAccount }));\n };\n\n const handleNetworkChange = (newNetwork: NetworkInfo | null) => {\n //setState((prev) => ({ ...prev, sourceChain: newNetwork.name }));\n console.log(\"handleNetworkChange not implemented\");\n };\n\n // Register the listener\n wallet.on(\"accountChange\", handleAccountChange);\n wallet.on(\"networkChange\", handleNetworkChange);\n return () => {\n wallet.off(\"accountChange\", handleAccountChange);\n wallet.off(\"networkChange\", handleNetworkChange);\n };\n }, [wallet]);\n\n const getQuote = async (\n amount: string,\n sourceChain: Chain\n ): Promise => {\n try {\n const provider = crossChainCore?.getProvider(\"Wormhole\");\n\n if (!provider) {\n throw new Error(\"Provider not found\");\n }\n setProvider(provider);\n\n const quote = await provider?.getQuote({\n amount,\n sourceChain,\n });\n\n return quote;\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const initiateTransfer = async (\n sourceChain: Chain,\n mainSigner: AptosAccount,\n sponsorAccount?: AptosAccount | Partial>\n ): Promise<{ originChainTxnId: string; destinationChainTxnId: string }> => {\n try {\n if (!provider) {\n throw new Error(\"Provider is not set\");\n }\n const { originChainTxnId, destinationChainTxnId } =\n await provider.initiateCCTPTransfer({\n sourceChain,\n wallet,\n destinationAddress:\n \"0x38383091fdd9325e0b8ada990c474da8c7f5aa51580b65eb477885b6ce0a36b7\",\n mainSigner,\n sponsorAccount,\n });\n\n return { originChainTxnId, destinationChainTxnId };\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const connect = async (wallet: AdapterWallet): Promise => {\n try {\n const response = await wallet.connect();\n console.log(\"WalletProvider connect response\", response);\n setState((state) => ({\n ...state,\n connected: true,\n wallet: wallet,\n account: response,\n }));\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const disconnect = async () => {\n try {\n await wallet?.disconnect();\n setState((state) => ({\n ...state,\n connected: false,\n wallet: null,\n }));\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n return (\n \n {children}\n \n );\n};\n","import {\n Chain,\n Network,\n UsdcBalance,\n WormholeQuoteResponse,\n AptosAccount,\n} from \"@aptos-labs/cross-chain-core\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { AccountInfo } from \"@aptos-labs/wallet-standard\";\nimport { createContext, useContext } from \"react\";\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n wallet: AdapterWallet | null;\n account: AccountInfo | null;\n getSolanaWallets: () => ReadonlyArray;\n getEthereumWallets: () => ReadonlyArray;\n getAptosWallets: () => ReadonlyArray;\n connect: (wallet: AdapterWallet) => Promise;\n disconnect: () => Promise;\n getQuote: (\n amount: string,\n sourceChain: Chain\n ) => Promise;\n initiateTransfer: (\n sourceChain: Chain,\n mainSigner: AptosAccount,\n sponsorAccount?: AptosAccount | Partial>\n ) => Promise<{ originChainTxnId: string; destinationChainTxnId: string }>;\n sourceChain: Chain | null;\n setSourceChain: (chain: Chain) => void;\n}\n\nexport const WalletContext = createContext(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useCrossChainWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n"],"mappings":"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","names":["crossChainCore","sourceChain","provider","wallet"]} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/useWallet.d.ts b/packages/cross-chain/cross-chain-react/dist/useWallet.d.ts new file mode 100644 index 00000000..dd7eed39 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/useWallet.d.ts @@ -0,0 +1,24 @@ +import { Chain, Network, WormholeQuoteResponse, AptosAccount } from "@aptos-labs/cross-chain-core"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; +import { AccountInfo } from "@aptos-labs/wallet-standard"; +export interface WalletContextState { + connected: boolean; + isLoading: boolean; + wallet: AdapterWallet | null; + account: AccountInfo | null; + getSolanaWallets: () => ReadonlyArray; + getEthereumWallets: () => ReadonlyArray; + getAptosWallets: () => ReadonlyArray; + connect: (wallet: AdapterWallet) => Promise; + disconnect: () => Promise; + getQuote: (amount: string, sourceChain: Chain) => Promise; + initiateTransfer: (sourceChain: Chain, mainSigner: AptosAccount, sponsorAccount?: AptosAccount | Partial>) => Promise<{ + originChainTxnId: string; + destinationChainTxnId: string; + }>; + sourceChain: Chain | null; + setSourceChain: (chain: Chain) => void; +} +export declare const WalletContext: import("react").Context; +export declare function useCrossChainWallet(): WalletContextState; +//# sourceMappingURL=useWallet.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/useWallet.d.ts.map b/packages/cross-chain/cross-chain-react/dist/useWallet.d.ts.map new file mode 100644 index 00000000..ee15ba16 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/dist/useWallet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useWallet.d.ts","sourceRoot":"","sources":["../src/useWallet.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EAEP,qBAAqB,EACrB,YAAY,EACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAO1D,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;IACrD,kBAAkB,EAAE,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;IACvD,eAAe,EAAE,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;IACpD,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,QAAQ,EAAE,CACR,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,KAAK,KACf,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC,gBAAgB,EAAE,CAChB,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,YAAY,EACxB,cAAc,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,KAC7D,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1E,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACxC;AAED,eAAO,MAAM,aAAa,6CAEzB,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,kBAAkB,CAMxD"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts new file mode 100644 index 00000000..45426ed4 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts @@ -0,0 +1,39 @@ +import { AdapterWallet, WalletReadyState } from "@aptos-labs/wallet-adapter-aggregator-core"; +import { AccountInfo, NetworkInfo, WalletCore, AdapterWallet as AptosBaseWallet, AnyRawTransaction, InputTransactionData, AccountAuthenticator } from "@aptos-labs/wallet-adapter-core"; +import { AptosSignMessageInput, AptosSignMessageOutput, WalletAccount } from "@aptos-labs/wallet-standard"; +export declare const getAptosWallets: () => AptosWallet[]; +export declare class AptosWallet extends AdapterWallet { + readonly aptosWallet: AptosBaseWallet; + readonly walletCore: WalletCore; + readonly version = "1.0.0"; + accounts: WalletAccount[]; + connected: boolean; + constructor(aptosWallet: AptosBaseWallet, walletCore: WalletCore); + get icon(): `data:image/svg+xml;base64,${string}` | `data:image/webp;base64,${string}` | `data:image/png;base64,${string}` | `data:image/gif;base64,${string}`; + get name(): string; + get url(): string; + get readyState(): WalletReadyState; + get chains(): readonly ["aptos:devnet", "aptos:testnet", "aptos:localnet", "aptos:mainnet"]; + get isConnected(): boolean; + getAccount(): Promise; + getConnectedNetwork(): Promise; + connect(): Promise; + disconnect(): Promise; + signMessage(message: AptosSignMessageInput): Promise; + signTransaction(args: { + transactionOrPayload: AnyRawTransaction | InputTransactionData; + asFeePayer?: boolean; + }): Promise<{ + authenticator: AccountAuthenticator; + rawTransaction: Uint8Array; + }>; + onAccountChange(): void; + onNetworkChange(callback: (network: NetworkInfo) => void): Promise; +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts.map new file mode 100644 index 00000000..3adfc271 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,aAAa,IAAI,eAAe,EAChC,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,eAAe,QAAO,WAAW,EAM7C,CAAC;AAEF,qBAAa,WAAY,SAAQ,aAAa,CAC5C,WAAW,EACX,WAAW,EACX,WAAW,GAAG,IAAI,EAClB,qBAAqB,EACrB,sBAAsB,EACtB;IACE,oBAAoB,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,EACD;IACE,aAAa,EAAE,oBAAoB,CAAC;IACpC,cAAc,EAAE,UAAU,CAAC;CAC5B,EACD,WAAW,EACX,WAAW,CACZ;IACC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,OAAO,WAAW;IAE3B,QAAQ,EAAE,aAAa,EAAE,CAAM;IAE/B,SAAS,EAAE,OAAO,CAAS;gBAEf,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU;IAMhE,IAAI,IAAI,uJAEP;IACD,IAAI,IAAI,WAEP;IACD,IAAI,GAAG,WAEN;IAED,IAAI,UAAU,qBAEb;IAED,IAAI,MAAM,kFAET;IAED,IAAI,WAAW,YAEd;IAEK,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAQlC,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ3C,OAAO,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAOtC,UAAU;IASV,WAAW,CAAC,OAAO,EAAE,qBAAqB;IAK1C,eAAe,CAAC,IAAI,EAAE;QAC1B,oBAAoB,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;QAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC;QACV,aAAa,EAAE,oBAAoB,CAAC;QACpC,cAAc,EAAE,UAAU,CAAC;KAC5B,CAAC;IAKF,eAAe;IAUT,eAAe,CACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GACvC,OAAO,CAAC,IAAI,CAAC;CAGjB"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js new file mode 100644 index 00000000..a40f2982 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js @@ -0,0 +1,118 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + AptosWallet: () => AptosWallet, + getAptosWallets: () => getAptosWallets +}); +module.exports = __toCommonJS(src_exports); +var import_wallet_adapter_aggregator_core = require("@aptos-labs/wallet-adapter-aggregator-core"); +var import_wallet_adapter_core = require("@aptos-labs/wallet-adapter-core"); +var import_wallet_standard = require("@aptos-labs/wallet-standard"); +var getAptosWallets = () => { + const walletCore = new import_wallet_adapter_core.WalletCore(); + const wallets = walletCore.wallets.map( + (wallet) => new AptosWallet(wallet, walletCore) + ); + return wallets; +}; +var AptosWallet = class extends import_wallet_adapter_aggregator_core.AdapterWallet { + constructor(aptosWallet, walletCore) { + super(); + this.version = "1.0.0"; + this.accounts = []; + this.connected = false; + this.aptosWallet = aptosWallet; + this.walletCore = walletCore; + } + get icon() { + return this.aptosWallet.icon; + } + get name() { + return this.aptosWallet.name; + } + get url() { + return this.aptosWallet.url; + } + get readyState() { + return import_wallet_adapter_aggregator_core.WalletReadyState.Installed; + } + get chains() { + return import_wallet_standard.APTOS_CHAINS; + } + get isConnected() { + return this.connected; + } + async getAccount() { + const account = await this.walletCore.account; + if (!account) { + throw new Error("Account not found"); + } + return account; + } + async getConnectedNetwork() { + const network = await this.walletCore.network; + if (!network) { + throw new Error("Network not found"); + } + return network; + } + async connect() { + await this.walletCore.connect(this.name); + this.onAccountChange(); + this.connected = true; + return this.walletCore.account; + } + async disconnect() { + if (!this.connected) { + return; + } + this.walletCore.off("accountChange"); + await this.walletCore.disconnect(); + this.connected = false; + } + async signMessage(message) { + const result = await this.walletCore.signMessage(message); + return result; + } + async signTransaction(args) { + const result = await this.walletCore.signTransaction(args); + return result; + } + onAccountChange() { + this.walletCore.onAccountChange(); + this.walletCore.on( + "accountChange", + async (accountInfo) => { + this.emit("accountChange", accountInfo); + } + ); + } + async onNetworkChange(callback) { + await this.walletCore.onNetworkChange(); + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + AptosWallet, + getAptosWallets +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js.map b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js.map new file mode 100644 index 00000000..63fd7b52 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n AdapterWallet,\n WalletReadyState,\n} from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport {\n AccountInfo,\n NetworkInfo,\n WalletCore,\n AdapterWallet as AptosBaseWallet,\n AnyRawTransaction,\n InputTransactionData,\n AccountAuthenticator,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport {\n APTOS_CHAINS,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\n\nexport const getAptosWallets = (): AptosWallet[] => {\n const walletCore = new WalletCore();\n const wallets = walletCore.wallets.map(\n (wallet) => new AptosWallet(wallet, walletCore)\n );\n return wallets;\n};\n\nexport class AptosWallet extends AdapterWallet<\n AccountInfo,\n NetworkInfo,\n AccountInfo | null,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n {\n transactionOrPayload: AnyRawTransaction | InputTransactionData;\n asFeePayer?: boolean;\n },\n {\n authenticator: AccountAuthenticator;\n rawTransaction: Uint8Array;\n },\n AccountInfo,\n NetworkInfo\n> {\n readonly aptosWallet: AptosBaseWallet;\n readonly walletCore: WalletCore;\n readonly version = \"1.0.0\";\n\n accounts: WalletAccount[] = [];\n\n connected: boolean = false;\n\n constructor(aptosWallet: AptosBaseWallet, walletCore: WalletCore) {\n super();\n this.aptosWallet = aptosWallet;\n this.walletCore = walletCore;\n }\n\n get icon() {\n return this.aptosWallet.icon;\n }\n get name() {\n return this.aptosWallet.name;\n }\n get url() {\n return this.aptosWallet.url;\n }\n\n get readyState() {\n return WalletReadyState.Installed;\n }\n\n get chains() {\n return APTOS_CHAINS;\n }\n\n get isConnected() {\n return this.connected;\n }\n\n async getAccount(): Promise {\n const account = await this.walletCore.account;\n if (!account) {\n throw new Error(\"Account not found\");\n }\n return account;\n }\n\n async getConnectedNetwork(): Promise {\n const network = await this.walletCore.network;\n if (!network) {\n throw new Error(\"Network not found\");\n }\n return network;\n }\n\n async connect(): Promise {\n await this.walletCore.connect(this.name);\n this.onAccountChange();\n this.connected = true;\n return this.walletCore.account;\n }\n\n async disconnect() {\n if (!this.connected) {\n return;\n }\n this.walletCore.off(\"accountChange\");\n await this.walletCore.disconnect();\n this.connected = false;\n }\n\n async signMessage(message: AptosSignMessageInput) {\n const result = await this.walletCore.signMessage(message);\n return result;\n }\n\n async signTransaction(args: {\n transactionOrPayload: AnyRawTransaction | InputTransactionData;\n asFeePayer?: boolean;\n }): Promise<{\n authenticator: AccountAuthenticator;\n rawTransaction: Uint8Array;\n }> {\n const result = await this.walletCore.signTransaction(args);\n return result;\n }\n\n onAccountChange() {\n this.walletCore.onAccountChange();\n this.walletCore.on(\n \"accountChange\",\n async (accountInfo: AccountInfo | null) => {\n this.emit(\"accountChange\", accountInfo);\n }\n );\n }\n\n async onNetworkChange(\n callback: (network: NetworkInfo) => void\n ): Promise {\n await this.walletCore.onNetworkChange();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4CAGO;AACP,iCAQO;AACP,6BAKO;AAEA,IAAM,kBAAkB,MAAqB;AAClD,QAAM,aAAa,IAAI,sCAAW;AAClC,QAAM,UAAU,WAAW,QAAQ;AAAA,IACjC,CAAC,WAAW,IAAI,YAAY,QAAQ,UAAU;AAAA,EAChD;AACA,SAAO;AACT;AAEO,IAAM,cAAN,cAA0B,oDAgB/B;AAAA,EASA,YAAY,aAA8B,YAAwB;AAChE,UAAM;AAPR,SAAS,UAAU;AAEnB,oBAA4B,CAAC;AAE7B,qBAAqB;AAInB,SAAK,cAAc;AACnB,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EACA,IAAI,OAAO;AACT,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EACA,IAAI,MAAM;AACR,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,uDAAiB;AAAA,EAC1B;AAAA,EAEA,IAAI,SAAS;AACX,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,aAAmC;AACvC,UAAM,UAAU,MAAM,KAAK,WAAW;AACtC,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,sBAA4C;AAChD,UAAM,UAAU,MAAM,KAAK,WAAW;AACtC,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAAuC;AAC3C,UAAM,KAAK,WAAW,QAAQ,KAAK,IAAI;AACvC,SAAK,gBAAgB;AACrB,SAAK,YAAY;AACjB,WAAO,KAAK,WAAW;AAAA,EACzB;AAAA,EAEA,MAAM,aAAa;AACjB,QAAI,CAAC,KAAK,WAAW;AACnB;AAAA,IACF;AACA,SAAK,WAAW,IAAI,eAAe;AACnC,UAAM,KAAK,WAAW,WAAW;AACjC,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,MAAM,YAAY,SAAgC;AAChD,UAAM,SAAS,MAAM,KAAK,WAAW,YAAY,OAAO;AACxD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,gBAAgB,MAMnB;AACD,UAAM,SAAS,MAAM,KAAK,WAAW,gBAAgB,IAAI;AACzD,WAAO;AAAA,EACT;AAAA,EAEA,kBAAkB;AAChB,SAAK,WAAW,gBAAgB;AAChC,SAAK,WAAW;AAAA,MACd;AAAA,MACA,OAAO,gBAAoC;AACzC,aAAK,KAAK,iBAAiB,WAAW;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,gBACJ,UACe;AACf,UAAM,KAAK,WAAW,gBAAgB;AAAA,EACxC;AACF;","names":[]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs new file mode 100644 index 00000000..6b7efb45 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs @@ -0,0 +1,99 @@ +// src/index.ts +import { + AdapterWallet, + WalletReadyState +} from "@aptos-labs/wallet-adapter-aggregator-core"; +import { + WalletCore +} from "@aptos-labs/wallet-adapter-core"; +import { + APTOS_CHAINS +} from "@aptos-labs/wallet-standard"; +var getAptosWallets = () => { + const walletCore = new WalletCore(); + const wallets = walletCore.wallets.map( + (wallet) => new AptosWallet(wallet, walletCore) + ); + return wallets; +}; +var AptosWallet = class extends AdapterWallet { + constructor(aptosWallet, walletCore) { + super(); + this.version = "1.0.0"; + this.accounts = []; + this.connected = false; + this.aptosWallet = aptosWallet; + this.walletCore = walletCore; + } + get icon() { + return this.aptosWallet.icon; + } + get name() { + return this.aptosWallet.name; + } + get url() { + return this.aptosWallet.url; + } + get readyState() { + return WalletReadyState.Installed; + } + get chains() { + return APTOS_CHAINS; + } + get isConnected() { + return this.connected; + } + async getAccount() { + const account = await this.walletCore.account; + if (!account) { + throw new Error("Account not found"); + } + return account; + } + async getConnectedNetwork() { + const network = await this.walletCore.network; + if (!network) { + throw new Error("Network not found"); + } + return network; + } + async connect() { + await this.walletCore.connect(this.name); + this.onAccountChange(); + this.connected = true; + return this.walletCore.account; + } + async disconnect() { + if (!this.connected) { + return; + } + this.walletCore.off("accountChange"); + await this.walletCore.disconnect(); + this.connected = false; + } + async signMessage(message) { + const result = await this.walletCore.signMessage(message); + return result; + } + async signTransaction(args) { + const result = await this.walletCore.signTransaction(args); + return result; + } + onAccountChange() { + this.walletCore.onAccountChange(); + this.walletCore.on( + "accountChange", + async (accountInfo) => { + this.emit("accountChange", accountInfo); + } + ); + } + async onNetworkChange(callback) { + await this.walletCore.onNetworkChange(); + } +}; +export { + AptosWallet, + getAptosWallets +}; +//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs.map b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs.map new file mode 100644 index 00000000..ca48b5ed --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n AdapterWallet,\n WalletReadyState,\n} from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport {\n AccountInfo,\n NetworkInfo,\n WalletCore,\n AdapterWallet as AptosBaseWallet,\n AnyRawTransaction,\n InputTransactionData,\n AccountAuthenticator,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport {\n APTOS_CHAINS,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\n\nexport const getAptosWallets = (): AptosWallet[] => {\n const walletCore = new WalletCore();\n const wallets = walletCore.wallets.map(\n (wallet) => new AptosWallet(wallet, walletCore)\n );\n return wallets;\n};\n\nexport class AptosWallet extends AdapterWallet<\n AccountInfo,\n NetworkInfo,\n AccountInfo | null,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n {\n transactionOrPayload: AnyRawTransaction | InputTransactionData;\n asFeePayer?: boolean;\n },\n {\n authenticator: AccountAuthenticator;\n rawTransaction: Uint8Array;\n },\n AccountInfo,\n NetworkInfo\n> {\n readonly aptosWallet: AptosBaseWallet;\n readonly walletCore: WalletCore;\n readonly version = \"1.0.0\";\n\n accounts: WalletAccount[] = [];\n\n connected: boolean = false;\n\n constructor(aptosWallet: AptosBaseWallet, walletCore: WalletCore) {\n super();\n this.aptosWallet = aptosWallet;\n this.walletCore = walletCore;\n }\n\n get icon() {\n return this.aptosWallet.icon;\n }\n get name() {\n return this.aptosWallet.name;\n }\n get url() {\n return this.aptosWallet.url;\n }\n\n get readyState() {\n return WalletReadyState.Installed;\n }\n\n get chains() {\n return APTOS_CHAINS;\n }\n\n get isConnected() {\n return this.connected;\n }\n\n async getAccount(): Promise {\n const account = await this.walletCore.account;\n if (!account) {\n throw new Error(\"Account not found\");\n }\n return account;\n }\n\n async getConnectedNetwork(): Promise {\n const network = await this.walletCore.network;\n if (!network) {\n throw new Error(\"Network not found\");\n }\n return network;\n }\n\n async connect(): Promise {\n await this.walletCore.connect(this.name);\n this.onAccountChange();\n this.connected = true;\n return this.walletCore.account;\n }\n\n async disconnect() {\n if (!this.connected) {\n return;\n }\n this.walletCore.off(\"accountChange\");\n await this.walletCore.disconnect();\n this.connected = false;\n }\n\n async signMessage(message: AptosSignMessageInput) {\n const result = await this.walletCore.signMessage(message);\n return result;\n }\n\n async signTransaction(args: {\n transactionOrPayload: AnyRawTransaction | InputTransactionData;\n asFeePayer?: boolean;\n }): Promise<{\n authenticator: AccountAuthenticator;\n rawTransaction: Uint8Array;\n }> {\n const result = await this.walletCore.signTransaction(args);\n return result;\n }\n\n onAccountChange() {\n this.walletCore.onAccountChange();\n this.walletCore.on(\n \"accountChange\",\n async (accountInfo: AccountInfo | null) => {\n this.emit(\"accountChange\", accountInfo);\n }\n );\n }\n\n async onNetworkChange(\n callback: (network: NetworkInfo) => void\n ): Promise {\n await this.walletCore.onNetworkChange();\n }\n}\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EAGE;AAAA,OAKK;AACP;AAAA,EACE;AAAA,OAIK;AAEA,IAAM,kBAAkB,MAAqB;AAClD,QAAM,aAAa,IAAI,WAAW;AAClC,QAAM,UAAU,WAAW,QAAQ;AAAA,IACjC,CAAC,WAAW,IAAI,YAAY,QAAQ,UAAU;AAAA,EAChD;AACA,SAAO;AACT;AAEO,IAAM,cAAN,cAA0B,cAgB/B;AAAA,EASA,YAAY,aAA8B,YAAwB;AAChE,UAAM;AAPR,SAAS,UAAU;AAEnB,oBAA4B,CAAC;AAE7B,qBAAqB;AAInB,SAAK,cAAc;AACnB,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EACA,IAAI,OAAO;AACT,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EACA,IAAI,MAAM;AACR,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,iBAAiB;AAAA,EAC1B;AAAA,EAEA,IAAI,SAAS;AACX,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,aAAmC;AACvC,UAAM,UAAU,MAAM,KAAK,WAAW;AACtC,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,sBAA4C;AAChD,UAAM,UAAU,MAAM,KAAK,WAAW;AACtC,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAAuC;AAC3C,UAAM,KAAK,WAAW,QAAQ,KAAK,IAAI;AACvC,SAAK,gBAAgB;AACrB,SAAK,YAAY;AACjB,WAAO,KAAK,WAAW;AAAA,EACzB;AAAA,EAEA,MAAM,aAAa;AACjB,QAAI,CAAC,KAAK,WAAW;AACnB;AAAA,IACF;AACA,SAAK,WAAW,IAAI,eAAe;AACnC,UAAM,KAAK,WAAW,WAAW;AACjC,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,MAAM,YAAY,SAAgC;AAChD,UAAM,SAAS,MAAM,KAAK,WAAW,YAAY,OAAO;AACxD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,gBAAgB,MAMnB;AACD,UAAM,SAAS,MAAM,KAAK,WAAW,gBAAgB,IAAI;AACzD,WAAO;AAAA,EACT;AAAA,EAEA,kBAAkB;AAChB,SAAK,WAAW,gBAAgB;AAChC,SAAK,WAAW;AAAA,MACd;AAAA,MACA,OAAO,gBAAoC;AACzC,aAAK,KAAK,iBAAiB,WAAW;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,gBACJ,UACe;AACf,UAAM,KAAK,WAAW,gBAAgB;AAAA,EACxC;AACF;","names":[]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts new file mode 100644 index 00000000..f0a8b82c --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts @@ -0,0 +1,41 @@ +import EventEmitter from "eventemitter3"; +import { AccountInfo, NetworkInfo, WalletAccount } from "@aptos-labs/wallet-standard"; +export type UsdcBalance = { + amount: string; + decimal: number; + display: string; +}; +export declare enum WalletReadyState { + /** + * Wallet can only be in one of two states - installed or not installed + * Installed: wallets are detected by the browser event listeners and means they are installed on the user's browser. + * NotDetected: wallets are not detected by the browser event listeners and means they are not installed on the user's browser. + */ + Installed = "Installed", + NotDetected = "NotDetected" +} +export declare interface WalletEvents { + connect(account: AccountInfo | null): void; + disconnect(): void; + networkChange(network: NetworkInfo | null): void; + accountChange(account: AccountInfo | null): void; +} +export declare abstract class AdapterWallet extends EventEmitter { + abstract readonly version: "1.0.0"; + abstract accounts: WalletAccount[]; + abstract get name(): string; + abstract get icon(): any; + abstract get url(): string; + abstract get readyState(): WalletReadyState; + abstract getAccount(): Promise; + abstract getConnectedNetwork(): Promise; + abstract connect(): Promise; + abstract disconnect(): Promise; + abstract signMessage(message: SignMessageInput): Promise; + abstract signTransaction(transaction: SignTransactionInput): Promise; + abstract onAccountChange(callback: (account: OnAccountChangeInput) => void): void; + abstract onNetworkChange(callback: (network: OnNetworkChangeInput) => void): void; + sendTransaction?(transaction: SendTransactionInput): Promise; + getAccountUsdcBalance?(): Promise; +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts.map new file mode 100644 index 00000000..295a1fc1 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,gBAAgB;IAC1B;;;;OAIG;IACH,SAAS,cAAc;IACvB,WAAW,gBAAgB;CAC5B;AAED,MAAM,CAAC,OAAO,WAAW,YAAY;IACnC,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3C,UAAU,IAAI,IAAI,CAAC;IACnB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;IACjD,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;CAClD;AAED,8BAAsB,aAAa,CACjC,gBAAgB,GAAG,GAAG,EACtB,yBAAyB,GAAG,GAAG,EAC/B,aAAa,GAAG,GAAG,EACnB,gBAAgB,GAAG,GAAG,EACtB,iBAAiB,GAAG,GAAG,EACvB,oBAAoB,GAAG,GAAG,EAC1B,qBAAqB,GAAG,GAAG,EAC3B,oBAAoB,GAAG,GAAG,EAC1B,oBAAoB,GAAG,GAAG,EAC1B,oBAAoB,GAAG,GAAG,EAC1B,qBAAqB,GAAG,GAAG,CAC3B,SAAQ,YAAY,CAAC,YAAY,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;IACnC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAC5B,QAAQ,KAAK,IAAI,IAAI,GAAG,CAAC;IACzB,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAC;IAC3B,QAAQ,KAAK,UAAU,IAAI,gBAAgB,CAAC;IAE5C,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAChD,QAAQ,CAAC,mBAAmB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAClE,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAC1C,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAC3E,QAAQ,CAAC,eAAe,CACtB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,qBAAqB,CAAC;IACjC,QAAQ,CAAC,eAAe,CACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,GAChD,IAAI;IACP,QAAQ,CAAC,eAAe,CACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,GAChD,IAAI;IACP,eAAe,CAAC,CACd,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,qBAAqB,CAAC;IAGjC,qBAAqB,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC;CAG/C"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js new file mode 100644 index 00000000..206f91ee --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js @@ -0,0 +1,52 @@ +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + AdapterWallet: () => AdapterWallet, + WalletReadyState: () => WalletReadyState +}); +module.exports = __toCommonJS(src_exports); +var import_eventemitter3 = __toESM(require("eventemitter3")); +var WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => { + WalletReadyState2["Installed"] = "Installed"; + WalletReadyState2["NotDetected"] = "NotDetected"; + return WalletReadyState2; +})(WalletReadyState || {}); +var AdapterWallet = class extends import_eventemitter3.default { + sendTransaction(transaction) { + throw new Error("Not implemented"); + } + getAccountUsdcBalance() { + throw new Error("Not implemented"); + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + AdapterWallet, + WalletReadyState +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js.map b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js.map new file mode 100644 index 00000000..f5f503a9 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import EventEmitter from \"eventemitter3\";\nimport {\n AccountInfo,\n NetworkInfo,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\n\nexport type UsdcBalance = {\n amount: string;\n decimal: number;\n display: string;\n};\n\nexport enum WalletReadyState {\n /**\n * Wallet can only be in one of two states - installed or not installed\n * Installed: wallets are detected by the browser event listeners and means they are installed on the user's browser.\n * NotDetected: wallets are not detected by the browser event listeners and means they are not installed on the user's browser.\n */\n Installed = \"Installed\",\n NotDetected = \"NotDetected\",\n}\n\nexport declare interface WalletEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport abstract class AdapterWallet<\n GetAccountOutput = any,\n GetConnectedNetworkOutput = any,\n ConnectOutput = any,\n SignMessageInput = any,\n SignMessageOutput = any,\n SignTransactionInput = any,\n SignTransactionOutput = any,\n OnAccountChangeInput = any,\n OnNetworkChangeInput = any,\n SendTransactionInput = any,\n SendTransactionOutput = any,\n> extends EventEmitter {\n abstract readonly version: \"1.0.0\";\n abstract accounts: WalletAccount[];\n abstract get name(): string;\n abstract get icon(): any;\n abstract get url(): string;\n abstract get readyState(): WalletReadyState;\n\n abstract getAccount(): Promise;\n abstract getConnectedNetwork(): Promise;\n abstract connect(): Promise;\n abstract disconnect(): Promise;\n abstract signMessage(message: SignMessageInput): Promise;\n abstract signTransaction(\n transaction: SignTransactionInput\n ): Promise;\n abstract onAccountChange(\n callback: (account: OnAccountChangeInput) => void\n ): void;\n abstract onNetworkChange(\n callback: (network: OnNetworkChangeInput) => void\n ): void;\n sendTransaction?(\n transaction: SendTransactionInput\n ): Promise {\n throw new Error(\"Not implemented\");\n }\n getAccountUsdcBalance?(): Promise {\n throw new Error(\"Not implemented\");\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAyB;AAalB,IAAK,mBAAL,kBAAKA,sBAAL;AAML,EAAAA,kBAAA,eAAY;AACZ,EAAAA,kBAAA,iBAAc;AAPJ,SAAAA;AAAA,GAAA;AAiBL,IAAe,gBAAf,cAYG,qBAAAC,QAA2B;AAAA,EAsBnC,gBACE,aACgC;AAChC,UAAM,IAAI,MAAM,iBAAiB;AAAA,EACnC;AAAA,EACA,wBAA+C;AAC7C,UAAM,IAAI,MAAM,iBAAiB;AAAA,EACnC;AACF;","names":["WalletReadyState","EventEmitter"]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs new file mode 100644 index 00000000..6c55adf3 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs @@ -0,0 +1,20 @@ +// src/index.ts +import EventEmitter from "eventemitter3"; +var WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => { + WalletReadyState2["Installed"] = "Installed"; + WalletReadyState2["NotDetected"] = "NotDetected"; + return WalletReadyState2; +})(WalletReadyState || {}); +var AdapterWallet = class extends EventEmitter { + sendTransaction(transaction) { + throw new Error("Not implemented"); + } + getAccountUsdcBalance() { + throw new Error("Not implemented"); + } +}; +export { + AdapterWallet, + WalletReadyState +}; +//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs.map b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs.map new file mode 100644 index 00000000..5a7ef143 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import EventEmitter from \"eventemitter3\";\nimport {\n AccountInfo,\n NetworkInfo,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\n\nexport type UsdcBalance = {\n amount: string;\n decimal: number;\n display: string;\n};\n\nexport enum WalletReadyState {\n /**\n * Wallet can only be in one of two states - installed or not installed\n * Installed: wallets are detected by the browser event listeners and means they are installed on the user's browser.\n * NotDetected: wallets are not detected by the browser event listeners and means they are not installed on the user's browser.\n */\n Installed = \"Installed\",\n NotDetected = \"NotDetected\",\n}\n\nexport declare interface WalletEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport abstract class AdapterWallet<\n GetAccountOutput = any,\n GetConnectedNetworkOutput = any,\n ConnectOutput = any,\n SignMessageInput = any,\n SignMessageOutput = any,\n SignTransactionInput = any,\n SignTransactionOutput = any,\n OnAccountChangeInput = any,\n OnNetworkChangeInput = any,\n SendTransactionInput = any,\n SendTransactionOutput = any,\n> extends EventEmitter {\n abstract readonly version: \"1.0.0\";\n abstract accounts: WalletAccount[];\n abstract get name(): string;\n abstract get icon(): any;\n abstract get url(): string;\n abstract get readyState(): WalletReadyState;\n\n abstract getAccount(): Promise;\n abstract getConnectedNetwork(): Promise;\n abstract connect(): Promise;\n abstract disconnect(): Promise;\n abstract signMessage(message: SignMessageInput): Promise;\n abstract signTransaction(\n transaction: SignTransactionInput\n ): Promise;\n abstract onAccountChange(\n callback: (account: OnAccountChangeInput) => void\n ): void;\n abstract onNetworkChange(\n callback: (network: OnNetworkChangeInput) => void\n ): void;\n sendTransaction?(\n transaction: SendTransactionInput\n ): Promise {\n throw new Error(\"Not implemented\");\n }\n getAccountUsdcBalance?(): Promise {\n throw new Error(\"Not implemented\");\n }\n}\n"],"mappings":";AAAA,OAAO,kBAAkB;AAalB,IAAK,mBAAL,kBAAKA,sBAAL;AAML,EAAAA,kBAAA,eAAY;AACZ,EAAAA,kBAAA,iBAAc;AAPJ,SAAAA;AAAA,GAAA;AAiBL,IAAe,gBAAf,cAYG,aAA2B;AAAA,EAsBnC,gBACE,aACgC;AAChC,UAAM,IAAI,MAAM,iBAAiB;AAAA,EACnC;AAAA,EACA,wBAA+C;AAC7C,UAAM,IAAI,MAAM,iBAAiB;AAAA,EACnC;AACF;","names":["WalletReadyState"]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts new file mode 100644 index 00000000..b5bc4b8e --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts @@ -0,0 +1,72 @@ +import { AptosSignMessageInput, AptosSignMessageOutput, AptosWallet, NetworkInfo, UserResponse, WalletAccount } from "@aptos-labs/wallet-standard"; +import { ethers, TransactionRequest } from "ethers"; +import { AdapterWallet, WalletReadyState } from "@aptos-labs/wallet-adapter-aggregator-core"; +export type EIP6963ProviderInfo = { + info: { + uuid: string; + name: string; + icon: `data:image/svg+xml;base64,${string}`; + rdns: string; + }; + provider: any; +}; +export declare enum Eip6963Wallets { + PhantomWallet = "Phantom", + MetaMaskWallet = "MetaMask", + BackpackWallet = "Backpack", + CoinbaseWallet = "Coinbase Wallet", + NightlyWallet = "Nightly", + RabbyWallet = "Rabby Wallet" +} +export declare const Eip6963WalletUrls: Record; +export declare function fetchEthereumWallets(): AdapterWallet[]; +export type Eip6963AccountInfo = { + address: string; + publicKey: Uint8Array; +}; +export type Eip6963Features = { + "eip6963:connect": { + connect: () => Promise>; + version: string; + }; + "eip6963:account": { + account: () => Promise; + version: string; + }; + "eip6963:sendTransaction": { + sendTransaction: (transaction: TransactionRequest, provider: ethers.BrowserProvider) => Promise>; + version: string; + }; + "eip6963:onAccountChange": { + onAccountChange: (callback: (newAccount: Eip6963AccountInfo) => void) => void; + version: string; + }; +}; +export type Eip6963BaseWallet = AptosWallet & { + features: Eip6963Features; +}; +export declare class Eip6963Wallet extends AdapterWallet { + readonly eip6963Wallet: Eip6963BaseWallet; + readonly eip6963WalletProvider: EIP6963ProviderInfo; + readonly version = "1.0.0"; + private provider?; + accounts: WalletAccount[]; + connected: boolean; + constructor(eip6963Wallet: Eip6963BaseWallet, eip6963WalletProvider: EIP6963ProviderInfo); + get icon(): `data:image/svg+xml;base64,${string}` | `data:image/webp;base64,${string}` | `data:image/png;base64,${string}` | `data:image/gif;base64,${string}`; + get name(): string; + get url(): string; + get readyState(): WalletReadyState; + get chains(): readonly ["aptos:devnet", "aptos:testnet", "aptos:localnet", "aptos:mainnet"]; + get isConnected(): boolean; + getAccount(): Promise; + getConnectedNetwork(): Promise; + connect(): Promise; + disconnect(): Promise; + signMessage(message: AptosSignMessageInput): Promise; + signTransaction(transaction: TransactionRequest): Promise; + sendTransaction(transaction: TransactionRequest): Promise; + onAccountChange(): Promise; + onNetworkChange(): Promise; +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts.map new file mode 100644 index 00000000..880ede03 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js new file mode 100644 index 00000000..4b08398e --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js @@ -0,0 +1,348 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + Eip6963Wallet: () => Eip6963Wallet, + Eip6963WalletUrls: () => Eip6963WalletUrls, + Eip6963Wallets: () => Eip6963Wallets2, + fetchEthereumWallets: () => fetchEthereumWallets +}); +module.exports = __toCommonJS(src_exports); +var import_wallet_standard2 = require("@aptos-labs/wallet-standard"); +var import_ethers2 = require("ethers"); +var import_wallet_adapter_aggregator_core = require("@aptos-labs/wallet-adapter-aggregator-core"); + +// src/utils.ts +var import_wallet_standard = require("@aptos-labs/wallet-standard"); +var import_ethers = require("ethers"); +var convertEip6963WalletToAptosWallet = (eip6963Wallet) => { + const wallet = { + accounts: [], + chains: import_wallet_standard.APTOS_CHAINS, + features: { + ...APTOS_REQUIRED_FEATURES(eip6963Wallet), + ...EIP6963_ADDITIONAL_FEATURES(eip6963Wallet) + }, + icon: eip6963Wallet.info.icon, + name: eip6963Wallet.info.name, + url: Eip6963WalletUrls[eip6963Wallet.info.name], + version: "1.0.0" + }; + return wallet; +}; +var APTOS_REQUIRED_FEATURES = (eip6963Wallet) => { + return { + "aptos:account": { + account: async () => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0" + }, + "aptos:connect": { + connect: async () => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0" + }, + "aptos:disconnect": { + disconnect: async () => { + try { + eip6963Wallet.provider.on("disconnect", (error) => { + console.error("EIP-6963 wallet disconnected", error); + }); + } catch (error) { + throw new Error("Failed to disconnect").message; + } + }, + version: "1.0.0" + }, + "aptos:network": { + network: async () => { + const chainId = await eip6963Wallet.provider.request({ + method: "eth_chainId" + }); + return { name: parseInt(chainId, 16), chainId }; + }, + version: "1.0.0" + }, + "aptos:signMessage": { + signMessage: async (message) => { + const accounts = await eip6963Wallet.provider.request({ method: "eth_requestAccounts" }).catch(console.error); + const signature = await eip6963Wallet.provider.request({ + method: "personal_sign", + params: [message.message, accounts[0]] + }); + const response = { + fullMessage: message.message, + message: message.message, + nonce: message.nonce, + prefix: "APTOS", + signature + }; + return { + status: import_wallet_standard.UserResponseStatus.APPROVED, + args: response + }; + }, + version: "1.0.0" + }, + "aptos:signTransaction": { + signTransaction: async (transaction) => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0" + }, + "aptos:onAccountChange": { + onAccountChange: async (callback) => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0" + }, + "aptos:onNetworkChange": { + onNetworkChange: async (callback) => { + eip6963Wallet.provider.on("chainChanged", (chainId) => { + console.log("chainId", chainId); + callback({ + name: parseInt(chainId), + chainId: parseInt(chainId) + }); + }); + }, + version: "1.0.0" + } + }; +}; +var EIP6963_ADDITIONAL_FEATURES = (eip6963Wallet) => { + const features = { + "eip6963:account": { + account: async () => { + const accounts = await eip6963Wallet.provider.request({ method: "eth_requestAccounts" }).catch(console.error); + return { + address: accounts[0], + publicKey: import_ethers.ethers.getBytes(accounts[0]) + }; + }, + version: "1.0.0" + }, + "eip6963:connect": { + connect: async () => { + try { + const accounts = await eip6963Wallet.provider.request({ method: "eth_requestAccounts" }).catch((error) => { + throw new Error("Error connecting to wallet" + error).message; + }); + return { + args: { + address: accounts[0], + publicKey: import_ethers.ethers.getBytes(accounts[0]) + }, + status: import_wallet_standard.UserResponseStatus.APPROVED + }; + } catch (error) { + if (error instanceof Error && error.message.includes("refused connection")) { + return { + status: import_wallet_standard.UserResponseStatus.REJECTED + }; + } + throw error; + } + }, + version: "1.0.0" + }, + "eip6963:sendTransaction": { + sendTransaction: async (transaction, provider) => { + try { + const signer = await provider.getSigner(); + if (!signer) { + throw new Error("No signer found"); + } + const response = await signer.sendTransaction(transaction); + const receipt = await response.wait(); + return { + status: import_wallet_standard.UserResponseStatus.APPROVED, + args: (receipt == null ? void 0 : receipt.hash) || "" + }; + } catch (error) { + if (error instanceof Error && error.message.includes("rejected")) { + return { + status: import_wallet_standard.UserResponseStatus.REJECTED + }; + } + throw new Error(error).message; + } + }, + version: "1.0.0" + }, + "eip6963:onAccountChange": { + onAccountChange: async (callback) => { + eip6963Wallet.provider.on( + "accountsChanged", + (accounts) => { + const accountInfo = { + address: accounts[0], + publicKey: import_ethers.ethers.getBytes(accounts[0]) + }; + callback(accountInfo); + } + ); + }, + version: "1.0.0" + } + }; + return features; +}; + +// src/index.ts +var Eip6963Wallets2 = /* @__PURE__ */ ((Eip6963Wallets3) => { + Eip6963Wallets3["PhantomWallet"] = "Phantom"; + Eip6963Wallets3["MetaMaskWallet"] = "MetaMask"; + Eip6963Wallets3["BackpackWallet"] = "Backpack"; + Eip6963Wallets3["CoinbaseWallet"] = "Coinbase Wallet"; + Eip6963Wallets3["NightlyWallet"] = "Nightly"; + Eip6963Wallets3["RabbyWallet"] = "Rabby Wallet"; + return Eip6963Wallets3; +})(Eip6963Wallets2 || {}); +var Eip6963WalletUrls = { + ["Phantom" /* PhantomWallet */]: "https://phantom.app/", + ["MetaMask" /* MetaMaskWallet */]: "https://metamask.io/", + ["Backpack" /* BackpackWallet */]: "https://www.backpack.app/", + ["Coinbase Wallet" /* CoinbaseWallet */]: "https://www.coinbase.com/wallet", + ["Nightly" /* NightlyWallet */]: "https://nightly.app/", + ["Rabby Wallet" /* RabbyWallet */]: "https://rabby.io/" +}; +function fetchEthereumWallets() { + const wallets = []; + const convertedWallets = []; + const handleWalletDiscovery = (event) => { + const wallet = event.detail; + if (!wallets.some((w) => w.info.uuid === wallet.info.uuid)) { + wallets.push(wallet); + convertedWallets.push( + new Eip6963Wallet(convertEip6963WalletToAptosWallet(wallet), wallet) + ); + } + }; + window.addEventListener("eip6963:announceProvider", (event) => { + handleWalletDiscovery(event); + }); + window.dispatchEvent(new Event("eip6963:requestProvider")); + return convertedWallets; +} +var Eip6963Wallet = class extends import_wallet_adapter_aggregator_core.AdapterWallet { + constructor(eip6963Wallet, eip6963WalletProvider) { + super(); + this.version = "1.0.0"; + this.accounts = []; + this.connected = false; + this.eip6963Wallet = eip6963Wallet; + this.eip6963WalletProvider = eip6963WalletProvider; + } + get icon() { + return this.eip6963Wallet.icon; + } + get name() { + return this.eip6963Wallet.name; + } + get url() { + return Eip6963WalletUrls[this.eip6963Wallet.name]; + } + get readyState() { + return import_wallet_adapter_aggregator_core.WalletReadyState.Installed; + } + get chains() { + return import_wallet_standard2.APTOS_CHAINS; + } + get isConnected() { + return this.connected; + } + async getAccount() { + return await this.eip6963Wallet.features["eip6963:account"].account(); + } + async getConnectedNetwork() { + return await this.eip6963Wallet.features["aptos:network"].network(); + } + async connect() { + const result = await this.eip6963Wallet.features["eip6963:connect"].connect(); + if (result.status === import_wallet_standard2.UserResponseStatus.REJECTED) { + throw new Error("User rejected the request").message; + } + await this.onAccountChange(); + await this.onNetworkChange(); + this.provider = new import_ethers2.ethers.BrowserProvider( + await this.eip6963WalletProvider.provider, + "any" + ); + this.connected = true; + return result.args; + } + async disconnect() { + try { + if (!this.connected) { + return; + } + await this.eip6963Wallet.features["aptos:disconnect"].disconnect(); + this.connected = false; + } catch (error) { + throw new Error(error).message; + } + } + async signMessage(message) { + const result = await this.eip6963Wallet.features["aptos:signMessage"].signMessage( + message + ); + if (result.status === import_wallet_standard2.UserResponseStatus.REJECTED) { + throw new Error("User rejected the request").message; + } + return result.args; + } + async signTransaction(transaction) { + throw new Error("Not implemented"); + } + async sendTransaction(transaction) { + if (!this.provider) { + throw new Error("Provider not connected"); + } + const result = await this.eip6963Wallet.features["eip6963:sendTransaction"].sendTransaction(transaction, this.provider); + if (result.status === import_wallet_standard2.UserResponseStatus.REJECTED) { + throw new Error("User rejected the request").message; + } + return result.args; + } + async onAccountChange() { + await this.eip6963Wallet.features["eip6963:onAccountChange"].onAccountChange((account) => { + this.emit("accountChange", account); + }); + } + async onNetworkChange() { + await this.eip6963Wallet.features["aptos:onNetworkChange"].onNetworkChange( + (newNetwork) => { + this.emit("networkChange", newNetwork); + } + ); + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + Eip6963Wallet, + Eip6963WalletUrls, + Eip6963Wallets, + fetchEthereumWallets +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js.map b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js.map new file mode 100644 index 00000000..24d4d027 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts","../src/utils.ts"],"sourcesContent":["import {\n APTOS_CHAINS,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosWallet,\n NetworkInfo,\n UserResponse,\n UserResponseStatus,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\nimport { ethers, TransactionRequest } from \"ethers\";\nimport {\n AdapterWallet,\n WalletReadyState,\n UsdcBalance,\n} from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { convertEip6963WalletToAptosWallet } from \"./utils\";\n\nexport type EIP6963ProviderInfo = {\n info: {\n uuid: string;\n name: string;\n icon: `data:image/svg+xml;base64,${string}`;\n rdns: string;\n };\n provider: any;\n};\n\nexport enum Eip6963Wallets {\n PhantomWallet = \"Phantom\",\n MetaMaskWallet = \"MetaMask\",\n BackpackWallet = \"Backpack\",\n CoinbaseWallet = \"Coinbase Wallet\",\n NightlyWallet = \"Nightly\",\n RabbyWallet = \"Rabby Wallet\",\n}\n\nexport const Eip6963WalletUrls: Record = {\n [Eip6963Wallets.PhantomWallet]: \"https://phantom.app/\",\n [Eip6963Wallets.MetaMaskWallet]: \"https://metamask.io/\",\n [Eip6963Wallets.BackpackWallet]: \"https://www.backpack.app/\",\n [Eip6963Wallets.CoinbaseWallet]: \"https://www.coinbase.com/wallet\",\n [Eip6963Wallets.NightlyWallet]: \"https://nightly.app/\",\n [Eip6963Wallets.RabbyWallet]: \"https://rabby.io/\",\n};\n\nexport function fetchEthereumWallets(): AdapterWallet[] {\n const wallets: EIP6963ProviderInfo[] = [];\n const convertedWallets: AdapterWallet[] = [];\n\n const handleWalletDiscovery = (event: CustomEvent) => {\n const wallet = event.detail as EIP6963ProviderInfo;\n\n // Avoid duplicates\n if (!wallets.some((w) => w.info.uuid === wallet.info.uuid)) {\n wallets.push(wallet);\n convertedWallets.push(\n new Eip6963Wallet(convertEip6963WalletToAptosWallet(wallet), wallet)\n );\n }\n };\n\n window.addEventListener(\"eip6963:announceProvider\", (event) => {\n handleWalletDiscovery(event as CustomEvent);\n });\n // Request wallets to announce themselves\n window.dispatchEvent(new Event(\"eip6963:requestProvider\"));\n\n return convertedWallets;\n}\n\nexport type Eip6963AccountInfo = {\n address: string;\n publicKey: Uint8Array;\n};\n\nexport type Eip6963Features = {\n \"eip6963:connect\": {\n connect: () => Promise>;\n version: string;\n };\n \"eip6963:account\": {\n account: () => Promise;\n version: string;\n };\n \"eip6963:sendTransaction\": {\n sendTransaction: (\n transaction: TransactionRequest,\n provider: ethers.BrowserProvider\n ) => Promise>;\n version: string;\n };\n \"eip6963:onAccountChange\": {\n onAccountChange: (\n callback: (newAccount: Eip6963AccountInfo) => void\n ) => void;\n version: string;\n };\n};\n\nexport type Eip6963BaseWallet = AptosWallet & {\n features: Eip6963Features;\n};\n\nexport class Eip6963Wallet extends AdapterWallet<\n Eip6963AccountInfo,\n NetworkInfo,\n Eip6963AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n TransactionRequest,\n TransactionRequest,\n Eip6963AccountInfo,\n NetworkInfo,\n TransactionRequest,\n string\n> {\n readonly eip6963Wallet: Eip6963BaseWallet;\n readonly eip6963WalletProvider: EIP6963ProviderInfo;\n readonly version = \"1.0.0\";\n private provider?: ethers.BrowserProvider;\n\n accounts: WalletAccount[] = [];\n\n connected: boolean = false;\n\n constructor(\n eip6963Wallet: Eip6963BaseWallet,\n eip6963WalletProvider: EIP6963ProviderInfo\n ) {\n super();\n this.eip6963Wallet = eip6963Wallet;\n this.eip6963WalletProvider = eip6963WalletProvider;\n }\n\n get icon() {\n return this.eip6963Wallet.icon;\n }\n get name() {\n return this.eip6963Wallet.name;\n }\n get url() {\n return Eip6963WalletUrls[this.eip6963Wallet.name as Eip6963Wallets];\n }\n get readyState() {\n return WalletReadyState.Installed;\n }\n get chains() {\n return APTOS_CHAINS;\n }\n\n get isConnected() {\n return this.connected;\n }\n\n async getAccount() {\n return await this.eip6963Wallet.features[\"eip6963:account\"].account();\n }\n\n async getConnectedNetwork() {\n return await this.eip6963Wallet.features[\"aptos:network\"].network();\n }\n\n async connect() {\n const result =\n await this.eip6963Wallet.features[\"eip6963:connect\"].connect();\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n await this.onAccountChange();\n await this.onNetworkChange();\n this.provider = new ethers.BrowserProvider(\n (await this.eip6963WalletProvider.provider) as ethers.Eip1193Provider,\n \"any\"\n );\n this.connected = true;\n return result.args;\n }\n\n async disconnect() {\n try {\n if (!this.connected) {\n return;\n }\n await this.eip6963Wallet.features[\"aptos:disconnect\"].disconnect();\n this.connected = false;\n } catch (error: any) {\n throw new Error(error).message;\n }\n }\n\n async signMessage(message: AptosSignMessageInput) {\n const result =\n await this.eip6963Wallet.features[\"aptos:signMessage\"].signMessage(\n message\n );\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n return result.args;\n }\n\n async signTransaction(\n transaction: TransactionRequest\n ): Promise {\n throw new Error(\"Not implemented\");\n }\n\n async sendTransaction(transaction: TransactionRequest): Promise {\n if (!this.provider) {\n throw new Error(\"Provider not connected\");\n }\n const result = await this.eip6963Wallet.features[\n \"eip6963:sendTransaction\"\n ].sendTransaction(transaction, this.provider);\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n return result.args;\n }\n\n async onAccountChange() {\n await this.eip6963Wallet.features[\n \"eip6963:onAccountChange\"\n ].onAccountChange((account) => {\n // @ts-ignore-next-line\n this.emit(\"accountChange\", account);\n });\n }\n\n async onNetworkChange() {\n await this.eip6963Wallet.features[\"aptos:onNetworkChange\"].onNetworkChange(\n (newNetwork) => {\n this.emit(\"networkChange\", newNetwork);\n }\n );\n }\n}\n","import {\n APTOS_CHAINS,\n AptosFeatures,\n AptosOnAccountChangeInput,\n AptosOnNetworkChangeInput,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n UserResponse,\n UserResponseStatus,\n} from \"@aptos-labs/wallet-standard\";\nimport { AnyRawTransaction } from \"@aptos-labs/ts-sdk\";\nimport { ethers, TransactionRequest, version } from \"ethers\";\nimport {\n Eip6963BaseWallet,\n Eip6963Features,\n EIP6963ProviderInfo,\n Eip6963Wallets,\n Eip6963WalletUrls,\n} from \".\";\n\nexport const convertEip6963WalletToAptosWallet = (\n eip6963Wallet: EIP6963ProviderInfo\n) => {\n const wallet: Eip6963BaseWallet = {\n accounts: [],\n chains: APTOS_CHAINS,\n features: {\n ...APTOS_REQUIRED_FEATURES(eip6963Wallet),\n ...EIP6963_ADDITIONAL_FEATURES(eip6963Wallet),\n },\n icon: eip6963Wallet.info.icon,\n name: eip6963Wallet.info.name,\n url: Eip6963WalletUrls[eip6963Wallet.info.name as Eip6963Wallets],\n version: \"1.0.0\",\n };\n return wallet;\n};\n\nconst APTOS_REQUIRED_FEATURES = (\n eip6963Wallet: EIP6963ProviderInfo\n): AptosFeatures => {\n return {\n \"aptos:account\": {\n account: async () => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:connect\": {\n connect: async () => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:disconnect\": {\n disconnect: async () => {\n try {\n eip6963Wallet.provider.on(\"disconnect\", (error: any) => {\n console.error(\"EIP-6963 wallet disconnected\", error);\n });\n } catch (error) {\n throw new Error(\"Failed to disconnect\").message;\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:network\": {\n network: async () => {\n const chainId = await eip6963Wallet.provider.request({\n method: \"eth_chainId\",\n });\n /**\n * The returned chain ID is in hexadecimal, need to convert to decimal.\n */\n // TODO: create an internal chainId->name mapping database\n return { name: parseInt(chainId, 16) as any, chainId };\n },\n version: \"1.0.0\",\n },\n \"aptos:signMessage\": {\n signMessage: async (message: AptosSignMessageInput) => {\n const accounts = await eip6963Wallet.provider\n .request({ method: \"eth_requestAccounts\" })\n .catch(console.error);\n const signature = await eip6963Wallet.provider.request({\n method: \"personal_sign\",\n params: [message.message, accounts[0]],\n });\n const response: AptosSignMessageOutput = {\n // address?: string;\n // application?: string;\n // chainId?: number;\n fullMessage: message.message,\n message: message.message,\n nonce: message.nonce,\n prefix: \"APTOS\",\n signature: signature as any,\n };\n return {\n status: UserResponseStatus.APPROVED,\n args: response,\n };\n },\n version: \"1.0.0\",\n },\n \"aptos:signTransaction\": {\n signTransaction: async (transaction: AnyRawTransaction) => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:onAccountChange\": {\n onAccountChange: async (callback: AptosOnAccountChangeInput) => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:onNetworkChange\": {\n onNetworkChange: async (callback: AptosOnNetworkChangeInput) => {\n eip6963Wallet.provider.on(\"chainChanged\", (chainId: string) => {\n console.log(\"chainId\", chainId);\n callback({\n // TODO: create an internal chainId->name mapping database\n name: parseInt(chainId) as any,\n chainId: parseInt(chainId),\n });\n });\n },\n version: \"1.0.0\",\n },\n };\n};\n\nconst EIP6963_ADDITIONAL_FEATURES = (\n eip6963Wallet: EIP6963ProviderInfo\n): Eip6963Features => {\n const features: Eip6963Features = {\n \"eip6963:account\": {\n account: async () => {\n const accounts = await eip6963Wallet.provider\n .request({ method: \"eth_requestAccounts\" })\n .catch(console.error);\n return {\n address: accounts[0],\n publicKey: ethers.getBytes(accounts[0]),\n };\n },\n version: \"1.0.0\",\n },\n \"eip6963:connect\": {\n connect: async () => {\n try {\n const accounts = await eip6963Wallet.provider\n .request({ method: \"eth_requestAccounts\" })\n .catch((error: any) => {\n throw new Error(\"Error connecting to wallet\" + error).message;\n });\n\n return {\n args: {\n address: accounts[0],\n publicKey: ethers.getBytes(accounts[0]),\n },\n status: UserResponseStatus.APPROVED,\n };\n } catch (error) {\n if (\n error instanceof Error &&\n error.message.includes(\"refused connection\")\n ) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw error;\n }\n },\n version: \"1.0.0\",\n },\n \"eip6963:sendTransaction\": {\n sendTransaction: async (\n transaction: TransactionRequest,\n provider: ethers.BrowserProvider\n ): Promise> => {\n try {\n const signer = await provider.getSigner();\n if (!signer) {\n throw new Error(\"No signer found\");\n }\n const response = await signer.sendTransaction(transaction);\n const receipt = await response.wait();\n return {\n status: UserResponseStatus.APPROVED,\n args: receipt?.hash || \"\",\n };\n } catch (error: any) {\n if (error instanceof Error && error.message.includes(\"rejected\")) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw new Error(error).message;\n }\n },\n version: \"1.0.0\",\n },\n \"eip6963:onAccountChange\": {\n onAccountChange: async (\n callback: (newAccount: {\n address: string;\n publicKey: Uint8Array;\n }) => void\n ) => {\n eip6963Wallet.provider.on(\n \"accountsChanged\",\n (accounts: Array) => {\n const accountInfo = {\n address: accounts[0],\n publicKey: ethers.getBytes(accounts[0]),\n };\n callback(accountInfo);\n }\n );\n },\n version: \"1.0.0\",\n },\n };\n return features;\n};\n"],"mappings":"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","names":["Eip6963Wallets","import_wallet_standard","import_ethers","Eip6963Wallets"]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs new file mode 100644 index 00000000..b29088d9 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs @@ -0,0 +1,329 @@ +// src/index.ts +import { + APTOS_CHAINS as APTOS_CHAINS2, + UserResponseStatus as UserResponseStatus2 +} from "@aptos-labs/wallet-standard"; +import { ethers as ethers2 } from "ethers"; +import { + AdapterWallet, + WalletReadyState +} from "@aptos-labs/wallet-adapter-aggregator-core"; + +// src/utils.ts +import { + APTOS_CHAINS, + UserResponseStatus +} from "@aptos-labs/wallet-standard"; +import { ethers } from "ethers"; +var convertEip6963WalletToAptosWallet = (eip6963Wallet) => { + const wallet = { + accounts: [], + chains: APTOS_CHAINS, + features: { + ...APTOS_REQUIRED_FEATURES(eip6963Wallet), + ...EIP6963_ADDITIONAL_FEATURES(eip6963Wallet) + }, + icon: eip6963Wallet.info.icon, + name: eip6963Wallet.info.name, + url: Eip6963WalletUrls[eip6963Wallet.info.name], + version: "1.0.0" + }; + return wallet; +}; +var APTOS_REQUIRED_FEATURES = (eip6963Wallet) => { + return { + "aptos:account": { + account: async () => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0" + }, + "aptos:connect": { + connect: async () => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0" + }, + "aptos:disconnect": { + disconnect: async () => { + try { + eip6963Wallet.provider.on("disconnect", (error) => { + console.error("EIP-6963 wallet disconnected", error); + }); + } catch (error) { + throw new Error("Failed to disconnect").message; + } + }, + version: "1.0.0" + }, + "aptos:network": { + network: async () => { + const chainId = await eip6963Wallet.provider.request({ + method: "eth_chainId" + }); + return { name: parseInt(chainId, 16), chainId }; + }, + version: "1.0.0" + }, + "aptos:signMessage": { + signMessage: async (message) => { + const accounts = await eip6963Wallet.provider.request({ method: "eth_requestAccounts" }).catch(console.error); + const signature = await eip6963Wallet.provider.request({ + method: "personal_sign", + params: [message.message, accounts[0]] + }); + const response = { + fullMessage: message.message, + message: message.message, + nonce: message.nonce, + prefix: "APTOS", + signature + }; + return { + status: UserResponseStatus.APPROVED, + args: response + }; + }, + version: "1.0.0" + }, + "aptos:signTransaction": { + signTransaction: async (transaction) => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0" + }, + "aptos:onAccountChange": { + onAccountChange: async (callback) => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0" + }, + "aptos:onNetworkChange": { + onNetworkChange: async (callback) => { + eip6963Wallet.provider.on("chainChanged", (chainId) => { + console.log("chainId", chainId); + callback({ + name: parseInt(chainId), + chainId: parseInt(chainId) + }); + }); + }, + version: "1.0.0" + } + }; +}; +var EIP6963_ADDITIONAL_FEATURES = (eip6963Wallet) => { + const features = { + "eip6963:account": { + account: async () => { + const accounts = await eip6963Wallet.provider.request({ method: "eth_requestAccounts" }).catch(console.error); + return { + address: accounts[0], + publicKey: ethers.getBytes(accounts[0]) + }; + }, + version: "1.0.0" + }, + "eip6963:connect": { + connect: async () => { + try { + const accounts = await eip6963Wallet.provider.request({ method: "eth_requestAccounts" }).catch((error) => { + throw new Error("Error connecting to wallet" + error).message; + }); + return { + args: { + address: accounts[0], + publicKey: ethers.getBytes(accounts[0]) + }, + status: UserResponseStatus.APPROVED + }; + } catch (error) { + if (error instanceof Error && error.message.includes("refused connection")) { + return { + status: UserResponseStatus.REJECTED + }; + } + throw error; + } + }, + version: "1.0.0" + }, + "eip6963:sendTransaction": { + sendTransaction: async (transaction, provider) => { + try { + const signer = await provider.getSigner(); + if (!signer) { + throw new Error("No signer found"); + } + const response = await signer.sendTransaction(transaction); + const receipt = await response.wait(); + return { + status: UserResponseStatus.APPROVED, + args: (receipt == null ? void 0 : receipt.hash) || "" + }; + } catch (error) { + if (error instanceof Error && error.message.includes("rejected")) { + return { + status: UserResponseStatus.REJECTED + }; + } + throw new Error(error).message; + } + }, + version: "1.0.0" + }, + "eip6963:onAccountChange": { + onAccountChange: async (callback) => { + eip6963Wallet.provider.on( + "accountsChanged", + (accounts) => { + const accountInfo = { + address: accounts[0], + publicKey: ethers.getBytes(accounts[0]) + }; + callback(accountInfo); + } + ); + }, + version: "1.0.0" + } + }; + return features; +}; + +// src/index.ts +var Eip6963Wallets2 = /* @__PURE__ */ ((Eip6963Wallets3) => { + Eip6963Wallets3["PhantomWallet"] = "Phantom"; + Eip6963Wallets3["MetaMaskWallet"] = "MetaMask"; + Eip6963Wallets3["BackpackWallet"] = "Backpack"; + Eip6963Wallets3["CoinbaseWallet"] = "Coinbase Wallet"; + Eip6963Wallets3["NightlyWallet"] = "Nightly"; + Eip6963Wallets3["RabbyWallet"] = "Rabby Wallet"; + return Eip6963Wallets3; +})(Eip6963Wallets2 || {}); +var Eip6963WalletUrls = { + ["Phantom" /* PhantomWallet */]: "https://phantom.app/", + ["MetaMask" /* MetaMaskWallet */]: "https://metamask.io/", + ["Backpack" /* BackpackWallet */]: "https://www.backpack.app/", + ["Coinbase Wallet" /* CoinbaseWallet */]: "https://www.coinbase.com/wallet", + ["Nightly" /* NightlyWallet */]: "https://nightly.app/", + ["Rabby Wallet" /* RabbyWallet */]: "https://rabby.io/" +}; +function fetchEthereumWallets() { + const wallets = []; + const convertedWallets = []; + const handleWalletDiscovery = (event) => { + const wallet = event.detail; + if (!wallets.some((w) => w.info.uuid === wallet.info.uuid)) { + wallets.push(wallet); + convertedWallets.push( + new Eip6963Wallet(convertEip6963WalletToAptosWallet(wallet), wallet) + ); + } + }; + window.addEventListener("eip6963:announceProvider", (event) => { + handleWalletDiscovery(event); + }); + window.dispatchEvent(new Event("eip6963:requestProvider")); + return convertedWallets; +} +var Eip6963Wallet = class extends AdapterWallet { + constructor(eip6963Wallet, eip6963WalletProvider) { + super(); + this.version = "1.0.0"; + this.accounts = []; + this.connected = false; + this.eip6963Wallet = eip6963Wallet; + this.eip6963WalletProvider = eip6963WalletProvider; + } + get icon() { + return this.eip6963Wallet.icon; + } + get name() { + return this.eip6963Wallet.name; + } + get url() { + return Eip6963WalletUrls[this.eip6963Wallet.name]; + } + get readyState() { + return WalletReadyState.Installed; + } + get chains() { + return APTOS_CHAINS2; + } + get isConnected() { + return this.connected; + } + async getAccount() { + return await this.eip6963Wallet.features["eip6963:account"].account(); + } + async getConnectedNetwork() { + return await this.eip6963Wallet.features["aptos:network"].network(); + } + async connect() { + const result = await this.eip6963Wallet.features["eip6963:connect"].connect(); + if (result.status === UserResponseStatus2.REJECTED) { + throw new Error("User rejected the request").message; + } + await this.onAccountChange(); + await this.onNetworkChange(); + this.provider = new ethers2.BrowserProvider( + await this.eip6963WalletProvider.provider, + "any" + ); + this.connected = true; + return result.args; + } + async disconnect() { + try { + if (!this.connected) { + return; + } + await this.eip6963Wallet.features["aptos:disconnect"].disconnect(); + this.connected = false; + } catch (error) { + throw new Error(error).message; + } + } + async signMessage(message) { + const result = await this.eip6963Wallet.features["aptos:signMessage"].signMessage( + message + ); + if (result.status === UserResponseStatus2.REJECTED) { + throw new Error("User rejected the request").message; + } + return result.args; + } + async signTransaction(transaction) { + throw new Error("Not implemented"); + } + async sendTransaction(transaction) { + if (!this.provider) { + throw new Error("Provider not connected"); + } + const result = await this.eip6963Wallet.features["eip6963:sendTransaction"].sendTransaction(transaction, this.provider); + if (result.status === UserResponseStatus2.REJECTED) { + throw new Error("User rejected the request").message; + } + return result.args; + } + async onAccountChange() { + await this.eip6963Wallet.features["eip6963:onAccountChange"].onAccountChange((account) => { + this.emit("accountChange", account); + }); + } + async onNetworkChange() { + await this.eip6963Wallet.features["aptos:onNetworkChange"].onNetworkChange( + (newNetwork) => { + this.emit("networkChange", newNetwork); + } + ); + } +}; +export { + Eip6963Wallet, + Eip6963WalletUrls, + Eip6963Wallets2 as Eip6963Wallets, + fetchEthereumWallets +}; +//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs.map b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs.map new file mode 100644 index 00000000..919b593e --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts","../src/utils.ts"],"sourcesContent":["import {\n APTOS_CHAINS,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosWallet,\n NetworkInfo,\n UserResponse,\n UserResponseStatus,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\nimport { ethers, TransactionRequest } from \"ethers\";\nimport {\n AdapterWallet,\n WalletReadyState,\n UsdcBalance,\n} from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { convertEip6963WalletToAptosWallet } from \"./utils\";\n\nexport type EIP6963ProviderInfo = {\n info: {\n uuid: string;\n name: string;\n icon: `data:image/svg+xml;base64,${string}`;\n rdns: string;\n };\n provider: any;\n};\n\nexport enum Eip6963Wallets {\n PhantomWallet = \"Phantom\",\n MetaMaskWallet = \"MetaMask\",\n BackpackWallet = \"Backpack\",\n CoinbaseWallet = \"Coinbase Wallet\",\n NightlyWallet = \"Nightly\",\n RabbyWallet = \"Rabby Wallet\",\n}\n\nexport const Eip6963WalletUrls: Record = {\n [Eip6963Wallets.PhantomWallet]: \"https://phantom.app/\",\n [Eip6963Wallets.MetaMaskWallet]: \"https://metamask.io/\",\n [Eip6963Wallets.BackpackWallet]: \"https://www.backpack.app/\",\n [Eip6963Wallets.CoinbaseWallet]: \"https://www.coinbase.com/wallet\",\n [Eip6963Wallets.NightlyWallet]: \"https://nightly.app/\",\n [Eip6963Wallets.RabbyWallet]: \"https://rabby.io/\",\n};\n\nexport function fetchEthereumWallets(): AdapterWallet[] {\n const wallets: EIP6963ProviderInfo[] = [];\n const convertedWallets: AdapterWallet[] = [];\n\n const handleWalletDiscovery = (event: CustomEvent) => {\n const wallet = event.detail as EIP6963ProviderInfo;\n\n // Avoid duplicates\n if (!wallets.some((w) => w.info.uuid === wallet.info.uuid)) {\n wallets.push(wallet);\n convertedWallets.push(\n new Eip6963Wallet(convertEip6963WalletToAptosWallet(wallet), wallet)\n );\n }\n };\n\n window.addEventListener(\"eip6963:announceProvider\", (event) => {\n handleWalletDiscovery(event as CustomEvent);\n });\n // Request wallets to announce themselves\n window.dispatchEvent(new Event(\"eip6963:requestProvider\"));\n\n return convertedWallets;\n}\n\nexport type Eip6963AccountInfo = {\n address: string;\n publicKey: Uint8Array;\n};\n\nexport type Eip6963Features = {\n \"eip6963:connect\": {\n connect: () => Promise>;\n version: string;\n };\n \"eip6963:account\": {\n account: () => Promise;\n version: string;\n };\n \"eip6963:sendTransaction\": {\n sendTransaction: (\n transaction: TransactionRequest,\n provider: ethers.BrowserProvider\n ) => Promise>;\n version: string;\n };\n \"eip6963:onAccountChange\": {\n onAccountChange: (\n callback: (newAccount: Eip6963AccountInfo) => void\n ) => void;\n version: string;\n };\n};\n\nexport type Eip6963BaseWallet = AptosWallet & {\n features: Eip6963Features;\n};\n\nexport class Eip6963Wallet extends AdapterWallet<\n Eip6963AccountInfo,\n NetworkInfo,\n Eip6963AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n TransactionRequest,\n TransactionRequest,\n Eip6963AccountInfo,\n NetworkInfo,\n TransactionRequest,\n string\n> {\n readonly eip6963Wallet: Eip6963BaseWallet;\n readonly eip6963WalletProvider: EIP6963ProviderInfo;\n readonly version = \"1.0.0\";\n private provider?: ethers.BrowserProvider;\n\n accounts: WalletAccount[] = [];\n\n connected: boolean = false;\n\n constructor(\n eip6963Wallet: Eip6963BaseWallet,\n eip6963WalletProvider: EIP6963ProviderInfo\n ) {\n super();\n this.eip6963Wallet = eip6963Wallet;\n this.eip6963WalletProvider = eip6963WalletProvider;\n }\n\n get icon() {\n return this.eip6963Wallet.icon;\n }\n get name() {\n return this.eip6963Wallet.name;\n }\n get url() {\n return Eip6963WalletUrls[this.eip6963Wallet.name as Eip6963Wallets];\n }\n get readyState() {\n return WalletReadyState.Installed;\n }\n get chains() {\n return APTOS_CHAINS;\n }\n\n get isConnected() {\n return this.connected;\n }\n\n async getAccount() {\n return await this.eip6963Wallet.features[\"eip6963:account\"].account();\n }\n\n async getConnectedNetwork() {\n return await this.eip6963Wallet.features[\"aptos:network\"].network();\n }\n\n async connect() {\n const result =\n await this.eip6963Wallet.features[\"eip6963:connect\"].connect();\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n await this.onAccountChange();\n await this.onNetworkChange();\n this.provider = new ethers.BrowserProvider(\n (await this.eip6963WalletProvider.provider) as ethers.Eip1193Provider,\n \"any\"\n );\n this.connected = true;\n return result.args;\n }\n\n async disconnect() {\n try {\n if (!this.connected) {\n return;\n }\n await this.eip6963Wallet.features[\"aptos:disconnect\"].disconnect();\n this.connected = false;\n } catch (error: any) {\n throw new Error(error).message;\n }\n }\n\n async signMessage(message: AptosSignMessageInput) {\n const result =\n await this.eip6963Wallet.features[\"aptos:signMessage\"].signMessage(\n message\n );\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n return result.args;\n }\n\n async signTransaction(\n transaction: TransactionRequest\n ): Promise {\n throw new Error(\"Not implemented\");\n }\n\n async sendTransaction(transaction: TransactionRequest): Promise {\n if (!this.provider) {\n throw new Error(\"Provider not connected\");\n }\n const result = await this.eip6963Wallet.features[\n \"eip6963:sendTransaction\"\n ].sendTransaction(transaction, this.provider);\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n return result.args;\n }\n\n async onAccountChange() {\n await this.eip6963Wallet.features[\n \"eip6963:onAccountChange\"\n ].onAccountChange((account) => {\n // @ts-ignore-next-line\n this.emit(\"accountChange\", account);\n });\n }\n\n async onNetworkChange() {\n await this.eip6963Wallet.features[\"aptos:onNetworkChange\"].onNetworkChange(\n (newNetwork) => {\n this.emit(\"networkChange\", newNetwork);\n }\n );\n }\n}\n","import {\n APTOS_CHAINS,\n AptosFeatures,\n AptosOnAccountChangeInput,\n AptosOnNetworkChangeInput,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n UserResponse,\n UserResponseStatus,\n} from \"@aptos-labs/wallet-standard\";\nimport { AnyRawTransaction } from \"@aptos-labs/ts-sdk\";\nimport { ethers, TransactionRequest, version } from \"ethers\";\nimport {\n Eip6963BaseWallet,\n Eip6963Features,\n EIP6963ProviderInfo,\n Eip6963Wallets,\n Eip6963WalletUrls,\n} from \".\";\n\nexport const convertEip6963WalletToAptosWallet = (\n eip6963Wallet: EIP6963ProviderInfo\n) => {\n const wallet: Eip6963BaseWallet = {\n accounts: [],\n chains: APTOS_CHAINS,\n features: {\n ...APTOS_REQUIRED_FEATURES(eip6963Wallet),\n ...EIP6963_ADDITIONAL_FEATURES(eip6963Wallet),\n },\n icon: eip6963Wallet.info.icon,\n name: eip6963Wallet.info.name,\n url: Eip6963WalletUrls[eip6963Wallet.info.name as Eip6963Wallets],\n version: \"1.0.0\",\n };\n return wallet;\n};\n\nconst APTOS_REQUIRED_FEATURES = (\n eip6963Wallet: EIP6963ProviderInfo\n): AptosFeatures => {\n return {\n \"aptos:account\": {\n account: async () => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:connect\": {\n connect: async () => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:disconnect\": {\n disconnect: async () => {\n try {\n eip6963Wallet.provider.on(\"disconnect\", (error: any) => {\n console.error(\"EIP-6963 wallet disconnected\", error);\n });\n } catch (error) {\n throw new Error(\"Failed to disconnect\").message;\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:network\": {\n network: async () => {\n const chainId = await eip6963Wallet.provider.request({\n method: \"eth_chainId\",\n });\n /**\n * The returned chain ID is in hexadecimal, need to convert to decimal.\n */\n // TODO: create an internal chainId->name mapping database\n return { name: parseInt(chainId, 16) as any, chainId };\n },\n version: \"1.0.0\",\n },\n \"aptos:signMessage\": {\n signMessage: async (message: AptosSignMessageInput) => {\n const accounts = await eip6963Wallet.provider\n .request({ method: \"eth_requestAccounts\" })\n .catch(console.error);\n const signature = await eip6963Wallet.provider.request({\n method: \"personal_sign\",\n params: [message.message, accounts[0]],\n });\n const response: AptosSignMessageOutput = {\n // address?: string;\n // application?: string;\n // chainId?: number;\n fullMessage: message.message,\n message: message.message,\n nonce: message.nonce,\n prefix: \"APTOS\",\n signature: signature as any,\n };\n return {\n status: UserResponseStatus.APPROVED,\n args: response,\n };\n },\n version: \"1.0.0\",\n },\n \"aptos:signTransaction\": {\n signTransaction: async (transaction: AnyRawTransaction) => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:onAccountChange\": {\n onAccountChange: async (callback: AptosOnAccountChangeInput) => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:onNetworkChange\": {\n onNetworkChange: async (callback: AptosOnNetworkChangeInput) => {\n eip6963Wallet.provider.on(\"chainChanged\", (chainId: string) => {\n console.log(\"chainId\", chainId);\n callback({\n // TODO: create an internal chainId->name mapping database\n name: parseInt(chainId) as any,\n chainId: parseInt(chainId),\n });\n });\n },\n version: \"1.0.0\",\n },\n };\n};\n\nconst EIP6963_ADDITIONAL_FEATURES = (\n eip6963Wallet: EIP6963ProviderInfo\n): Eip6963Features => {\n const features: Eip6963Features = {\n \"eip6963:account\": {\n account: async () => {\n const accounts = await eip6963Wallet.provider\n .request({ method: \"eth_requestAccounts\" })\n .catch(console.error);\n return {\n address: accounts[0],\n publicKey: ethers.getBytes(accounts[0]),\n };\n },\n version: \"1.0.0\",\n },\n \"eip6963:connect\": {\n connect: async () => {\n try {\n const accounts = await eip6963Wallet.provider\n .request({ method: \"eth_requestAccounts\" })\n .catch((error: any) => {\n throw new Error(\"Error connecting to wallet\" + error).message;\n });\n\n return {\n args: {\n address: accounts[0],\n publicKey: ethers.getBytes(accounts[0]),\n },\n status: UserResponseStatus.APPROVED,\n };\n } catch (error) {\n if (\n error instanceof Error &&\n error.message.includes(\"refused connection\")\n ) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw error;\n }\n },\n version: \"1.0.0\",\n },\n \"eip6963:sendTransaction\": {\n sendTransaction: async (\n transaction: TransactionRequest,\n provider: ethers.BrowserProvider\n ): Promise> => {\n try {\n const signer = await provider.getSigner();\n if (!signer) {\n throw new Error(\"No signer found\");\n }\n const response = await signer.sendTransaction(transaction);\n const receipt = await response.wait();\n return {\n status: UserResponseStatus.APPROVED,\n args: receipt?.hash || \"\",\n };\n } catch (error: any) {\n if (error instanceof Error && error.message.includes(\"rejected\")) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw new Error(error).message;\n }\n },\n version: \"1.0.0\",\n },\n \"eip6963:onAccountChange\": {\n onAccountChange: async (\n callback: (newAccount: {\n address: string;\n publicKey: Uint8Array;\n }) => void\n ) => {\n eip6963Wallet.provider.on(\n \"accountsChanged\",\n (accounts: Array) => {\n const accountInfo = {\n address: accounts[0],\n publicKey: ethers.getBytes(accounts[0]),\n };\n callback(accountInfo);\n }\n );\n },\n version: \"1.0.0\",\n },\n };\n return features;\n};\n"],"mappings":"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","names":["APTOS_CHAINS","UserResponseStatus","ethers","Eip6963Wallets","APTOS_CHAINS","UserResponseStatus","ethers"]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts new file mode 100644 index 00000000..7621b6ea --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts @@ -0,0 +1,26 @@ +import { AptosFeatures, WalletAccount } from "@aptos-labs/wallet-standard"; +import { AdapterWallet, WalletReadyState } from "@aptos-labs/wallet-adapter-aggregator-core"; +export type EIP6963ProviderInfo = { + info: { + uuid: string; + name: string; + icon: `data:image/svg+xml;base64,${string}`; + rdns: string; + }; + provider: any; +}; +export declare function fetchEthereumWallets(): AdapterWallet[]; +export declare class Eip6963Wallet extends AdapterWallet { + readonly eip6963Wallet: EIP6963ProviderInfo; + private provider?; + readonly version = "1.0.0"; + accounts: WalletAccount[]; + constructor(eip6963Wallet: EIP6963ProviderInfo); + get icon(): `data:image/svg+xml;base64,${string}`; + get name(): string; + get url(): string; + get readyState(): WalletReadyState; + get chains(): readonly ["aptos:devnet", "aptos:testnet", "aptos:localnet", "aptos:mainnet"]; + get features(): AptosFeatures; +} +//# sourceMappingURL=index2.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts.map new file mode 100644 index 00000000..83dfb3b1 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index2.d.ts","sourceRoot":"","sources":["../src/index2.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EAKb,aAAa,EACd,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,4CAA4C,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,6BAA6B,MAAM,EAAE,CAAC;QAC5C,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE,GAAG,CAAC;CACf,CAAC;AAoBF,wBAAgB,oBAAoB,IAAI,aAAa,EAAE,CAqBtD;AAED,qBAAa,aAAc,SAAQ,aAAa;IAC9C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,CAAyB;IAE1C,QAAQ,CAAC,OAAO,WAAW;IAE3B,QAAQ,EAAE,aAAa,EAAE,CAAM;gBAEnB,aAAa,EAAE,mBAAmB;IAK9C,IAAI,IAAI,0CAEP;IACD,IAAI,IAAI,WAEP;IACD,IAAI,GAAG,WAEN;IACD,IAAI,UAAU,qBAEb;IACD,IAAI,MAAM,kFAET;IAED,IAAI,QAAQ,IAAI,aAAa,CAwJ5B;CACF"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts new file mode 100644 index 00000000..c87d4e09 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts @@ -0,0 +1,3 @@ +import { Eip6963BaseWallet, EIP6963ProviderInfo } from "."; +export declare const convertEip6963WalletToAptosWallet: (eip6963Wallet: EIP6963ProviderInfo) => Eip6963BaseWallet; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts.map new file mode 100644 index 00000000..78c966c9 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,iBAAiB,EAEjB,mBAAmB,EAGpB,MAAM,GAAG,CAAC;AAEX,eAAO,MAAM,iCAAiC,kBAC7B,mBAAmB,sBAenC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts new file mode 100644 index 00000000..d4d4d127 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts @@ -0,0 +1,37 @@ +import { AccountInfo, AptosSignMessageInput, AptosSignMessageOutput, AptosWallet, NetworkInfo, UserResponse, WalletAccount } from "@aptos-labs/wallet-standard"; +import { Transaction } from "@solana/web3.js"; +import { AdapterWallet, WalletReadyState } from "@aptos-labs/wallet-adapter-aggregator-core"; +export type SolanaUnsignedTransaction = Transaction | Transaction[]; +export type SolanaSignedTransaction = Transaction | Transaction[]; +export declare function getSolanaStandardWallets(): AdapterWallet[]; +export type SolanaFeatures = { + "solana:signTransaction": { + signTransaction: (transaction: Transaction) => Promise>; + version: string; + }; +}; +export type SolanaBaseWallet = AptosWallet & { + features: SolanaFeatures; +}; +export declare class SolanaWallet extends AdapterWallet { + readonly solanaWallet: SolanaBaseWallet; + readonly version = "1.0.0"; + accounts: WalletAccount[]; + connected: boolean; + constructor(solanaWallet: SolanaBaseWallet); + get icon(): `data:image/svg+xml;base64,${string}` | `data:image/webp;base64,${string}` | `data:image/png;base64,${string}` | `data:image/gif;base64,${string}`; + get name(): string; + get url(): string; + get readyState(): WalletReadyState; + get chains(): readonly ["aptos:devnet", "aptos:testnet", "aptos:localnet", "aptos:mainnet"]; + get isConnected(): boolean; + getAccount(): Promise; + getConnectedNetwork(): Promise; + connect(): Promise; + disconnect(): Promise; + signMessage(message: AptosSignMessageInput): Promise; + signTransaction(transaction: Transaction): Promise; + onAccountChange(): Promise; + onNetworkChange(callback: (network: NetworkInfo) => void): Promise; +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts.map new file mode 100644 index 00000000..39eded43 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,YAAY,EAEZ,aAAa,EACd,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,4CAA4C,CAAC;AAGpD,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC;AACpE,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC;AAElE,wBAAgB,wBAAwB,IAAI,aAAa,EAAE,CAa1D;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,wBAAwB,EAAE;QACxB,eAAe,EAAE,CACf,WAAW,EAAE,WAAW,KACrB,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAC3C,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,qBAAa,YAAa,SAAQ,aAAa,CAC7C,WAAW,EACX,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,CACZ;IACC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,OAAO,WAAW;IAE3B,QAAQ,EAAE,aAAa,EAAE,CAAM;IAE/B,SAAS,EAAE,OAAO,CAAS;gBAEf,YAAY,EAAE,gBAAgB;IAK1C,IAAI,IAAI,uJAEP;IACD,IAAI,IAAI,WAEP;IACD,IAAI,GAAG,WAEN;IAED,IAAI,UAAU,qBAEb;IAED,IAAI,MAAM,kFAET;IAED,IAAI,WAAW,YAEd;IAEK,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAIlC,mBAAmB;IAInB,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC;IAU/B,UAAU;IAQV,WAAW,CAAC,OAAO,EAAE,qBAAqB;IAW1C,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAW/D,eAAe;IAQf,eAAe,CACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GACvC,OAAO,CAAC,IAAI,CAAC;CAKjB"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js new file mode 100644 index 00000000..5ab90525 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js @@ -0,0 +1,292 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + SolanaWallet: () => SolanaWallet, + getSolanaStandardWallets: () => getSolanaStandardWallets +}); +module.exports = __toCommonJS(src_exports); +var import_wallet_standard2 = require("@aptos-labs/wallet-standard"); +var import_wallet_adapter_base2 = require("@solana/wallet-adapter-base"); +var import_app = require("@wallet-standard/app"); +var import_wallet_standard_wallet_adapter_base = require("@solana/wallet-standard-wallet-adapter-base"); +var import_wallet_adapter_aggregator_core = require("@aptos-labs/wallet-adapter-aggregator-core"); + +// src/utils.ts +var import_ts_sdk = require("@aptos-labs/ts-sdk"); +var import_wallet_standard = require("@aptos-labs/wallet-standard"); +var import_web3 = require("@solana/web3.js"); +var import_wallet_adapter_base = require("@solana/wallet-adapter-base"); +var deriveAccountInfoFromSolanaPublicKey = (solanaPublicKey) => { + const publicKey = new import_ts_sdk.Ed25519PublicKey(solanaPublicKey.toBytes()); + const address = publicKey.authKey().derivedAddress(); + return new import_wallet_standard.AccountInfo({ address, publicKey }); +}; +var convertSolanaWalletToAptosWallet = (solanaWallet) => { + const wallet = { + accounts: [], + chains: import_wallet_standard.APTOS_CHAINS, + features: { + ...APTOS_REQUIRED_FEATURES(solanaWallet), + ...SOLANA_ADDITIONAL_FEATURES(solanaWallet) + }, + icon: solanaWallet.icon, + name: solanaWallet.name, + url: solanaWallet.url, + version: "1.0.0" + }; + return wallet; +}; +var APTOS_REQUIRED_FEATURES = (solanaWallet) => { + return { + "aptos:account": { + account: async () => { + if (!solanaWallet.publicKey) { + throw new Error("Disconnected"); + } + return deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey); + }, + version: "1.0.0" + }, + "aptos:connect": { + connect: async () => { + try { + await solanaWallet.connect(); + if (!solanaWallet.publicKey) { + return { status: import_wallet_standard.UserResponseStatus.REJECTED }; + } + return { + args: deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey), + status: import_wallet_standard.UserResponseStatus.APPROVED + }; + } catch (e) { + console.log("e", e); + if (e instanceof import_wallet_adapter_base.WalletConnectionError) { + return { + status: import_wallet_standard.UserResponseStatus.REJECTED + }; + } + throw e; + } + }, + version: "1.0.0" + }, + "aptos:disconnect": { + disconnect: async () => { + try { + await solanaWallet.disconnect(); + } catch (e) { + throw new Error("Failed to disconnect"); + } + }, + version: "1.0.0" + }, + "aptos:network": { + network: async () => { + throw new Error( + "Fetch network info not supported by Solana wallet adapter" + ); + }, + version: "1.0.0" + }, + "aptos:signMessage": { + signMessage: async (message) => { + if (!solanaWallet.signMessage) + throw new Error("Not supported"); + try { + const messageToSign = new TextEncoder().encode(message.message); + const signature = await solanaWallet.signMessage(messageToSign); + const response = { + fullMessage: message.message, + message: message.message, + nonce: message.nonce, + prefix: "APTOS", + signature: new import_ts_sdk.Ed25519Signature(signature) + }; + return { + status: import_wallet_standard.UserResponseStatus.APPROVED, + args: response + }; + } catch (e) { + if (e instanceof Error && e.message.includes("rejected")) { + return { + status: import_wallet_standard.UserResponseStatus.REJECTED + }; + } + throw e; + } + }, + version: "1.0.0" + }, + "aptos:signTransaction": { + signTransaction: async (transaction) => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0" + }, + "aptos:onAccountChange": { + onAccountChange: async (callback) => { + if (solanaWallet.wallet.features["standard:events"]) { + solanaWallet.wallet.features["standard:events"].on( + "change", + (account) => { + if (!account.accounts || account.accounts.length === 0) { + return; + } + const accountInfo = deriveAccountInfoFromSolanaPublicKey( + new import_web3.PublicKey(account.accounts[0].publicKey) + ); + callback(accountInfo); + } + ); + } + }, + version: "1.0.0" + }, + "aptos:onNetworkChange": { + onNetworkChange: async () => { + throw new Error( + "onNetworkChange not yet implemented in solana wallet adapter" + ); + }, + version: "1.0.0" + } + }; +}; +var SOLANA_ADDITIONAL_FEATURES = (solanaWallet) => { + return { + "solana:signTransaction": { + signTransaction: async (transaction) => { + if (!solanaWallet.signTransaction) + throw new Error("Not supported"); + try { + const signature = await solanaWallet.signTransaction(transaction); + return { + status: import_wallet_standard.UserResponseStatus.APPROVED, + args: signature + }; + } catch (e) { + if (e instanceof Error && e.message.includes("rejected")) { + return { + status: import_wallet_standard.UserResponseStatus.REJECTED + }; + } + throw e; + } + }, + version: "1.0.0" + } + }; +}; + +// src/index.ts +function getSolanaStandardWallets() { + return (0, import_app.getWallets)().get().filter(import_wallet_adapter_base2.isWalletAdapterCompatibleStandardWallet).map( + (wallet) => new SolanaWallet( + convertSolanaWalletToAptosWallet( + new import_wallet_standard_wallet_adapter_base.StandardWalletAdapter({ wallet }) + ) + ) + ); +} +var SolanaWallet = class extends import_wallet_adapter_aggregator_core.AdapterWallet { + constructor(solanaWallet) { + super(); + this.version = "1.0.0"; + this.accounts = []; + this.connected = false; + this.solanaWallet = solanaWallet; + } + get icon() { + return this.solanaWallet.icon; + } + get name() { + return this.solanaWallet.name; + } + get url() { + return this.solanaWallet.url; + } + get readyState() { + return import_wallet_adapter_aggregator_core.WalletReadyState.Installed; + } + get chains() { + return import_wallet_standard2.APTOS_CHAINS; + } + get isConnected() { + return this.connected; + } + async getAccount() { + return await this.solanaWallet.features["aptos:account"].account(); + } + async getConnectedNetwork() { + return await this.solanaWallet.features["aptos:network"].network(); + } + async connect() { + const result = await this.solanaWallet.features["aptos:connect"].connect(); + if (result.status === import_wallet_standard2.UserResponseStatus.REJECTED) { + throw new Error("User rejected the request").message; + } + await this.onAccountChange(); + this.connected = true; + return result.args; + } + async disconnect() { + if (!this.connected) { + return; + } + await this.solanaWallet.features["aptos:disconnect"].disconnect(); + this.connected = false; + } + async signMessage(message) { + const result = await this.solanaWallet.features["aptos:signMessage"].signMessage( + message + ); + if (result.status === import_wallet_standard2.UserResponseStatus.REJECTED) { + throw new Error("User rejected the request").message; + } + return result.args; + } + async signTransaction(transaction) { + const result = await this.solanaWallet.features["solana:signTransaction"].signTransaction(transaction); + if (result.status === import_wallet_standard2.UserResponseStatus.REJECTED) { + throw new Error("User rejected"); + } + return result.args; + } + async onAccountChange() { + await this.solanaWallet.features["aptos:onAccountChange"].onAccountChange( + async (account) => { + this.emit("accountChange", account); + } + ); + } + async onNetworkChange(callback) { + await this.solanaWallet.features["aptos:onNetworkChange"].onNetworkChange( + callback + ); + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + SolanaWallet, + getSolanaStandardWallets +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js.map b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js.map new file mode 100644 index 00000000..750ae363 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts","../src/utils.ts"],"sourcesContent":["import {\n AccountInfo,\n APTOS_CHAINS,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosWallet,\n NetworkInfo,\n UserResponse,\n UserResponseStatus,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\nimport { isWalletAdapterCompatibleStandardWallet } from \"@solana/wallet-adapter-base\";\nimport { getWallets } from \"@wallet-standard/app\";\nimport { Transaction } from \"@solana/web3.js\";\nimport { StandardWalletAdapter } from \"@solana/wallet-standard-wallet-adapter-base\";\nimport {\n AdapterWallet,\n WalletReadyState,\n} from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { convertSolanaWalletToAptosWallet } from \"./utils\";\n\nexport type SolanaUnsignedTransaction = Transaction | Transaction[];\nexport type SolanaSignedTransaction = Transaction | Transaction[];\n\nexport function getSolanaStandardWallets(): AdapterWallet[] {\n // from https://github.com/solana-labs/wallet-standard/blob/c68c26604e0b9624e924292e243df44c742d1c00/packages/wallet-adapter/react/src/useStandardWalletAdapters.ts#L78\n return getWallets()\n .get()\n .filter(isWalletAdapterCompatibleStandardWallet)\n .map(\n (wallet) =>\n new SolanaWallet(\n convertSolanaWalletToAptosWallet(\n new StandardWalletAdapter({ wallet })\n )\n )\n );\n}\n\nexport type SolanaFeatures = {\n \"solana:signTransaction\": {\n signTransaction: (\n transaction: Transaction\n ) => Promise>;\n version: string;\n };\n};\n\nexport type SolanaBaseWallet = AptosWallet & {\n features: SolanaFeatures;\n};\n\nexport class SolanaWallet extends AdapterWallet<\n AccountInfo,\n NetworkInfo,\n AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n Transaction,\n Transaction,\n AccountInfo,\n NetworkInfo\n> {\n readonly solanaWallet: SolanaBaseWallet;\n readonly version = \"1.0.0\";\n\n accounts: WalletAccount[] = [];\n\n connected: boolean = false;\n\n constructor(solanaWallet: SolanaBaseWallet) {\n super();\n this.solanaWallet = solanaWallet;\n }\n\n get icon() {\n return this.solanaWallet.icon;\n }\n get name() {\n return this.solanaWallet.name;\n }\n get url() {\n return this.solanaWallet.url;\n }\n\n get readyState() {\n return WalletReadyState.Installed;\n }\n\n get chains() {\n return APTOS_CHAINS;\n }\n\n get isConnected() {\n return this.connected;\n }\n\n async getAccount(): Promise {\n return await this.solanaWallet.features[\"aptos:account\"].account();\n }\n\n async getConnectedNetwork() {\n return await this.solanaWallet.features[\"aptos:network\"].network();\n }\n\n async connect(): Promise {\n const result = await this.solanaWallet.features[\"aptos:connect\"].connect();\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n await this.onAccountChange();\n this.connected = true;\n return result.args;\n }\n\n async disconnect() {\n if (!this.connected) {\n return;\n }\n await this.solanaWallet.features[\"aptos:disconnect\"].disconnect();\n this.connected = false;\n }\n\n async signMessage(message: AptosSignMessageInput) {\n const result =\n await this.solanaWallet.features[\"aptos:signMessage\"].signMessage(\n message\n );\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n return result.args;\n }\n\n async signTransaction(transaction: Transaction): Promise {\n const result =\n await this.solanaWallet.features[\n \"solana:signTransaction\"\n ].signTransaction(transaction);\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected\");\n }\n return result.args;\n }\n\n async onAccountChange() {\n await this.solanaWallet.features[\"aptos:onAccountChange\"].onAccountChange(\n async (account: AccountInfo) => {\n this.emit(\"accountChange\", account);\n }\n );\n }\n\n async onNetworkChange(\n callback: (network: NetworkInfo) => void\n ): Promise {\n await this.solanaWallet.features[\"aptos:onNetworkChange\"].onNetworkChange(\n callback\n );\n }\n}\n","import {\n AnyRawTransaction,\n Ed25519PublicKey,\n Ed25519Signature,\n} from \"@aptos-labs/ts-sdk\";\nimport {\n AccountInfo,\n APTOS_CHAINS,\n AptosFeatures,\n AptosOnAccountChangeInput,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n UserResponse,\n UserResponseStatus,\n} from \"@aptos-labs/wallet-standard\";\n\nimport {\n PublicKey,\n PublicKey as SolanaPublicKey,\n Transaction,\n} from \"@solana/web3.js\";\nimport { StandardWalletAdapter } from \"@solana/wallet-standard-wallet-adapter-base\";\nimport { SolanaBaseWallet, SolanaFeatures } from \".\";\nimport { WalletConnectionError } from \"@solana/wallet-adapter-base\";\n\nconst deriveAccountInfoFromSolanaPublicKey = (\n solanaPublicKey: SolanaPublicKey\n) => {\n const publicKey = new Ed25519PublicKey(solanaPublicKey.toBytes());\n const address = publicKey.authKey().derivedAddress();\n return new AccountInfo({ address, publicKey });\n};\n\nexport const convertSolanaWalletToAptosWallet = (\n solanaWallet: StandardWalletAdapter\n): SolanaBaseWallet => {\n const wallet: SolanaBaseWallet = {\n accounts: [],\n chains: APTOS_CHAINS,\n features: {\n ...APTOS_REQUIRED_FEATURES(solanaWallet),\n ...SOLANA_ADDITIONAL_FEATURES(solanaWallet),\n },\n icon: solanaWallet.icon,\n name: solanaWallet.name,\n url: solanaWallet.url,\n version: \"1.0.0\",\n };\n return wallet;\n};\n\nconst APTOS_REQUIRED_FEATURES = (\n solanaWallet: StandardWalletAdapter\n): AptosFeatures => {\n return {\n \"aptos:account\": {\n account: async () => {\n if (!solanaWallet.publicKey) {\n throw new Error(\"Disconnected\");\n }\n return deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey);\n },\n version: \"1.0.0\",\n },\n \"aptos:connect\": {\n connect: async () => {\n try {\n await solanaWallet.connect();\n if (!solanaWallet.publicKey) {\n return { status: UserResponseStatus.REJECTED };\n }\n\n return {\n args: deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey),\n status: UserResponseStatus.APPROVED,\n };\n } catch (e) {\n console.log(\"e\", e);\n if (e instanceof WalletConnectionError) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw e;\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:disconnect\": {\n disconnect: async () => {\n try {\n await solanaWallet.disconnect();\n } catch (e) {\n throw new Error(\"Failed to disconnect\");\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:network\": {\n network: async () => {\n throw new Error(\n \"Fetch network info not supported by Solana wallet adapter\"\n );\n },\n version: \"1.0.0\",\n },\n \"aptos:signMessage\": {\n signMessage: async (message: AptosSignMessageInput) => {\n if (!solanaWallet.signMessage) throw new Error(\"Not supported\");\n try {\n const messageToSign = new TextEncoder().encode(message.message);\n const signature = await solanaWallet.signMessage(messageToSign);\n const response: AptosSignMessageOutput = {\n // address?: string;\n // application?: string;\n // chainId?: number;\n fullMessage: message.message,\n message: message.message,\n nonce: message.nonce,\n prefix: \"APTOS\",\n signature: new Ed25519Signature(signature),\n };\n return {\n status: UserResponseStatus.APPROVED,\n args: response,\n };\n } catch (e) {\n if (e instanceof Error && e.message.includes(\"rejected\")) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw e;\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:signTransaction\": {\n signTransaction: async (transaction: AnyRawTransaction) => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:onAccountChange\": {\n onAccountChange: async (callback: AptosOnAccountChangeInput) => {\n if (solanaWallet.wallet.features[\"standard:events\"]) {\n solanaWallet.wallet.features[\"standard:events\"].on(\n \"change\",\n (account) => {\n if (!account.accounts || account.accounts.length === 0) {\n return;\n }\n const accountInfo = deriveAccountInfoFromSolanaPublicKey(\n new PublicKey(account.accounts[0].publicKey)\n );\n callback(accountInfo);\n }\n );\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:onNetworkChange\": {\n onNetworkChange: async () => {\n throw new Error(\n \"onNetworkChange not yet implemented in solana wallet adapter\"\n );\n },\n version: \"1.0.0\",\n },\n };\n};\n\nconst SOLANA_ADDITIONAL_FEATURES = (\n solanaWallet: StandardWalletAdapter\n): SolanaFeatures => {\n return {\n \"solana:signTransaction\": {\n signTransaction: async (\n transaction: Transaction\n ): Promise> => {\n if (!solanaWallet.signTransaction) throw new Error(\"Not supported\");\n try {\n const signature = await solanaWallet.signTransaction(transaction);\n return {\n status: UserResponseStatus.APPROVED,\n args: signature,\n };\n } catch (e) {\n if (e instanceof Error && e.message.includes(\"rejected\")) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw e;\n }\n },\n version: \"1.0.0\",\n },\n };\n};\n"],"mappings":"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","names":["import_wallet_standard","import_wallet_adapter_base"]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs new file mode 100644 index 00000000..e6907078 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs @@ -0,0 +1,281 @@ +// src/index.ts +import { + APTOS_CHAINS as APTOS_CHAINS2, + UserResponseStatus as UserResponseStatus2 +} from "@aptos-labs/wallet-standard"; +import { isWalletAdapterCompatibleStandardWallet } from "@solana/wallet-adapter-base"; +import { getWallets } from "@wallet-standard/app"; +import { StandardWalletAdapter } from "@solana/wallet-standard-wallet-adapter-base"; +import { + AdapterWallet, + WalletReadyState +} from "@aptos-labs/wallet-adapter-aggregator-core"; + +// src/utils.ts +import { + Ed25519PublicKey, + Ed25519Signature +} from "@aptos-labs/ts-sdk"; +import { + AccountInfo, + APTOS_CHAINS, + UserResponseStatus +} from "@aptos-labs/wallet-standard"; +import { + PublicKey +} from "@solana/web3.js"; +import { WalletConnectionError } from "@solana/wallet-adapter-base"; +var deriveAccountInfoFromSolanaPublicKey = (solanaPublicKey) => { + const publicKey = new Ed25519PublicKey(solanaPublicKey.toBytes()); + const address = publicKey.authKey().derivedAddress(); + return new AccountInfo({ address, publicKey }); +}; +var convertSolanaWalletToAptosWallet = (solanaWallet) => { + const wallet = { + accounts: [], + chains: APTOS_CHAINS, + features: { + ...APTOS_REQUIRED_FEATURES(solanaWallet), + ...SOLANA_ADDITIONAL_FEATURES(solanaWallet) + }, + icon: solanaWallet.icon, + name: solanaWallet.name, + url: solanaWallet.url, + version: "1.0.0" + }; + return wallet; +}; +var APTOS_REQUIRED_FEATURES = (solanaWallet) => { + return { + "aptos:account": { + account: async () => { + if (!solanaWallet.publicKey) { + throw new Error("Disconnected"); + } + return deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey); + }, + version: "1.0.0" + }, + "aptos:connect": { + connect: async () => { + try { + await solanaWallet.connect(); + if (!solanaWallet.publicKey) { + return { status: UserResponseStatus.REJECTED }; + } + return { + args: deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey), + status: UserResponseStatus.APPROVED + }; + } catch (e) { + console.log("e", e); + if (e instanceof WalletConnectionError) { + return { + status: UserResponseStatus.REJECTED + }; + } + throw e; + } + }, + version: "1.0.0" + }, + "aptos:disconnect": { + disconnect: async () => { + try { + await solanaWallet.disconnect(); + } catch (e) { + throw new Error("Failed to disconnect"); + } + }, + version: "1.0.0" + }, + "aptos:network": { + network: async () => { + throw new Error( + "Fetch network info not supported by Solana wallet adapter" + ); + }, + version: "1.0.0" + }, + "aptos:signMessage": { + signMessage: async (message) => { + if (!solanaWallet.signMessage) + throw new Error("Not supported"); + try { + const messageToSign = new TextEncoder().encode(message.message); + const signature = await solanaWallet.signMessage(messageToSign); + const response = { + fullMessage: message.message, + message: message.message, + nonce: message.nonce, + prefix: "APTOS", + signature: new Ed25519Signature(signature) + }; + return { + status: UserResponseStatus.APPROVED, + args: response + }; + } catch (e) { + if (e instanceof Error && e.message.includes("rejected")) { + return { + status: UserResponseStatus.REJECTED + }; + } + throw e; + } + }, + version: "1.0.0" + }, + "aptos:signTransaction": { + signTransaction: async (transaction) => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0" + }, + "aptos:onAccountChange": { + onAccountChange: async (callback) => { + if (solanaWallet.wallet.features["standard:events"]) { + solanaWallet.wallet.features["standard:events"].on( + "change", + (account) => { + if (!account.accounts || account.accounts.length === 0) { + return; + } + const accountInfo = deriveAccountInfoFromSolanaPublicKey( + new PublicKey(account.accounts[0].publicKey) + ); + callback(accountInfo); + } + ); + } + }, + version: "1.0.0" + }, + "aptos:onNetworkChange": { + onNetworkChange: async () => { + throw new Error( + "onNetworkChange not yet implemented in solana wallet adapter" + ); + }, + version: "1.0.0" + } + }; +}; +var SOLANA_ADDITIONAL_FEATURES = (solanaWallet) => { + return { + "solana:signTransaction": { + signTransaction: async (transaction) => { + if (!solanaWallet.signTransaction) + throw new Error("Not supported"); + try { + const signature = await solanaWallet.signTransaction(transaction); + return { + status: UserResponseStatus.APPROVED, + args: signature + }; + } catch (e) { + if (e instanceof Error && e.message.includes("rejected")) { + return { + status: UserResponseStatus.REJECTED + }; + } + throw e; + } + }, + version: "1.0.0" + } + }; +}; + +// src/index.ts +function getSolanaStandardWallets() { + return getWallets().get().filter(isWalletAdapterCompatibleStandardWallet).map( + (wallet) => new SolanaWallet( + convertSolanaWalletToAptosWallet( + new StandardWalletAdapter({ wallet }) + ) + ) + ); +} +var SolanaWallet = class extends AdapterWallet { + constructor(solanaWallet) { + super(); + this.version = "1.0.0"; + this.accounts = []; + this.connected = false; + this.solanaWallet = solanaWallet; + } + get icon() { + return this.solanaWallet.icon; + } + get name() { + return this.solanaWallet.name; + } + get url() { + return this.solanaWallet.url; + } + get readyState() { + return WalletReadyState.Installed; + } + get chains() { + return APTOS_CHAINS2; + } + get isConnected() { + return this.connected; + } + async getAccount() { + return await this.solanaWallet.features["aptos:account"].account(); + } + async getConnectedNetwork() { + return await this.solanaWallet.features["aptos:network"].network(); + } + async connect() { + const result = await this.solanaWallet.features["aptos:connect"].connect(); + if (result.status === UserResponseStatus2.REJECTED) { + throw new Error("User rejected the request").message; + } + await this.onAccountChange(); + this.connected = true; + return result.args; + } + async disconnect() { + if (!this.connected) { + return; + } + await this.solanaWallet.features["aptos:disconnect"].disconnect(); + this.connected = false; + } + async signMessage(message) { + const result = await this.solanaWallet.features["aptos:signMessage"].signMessage( + message + ); + if (result.status === UserResponseStatus2.REJECTED) { + throw new Error("User rejected the request").message; + } + return result.args; + } + async signTransaction(transaction) { + const result = await this.solanaWallet.features["solana:signTransaction"].signTransaction(transaction); + if (result.status === UserResponseStatus2.REJECTED) { + throw new Error("User rejected"); + } + return result.args; + } + async onAccountChange() { + await this.solanaWallet.features["aptos:onAccountChange"].onAccountChange( + async (account) => { + this.emit("accountChange", account); + } + ); + } + async onNetworkChange(callback) { + await this.solanaWallet.features["aptos:onNetworkChange"].onNetworkChange( + callback + ); + } +}; +export { + SolanaWallet, + getSolanaStandardWallets +}; +//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs.map b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs.map new file mode 100644 index 00000000..79fbd69e --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts","../src/utils.ts"],"sourcesContent":["import {\n AccountInfo,\n APTOS_CHAINS,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosWallet,\n NetworkInfo,\n UserResponse,\n UserResponseStatus,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\nimport { isWalletAdapterCompatibleStandardWallet } from \"@solana/wallet-adapter-base\";\nimport { getWallets } from \"@wallet-standard/app\";\nimport { Transaction } from \"@solana/web3.js\";\nimport { StandardWalletAdapter } from \"@solana/wallet-standard-wallet-adapter-base\";\nimport {\n AdapterWallet,\n WalletReadyState,\n} from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { convertSolanaWalletToAptosWallet } from \"./utils\";\n\nexport type SolanaUnsignedTransaction = Transaction | Transaction[];\nexport type SolanaSignedTransaction = Transaction | Transaction[];\n\nexport function getSolanaStandardWallets(): AdapterWallet[] {\n // from https://github.com/solana-labs/wallet-standard/blob/c68c26604e0b9624e924292e243df44c742d1c00/packages/wallet-adapter/react/src/useStandardWalletAdapters.ts#L78\n return getWallets()\n .get()\n .filter(isWalletAdapterCompatibleStandardWallet)\n .map(\n (wallet) =>\n new SolanaWallet(\n convertSolanaWalletToAptosWallet(\n new StandardWalletAdapter({ wallet })\n )\n )\n );\n}\n\nexport type SolanaFeatures = {\n \"solana:signTransaction\": {\n signTransaction: (\n transaction: Transaction\n ) => Promise>;\n version: string;\n };\n};\n\nexport type SolanaBaseWallet = AptosWallet & {\n features: SolanaFeatures;\n};\n\nexport class SolanaWallet extends AdapterWallet<\n AccountInfo,\n NetworkInfo,\n AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n Transaction,\n Transaction,\n AccountInfo,\n NetworkInfo\n> {\n readonly solanaWallet: SolanaBaseWallet;\n readonly version = \"1.0.0\";\n\n accounts: WalletAccount[] = [];\n\n connected: boolean = false;\n\n constructor(solanaWallet: SolanaBaseWallet) {\n super();\n this.solanaWallet = solanaWallet;\n }\n\n get icon() {\n return this.solanaWallet.icon;\n }\n get name() {\n return this.solanaWallet.name;\n }\n get url() {\n return this.solanaWallet.url;\n }\n\n get readyState() {\n return WalletReadyState.Installed;\n }\n\n get chains() {\n return APTOS_CHAINS;\n }\n\n get isConnected() {\n return this.connected;\n }\n\n async getAccount(): Promise {\n return await this.solanaWallet.features[\"aptos:account\"].account();\n }\n\n async getConnectedNetwork() {\n return await this.solanaWallet.features[\"aptos:network\"].network();\n }\n\n async connect(): Promise {\n const result = await this.solanaWallet.features[\"aptos:connect\"].connect();\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n await this.onAccountChange();\n this.connected = true;\n return result.args;\n }\n\n async disconnect() {\n if (!this.connected) {\n return;\n }\n await this.solanaWallet.features[\"aptos:disconnect\"].disconnect();\n this.connected = false;\n }\n\n async signMessage(message: AptosSignMessageInput) {\n const result =\n await this.solanaWallet.features[\"aptos:signMessage\"].signMessage(\n message\n );\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n return result.args;\n }\n\n async signTransaction(transaction: Transaction): Promise {\n const result =\n await this.solanaWallet.features[\n \"solana:signTransaction\"\n ].signTransaction(transaction);\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected\");\n }\n return result.args;\n }\n\n async onAccountChange() {\n await this.solanaWallet.features[\"aptos:onAccountChange\"].onAccountChange(\n async (account: AccountInfo) => {\n this.emit(\"accountChange\", account);\n }\n );\n }\n\n async onNetworkChange(\n callback: (network: NetworkInfo) => void\n ): Promise {\n await this.solanaWallet.features[\"aptos:onNetworkChange\"].onNetworkChange(\n callback\n );\n }\n}\n","import {\n AnyRawTransaction,\n Ed25519PublicKey,\n Ed25519Signature,\n} from \"@aptos-labs/ts-sdk\";\nimport {\n AccountInfo,\n APTOS_CHAINS,\n AptosFeatures,\n AptosOnAccountChangeInput,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n UserResponse,\n UserResponseStatus,\n} from \"@aptos-labs/wallet-standard\";\n\nimport {\n PublicKey,\n PublicKey as SolanaPublicKey,\n Transaction,\n} from \"@solana/web3.js\";\nimport { StandardWalletAdapter } from \"@solana/wallet-standard-wallet-adapter-base\";\nimport { SolanaBaseWallet, SolanaFeatures } from \".\";\nimport { WalletConnectionError } from \"@solana/wallet-adapter-base\";\n\nconst deriveAccountInfoFromSolanaPublicKey = (\n solanaPublicKey: SolanaPublicKey\n) => {\n const publicKey = new Ed25519PublicKey(solanaPublicKey.toBytes());\n const address = publicKey.authKey().derivedAddress();\n return new AccountInfo({ address, publicKey });\n};\n\nexport const convertSolanaWalletToAptosWallet = (\n solanaWallet: StandardWalletAdapter\n): SolanaBaseWallet => {\n const wallet: SolanaBaseWallet = {\n accounts: [],\n chains: APTOS_CHAINS,\n features: {\n ...APTOS_REQUIRED_FEATURES(solanaWallet),\n ...SOLANA_ADDITIONAL_FEATURES(solanaWallet),\n },\n icon: solanaWallet.icon,\n name: solanaWallet.name,\n url: solanaWallet.url,\n version: \"1.0.0\",\n };\n return wallet;\n};\n\nconst APTOS_REQUIRED_FEATURES = (\n solanaWallet: StandardWalletAdapter\n): AptosFeatures => {\n return {\n \"aptos:account\": {\n account: async () => {\n if (!solanaWallet.publicKey) {\n throw new Error(\"Disconnected\");\n }\n return deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey);\n },\n version: \"1.0.0\",\n },\n \"aptos:connect\": {\n connect: async () => {\n try {\n await solanaWallet.connect();\n if (!solanaWallet.publicKey) {\n return { status: UserResponseStatus.REJECTED };\n }\n\n return {\n args: deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey),\n status: UserResponseStatus.APPROVED,\n };\n } catch (e) {\n console.log(\"e\", e);\n if (e instanceof WalletConnectionError) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw e;\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:disconnect\": {\n disconnect: async () => {\n try {\n await solanaWallet.disconnect();\n } catch (e) {\n throw new Error(\"Failed to disconnect\");\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:network\": {\n network: async () => {\n throw new Error(\n \"Fetch network info not supported by Solana wallet adapter\"\n );\n },\n version: \"1.0.0\",\n },\n \"aptos:signMessage\": {\n signMessage: async (message: AptosSignMessageInput) => {\n if (!solanaWallet.signMessage) throw new Error(\"Not supported\");\n try {\n const messageToSign = new TextEncoder().encode(message.message);\n const signature = await solanaWallet.signMessage(messageToSign);\n const response: AptosSignMessageOutput = {\n // address?: string;\n // application?: string;\n // chainId?: number;\n fullMessage: message.message,\n message: message.message,\n nonce: message.nonce,\n prefix: \"APTOS\",\n signature: new Ed25519Signature(signature),\n };\n return {\n status: UserResponseStatus.APPROVED,\n args: response,\n };\n } catch (e) {\n if (e instanceof Error && e.message.includes(\"rejected\")) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw e;\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:signTransaction\": {\n signTransaction: async (transaction: AnyRawTransaction) => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:onAccountChange\": {\n onAccountChange: async (callback: AptosOnAccountChangeInput) => {\n if (solanaWallet.wallet.features[\"standard:events\"]) {\n solanaWallet.wallet.features[\"standard:events\"].on(\n \"change\",\n (account) => {\n if (!account.accounts || account.accounts.length === 0) {\n return;\n }\n const accountInfo = deriveAccountInfoFromSolanaPublicKey(\n new PublicKey(account.accounts[0].publicKey)\n );\n callback(accountInfo);\n }\n );\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:onNetworkChange\": {\n onNetworkChange: async () => {\n throw new Error(\n \"onNetworkChange not yet implemented in solana wallet adapter\"\n );\n },\n version: \"1.0.0\",\n },\n };\n};\n\nconst SOLANA_ADDITIONAL_FEATURES = (\n solanaWallet: StandardWalletAdapter\n): SolanaFeatures => {\n return {\n \"solana:signTransaction\": {\n signTransaction: async (\n transaction: Transaction\n ): Promise> => {\n if (!solanaWallet.signTransaction) throw new Error(\"Not supported\");\n try {\n const signature = await solanaWallet.signTransaction(transaction);\n return {\n status: UserResponseStatus.APPROVED,\n args: signature,\n };\n } catch (e) {\n if (e instanceof Error && e.message.includes(\"rejected\")) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw e;\n }\n },\n version: \"1.0.0\",\n },\n };\n};\n"],"mappings":";AAAA;AAAA,EAEE,gBAAAA;AAAA,EAMA,sBAAAC;AAAA,OAEK;AACP,SAAS,+CAA+C;AACxD,SAAS,kBAAkB;AAE3B,SAAS,6BAA6B;AACtC;AAAA,EACE;AAAA,EACA;AAAA,OACK;;;AClBP;AAAA,EAEE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EAMA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,OAGK;AAGP,SAAS,6BAA6B;AAEtC,IAAM,uCAAuC,CAC3C,oBACG;AACH,QAAM,YAAY,IAAI,iBAAiB,gBAAgB,QAAQ,CAAC;AAChE,QAAM,UAAU,UAAU,QAAQ,EAAE,eAAe;AACnD,SAAO,IAAI,YAAY,EAAE,SAAS,UAAU,CAAC;AAC/C;AAEO,IAAM,mCAAmC,CAC9C,iBACqB;AACrB,QAAM,SAA2B;AAAA,IAC/B,UAAU,CAAC;AAAA,IACX,QAAQ;AAAA,IACR,UAAU;AAAA,MACR,GAAG,wBAAwB,YAAY;AAAA,MACvC,GAAG,2BAA2B,YAAY;AAAA,IAC5C;AAAA,IACA,MAAM,aAAa;AAAA,IACnB,MAAM,aAAa;AAAA,IACnB,KAAK,aAAa;AAAA,IAClB,SAAS;AAAA,EACX;AACA,SAAO;AACT;AAEA,IAAM,0BAA0B,CAC9B,iBACkB;AAClB,SAAO;AAAA,IACL,iBAAiB;AAAA,MACf,SAAS,YAAY;AACnB,YAAI,CAAC,aAAa,WAAW;AAC3B,gBAAM,IAAI,MAAM,cAAc;AAAA,QAChC;AACA,eAAO,qCAAqC,aAAa,SAAS;AAAA,MACpE;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS,YAAY;AACnB,YAAI;AACF,gBAAM,aAAa,QAAQ;AAC3B,cAAI,CAAC,aAAa,WAAW;AAC3B,mBAAO,EAAE,QAAQ,mBAAmB,SAAS;AAAA,UAC/C;AAEA,iBAAO;AAAA,YACL,MAAM,qCAAqC,aAAa,SAAS;AAAA,YACjE,QAAQ,mBAAmB;AAAA,UAC7B;AAAA,QACF,SAAS,GAAP;AACA,kBAAQ,IAAI,KAAK,CAAC;AAClB,cAAI,aAAa,uBAAuB;AACtC,mBAAO;AAAA,cACL,QAAQ,mBAAmB;AAAA,YAC7B;AAAA,UACF;AACA,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,oBAAoB;AAAA,MAClB,YAAY,YAAY;AACtB,YAAI;AACF,gBAAM,aAAa,WAAW;AAAA,QAChC,SAAS,GAAP;AACA,gBAAM,IAAI,MAAM,sBAAsB;AAAA,QACxC;AAAA,MACF;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS,YAAY;AACnB,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,qBAAqB;AAAA,MACnB,aAAa,OAAO,YAAmC;AACrD,YAAI,CAAC,aAAa;AAAa,gBAAM,IAAI,MAAM,eAAe;AAC9D,YAAI;AACF,gBAAM,gBAAgB,IAAI,YAAY,EAAE,OAAO,QAAQ,OAAO;AAC9D,gBAAM,YAAY,MAAM,aAAa,YAAY,aAAa;AAC9D,gBAAM,WAAmC;AAAA,YAIvC,aAAa,QAAQ;AAAA,YACrB,SAAS,QAAQ;AAAA,YACjB,OAAO,QAAQ;AAAA,YACf,QAAQ;AAAA,YACR,WAAW,IAAI,iBAAiB,SAAS;AAAA,UAC3C;AACA,iBAAO;AAAA,YACL,QAAQ,mBAAmB;AAAA,YAC3B,MAAM;AAAA,UACR;AAAA,QACF,SAAS,GAAP;AACA,cAAI,aAAa,SAAS,EAAE,QAAQ,SAAS,UAAU,GAAG;AACxD,mBAAO;AAAA,cACL,QAAQ,mBAAmB;AAAA,YAC7B;AAAA,UACF;AACA,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,yBAAyB;AAAA,MACvB,iBAAiB,OAAO,gBAAmC;AACzD,cAAM,IAAI,MAAM,qBAAqB;AAAA,MACvC;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,yBAAyB;AAAA,MACvB,iBAAiB,OAAO,aAAwC;AAC9D,YAAI,aAAa,OAAO,SAAS,oBAAoB;AACnD,uBAAa,OAAO,SAAS,mBAAmB;AAAA,YAC9C;AAAA,YACA,CAAC,YAAY;AACX,kBAAI,CAAC,QAAQ,YAAY,QAAQ,SAAS,WAAW,GAAG;AACtD;AAAA,cACF;AACA,oBAAM,cAAc;AAAA,gBAClB,IAAI,UAAU,QAAQ,SAAS,GAAG,SAAS;AAAA,cAC7C;AACA,uBAAS,WAAW;AAAA,YACtB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,SAAS;AAAA,IACX;AAAA,IACA,yBAAyB;AAAA,MACvB,iBAAiB,YAAY;AAC3B,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,MACA,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEA,IAAM,6BAA6B,CACjC,iBACmB;AACnB,SAAO;AAAA,IACL,0BAA0B;AAAA,MACxB,iBAAiB,OACf,gBACuC;AACvC,YAAI,CAAC,aAAa;AAAiB,gBAAM,IAAI,MAAM,eAAe;AAClE,YAAI;AACF,gBAAM,YAAY,MAAM,aAAa,gBAAgB,WAAW;AAChE,iBAAO;AAAA,YACL,QAAQ,mBAAmB;AAAA,YAC3B,MAAM;AAAA,UACR;AAAA,QACF,SAAS,GAAP;AACA,cAAI,aAAa,SAAS,EAAE,QAAQ,SAAS,UAAU,GAAG;AACxD,mBAAO;AAAA,cACL,QAAQ,mBAAmB;AAAA,YAC7B;AAAA,UACF;AACA,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,MACA,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ADhLO,SAAS,2BAA4C;AAE1D,SAAO,WAAW,EACf,IAAI,EACJ,OAAO,uCAAuC,EAC9C;AAAA,IACC,CAAC,WACC,IAAI;AAAA,MACF;AAAA,QACE,IAAI,sBAAsB,EAAE,OAAO,CAAC;AAAA,MACtC;AAAA,IACF;AAAA,EACJ;AACJ;AAeO,IAAM,eAAN,cAA2B,cAUhC;AAAA,EAQA,YAAY,cAAgC;AAC1C,UAAM;AAPR,SAAS,UAAU;AAEnB,oBAA4B,CAAC;AAE7B,qBAAqB;AAInB,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,aAAa;AAAA,EAC3B;AAAA,EACA,IAAI,OAAO;AACT,WAAO,KAAK,aAAa;AAAA,EAC3B;AAAA,EACA,IAAI,MAAM;AACR,WAAO,KAAK,aAAa;AAAA,EAC3B;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,iBAAiB;AAAA,EAC1B;AAAA,EAEA,IAAI,SAAS;AACX,WAAOC;AAAA,EACT;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,aAAmC;AACvC,WAAO,MAAM,KAAK,aAAa,SAAS,iBAAiB,QAAQ;AAAA,EACnE;AAAA,EAEA,MAAM,sBAAsB;AAC1B,WAAO,MAAM,KAAK,aAAa,SAAS,iBAAiB,QAAQ;AAAA,EACnE;AAAA,EAEA,MAAM,UAAgC;AACpC,UAAM,SAAS,MAAM,KAAK,aAAa,SAAS,iBAAiB,QAAQ;AACzE,QAAI,OAAO,WAAWC,oBAAmB,UAAU;AACjD,YAAM,IAAI,MAAM,2BAA2B,EAAE;AAAA,IAC/C;AACA,UAAM,KAAK,gBAAgB;AAC3B,SAAK,YAAY;AACjB,WAAO,OAAO;AAAA,EAChB;AAAA,EAEA,MAAM,aAAa;AACjB,QAAI,CAAC,KAAK,WAAW;AACnB;AAAA,IACF;AACA,UAAM,KAAK,aAAa,SAAS,oBAAoB,WAAW;AAChE,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,MAAM,YAAY,SAAgC;AAChD,UAAM,SACJ,MAAM,KAAK,aAAa,SAAS,qBAAqB;AAAA,MACpD;AAAA,IACF;AACF,QAAI,OAAO,WAAWA,oBAAmB,UAAU;AACjD,YAAM,IAAI,MAAM,2BAA2B,EAAE;AAAA,IAC/C;AACA,WAAO,OAAO;AAAA,EAChB;AAAA,EAEA,MAAM,gBAAgB,aAAgD;AACpE,UAAM,SACJ,MAAM,KAAK,aAAa,SACtB,0BACA,gBAAgB,WAAW;AAC/B,QAAI,OAAO,WAAWA,oBAAmB,UAAU;AACjD,YAAM,IAAI,MAAM,eAAe;AAAA,IACjC;AACA,WAAO,OAAO;AAAA,EAChB;AAAA,EAEA,MAAM,kBAAkB;AACtB,UAAM,KAAK,aAAa,SAAS,yBAAyB;AAAA,MACxD,OAAO,YAAyB;AAC9B,aAAK,KAAK,iBAAiB,OAAO;AAAA,MACpC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,gBACJ,UACe;AACf,UAAM,KAAK,aAAa,SAAS,yBAAyB;AAAA,MACxD;AAAA,IACF;AAAA,EACF;AACF;","names":["APTOS_CHAINS","UserResponseStatus","APTOS_CHAINS","UserResponseStatus"]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts new file mode 100644 index 00000000..1f4bb01b --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts @@ -0,0 +1,4 @@ +import { StandardWalletAdapter } from "@solana/wallet-standard-wallet-adapter-base"; +import { SolanaBaseWallet } from "."; +export declare const convertSolanaWalletToAptosWallet: (solanaWallet: StandardWalletAdapter) => SolanaBaseWallet; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts.map new file mode 100644 index 00000000..0e9144ce --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAkB,MAAM,GAAG,CAAC;AAWrD,eAAO,MAAM,gCAAgC,iBAC7B,qBAAqB,KAClC,gBAcF,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts new file mode 100644 index 00000000..c3c23141 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts @@ -0,0 +1,44 @@ +import { AptosSignTransactionInputV1_1, AptosSignTransactionOutput, AptosSignMessageOutput, AptosSignMessageInput, AptosWallet, AptosSignAndSubmitTransactionOutput, AccountInfo as StandardAccountInfo, AptosSignTransactionOutputV1_1 } from "@aptos-labs/wallet-standard"; +import { AnyRawTransaction, Aptos } from "@aptos-labs/ts-sdk"; +import { WalletReadyState } from "../constants"; +import { AccountInfo, InputTransactionData, Wallet } from "../LegacyWalletPlugins"; +export type AptosStandardWallet = AptosWallet & { + readyState?: WalletReadyState; +}; +export declare class WalletStandardCore { + connect(wallet: Wallet): Promise; + /** + * Signs and submits a transaction to chain + * + * @param transactionInput InputTransactionData + * @returns PendingTransactionResponse + */ + signAndSubmitTransaction(transactionInput: InputTransactionData, aptos: Aptos, account: AccountInfo, wallet: Wallet, standardWallets: ReadonlyArray): Promise; + /** + * Signs a transaction + * + * To support both existing wallet adapter V1 and V2, we support 2 input types + * + * @param transactionOrPayload AnyRawTransaction + * @param options asFeePayer. To sign a transaction as the fee payer sponsor + * + * @returns AptosSignTransactionOutput + */ + signTransaction(transaction: AnyRawTransaction, wallet: Wallet, asFeePayer?: boolean): Promise; + signTransaction(input: AptosSignTransactionInputV1_1, wallet: Wallet): Promise; + /** + * Sign message + * + * @param message AptosSignMessageInput + * @return AptosSignMessageOutput + * @throws WalletSignMessageError + */ + signMessage(message: AptosSignMessageInput, wallet: Wallet): Promise; + /** + * Signs a message and verifies the signer + * @param message AptosSignMessageInput + * @returns boolean + */ + signMessageAndVerify(message: AptosSignMessageInput, wallet: Wallet): Promise; +} +//# sourceMappingURL=WalletStandard.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts.map b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts.map new file mode 100644 index 00000000..efa16210 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WalletStandard.d.ts","sourceRoot":"","sources":["../../src/AIP62StandardWallets/WalletStandard.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EAEX,mCAAmC,EACnC,WAAW,IAAI,mBAAmB,EAElC,8BAA8B,EAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,iBAAiB,EAEjB,KAAK,EAGN,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAOhD,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,MAAM,EACP,MAAM,wBAAwB,CAAC;AAGhC,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG;IAC9C,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAEF,qBAAa,kBAAkB;IACvB,OAAO,CAAC,MAAM,EAAE,MAAM;IAU5B;;;;;OAKG;IACG,wBAAwB,CAC5B,gBAAgB,EAAE,oBAAoB,EACtC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,aAAa,CAAC,mBAAmB,CAAC,GAClD,OAAO,CAAC,mCAAmC,CAAC;IAsD/C;;;;;;;;;OASG;IACG,eAAe,CACnB,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,0BAA0B,CAAC;IAChC,eAAe,CACnB,KAAK,EAAE,6BAA6B,EACpC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,8BAA8B,CAAC;IAgB1C;;;;;;OAMG;IACG,WAAW,CACf,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,sBAAsB,CAAC;IAgBlC;;;;OAIG;IACG,oBAAoB,CACxB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC;CAuDpB"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts new file mode 100644 index 00000000..33540f14 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts @@ -0,0 +1,3 @@ +export * from "./types"; +export * from "./WalletStandard"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts.map b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts.map new file mode 100644 index 00000000..6315e328 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/AIP62StandardWallets/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts new file mode 100644 index 00000000..9c0e9c97 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts @@ -0,0 +1,15 @@ +import { AdapterNotDetectedWallet } from "../WalletCoreNew"; +/** + * Registry of AIP-62 wallet standard supported wallets. + * This list is used to show supported wallets even if they are not installed on the user machine. + * + * AIP-62 compatible wallets are required to add their wallet info here if they want to be detected by the adapter + * + * name - The name of your wallet cast to WalletName (Ex. "Petra" as WalletName<"Petra">) + * url - TThe link to your chrome extension or main website where new users can create an account with your wallet. + * icon - An icon for your wallet. Can be one of 4 data types. Be sure to follow the below format exactly (including the literal "," after base64). + * Format: `data:image/${"svg+xml" | "webp" | "png" | "gif"};base64,${string}` + * Note: ${...} data in the above format should be replaced. Other characters are literals (ex. ";") + */ +export declare const aptosStandardSupportedWalletList: Array; +//# sourceMappingURL=registry.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts.map b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts.map new file mode 100644 index 00000000..49e83ac2 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/AIP62StandardWallets/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gCAAgC,EAAE,KAAK,CAAC,wBAAwB,CAoB1E,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts new file mode 100644 index 00000000..525db71c --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts @@ -0,0 +1,4 @@ +import { DappConfig } from "../WalletCoreNew"; +import { AptosStandardWallet } from "./WalletStandard"; +export declare function getSDKWallets(dappConfig?: DappConfig): AptosStandardWallet[]; +//# sourceMappingURL=sdkWallets.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts.map b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts.map new file mode 100644 index 00000000..cb8d9ee6 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"sdkWallets.d.ts","sourceRoot":"","sources":["../../src/AIP62StandardWallets/sdkWallets.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE,UAAU,yBA8CpD"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts new file mode 100644 index 00000000..4afaff4e --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts @@ -0,0 +1,10 @@ +import { WalletName } from "../LegacyWalletPlugins/types"; +import { WalletReadyState } from "../constants"; +export interface AptosStandardSupportedWallet { + name: WalletName; + url: string; + icon: `data:image/${"svg+xml" | "webp" | "png" | "gif"};base64,${string}`; + readyState: WalletReadyState.NotDetected; +} +export type AvailableWallets = "Nightly" | "Petra" | "T wallet" | "Pontem Wallet" | "Mizu Wallet" | "Continue with Google"; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts.map b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts.map new file mode 100644 index 00000000..b9f722e8 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/AIP62StandardWallets/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,4BAA4B,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IAExE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAEvB,GAAG,EAAE,MAAM,CAAC;IAEZ,IAAI,EAAE,cAAc,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,WAAW,MAAM,EAAE,CAAC;IAG1E,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC;CAC1C;AAGD,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,OAAO,GACP,UAAU,GACV,eAAe,GACf,aAAa,GACb,sBAAsB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts new file mode 100644 index 00000000..f776efa3 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts @@ -0,0 +1,50 @@ +import { TxnBuilderTypes, Types } from "aptos"; +import EventEmitter from "eventemitter3"; +import { InputGenerateTransactionPayloadData } from "@aptos-labs/ts-sdk"; +import { Wallet, WalletCoreEvents, TransactionOptions, NetworkInfo, InputTransactionData, AccountInfo, SignMessagePayload } from "./types"; +import { DappConfig } from "../WalletCoreNew"; +export declare class WalletCoreV1 extends EventEmitter { + connect(wallet: Wallet): Promise; + /** + * Resolve the transaction type (BCS arguments or Simple arguments) + * + * @param payloadData + * @param network + * @param wallet + * @param transactionInput + * + * @returns + */ + resolveSignAndSubmitTransaction(payloadData: InputGenerateTransactionPayloadData, network: NetworkInfo | null, wallet: Wallet, transactionInput: InputTransactionData, dappConfig?: DappConfig): Promise; + /** + Sign and submit an entry (not bcs serialized) transaction type to chain. + @param transaction a non-bcs serialized transaction + @param options max_gas_amount and gas_unit_limit + @return response from the wallet's signAndSubmitTransaction function + @throws WalletSignAndSubmitMessageError + */ + signAndSubmitTransaction(transaction: Types.TransactionPayload, wallet: Wallet, options?: TransactionOptions): Promise; + /** + Sign and submit a bsc serialized transaction type to chain. + @param transaction a bcs serialized transaction + @param options max_gas_amount and gas_unit_limit + @return response from the wallet's signAndSubmitBCSTransaction function + @throws WalletSignAndSubmitMessageError + */ + signAndSubmitBCSTransaction(transaction: TxnBuilderTypes.TransactionPayload, wallet: Wallet, options?: TransactionOptions): Promise; + /** + Sign transaction + @param transaction + @param options max_gas_amount and gas_unit_limit + @return response from the wallet's signTransaction function + @throws WalletSignTransactionError + */ + signTransaction(transaction: Types.TransactionPayload, wallet: Wallet, options?: TransactionOptions): Promise; + /** + * Signs a message and verifies the signer + * @param message SignMessagePayload + * @returns boolean + */ + signMessageAndVerify(message: SignMessagePayload, wallet: Wallet, account: AccountInfo): Promise; +} +//# sourceMappingURL=WalletCoreV1.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts.map b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts.map new file mode 100644 index 00000000..86f9d189 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WalletCoreV1.d.ts","sourceRoot":"","sources":["../../src/LegacyWalletPlugins/WalletCoreV1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,eAAe,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,EAEL,mCAAmC,EAEpC,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAWjB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBAAa,YAAa,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IACxD,OAAO,CAAC,MAAM,EAAE,MAAM;IAK5B;;;;;;;;;OASG;IACG,+BAA+B,CACnC,WAAW,EAAE,mCAAmC,EAChD,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,CAAC,EAAE,UAAU;IAuCzB;;;;;;MAME;IACI,wBAAwB,CAC5B,WAAW,EAAE,KAAK,CAAC,kBAAkB,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,GAAG,CAAC;IAcf;;;;;;OAMG;IACG,2BAA2B,CAC/B,WAAW,EAAE,eAAe,CAAC,kBAAkB,EAC/C,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,GAAG,CAAC;IAmBf;;;;;;OAMG;IACG,eAAe,CACnB,WAAW,EAAE,KAAK,CAAC,kBAAkB,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAc7B;;;;OAIG;IACG,oBAAoB,CACxB,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC;CAuEpB"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts new file mode 100644 index 00000000..938bf7cb --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts @@ -0,0 +1,21 @@ +import { Network, TransactionPayload, InputGenerateTransactionPayloadData, AptosConfig, InputEntryFunctionData, TransactionPayloadEntryFunction } from "@aptos-labs/ts-sdk"; +import { NetworkInfo as StandardNetworkInfo } from "@aptos-labs/wallet-standard"; +import { TxnBuilderTypes, Types } from "aptos"; +import { NetworkInfo } from "./types"; +export declare function convertNetwork(networkInfo: NetworkInfo | StandardNetworkInfo | null): Network; +export declare function convertV2TransactionPayloadToV1BCSPayload(payload: TransactionPayload): TxnBuilderTypes.TransactionPayload; +export declare function convertV2PayloadToV1JSONPayload(payload: InputGenerateTransactionPayloadData): Types.TransactionPayload; +export declare function convertPayloadInputV1ToV2(inputV1: Types.TransactionPayload): InputEntryFunctionData; +export declare function generateTransactionPayloadFromV1Input(aptosConfig: AptosConfig, inputV1: Types.TransactionPayload): Promise; +export interface CompatibleTransactionOptions { + expireTimestamp?: number; + expirationSecondsFromNow?: number; + expirationTimestamp?: number; + gasUnitPrice?: number; + gas_unit_price?: number; + maxGasAmount?: number; + max_gas_amount?: number; + sender?: string; + sequenceNumber?: number; +} +//# sourceMappingURL=conversion.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts.map b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts.map new file mode 100644 index 00000000..2a1800a8 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../../src/LegacyWalletPlugins/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,mCAAmC,EAEnC,WAAW,EACX,sBAAsB,EAItB,+BAA+B,EAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAO,eAAe,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,GAAG,mBAAmB,GAAG,IAAI,GACpD,OAAO,CAaT;AAGD,wBAAgB,yCAAyC,CACvD,OAAO,EAAE,kBAAkB,GAC1B,eAAe,CAAC,kBAAkB,CAGpC;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,mCAAmC,GAC3C,KAAK,CAAC,kBAAkB,CA0C1B;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,KAAK,CAAC,kBAAkB,0BAYlC;AAED,wBAAsB,qCAAqC,CACzD,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,KAAK,CAAC,kBAAkB,GAChC,OAAO,CAAC,+BAA+B,CAAC,CAO1C;AAED,MAAM,WAAW,4BAA4B;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts new file mode 100644 index 00000000..47f75872 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts @@ -0,0 +1,4 @@ +export * from "./WalletCoreV1"; +export * from "./conversion"; +export * from "./types"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts.map b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts.map new file mode 100644 index 00000000..f15f4d89 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/LegacyWalletPlugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts new file mode 100644 index 00000000..86b0fa22 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts @@ -0,0 +1,116 @@ +import { Types } from "aptos"; +import { Network, InputGenerateTransactionOptions, InputSubmitTransactionData, PendingTransactionResponse, AccountAddressInput, InputGenerateTransactionPayloadData, AnyRawTransaction, Signature } from "@aptos-labs/ts-sdk"; +import { WalletReadyState } from "../constants"; +import { AptosSignAndSubmitTransactionOutput, AptosSignMessageOutput, UserResponse, AccountInfo as StandardAccountInfo, NetworkInfo as StandardNetworkInfo, AptosChangeNetworkMethod, AptosSignAndSubmitTransactionInput } from "@aptos-labs/wallet-standard"; +import { AptosStandardSupportedWallet } from "../AIP62StandardWallets/types"; +export { TxnBuilderTypes, Types } from "aptos"; +export type { InputGenerateTransactionData, InputGenerateTransactionOptions, AnyRawTransaction, InputSubmitTransactionData, PendingTransactionResponse, AccountAuthenticator, Network, } from "@aptos-labs/ts-sdk"; +export type { NetworkInfo as StandardNetworkInfo, AptosChangeNetworkOutput, } from "@aptos-labs/wallet-standard"; +export type WalletName = T & { + __brand__: "WalletName"; +}; +export type NetworkInfo = { + name: Network; + chainId?: string; + url?: string; +}; +export type WalletInfo = { + name: WalletName; + icon: string; + url: string; +}; +export type AccountInfo = { + address: string; + publicKey: string | string[]; + minKeysRequired?: number; + ansName?: string | null; +}; +export interface AptosWalletErrorResult { + code: number; + name: string; + message: string; +} +export declare interface WalletCoreEvents { + connect(account: AccountInfo | null): void; + disconnect(): void; + readyStateChange(wallet: Wallet): void; + standardWalletsAdded(wallets: Wallet | AptosStandardSupportedWallet): void; + networkChange(network: NetworkInfo | null): void; + accountChange(account: AccountInfo | null): void; +} +export interface SignMessagePayload { + address?: boolean; + application?: boolean; + chainId?: boolean; + message: string; + nonce: string; +} +export interface SignMessageResponse { + address?: string; + application?: string; + chainId?: number; + fullMessage: string; + message: string; + nonce: string; + prefix: "APTOS"; + signature: string | string[] | Signature; + bitmap?: Uint8Array; +} +export type OnNetworkChange = (callBack: (networkInfo: NetworkInfo | StandardNetworkInfo) => Promise) => Promise; +export type OnAccountChange = (callBack: (accountInfo: AccountInfo | StandardAccountInfo) => Promise) => Promise; +export interface AdapterPluginEvents { + onNetworkChange: OnNetworkChange; + onAccountChange: OnAccountChange; +} +export interface AdapterPluginProps { + name: WalletName; + url: string; + icon: `data:image/${"svg+xml" | "webp" | "png" | "gif"};base64,${string}`; + providerName?: string; + provider: any; + deeplinkProvider?: (data: { + url: string; + }) => string; + openInMobileApp?: () => void; + connect(): Promise; + disconnect: () => Promise; + network: () => Promise; + signAndSubmitTransaction?(transaction: Types.TransactionPayload | InputTransactionData | AnyRawTransaction | AptosSignAndSubmitTransactionInput, options?: InputGenerateTransactionOptions): Promise<{ + hash: Types.HexEncodedBytes; + output?: any; + } | PendingTransactionResponse | UserResponse>; + submitTransaction?(transaction: InputSubmitTransactionData): Promise; + signMessage(message: T): Promise>; + signTransaction?(// `any` type for backwards compatibility, especially for identity connect + transactionOrPayload: any, optionsOrAsFeePayer?: any): Promise; + account?: () => Promise; + changeNetwork?: AptosChangeNetworkMethod; +} +export type AdapterPlugin = AdapterPluginProps & AdapterPluginEvents; +export type Wallet = AdapterPlugin & { + readyState?: WalletReadyState; + isAIP62Standard?: boolean; + isSignTransactionV1_1?: boolean; +}; +export interface TransactionOptions { + max_gas_amount?: bigint; + gas_unit_price?: bigint; +} +export type InputTransactionData = { + sender?: AccountAddressInput; + data: InputGenerateTransactionPayloadData; + options?: InputGenerateTransactionOptions; +}; +export interface PluginProvider { + connect: () => Promise; + account: () => Promise; + disconnect: () => Promise; + signAndSubmitTransaction: (transaction: any, options?: any) => Promise<{ + hash: Types.HexEncodedBytes; + } | AptosWalletErrorResult>; + signMessage: (message: SignMessagePayload) => Promise; + network: () => Promise; + onAccountChange: (listener: (newAddress: AccountInfo) => Promise) => Promise; + onNetworkChange: OnNetworkChange; +} +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts.map b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts.map new file mode 100644 index 00000000..69e4f67f --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/LegacyWalletPlugins/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/WalletCore.d.ts b/packages/wallet-adapter-core-new/dist/WalletCore.d.ts new file mode 100644 index 00000000..45689706 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/WalletCore.d.ts @@ -0,0 +1,279 @@ +import { Types } from "aptos"; +import { Network, AnyRawTransaction, AccountAuthenticator, InputGenerateTransactionOptions, InputSubmitTransactionData, PendingTransactionResponse } from "@aptos-labs/ts-sdk"; +import EventEmitter from "eventemitter3"; +import { AccountInfo as StandardAccountInfo, AptosChangeNetworkOutput, NetworkInfo as StandardNetworkInfo, UserResponse } from "@aptos-labs/wallet-standard"; +import { AccountInfo, InputTransactionData, NetworkInfo, SignMessagePayload, SignMessageResponse, Wallet, WalletCoreEvents, WalletInfo } from "./LegacyWalletPlugins"; +import { AptosStandardWallet, AptosStandardSupportedWallet, AvailableWallets } from "./AIP62StandardWallets"; +import type { AptosConnectWalletConfig } from "@aptos-connect/wallet-adapter-plugin"; +export type IAptosWallet = AptosStandardWallet & Wallet; +/** + * Interface for dapp configuration + * + * @network The network the dapp is working with + * @aptosApiKeys A map of Network<>Api Key generated with {@link https://developers.aptoslabs.com/docs/api-access} + * @aptosConnect Config used to initialize the AptosConnect wallet provider + * @mizuwallet Config used to initialize the Mizu wallet provider + */ +export interface DappConfig { + network: Network; + aptosApiKeys?: Partial>; + /** @deprecated */ + aptosApiKey?: string; + /** @deprecated */ + aptosConnectDappId?: string; + aptosConnect?: Omit; + mizuwallet?: { + manifestURL: string; + appId?: string; + }; +} +/** Any wallet that can be handled by `WalletCore`. + * This includes both wallets from legacy wallet adapter plugins and compatible AIP-62 standard wallets. + */ +export type AnyAptosWallet = Wallet | AptosStandardSupportedWallet; +export declare class WalletCore extends EventEmitter { + private _wallets; + private _optInWallets; + private _standard_wallets; + private _all_wallets; + private _wallet; + private _account; + private _network; + private readonly walletCoreV1; + private readonly walletStandardCore; + private _connecting; + private _connected; + private readonly ga4; + private _dappConfig; + private readonly _sdkWallets; + private _disableTelemetry; + /** + * Core functionality constructor. + * For legacy wallet adapter v1 support we expect the dapp to pass in wallet plugins, + * since AIP-62 standard support this is optional for dapps. + * + * @param plugins legacy wallet adapter v1 wallet plugins + */ + constructor(plugins: ReadonlyArray, optInWallets: ReadonlyArray, dappConfig?: DappConfig, disableTelemetry?: boolean); + private scopePollingDetectionStrategy; + private fetchExtensionAIP62AptosWallets; + private appendNotDetectedStandardSupportedWallets; + /** + * Set AIP-62 SDK wallets + */ + private fetchSDKAIP62AptosWallets; + /** + * Set AIP-62 extension wallets + * + * @param extensionwWallets + */ + private setExtensionAIP62Wallets; + /** + * A function that excludes an AIP-62 compatible wallet the dapp doesnt want to include + * + * @param walletName + * @returns + */ + excludeWallet(wallet: AptosStandardWallet): boolean; + /** + * Standardize AIP62 wallet + * + * 1) check it is Standard compatible + * 2) Update its readyState to Installed (for a future UI detection) + * 3) convert it to the Wallet Plugin type interface for legacy compatibility + * 4) push the wallet into a local standard wallets array + * + * @param wallet + * @returns + */ + private standardizeAIP62WalletType; + /** + * To maintain support for both plugins and AIP-62 standard wallets, + * without introducing dapps breaking changes, we convert + * AIP-62 standard compatible wallets to the legacy adapter wallet plugin type. + * + * @param standardWallet An AIP-62 standard compatible wallet + */ + private standardizeStandardWalletToPluginWalletType; + private recordEvent; + /** + * Helper function to ensure wallet exists + * + * @param wallet A wallet + */ + private ensureWalletExists; + /** + * Helper function to ensure account exists + * + * @param account An account + */ + private ensureAccountExists; + /** + * @deprecated use ensureWalletExists + */ + private doesWalletExist; + /** + * Function to cleat wallet adapter data. + * + * - Removes current connected wallet state + * - Removes current connected account state + * - Removes current connected network state + * - Removes autoconnect local storage value + */ + private clearData; + /** + * Queries and sets ANS name for the current connected wallet account + */ + private setAnsName; + /** + * Sets the connected wallet + * + * @param wallet A wallet + */ + setWallet(wallet: Wallet | null): void; + /** + * Sets the connected account + * + * `AccountInfo` type comes from a legacy wallet adapter plugin + * `StandardAccountInfo` type comes from AIP-62 standard compatible wallet when onAccountChange event is called + * `UserResponse` type comes from AIP-62 standard compatible wallet on wallet connect + * + * @param account An account + */ + setAccount(account: AccountInfo | StandardAccountInfo | UserResponse | null): void; + /** + * Sets the connected network + * + * `NetworkInfo` type comes from a legacy wallet adapter plugin + * `StandardNetworkInfo` type comes from AIP-62 standard compatible wallet + * + * @param network A network + */ + setNetwork(network: NetworkInfo | StandardNetworkInfo | null): void; + /** + * Helper function to detect whether a wallet is connected + * + * @returns boolean + */ + isConnected(): boolean; + /** + * Getter to fetch all detected wallets + */ + get wallets(): ReadonlyArray; + /** + * Getter to fetch all detected plugin wallets + */ + get pluginWallets(): ReadonlyArray; + /** + * Getter to fetch all detected AIP-62 standard compatible wallets + */ + get standardWallets(): ReadonlyArray; + /** + * Getter for the current connected wallet + * + * @return wallet info + * @throws WalletNotSelectedError + */ + get wallet(): WalletInfo | null; + /** + * Getter for the current connected account + * + * @return account info + * @throws WalletAccountError + */ + get account(): AccountInfo | null; + /** + * Getter for the current wallet network + * + * @return network info + * @throws WalletGetNetworkError + */ + get network(): NetworkInfo | null; + /** + * Helper function to run some checks before we connect with a wallet. + * + * @param walletName. The wallet name we want to connect with. + */ + connect(walletName: string): Promise; + /** + * Connects a wallet to the dapp. + * On connect success, we set the current account and the network, and keeping the selected wallet + * name in LocalStorage to support autoConnect function. + * + * @param selectedWallet. The wallet we want to connect. + * @emit emits "connect" event + * @throws WalletConnectionError + */ + connectWallet(selectedWallet: Wallet): Promise; + /** + * Disconnect the current connected wallet. On success, we clear the + * current account, current network and LocalStorage data. + * + * @emit emits "disconnect" event + * @throws WalletDisconnectionError + */ + disconnect(): Promise; + /** + * Signs and submits a transaction to chain + * + * @param transactionInput InputTransactionData + * @param options optional. A configuration object to generate a transaction by + * @returns The pending transaction hash (V1 output) | PendingTransactionResponse (V2 output) + */ + signAndSubmitTransaction(transactionInput: InputTransactionData): Promise<{ + hash: Types.HexEncodedBytes; + output?: any; + } | PendingTransactionResponse>; + /** + * Signs a transaction + * + * To support both existing wallet adapter V1 and V2, we support 2 input types + * + * @param transactionOrPayload AnyRawTransaction - V2 input | Types.TransactionPayload - V1 input + * @param options optional. V1 input + * + * @returns AccountAuthenticator + */ + signTransaction(transactionOrPayload: AnyRawTransaction | Types.TransactionPayload, asFeePayer?: boolean, options?: InputGenerateTransactionOptions): Promise; + /** + * Sign message (doesnt submit to chain). + * + * @param message + * @return response from the wallet's signMessage function + * @throws WalletSignMessageError + */ + signMessage(message: SignMessagePayload): Promise; + /** + * Submits transaction to chain + * + * @param transaction + * @returns PendingTransactionResponse + */ + submitTransaction(transaction: InputSubmitTransactionData): Promise; + /** + Event for when account has changed on the wallet + @return the new account info + @throws WalletAccountChangeError + */ + onAccountChange(): Promise; + /** + Event for when network has changed on the wallet + @return the new network info + @throws WalletNetworkChangeError + */ + onNetworkChange(): Promise; + /** + * Sends a change network request to the wallet to change the connected network + * + * @param network + * @returns AptosChangeNetworkOutput + */ + changeNetwork(network: Network): Promise; + /** + * Signs a message and verifies the signer + * @param message SignMessagePayload + * @returns boolean + */ + signMessageAndVerify(message: SignMessagePayload): Promise; +} +//# sourceMappingURL=WalletCore.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/WalletCore.d.ts.map b/packages/wallet-adapter-core-new/dist/WalletCore.d.ts.map new file mode 100644 index 00000000..80c0afa1 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/WalletCore.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WalletCore.d.ts","sourceRoot":"","sources":["../src/WalletCore.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts b/packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts new file mode 100644 index 00000000..ba3ea409 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts @@ -0,0 +1,231 @@ +import EventEmitter from "eventemitter3"; +import { AptosStandardWallet, AvailableWallets } from "./AIP62StandardWallets"; +import { WalletReadyState } from "./constants"; +import { AccountAuthenticator, AnyRawTransaction, InputGenerateTransactionOptions, InputSubmitTransactionData, Network, PendingTransactionResponse } from "@aptos-labs/ts-sdk"; +import { AptosWallet, AptosSignAndSubmitTransactionOutput, AptosSignTransactionOutputV1_1, NetworkInfo, AccountInfo, AptosSignMessageInput, AptosSignMessageOutput, AptosChangeNetworkOutput } from "@aptos-labs/wallet-standard"; +export type { NetworkInfo, AccountInfo } from "@aptos-labs/wallet-standard"; +import { InputTransactionData } from "./LegacyWalletPlugins/types"; +import { AptosConnectWalletConfig } from "@aptos-connect/wallet-adapter-plugin"; +export type AdapterWallet = AptosWallet & { + readyState?: WalletReadyState; +}; +export type AdapterNotDetectedWallet = Omit & { + readyState: WalletReadyState.NotDetected; +}; +export interface DappConfig { + network: Network; + aptosApiKeys?: Partial>; + aptosConnectDappId?: string; + aptosConnect?: Omit; + mizuwallet?: { + manifestURL: string; + appId?: string; + }; +} +export declare interface WalletCoreEvents { + connect(account: AccountInfo | null): void; + disconnect(): void; + standardWalletsAdded(wallets: AdapterWallet): void; + standardNotDetectedWalletAdded(wallets: AdapterNotDetectedWallet): void; + networkChange(network: NetworkInfo | null): void; + accountChange(account: AccountInfo | null): void; +} +export type AdapterAccountInfo = Omit & { + ansName?: string; +}; +export declare class WalletCoreNew extends EventEmitter { + private _wallet; + private readonly _sdkWallets; + private _standard_wallets; + private _standard_not_detected_wallets; + private _network; + private _connected; + private _connecting; + private _account; + private _dappConfig; + private _optInWallets; + private _disableTelemetry; + private readonly ga4; + constructor(optInWallets?: ReadonlyArray, dappConfig?: DappConfig, disableTelemetry?: boolean); + private fetchExtensionAIP62AptosWallets; + /** + * Set AIP-62 extension wallets + * + * @param extensionwWallets + */ + private setExtensionAIP62Wallets; + /** + * Set AIP-62 SDK wallets + */ + private fetchSDKAIP62AptosWallets; + private appendNotDetectedStandardSupportedWallets; + /** + * A function that excludes an AIP-62 compatible wallet the dapp doesnt want to include + * + * @param walletName + * @returns + */ + excludeWallet(wallet: AptosStandardWallet): boolean; + private recordEvent; + /** + * Helper function to ensure wallet exists + * + * @param wallet A wallet + */ + private ensureWalletExists; + /** + * Helper function to ensure account exists + * + * @param account An account + */ + private ensureAccountExists; + /** + * Queries and sets ANS name for the current connected wallet account + */ + private setAnsName; + /** + * Function to cleat wallet adapter data. + * + * - Removes current connected wallet state + * - Removes current connected account state + * - Removes current connected network state + * - Removes autoconnect local storage value + */ + private clearData; + /** + * Sets the connected wallet + * + * @param wallet A wallet + */ + setWallet(wallet: AptosWallet | null): void; + /** + * Sets the connected account + * + * @param account An account + */ + setAccount(account: AccountInfo | null): void; + /** + * Sets the connected network + * + * @param network A network + */ + setNetwork(network: NetworkInfo | null): void; + /** + * Helper function to detect whether a wallet is connected + * + * @returns boolean + */ + isConnected(): boolean; + /** + * Getter to fetch all detected wallets + */ + get wallets(): ReadonlyArray; + get notDetectedWallets(): ReadonlyArray; + /** + * Getter for the current connected wallet + * + * @return wallet info + * @throws WalletNotSelectedError + */ + get wallet(): AptosWallet | null; + /** + * Getter for the current connected account + * + * @return account info + * @throws WalletAccountError + */ + get account(): AccountInfo | null; + /** + * Getter for the current wallet network + * + * @return network info + * @throws WalletGetNetworkError + */ + get network(): NetworkInfo | null; + /** + * Helper function to run some checks before we connect with a wallet. + * + * @param walletName. The wallet name we want to connect with. + */ + connect(walletName: string): Promise; + /** + * Connects a wallet to the dapp. + * On connect success, we set the current account and the network, and keeping the selected wallet + * name in LocalStorage to support autoConnect function. + * + * @param selectedWallet. The wallet we want to connect. + * @emit emits "connect" event + * @throws WalletConnectionError + */ + connectWallet(selectedWallet: AdapterWallet): Promise; + /** + * Disconnect the current connected wallet. On success, we clear the + * current account, current network and LocalStorage data. + * + * @emit emits "disconnect" event + * @throws WalletDisconnectionError + */ + disconnect(): Promise; + /** + * Signs and submits a transaction to chain + * + * @param transactionInput InputTransactionData + * @returns PendingTransactionResponse + */ + signAndSubmitTransaction(transactionInput: InputTransactionData): Promise; + /** + * Signs a transaction + * + * To support both existing wallet adapter V1 and V2, we support 2 input types + * + * @param transactionOrPayload AnyRawTransaction - V2 input | Types.TransactionPayload - V1 input + * @param options optional. V1 input + * + * @returns AccountAuthenticator + */ + signTransaction(transactionOrPayload: AnyRawTransaction | InputTransactionData, asFeePayer?: boolean, options?: InputGenerateTransactionOptions & { + expirationSecondsFromNow?: number; + expirationTimestamp?: number; + }): Promise; + /** + * Sign message (doesnt submit to chain). + * + * @param message + * @return response from the wallet's signMessage function + * @throws WalletSignMessageError + */ + signMessage(message: AptosSignMessageInput): Promise; + /** + * Submits transaction to chain + * + * @param transaction + * @returns PendingTransactionResponse + */ + submitTransaction(transaction: InputSubmitTransactionData): Promise; + /** + Event for when account has changed on the wallet + @return the new account info + @throws WalletAccountChangeError + */ + onAccountChange(): Promise; + /** + Event for when network has changed on the wallet + @return the new network info + @throws WalletNetworkChangeError + */ + onNetworkChange(): Promise; + /** + * Sends a change network request to the wallet to change the connected network + * + * @param network + * @returns AptosChangeNetworkOutput + */ + changeNetwork(network: Network): Promise; + /** + * Signs a message and verifies the signer + * @param message SignMessagePayload + * @returns boolean + */ + signMessageAndVerify(message: AptosSignMessageInput): Promise; +} +//# sourceMappingURL=WalletCoreNew.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts.map b/packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts.map new file mode 100644 index 00000000..a84a01f1 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WalletCoreNew.d.ts","sourceRoot":"","sources":["../src/WalletCoreNew.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts b/packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts new file mode 100644 index 00000000..d1b9b612 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=WalletCore.test.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts.map b/packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts.map new file mode 100644 index 00000000..522a4c92 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WalletCore.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/WalletCore.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/constants.d.ts b/packages/wallet-adapter-core-new/dist/constants.d.ts new file mode 100644 index 00000000..6d90eb6c --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/constants.d.ts @@ -0,0 +1,30 @@ +export declare enum WalletReadyState { + /** + * User-installable wallets can typically be detected by scanning for an API + * that they've injected into the global context. If such an API is present, + * we consider the wallet to have been installed. + */ + Installed = "Installed", + NotDetected = "NotDetected", + /** + * Loadable wallets are always available to you. Since you can load them at + * any time, it's meaningless to say that they have been detected. + */ + Loadable = "Loadable", + /** + * If a wallet is not supported on a given platform (eg. server-rendering, or + * mobile) then it will stay in the `Unsupported` state. + */ + Unsupported = "Unsupported" +} +export declare enum NetworkName { + Mainnet = "mainnet", + Testnet = "testnet", + Devnet = "devnet" +} +export declare const ChainIdToAnsSupportedNetworkMap: Record; +/** The base URL for all Aptos Connect wallets. */ +export declare const APTOS_CONNECT_BASE_URL = "https://aptosconnect.app"; +/** The URL to the Aptos Connect account page if the user is signed in to Aptos Connect. */ +export declare const APTOS_CONNECT_ACCOUNT_URL = "https://aptosconnect.app/dashboard/main-account"; +//# sourceMappingURL=constants.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/constants.d.ts.map b/packages/wallet-adapter-core-new/dist/constants.d.ts.map new file mode 100644 index 00000000..afa2b527 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/constants.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B;;;;OAIG;IACH,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B;;;OAGG;IACH,QAAQ,aAAa;IACrB;;;OAGG;IACH,WAAW,gBAAgB;CAC5B;AAED,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGlE,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAEjE,2FAA2F;AAC3F,eAAO,MAAM,yBAAyB,oDACa,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/error/index.d.ts b/packages/wallet-adapter-core-new/dist/error/index.d.ts new file mode 100644 index 00000000..f93edb0d --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/error/index.d.ts @@ -0,0 +1,83 @@ +export declare class WalletError extends Error { + error: any; + constructor(message?: string, error?: any); +} +export declare class WalletNotSelectedError extends WalletError { + name: string; +} +export declare class WalletNotReadyError extends WalletError { + name: string; +} +export declare class WalletLoadError extends WalletError { + name: string; +} +export declare class WalletConfigError extends WalletError { + name: string; +} +export declare class WalletConnectionError extends WalletError { + name: string; +} +export declare class WalletDisconnectedError extends WalletError { + name: string; +} +export declare class WalletDisconnectionError extends WalletError { + name: string; +} +export declare class WalletAccountError extends WalletError { + name: string; +} +export declare class WalletGetNetworkError extends WalletError { + name: string; +} +export declare class WalletAccountChangeError extends WalletError { + name: string; +} +export declare class WalletNetworkChangeError extends WalletError { + name: string; +} +export declare class WalletPublicKeyError extends WalletError { + name: string; +} +export declare class WalletKeypairError extends WalletError { + name: string; +} +export declare class WalletNotConnectedError extends WalletError { + name: string; +} +export declare class WalletSendTransactionError extends WalletError { + name: string; +} +export declare class WalletSignMessageError extends WalletError { + name: string; +} +export declare class WalletSubmitTransactionError extends WalletError { + name: string; +} +export declare class WalletSignMessageAndVerifyError extends WalletError { + name: string; +} +export declare class WalletSignAndSubmitMessageError extends WalletError { + name: string; +} +export declare class WalletSignTransactionError extends WalletError { + name: string; +} +export declare class WalletTimeoutError extends WalletError { + name: string; +} +export declare class WalletWindowBlockedError extends WalletError { + name: string; +} +export declare class WalletWindowClosedError extends WalletError { + name: string; +} +export declare class WalletResponseError extends WalletError { + name: string; +} +export declare class WalletNotSupportedMethod extends WalletError { + name: string; +} +export declare class WalletChangeNetworkError extends WalletError { + name: string; +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/error/index.d.ts.map b/packages/wallet-adapter-core-new/dist/error/index.d.ts.map new file mode 100644 index 00000000..546469a3 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/error/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/error/index.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,KAAK;IAC7B,KAAK,EAAE,GAAG,CAAC;gBAEN,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;CAI1C;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACrD,IAAI,SAA4B;CACjC;AAED,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,IAAI,SAAyB;CAC9B;AAED,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,IAAI,SAAqB;CAC1B;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,IAAI,SAAuB;CAC5B;AAED,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,IAAI,SAA2B;CAChC;AAED,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,IAAI,SAA6B;CAClC;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,IAAI,SAA8B;CACnC;AAED,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,IAAI,SAAwB;CAC7B;AACD,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,IAAI,SAA2B;CAChC;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,IAAI,SAA8B;CACnC;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,IAAI,SAA8B;CACnC;AAED,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,IAAI,SAA0B;CAC/B;AAED,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,IAAI,SAAwB;CAC7B;AAED,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,IAAI,SAA6B;CAClC;AAED,qBAAa,0BAA2B,SAAQ,WAAW;IACzD,IAAI,SAAgC;CACrC;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACrD,IAAI,SAA4B;CACjC;AAED,qBAAa,4BAA6B,SAAQ,WAAW;IAC3D,IAAI,SAAkC;CACvC;AAED,qBAAa,+BAAgC,SAAQ,WAAW;IAC9D,IAAI,SAAqC;CAC1C;AAED,qBAAa,+BAAgC,SAAQ,WAAW;IAC9D,IAAI,SAAqC;CAC1C;AAED,qBAAa,0BAA2B,SAAQ,WAAW;IACzD,IAAI,SAAgC;CACrC;AAED,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,IAAI,SAAwB;CAC7B;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,IAAI,SAA8B;CACnC;AAED,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,IAAI,SAA6B;CAClC;AAED,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,IAAI,SAAyB;CAC9B;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,IAAI,SAA8B;CACnC;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,IAAI,SAA8B;CACnC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/ga/index.d.ts b/packages/wallet-adapter-core-new/dist/ga/index.d.ts new file mode 100644 index 00000000..d1c50ffb --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/ga/index.d.ts @@ -0,0 +1,7 @@ +export declare class GA4 { + readonly aptosGAID: string | undefined; + constructor(); + gtag(a: string, b: string | object, c?: object): void; + private injectGA; +} +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/ga/index.d.ts.map b/packages/wallet-adapter-core-new/dist/ga/index.d.ts.map new file mode 100644 index 00000000..7b211f48 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/ga/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ga/index.ts"],"names":[],"mappings":"AAAA,qBAAa,GAAG;IACd,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAoB;;IAO1D,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM;IAK9C,OAAO,CAAC,QAAQ;CAuBjB"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/index.d.ts b/packages/wallet-adapter-core-new/dist/index.d.ts new file mode 100644 index 00000000..776c8706 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/index.d.ts @@ -0,0 +1,7 @@ +export { type AdapterWallet, type NetworkInfo, type AccountInfo, WalletCoreNew, type DappConfig, type AdapterNotDetectedWallet, } from "./WalletCoreNew"; +export * from "./LegacyWalletPlugins"; +export * from "./constants"; +export * from "./utils"; +export * from "./AIP62StandardWallets"; +export { type AptosSignAndSubmitTransactionOutput, type AptosSignTransactionOutputV1_1, type AptosSignMessageOutput, type AptosSignMessageInput, } from "@aptos-labs/wallet-standard"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/index.d.ts.map b/packages/wallet-adapter-core-new/dist/index.d.ts.map new file mode 100644 index 00000000..be58cd5d --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,aAAa,EACb,KAAK,UAAU,EACf,KAAK,wBAAwB,GAC9B,MAAM,iBAAiB,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,KAAK,mCAAmC,EACxC,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,6BAA6B,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/index.js b/packages/wallet-adapter-core-new/dist/index.js new file mode 100644 index 00000000..c7765bfb --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/index.js @@ -0,0 +1,1357 @@ +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + APTOS_CONNECT_ACCOUNT_URL: () => APTOS_CONNECT_ACCOUNT_URL, + APTOS_CONNECT_BASE_URL: () => APTOS_CONNECT_BASE_URL, + ChainIdToAnsSupportedNetworkMap: () => ChainIdToAnsSupportedNetworkMap, + NetworkName: () => NetworkName, + TxnBuilderTypes: () => import_aptos3.TxnBuilderTypes, + Types: () => import_aptos3.Types, + WalletCoreNew: () => WalletCoreNew, + WalletCoreV1: () => WalletCoreV1, + WalletReadyState: () => WalletReadyState, + WalletStandardCore: () => WalletStandardCore, + areBCSArguments: () => areBCSArguments, + convertNetwork: () => convertNetwork, + convertPayloadInputV1ToV2: () => convertPayloadInputV1ToV2, + convertV2PayloadToV1JSONPayload: () => convertV2PayloadToV1JSONPayload, + convertV2TransactionPayloadToV1BCSPayload: () => convertV2TransactionPayloadToV1BCSPayload, + fetchDevnetChainId: () => fetchDevnetChainId, + generalizedErrorMessage: () => generalizedErrorMessage, + generateTransactionPayloadFromV1Input: () => generateTransactionPayloadFromV1Input, + getAptosConfig: () => getAptosConfig, + getAptosConnectWallets: () => getAptosConnectWallets, + getLocalStorage: () => getLocalStorage, + groupAndSortWallets: () => groupAndSortWallets, + handlePublishPackageTransaction: () => handlePublishPackageTransaction, + isAptosConnectWallet: () => isAptosConnectWallet, + isAptosLiveNetwork: () => isAptosLiveNetwork, + isAptosNetwork: () => isAptosNetwork, + isInAppBrowser: () => isInAppBrowser, + isInstallRequired: () => isInstallRequired, + isInstalled: () => isInstalled, + isMobile: () => isMobile, + isRedirectable: () => isRedirectable, + partitionWallets: () => partitionWallets, + removeLocalStorage: () => removeLocalStorage, + setLocalStorage: () => setLocalStorage, + truncateAddress: () => truncateAddress +}); +module.exports = __toCommonJS(src_exports); + +// src/version.ts +var WALLET_ADAPTER_CORE_VERSION = "4.23.0"; + +// src/WalletCoreNew.ts +var import_eventemitter3 = __toESM(require("eventemitter3")); + +// src/ga/index.ts +var GA4 = class { + constructor() { + this.aptosGAID = "G-GNVVWBL3J9"; + this.injectGA(this.aptosGAID); + } + gtag(a, b, c) { + let dataLayer = window.dataLayer || []; + dataLayer.push(arguments); + } + injectGA(gaID) { + if (typeof window === "undefined") + return; + if (!gaID) + return; + const head = document.getElementsByTagName("head")[0]; + var myScript = document.createElement("script"); + myScript.setAttribute( + "src", + `https://www.googletagmanager.com/gtag/js?id=${gaID}` + ); + const that = this; + myScript.onload = function() { + that.gtag("js", new Date()); + that.gtag("config", `${gaID}`, { + send_page_view: false + }); + }; + head.insertBefore(myScript, head.children[1]); + } +}; + +// src/constants.ts +var WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => { + WalletReadyState2["Installed"] = "Installed"; + WalletReadyState2["NotDetected"] = "NotDetected"; + WalletReadyState2["Loadable"] = "Loadable"; + WalletReadyState2["Unsupported"] = "Unsupported"; + return WalletReadyState2; +})(WalletReadyState || {}); +var NetworkName = /* @__PURE__ */ ((NetworkName2) => { + NetworkName2["Mainnet"] = "mainnet"; + NetworkName2["Testnet"] = "testnet"; + NetworkName2["Devnet"] = "devnet"; + return NetworkName2; +})(NetworkName || {}); +var ChainIdToAnsSupportedNetworkMap = { + "1": "mainnet", + "2": "testnet" +}; +var APTOS_CONNECT_BASE_URL = "https://aptosconnect.app"; +var APTOS_CONNECT_ACCOUNT_URL = "https://aptosconnect.app/dashboard/main-account"; + +// src/AIP62StandardWallets/sdkWallets.ts +var import_wallet_adapter_plugin = require("@aptos-connect/wallet-adapter-plugin"); +var import_ts_sdk = require("@aptos-labs/ts-sdk"); +var import_aptos_wallet_adapter = require("@atomrigslab/aptos-wallet-adapter"); +var import_aptos_wallet_adapter2 = require("@mizuwallet-sdk/aptos-wallet-adapter"); +function getSDKWallets(dappConfig) { + const sdkWallets = []; + if (typeof window !== "undefined") { + sdkWallets.push( + new import_wallet_adapter_plugin.AptosConnectGoogleWallet({ + network: dappConfig == null ? void 0 : dappConfig.network, + dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId, + ...dappConfig == null ? void 0 : dappConfig.aptosConnect + }), + new import_wallet_adapter_plugin.AptosConnectAppleWallet({ + network: dappConfig == null ? void 0 : dappConfig.network, + dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId, + ...dappConfig == null ? void 0 : dappConfig.aptosConnect + }) + ); + if ((dappConfig == null ? void 0 : dappConfig.mizuwallet) && (dappConfig == null ? void 0 : dappConfig.network) && [import_ts_sdk.Network.MAINNET, import_ts_sdk.Network.TESTNET].includes(dappConfig.network)) { + sdkWallets.push( + new import_aptos_wallet_adapter2.MizuWallet({ + network: dappConfig.network, + manifestURL: dappConfig.mizuwallet.manifestURL, + appId: dappConfig.mizuwallet.appId + }) + ); + } + } + if ((dappConfig == null ? void 0 : dappConfig.network) === import_ts_sdk.Network.MAINNET) { + sdkWallets.push(new import_aptos_wallet_adapter.TWallet()); + } else { + sdkWallets.push(new import_aptos_wallet_adapter.DevTWallet()); + } + return sdkWallets; +} + +// src/utils/helpers.ts +var import_ts_sdk3 = require("@aptos-labs/ts-sdk"); + +// src/LegacyWalletPlugins/conversion.ts +var import_ts_sdk2 = require("@aptos-labs/ts-sdk"); +var import_aptos = require("aptos"); +function convertNetwork(networkInfo) { + switch (networkInfo == null ? void 0 : networkInfo.name) { + case "mainnet": + return import_ts_sdk2.Network.MAINNET; + case "testnet": + return import_ts_sdk2.Network.TESTNET; + case "devnet": + return import_ts_sdk2.Network.DEVNET; + case "local": + return import_ts_sdk2.Network.LOCAL; + default: + throw new Error("Invalid Aptos network name"); + } +} +function convertV2TransactionPayloadToV1BCSPayload(payload) { + const deserializer = new import_aptos.BCS.Deserializer(payload.bcsToBytes()); + return import_aptos.TxnBuilderTypes.TransactionPayload.deserialize(deserializer); +} +function convertV2PayloadToV1JSONPayload(payload) { + var _a, _b; + if ("bytecode" in payload) { + throw new Error("script payload not supported"); + } else if ("multisigAddress" in payload) { + const stringTypeTags = (_a = payload.typeArguments) == null ? void 0 : _a.map( + (typeTag) => { + if (typeTag instanceof import_ts_sdk2.TypeTag) { + return typeTag.toString(); + } + return typeTag; + } + ); + const newPayload = { + type: "multisig_payload", + multisig_address: payload.multisigAddress.toString(), + function: payload.function, + type_arguments: stringTypeTags || [], + arguments: payload.functionArguments + }; + return newPayload; + } else { + const stringTypeTags = (_b = payload.typeArguments) == null ? void 0 : _b.map( + (typeTag) => { + if (typeTag instanceof import_ts_sdk2.TypeTag) { + return typeTag.toString(); + } + return typeTag; + } + ); + const newPayload = { + type: "entry_function_payload", + function: payload.function, + type_arguments: stringTypeTags || [], + arguments: payload.functionArguments + }; + return newPayload; + } +} +function convertPayloadInputV1ToV2(inputV1) { + if ("function" in inputV1) { + const inputV2 = { + function: inputV1.function, + functionArguments: inputV1.arguments, + typeArguments: inputV1.type_arguments + }; + return inputV2; + } + throw new Error("Payload type not supported"); +} +async function generateTransactionPayloadFromV1Input(aptosConfig, inputV1) { + if ("function" in inputV1) { + const inputV2 = convertPayloadInputV1ToV2(inputV1); + return (0, import_ts_sdk2.generateTransactionPayload)({ ...inputV2, aptosConfig }); + } + throw new Error("Payload type not supported"); +} + +// src/error/index.ts +var WalletError = class extends Error { + constructor(message, error) { + super(message); + this.error = error; + } +}; +var WalletNotSelectedError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletNotSelectedError"; + } +}; +var WalletNotReadyError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletNotReadyError"; + } +}; +var WalletConnectionError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletConnectionError"; + } +}; +var WalletDisconnectionError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletDisconnectionError"; + } +}; +var WalletAccountError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletAccountError"; + } +}; +var WalletGetNetworkError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletGetNetworkError"; + } +}; +var WalletAccountChangeError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletAccountChangeError"; + } +}; +var WalletNetworkChangeError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletNetworkChangeError"; + } +}; +var WalletNotConnectedError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletNotConnectedError"; + } +}; +var WalletSignMessageError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletSignMessageError"; + } +}; +var WalletSubmitTransactionError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletSubmitTransactionError"; + } +}; +var WalletSignMessageAndVerifyError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletSignMessageAndVerifyError"; + } +}; +var WalletSignAndSubmitMessageError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletSignAndSubmitMessageError"; + } +}; +var WalletSignTransactionError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletSignTransactionError"; + } +}; +var WalletNotSupportedMethod = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletNotSupportedMethod"; + } +}; +var WalletChangeNetworkError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletChangeNetworkError"; + } +}; + +// src/utils/helpers.ts +function isMobile() { + return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test( + navigator.userAgent + ); +} +function isInAppBrowser() { + const isIphone = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test( + navigator.userAgent + ); + const isAndroid = /(Android).*Version\/[\d.]+.*Chrome\/[^\s]+ Mobile/i.test( + navigator.userAgent + ); + return isIphone || isAndroid; +} +function isRedirectable() { + if (typeof navigator === "undefined" || !navigator) + return false; + return isMobile() && !isInAppBrowser(); +} +function generalizedErrorMessage(error) { + return typeof error === "object" && "message" in error ? error.message : error; +} +var areBCSArguments = (args) => { + if (args.length === 0) + return false; + return args.every( + (arg) => arg instanceof import_ts_sdk3.Serializable + ); +}; +var getAptosConfig = (networkInfo, dappConfig) => { + if (!networkInfo) { + throw new Error("Undefined network"); + } + const currentNetwork = convertNetwork(networkInfo); + if (isAptosLiveNetwork(currentNetwork)) { + const apiKey = dappConfig == null ? void 0 : dappConfig.aptosApiKeys; + return new import_ts_sdk3.AptosConfig({ + network: currentNetwork, + clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : void 0 } + }); + } + if (isAptosNetwork(networkInfo)) { + return new import_ts_sdk3.AptosConfig({ + network: currentNetwork + }); + } + return new import_ts_sdk3.AptosConfig({ + network: import_ts_sdk3.Network.CUSTOM, + fullnode: networkInfo.url + }); +}; +var isAptosNetwork = (networkInfo) => { + if (!networkInfo) { + throw new Error("Undefined network"); + } + return import_ts_sdk3.NetworkToNodeAPI[networkInfo.name] !== void 0; +}; +var isAptosLiveNetwork = (networkInfo) => { + return networkInfo === "devnet" || networkInfo === "testnet" || networkInfo === "mainnet"; +}; +var fetchDevnetChainId = async () => { + const aptos = new import_ts_sdk3.Aptos(); + return await aptos.getChainId(); +}; +var handlePublishPackageTransaction = (transactionInput) => { + let metadataBytes = transactionInput.data.functionArguments[0]; + if (typeof metadataBytes === "string") { + metadataBytes = import_ts_sdk3.Hex.fromHexInput(metadataBytes).toUint8Array(); + } + let byteCode = transactionInput.data.functionArguments[1]; + if (Array.isArray(byteCode)) { + byteCode = byteCode.map((byte) => { + if (typeof byte === "string") { + return import_ts_sdk3.Hex.fromHexInput(byte).toUint8Array(); + } + return byte; + }); + } else { + throw new WalletSignAndSubmitMessageError( + "The bytecode argument must be an array." + ).message; + } + return { metadataBytes, byteCode }; +}; + +// src/utils/localStorage.ts +var LOCAL_STORAGE_ITEM_KEY = "AptosWalletName"; +function setLocalStorage(walletName) { + localStorage.setItem(LOCAL_STORAGE_ITEM_KEY, walletName); +} +function removeLocalStorage() { + localStorage.removeItem(LOCAL_STORAGE_ITEM_KEY); +} +function getLocalStorage() { + localStorage.getItem(LOCAL_STORAGE_ITEM_KEY); +} + +// src/utils/walletSelector.ts +function partitionWallets(wallets, partitionFunction = isInstalled) { + const defaultWallets = []; + const moreWallets = []; + for (const wallet of wallets) { + if (partitionFunction(wallet)) + defaultWallets.push(wallet); + else + moreWallets.push(wallet); + } + return { defaultWallets, moreWallets }; +} +function isInstalled(wallet) { + return wallet.readyState === "Installed" /* Installed */; +} +function isInstallRequired(wallet) { + const isWalletReady = isInstalled(wallet); + const isMobile2 = !isWalletReady && isRedirectable(); + return !isMobile2 && !isWalletReady; +} +function truncateAddress(address) { + if (!address) + return; + return `${address.slice(0, 6)}...${address.slice(-5)}`; +} +function isAptosConnectWallet(wallet) { + if (!wallet.url) + return false; + return wallet.url.startsWith(APTOS_CONNECT_BASE_URL); +} +function getAptosConnectWallets(wallets) { + const { defaultWallets, moreWallets } = partitionWallets( + wallets, + isAptosConnectWallet + ); + return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets }; +} +function groupAndSortWallets(wallets, options) { + const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets); + const { defaultWallets, moreWallets } = partitionWallets(otherWallets); + if (options == null ? void 0 : options.sortAptosConnectWallets) { + aptosConnectWallets.sort(options.sortAptosConnectWallets); + } + if (options == null ? void 0 : options.sortAvailableWallets) { + defaultWallets.sort(options.sortAvailableWallets); + } + if (options == null ? void 0 : options.sortInstallableWallets) { + moreWallets.sort(options.sortInstallableWallets); + } + return { + aptosConnectWallets, + availableWallets: defaultWallets, + installableWallets: moreWallets + }; +} + +// src/WalletCoreNew.ts +var import_ts_sdk4 = require("@aptos-labs/ts-sdk"); +var import_wallet_standard = require("@aptos-labs/wallet-standard"); + +// src/AIP62StandardWallets/registry.ts +var aptosStandardSupportedWalletList = [ + { + name: "Nightly", + url: "https://chromewebstore.google.com/detail/nightly/fiikommddbeccaoicoejoniammnalkfa?hl=en", + icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==", + readyState: "NotDetected" /* NotDetected */ + }, + { + name: "Petra", + url: "https://chromewebstore.google.com/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci?hl=en", + icon: "data:image/png;base64,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", + readyState: "NotDetected" /* NotDetected */ + }, + { + name: "Pontem Wallet", + url: "https://pontem.network/pontem-wallet", + icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K", + readyState: "NotDetected" /* NotDetected */ + } +]; + +// src/WalletCoreNew.ts +var WalletCoreNew = class extends import_eventemitter3.default { + constructor(optInWallets, dappConfig, disableTelemetry) { + super(); + this._wallet = null; + this._sdkWallets = []; + this._standard_wallets = []; + this._standard_not_detected_wallets = []; + this._network = null; + this._connected = false; + this._connecting = false; + this._account = null; + this._optInWallets = []; + this._disableTelemetry = false; + this.ga4 = null; + this._optInWallets = optInWallets || []; + this._dappConfig = dappConfig; + this._disableTelemetry = disableTelemetry || false; + this._sdkWallets = getSDKWallets(this._dappConfig); + if (!this._disableTelemetry) { + this.ga4 = new GA4(); + } + this.fetchExtensionAIP62AptosWallets(); + this.fetchSDKAIP62AptosWallets(); + this.appendNotDetectedStandardSupportedWallets(); + } + fetchExtensionAIP62AptosWallets() { + let { aptosWallets, on } = (0, import_wallet_standard.getAptosWallets)(); + this.setExtensionAIP62Wallets(aptosWallets); + if (typeof window === "undefined") + return; + const that = this; + const removeRegisterListener = on("register", function() { + let { aptosWallets: aptosWallets2 } = (0, import_wallet_standard.getAptosWallets)(); + that.setExtensionAIP62Wallets(aptosWallets2); + }); + const removeUnregisterListener = on("unregister", function() { + let { aptosWallets: aptosWallets2 } = (0, import_wallet_standard.getAptosWallets)(); + that.setExtensionAIP62Wallets(aptosWallets2); + }); + } + setExtensionAIP62Wallets(extensionwWallets) { + const wallets = extensionwWallets.filter( + (wallet) => wallet.name !== "Dev T wallet" && wallet.name !== "T wallet" + ); + wallets.map((wallet) => { + if (this.excludeWallet(wallet)) { + return; + } + this._standard_wallets = this._standard_wallets.filter( + (item) => item.name !== wallet.name + ); + const isValid = (0, import_wallet_standard.isWalletWithRequiredFeatureSet)(wallet); + if (isValid) { + const index = this._standard_not_detected_wallets.findIndex( + (notDetctedWallet) => notDetctedWallet.name == wallet.name + ); + if (index !== -1) { + this._standard_not_detected_wallets.splice(index, 1); + } + wallet.readyState = "Installed" /* Installed */; + this._standard_wallets.push(wallet); + this.emit("standardWalletsAdded", wallet); + } + }); + } + fetchSDKAIP62AptosWallets() { + this._sdkWallets.map((wallet) => { + if (this.excludeWallet(wallet)) { + return; + } + const isValid = (0, import_wallet_standard.isWalletWithRequiredFeatureSet)(wallet); + if (isValid) { + wallet.readyState = "Installed" /* Installed */; + this._standard_wallets.push(wallet); + } + }); + } + appendNotDetectedStandardSupportedWallets() { + aptosStandardSupportedWalletList.map((supportedWallet) => { + const existingStandardWallet = this._standard_wallets.find( + (wallet) => wallet.name == supportedWallet.name + ); + if (existingStandardWallet) { + return; + } + if (existingStandardWallet && this.excludeWallet(existingStandardWallet)) { + return; + } + if (!existingStandardWallet) { + this._standard_not_detected_wallets.push(supportedWallet); + this.emit("standardNotDetectedWalletAdded", supportedWallet); + } + }); + } + excludeWallet(wallet) { + if (this._optInWallets.length > 0 && !this._optInWallets.includes(wallet.name)) { + return true; + } + return false; + } + recordEvent(eventName, additionalInfo) { + var _a, _b, _c, _d; + (_d = this.ga4) == null ? void 0 : _d.gtag("event", `wallet_adapter_${eventName}`, { + wallet: (_a = this._wallet) == null ? void 0 : _a.name, + network: (_b = this._network) == null ? void 0 : _b.name, + network_url: (_c = this._network) == null ? void 0 : _c.url, + adapter_core_version: WALLET_ADAPTER_CORE_VERSION, + send_to: "G-GNVVWBL3J9", + ...additionalInfo + }); + } + ensureWalletExists(wallet) { + if (!wallet) { + throw new WalletNotConnectedError().name; + } + if (!(wallet.readyState === "Installed" /* Installed */)) + throw new WalletNotReadyError("Wallet is not set").name; + } + ensureAccountExists(account) { + if (!account) { + throw new WalletAccountError("Account is not set").name; + } + } + async setAnsName() { + var _a; + if (((_a = this._network) == null ? void 0 : _a.chainId) && this._account) { + if (this._account.ansName) + return; + if (!ChainIdToAnsSupportedNetworkMap[this._network.chainId] || !isAptosNetwork(this._network)) { + this._account.ansName = void 0; + return; + } + const aptosConfig = getAptosConfig(this._network, this._dappConfig); + const aptos = new import_ts_sdk4.Aptos(aptosConfig); + const name = await aptos.ans.getPrimaryName({ + address: this._account.address.toString() + }); + this._account.ansName = name; + } + } + clearData() { + this._connected = false; + this.setWallet(null); + this.setAccount(null); + this.setNetwork(null); + removeLocalStorage(); + } + setWallet(wallet) { + this._wallet = wallet; + } + setAccount(account) { + this._account = account; + } + setNetwork(network) { + this._network = network; + } + isConnected() { + return this._connected; + } + get wallets() { + return this._standard_wallets; + } + get notDetectedWallets() { + return this._standard_not_detected_wallets; + } + get wallet() { + try { + if (!this._wallet) + return null; + return this._wallet; + } catch (error) { + throw new WalletNotSelectedError(error).message; + } + } + get account() { + try { + return this._account; + } catch (error) { + throw new WalletAccountError(error).message; + } + } + get network() { + try { + return this._network; + } catch (error) { + throw new WalletGetNetworkError(error).message; + } + } + async connect(walletName) { + var _a, _b, _c; + const allDetectedWallets = this._standard_wallets; + const selectedWallet = allDetectedWallets.find( + (wallet) => wallet.name === walletName + ); + if (!selectedWallet) + return; + if (this._connected) { + if (((_a = this._wallet) == null ? void 0 : _a.name) === walletName) + throw new WalletConnectionError( + `${walletName} wallet is already connected` + ).message; + } + if (isRedirectable() && selectedWallet.readyState !== "Installed" /* Installed */) { + if ((_b = selectedWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _b.openInMobileApp) { + (_c = selectedWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _c.openInMobileApp(); + return; + } + return; + } + if (selectedWallet.readyState !== "Installed" /* Installed */) { + return; + } + await this.connectWallet(selectedWallet); + } + async connectWallet(selectedWallet) { + var _a; + try { + this._connecting = true; + this.setWallet(selectedWallet); + const response = await selectedWallet.features["aptos:connect"].connect(); + if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + const account = response.args; + this.setAccount(account); + const network = await ((_a = selectedWallet.features["aptos:network"]) == null ? void 0 : _a.network()); + this.setNetwork(network); + await this.setAnsName(); + setLocalStorage(selectedWallet.name); + this._connected = true; + this.recordEvent("wallet_connect"); + this.emit("connect", account); + } catch (error) { + this.clearData(); + const errMsg = generalizedErrorMessage(error); + throw new WalletConnectionError(errMsg).message; + } finally { + this._connecting = false; + } + } + async disconnect() { + try { + this.ensureWalletExists(this._wallet); + await this._wallet.features["aptos:disconnect"].disconnect(); + this.clearData(); + this.recordEvent("wallet_disconnect"); + this.emit("disconnect"); + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletDisconnectionError(errMsg).message; + } + } + async signAndSubmitTransaction(transactionInput) { + var _a, _b, _c; + try { + if ("function" in transactionInput.data) { + if (transactionInput.data.function === "0x1::account::rotate_authentication_key_call") { + throw new WalletSignAndSubmitMessageError("SCAM SITE DETECTED").message; + } + if (transactionInput.data.function === "0x1::code::publish_package_txn") { + ({ + metadataBytes: transactionInput.data.functionArguments[0], + byteCode: transactionInput.data.functionArguments[1] + } = handlePublishPackageTransaction(transactionInput)); + } + } + this.ensureWalletExists(this._wallet); + this.ensureAccountExists(this._account); + this.recordEvent("sign_and_submit_transaction"); + if (this._wallet.features["aptos:signAndSubmitTransaction"]) { + if (((_a = this._wallet.features["aptos:signAndSubmitTransaction"]) == null ? void 0 : _a.version) !== "1.1.0") { + const aptosConfig2 = getAptosConfig(this._network, this._dappConfig); + const aptos2 = new import_ts_sdk4.Aptos(aptosConfig2); + const transaction2 = await aptos2.transaction.build.simple({ + sender: this._account.address.toString(), + data: transactionInput.data, + options: transactionInput.options + }); + const signAndSubmitTransactionMethod = this._wallet.features["aptos:signAndSubmitTransaction"].signAndSubmitTransaction; + const response3 = await signAndSubmitTransactionMethod( + transaction2 + ); + if (response3.status === import_wallet_standard.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response3.args; + } + const response2 = await this._wallet.features["aptos:signAndSubmitTransaction"].signAndSubmitTransaction({ + payload: transactionInput.data, + gasUnitPrice: (_b = transactionInput.options) == null ? void 0 : _b.gasUnitPrice, + maxGasAmount: (_c = transactionInput.options) == null ? void 0 : _c.maxGasAmount + }); + if (response2.status === import_wallet_standard.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response2.args; + } + const aptosConfig = getAptosConfig(this._network, this._dappConfig); + const aptos = new import_ts_sdk4.Aptos(aptosConfig); + const transaction = await aptos.transaction.build.simple({ + sender: this._account.address, + data: transactionInput.data, + options: transactionInput.options + }); + const signTransactionResponse = await this.signTransaction(transaction); + const response = await this.submitTransaction({ + transaction, + senderAuthenticator: "authenticator" in signTransactionResponse ? signTransactionResponse.authenticator : signTransactionResponse + }); + return { hash: response.hash }; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignAndSubmitMessageError(errMsg).message; + } + } + async signTransaction(transactionOrPayload, asFeePayer, options) { + var _a, _b, _c, _d; + try { + this.ensureWalletExists(this._wallet); + this.ensureAccountExists(this._account); + this.recordEvent("sign_transaction"); + if ("rawTransaction" in transactionOrPayload) { + const response = await ((_a = this._wallet) == null ? void 0 : _a.features["aptos:signTransaction"].signTransaction( + transactionOrPayload, + asFeePayer + )); + if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } else if (((_b = this._wallet.features["aptos:signTransaction"]) == null ? void 0 : _b.version) === "1.1") { + const signTransactionV1_1StandardInput = { + payload: transactionOrPayload.data, + expirationTimestamp: options == null ? void 0 : options.expirationTimestamp, + expirationSecondsFromNow: options == null ? void 0 : options.expirationSecondsFromNow, + gasUnitPrice: options == null ? void 0 : options.gasUnitPrice, + maxGasAmount: options == null ? void 0 : options.maxGasAmount, + sequenceNumber: options == null ? void 0 : options.accountSequenceNumber, + sender: transactionOrPayload.sender ? { address: import_ts_sdk4.AccountAddress.from(transactionOrPayload.sender) } : void 0 + }; + const walletSignTransactionMethod = (_c = this._wallet) == null ? void 0 : _c.features["aptos:signTransaction"].signTransaction; + const response = await walletSignTransactionMethod( + signTransactionV1_1StandardInput + ); + if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } else { + const aptosConfig = getAptosConfig(this._network, this._dappConfig); + const payload = await (0, import_ts_sdk4.generateTransactionPayload)({ + ...transactionOrPayload.data, + aptosConfig + }); + const rawTransaction = await (0, import_ts_sdk4.generateRawTransaction)({ + aptosConfig, + payload, + sender: this._account.address, + options + }); + const response = await ((_d = this._wallet) == null ? void 0 : _d.features["aptos:signTransaction"].signTransaction( + new import_ts_sdk4.SimpleTransaction(rawTransaction), + asFeePayer + )); + if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignTransactionError(errMsg).message; + } + } + async signMessage(message) { + var _a, _b; + try { + this.ensureWalletExists(this._wallet); + this.recordEvent("sign_message"); + const response = await ((_b = (_a = this._wallet) == null ? void 0 : _a.features["aptos:signMessage"]) == null ? void 0 : _b.signMessage(message)); + if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignMessageError(errMsg).message; + } + } + async submitTransaction(transaction) { + try { + this.ensureWalletExists(this._wallet); + const { additionalSignersAuthenticators } = transaction; + const transactionType = additionalSignersAuthenticators !== void 0 ? "multi-agent" : "simple"; + this.recordEvent("submit_transaction", { + transaction_type: transactionType + }); + const aptosConfig = getAptosConfig(this._network, this._dappConfig); + const aptos = new import_ts_sdk4.Aptos(aptosConfig); + if (additionalSignersAuthenticators !== void 0) { + const multiAgentTxn = { + ...transaction, + additionalSignersAuthenticators + }; + return aptos.transaction.submit.multiAgent(multiAgentTxn); + } else { + return aptos.transaction.submit.simple(transaction); + } + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSubmitTransactionError(errMsg).message; + } + } + async onAccountChange() { + var _a; + try { + this.ensureWalletExists(this._wallet); + await ((_a = this._wallet.features["aptos:onAccountChange"]) == null ? void 0 : _a.onAccountChange( + async (data) => { + this.setAccount(data); + await this.setAnsName(); + this.recordEvent("account_change"); + this.emit("accountChange", this._account); + } + )); + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletAccountChangeError(errMsg).message; + } + } + async onNetworkChange() { + var _a; + try { + this.ensureWalletExists(this._wallet); + await ((_a = this._wallet.features["aptos:onNetworkChange"]) == null ? void 0 : _a.onNetworkChange( + async (data) => { + this.setNetwork(data); + await this.setAnsName(); + this.emit("networkChange", this._network); + } + )); + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletNetworkChangeError(errMsg).message; + } + } + async changeNetwork(network) { + var _a; + try { + this.ensureWalletExists(this._wallet); + this.recordEvent("change_network_request", { + from: (_a = this._network) == null ? void 0 : _a.name, + to: network + }); + const chainId = network === import_ts_sdk4.Network.DEVNET ? await fetchDevnetChainId() : import_ts_sdk4.NetworkToChainId[network]; + const networkInfo = { + name: network, + chainId + }; + if (this._wallet.features["aptos:changeNetwork"]) { + const response = await this._wallet.features["aptos:changeNetwork"].changeNetwork( + networkInfo + ); + if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } + throw new WalletChangeNetworkError( + `${this._wallet.name} does not support changing network request` + ).message; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletChangeNetworkError(errMsg).message; + } + } + async signMessageAndVerify(message) { + try { + this.ensureWalletExists(this._wallet); + this.ensureAccountExists(this._account); + this.recordEvent("sign_message_and_verify"); + try { + const response = await this._wallet.features["aptos:signMessage"].signMessage(message); + if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("Failed to sign a message").message; + } + if (this._account.publicKey instanceof import_ts_sdk4.AnyPublicKey && this._account.publicKey.variant === import_ts_sdk4.AnyPublicKeyVariant.Keyless) { + return true; + } + let verified = false; + if (response.args.signature instanceof import_ts_sdk4.MultiEd25519Signature) { + if (!(this._account.publicKey instanceof import_ts_sdk4.MultiEd25519PublicKey)) { + throw new WalletSignMessageAndVerifyError( + "Public key and Signature type mismatch" + ).message; + } + const { fullMessage, signature } = response.args; + const bitmap = signature.bitmap; + if (bitmap) { + const minKeysRequired = this._account.publicKey.threshold; + if (signature.signatures.length < minKeysRequired) { + verified = false; + } else { + verified = this._account.publicKey.verifySignature({ + message: new TextEncoder().encode(fullMessage), + signature + }); + } + } + } else { + verified = this._account.publicKey.verifySignature({ + message: new TextEncoder().encode(response.args.fullMessage), + signature: response.args.signature + }); + } + return verified; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignMessageAndVerifyError(errMsg).message; + } + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignMessageAndVerifyError(errMsg).message; + } + } +}; + +// src/LegacyWalletPlugins/WalletCoreV1.ts +var import_aptos2 = require("aptos"); +var import_eventemitter32 = __toESM(require("eventemitter3")); +var import_buffer = require("buffer"); +var import_ts_sdk5 = require("@aptos-labs/ts-sdk"); +var import_tweetnacl = __toESM(require("tweetnacl")); +var WalletCoreV1 = class extends import_eventemitter32.default { + async connect(wallet) { + const account = await wallet.connect(); + return account; + } + async resolveSignAndSubmitTransaction(payloadData, network, wallet, transactionInput, dappConfig) { + var _a, _b, _c, _d, _e, _f, _g, _h; + if (areBCSArguments(payloadData.functionArguments)) { + const aptosConfig = getAptosConfig(network, dappConfig); + const newPayload = await (0, import_ts_sdk5.generateTransactionPayload)({ + ...payloadData, + aptosConfig + }); + const oldTransactionPayload2 = convertV2TransactionPayloadToV1BCSPayload(newPayload); + return await this.signAndSubmitBCSTransaction( + oldTransactionPayload2, + wallet, + { + max_gas_amount: ((_a = transactionInput.options) == null ? void 0 : _a.maxGasAmount) ? BigInt((_b = transactionInput.options) == null ? void 0 : _b.maxGasAmount) : void 0, + gas_unit_price: ((_c = transactionInput.options) == null ? void 0 : _c.gasUnitPrice) ? BigInt((_d = transactionInput.options) == null ? void 0 : _d.gasUnitPrice) : void 0 + } + ); + } + const oldTransactionPayload = convertV2PayloadToV1JSONPayload(payloadData); + return await this.signAndSubmitTransaction(oldTransactionPayload, wallet, { + max_gas_amount: ((_e = transactionInput.options) == null ? void 0 : _e.maxGasAmount) ? BigInt((_f = transactionInput.options) == null ? void 0 : _f.maxGasAmount) : void 0, + gas_unit_price: ((_g = transactionInput.options) == null ? void 0 : _g.gasUnitPrice) ? BigInt((_h = transactionInput.options) == null ? void 0 : _h.gasUnitPrice) : void 0 + }); + } + async signAndSubmitTransaction(transaction, wallet, options) { + try { + const response = await wallet.signAndSubmitTransaction( + transaction, + options + ); + return response; + } catch (error) { + const errMsg = typeof error == "object" && "message" in error ? error.message : error; + throw new WalletSignAndSubmitMessageError(errMsg).message; + } + } + async signAndSubmitBCSTransaction(transaction, wallet, options) { + if (!("signAndSubmitBCSTransaction" in wallet)) { + throw new WalletNotSupportedMethod( + `Submit a BCS Transaction is not supported by ${wallet.name}` + ).message; + } + try { + const response = await wallet.signAndSubmitBCSTransaction( + transaction, + options + ); + return response; + } catch (error) { + const errMsg = typeof error == "object" && "message" in error ? error.message : error; + throw new WalletSignAndSubmitMessageError(errMsg).message; + } + } + async signTransaction(transaction, wallet, options) { + try { + const response = await wallet.signTransaction( + transaction, + options + ); + return response; + } catch (error) { + const errMsg = typeof error == "object" && "message" in error ? error.message : error; + throw new WalletSignTransactionError(errMsg).message; + } + } + async signMessageAndVerify(message, wallet, account) { + try { + const response = await wallet.signMessage(message); + if (!response) + throw new WalletSignMessageAndVerifyError("Failed to sign a message").message; + console.log("signMessageAndVerify signMessage response", response); + let verified = false; + if (Array.isArray(response.signature)) { + const { fullMessage, signature, bitmap } = response; + if (bitmap) { + const minKeysRequired = account.minKeysRequired; + if (signature.length < minKeysRequired) { + verified = false; + } else { + const bits = Array.from(bitmap).flatMap( + (n) => Array.from({ length: 8 }).map((_, i) => n >> i & 1) + ); + const index = bits.map((_, i) => i).filter((i) => bits[i]); + const publicKeys = account.publicKey; + const matchedPublicKeys = publicKeys.filter( + (_, i) => index.includes(i) + ); + verified = true; + for (let i = 0; i < signature.length; i++) { + const isSigVerified = import_tweetnacl.default.sign.detached.verify( + import_buffer.Buffer.from(fullMessage), + import_buffer.Buffer.from(signature[i], "hex"), + import_buffer.Buffer.from(matchedPublicKeys[i], "hex") + ); + if (!isSigVerified) { + verified = false; + break; + } + } + } + } else { + throw new WalletSignMessageAndVerifyError("Failed to get a bitmap").message; + } + } else { + const currentAccountPublicKey = new import_aptos2.HexString( + account.publicKey + ); + const signature = new import_aptos2.HexString( + response.signature + ); + verified = import_tweetnacl.default.sign.detached.verify( + import_buffer.Buffer.from(response.fullMessage), + import_buffer.Buffer.from(signature.noPrefix(), "hex"), + import_buffer.Buffer.from(currentAccountPublicKey.noPrefix(), "hex") + ); + } + return verified; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignMessageAndVerifyError(errMsg).message; + } + } +}; + +// src/LegacyWalletPlugins/types.ts +var import_aptos3 = require("aptos"); + +// src/AIP62StandardWallets/WalletStandard.ts +var import_wallet_standard2 = require("@aptos-labs/wallet-standard"); +var import_ts_sdk6 = require("@aptos-labs/ts-sdk"); +var WalletStandardCore = class { + async connect(wallet) { + const response = await wallet.connect(); + if (response.status === import_wallet_standard2.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } + async signAndSubmitTransaction(transactionInput, aptos, account, wallet, standardWallets) { + var _a, _b, _c; + try { + const standardWallet = standardWallets.find( + (standardWallet2) => wallet.name === standardWallet2.name + ); + if (((_a = standardWallet == null ? void 0 : standardWallet.features["aptos:signAndSubmitTransaction"]) == null ? void 0 : _a.version) !== "1.1.0") { + const transaction2 = await aptos.transaction.build.simple({ + sender: account.address.toString(), + data: transactionInput.data, + options: transactionInput.options + }); + const response2 = await wallet.signAndSubmitTransaction( + transaction2 + ); + if (response2.status === import_wallet_standard2.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response2.args; + } + const transaction = { + gasUnitPrice: (_b = transactionInput.options) == null ? void 0 : _b.gasUnitPrice, + maxGasAmount: (_c = transactionInput.options) == null ? void 0 : _c.maxGasAmount, + payload: transactionInput.data + }; + const response = await wallet.signAndSubmitTransaction( + transaction + ); + if (response.status === import_wallet_standard2.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignAndSubmitMessageError(errMsg).message; + } + } + async signTransaction(transactionOrInput, wallet, asFeePayer) { + const response = await wallet.signTransaction( + transactionOrInput, + asFeePayer + ); + if (response.status === import_wallet_standard2.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } + async signMessage(message, wallet) { + try { + const response = await wallet.signMessage( + message + ); + if (response.status === import_wallet_standard2.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignMessageError(errMsg).message; + } + } + async signMessageAndVerify(message, wallet) { + try { + const response = await wallet.signMessage( + message + ); + const account = await wallet.account(); + if (response.status === import_wallet_standard2.UserResponseStatus.REJECTED) { + throw new WalletConnectionError("Failed to sign a message").message; + } + if (account.publicKey instanceof import_ts_sdk6.AnyPublicKey && account.publicKey.variant === import_ts_sdk6.AnyPublicKeyVariant.Keyless) { + return true; + } + let verified = false; + if (response.args.signature instanceof import_ts_sdk6.MultiEd25519Signature) { + if (!(account.publicKey instanceof import_ts_sdk6.MultiEd25519PublicKey)) { + throw new WalletSignMessageAndVerifyError( + "Public key and Signature type mismatch" + ).message; + } + const { fullMessage, signature } = response.args; + const bitmap = signature.bitmap; + if (bitmap) { + const minKeysRequired = account.publicKey.threshold; + if (signature.signatures.length < minKeysRequired) { + verified = false; + } else { + verified = account.publicKey.verifySignature({ + message: new TextEncoder().encode(fullMessage), + signature + }); + } + } + } else { + verified = account.publicKey.verifySignature({ + message: new TextEncoder().encode(response.args.fullMessage), + signature: response.args.signature + }); + } + return verified; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignMessageAndVerifyError(errMsg).message; + } + } +}; + +// src/index.ts +var import_wallet_standard3 = require("@aptos-labs/wallet-standard"); +if (typeof window !== "undefined") { + window.WALLET_ADAPTER_CORE_VERSION = WALLET_ADAPTER_CORE_VERSION; +} +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + APTOS_CONNECT_ACCOUNT_URL, + APTOS_CONNECT_BASE_URL, + ChainIdToAnsSupportedNetworkMap, + NetworkName, + TxnBuilderTypes, + Types, + WalletCoreNew, + WalletCoreV1, + WalletReadyState, + WalletStandardCore, + areBCSArguments, + convertNetwork, + convertPayloadInputV1ToV2, + convertV2PayloadToV1JSONPayload, + convertV2TransactionPayloadToV1BCSPayload, + fetchDevnetChainId, + generalizedErrorMessage, + generateTransactionPayloadFromV1Input, + getAptosConfig, + getAptosConnectWallets, + getLocalStorage, + groupAndSortWallets, + handlePublishPackageTransaction, + isAptosConnectWallet, + isAptosLiveNetwork, + isAptosNetwork, + isInAppBrowser, + isInstallRequired, + isInstalled, + isMobile, + isRedirectable, + partitionWallets, + removeLocalStorage, + setLocalStorage, + truncateAddress +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/index.js.map b/packages/wallet-adapter-core-new/dist/index.js.map new file mode 100644 index 00000000..175d214e --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts","../src/version.ts","../src/WalletCoreNew.ts","../src/ga/index.ts","../src/constants.ts","../src/AIP62StandardWallets/sdkWallets.ts","../src/utils/helpers.ts","../src/LegacyWalletPlugins/conversion.ts","../src/error/index.ts","../src/utils/localStorage.ts","../src/utils/walletSelector.ts","../src/AIP62StandardWallets/registry.ts","../src/LegacyWalletPlugins/WalletCoreV1.ts","../src/LegacyWalletPlugins/types.ts","../src/AIP62StandardWallets/WalletStandard.ts"],"sourcesContent":["import { WALLET_ADAPTER_CORE_VERSION } from \"./version\";\n\nexport {\n type AdapterWallet,\n type NetworkInfo,\n type AccountInfo,\n WalletCoreNew,\n type DappConfig,\n type AdapterNotDetectedWallet,\n} from \"./WalletCoreNew\";\nexport * from \"./LegacyWalletPlugins\";\nexport * from \"./constants\";\nexport * from \"./utils\";\nexport * from \"./AIP62StandardWallets\";\nexport {\n type AptosSignAndSubmitTransactionOutput,\n type AptosSignTransactionOutputV1_1,\n type AptosSignMessageOutput,\n type AptosSignMessageInput,\n} from \"@aptos-labs/wallet-standard\";\n\n// inject adapter core version to the window\nif (typeof window !== \"undefined\") {\n (window as any).WALLET_ADAPTER_CORE_VERSION = WALLET_ADAPTER_CORE_VERSION;\n}\n","export const WALLET_ADAPTER_CORE_VERSION = \"4.23.0\";\n","import EventEmitter from \"eventemitter3\";\nimport {\n AptosStandardWallet,\n AvailableWallets,\n WalletStandardCore,\n} from \"./AIP62StandardWallets\";\nimport { GA4 } from \"./ga\";\n\nimport { ChainIdToAnsSupportedNetworkMap, WalletReadyState } from \"./constants\";\nimport { getSDKWallets } from \"./AIP62StandardWallets/sdkWallets\";\nimport { WALLET_ADAPTER_CORE_VERSION } from \"./version\";\nimport {\n fetchDevnetChainId,\n generalizedErrorMessage,\n getAptosConfig,\n handlePublishPackageTransaction,\n isAptosNetwork,\n isRedirectable,\n removeLocalStorage,\n setLocalStorage,\n} from \"./utils\";\nimport {\n AccountAddress,\n AccountAuthenticator,\n AnyPublicKey,\n AnyPublicKeyVariant,\n AnyRawTransaction,\n Aptos,\n generateRawTransaction,\n generateTransactionPayload,\n InputEntryFunctionData,\n InputGenerateTransactionOptions,\n InputSubmitTransactionData,\n MultiEd25519PublicKey,\n MultiEd25519Signature,\n Network,\n NetworkToChainId,\n PendingTransactionResponse,\n SimpleTransaction,\n} from \"@aptos-labs/ts-sdk\";\nimport {\n WalletChangeNetworkError,\n WalletAccountChangeError,\n WalletAccountError,\n WalletConnectionError,\n WalletGetNetworkError,\n WalletNetworkChangeError,\n WalletNotConnectedError,\n WalletNotReadyError,\n WalletNotSelectedError,\n WalletSignAndSubmitMessageError,\n WalletSignMessageError,\n WalletSignTransactionError,\n WalletSignMessageAndVerifyError,\n WalletDisconnectionError,\n WalletSubmitTransactionError,\n} from \"./error\";\nimport {\n AptosWallet,\n getAptosWallets,\n isWalletWithRequiredFeatureSet,\n UserResponseStatus,\n AptosSignAndSubmitTransactionOutput,\n UserResponse,\n AptosSignTransactionOutputV1_1,\n AptosSignTransactionInputV1_1,\n AptosSignTransactionMethod,\n AptosSignTransactionMethodV1_1,\n NetworkInfo,\n AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosChangeNetworkOutput,\n} from \"@aptos-labs/wallet-standard\";\nexport type { NetworkInfo, AccountInfo } from \"@aptos-labs/wallet-standard\";\nimport { InputTransactionData } from \"./LegacyWalletPlugins/types\";\nimport { AptosConnectWalletConfig } from \"@aptos-connect/wallet-adapter-plugin\";\nimport { aptosStandardSupportedWalletList } from \"./AIP62StandardWallets/registry\";\n\n// An adapter wallet types is a wallet that is compatible with the wallet standard and the wallet adapter properties\nexport type AdapterWallet = AptosWallet & {\n readyState?: WalletReadyState;\n};\n\n// An adapter not detected wallet types is a wallet that is compatible with the wallet standard but not detected\nexport type AdapterNotDetectedWallet = Omit<\n AdapterWallet,\n \"features\" | \"version\" | \"chains\" | \"accounts\"\n> & {\n readyState: WalletReadyState.NotDetected;\n};\n\nexport interface DappConfig {\n network: Network;\n aptosApiKeys?: Partial>;\n aptosConnectDappId?: string;\n aptosConnect?: Omit;\n mizuwallet?: {\n manifestURL: string;\n appId?: string;\n };\n}\n\nexport declare interface WalletCoreEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n standardWalletsAdded(wallets: AdapterWallet): void;\n standardNotDetectedWalletAdded(wallets: AdapterNotDetectedWallet): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport type AdapterAccountInfo = Omit & {\n // ansName is a read-only property on the standard AccountInfo type\n ansName?: string;\n};\n\nexport class WalletCoreNew extends EventEmitter {\n // Local private variable to hold the wallet that is currently connected\n private _wallet: AdapterWallet | null = null;\n\n // Local private variable to hold SDK wallets in the adapter\n private readonly _sdkWallets: AdapterWallet[] = [];\n\n // Local array that holds all the wallets that are AIP-62 standard compatible\n private _standard_wallets: AdapterWallet[] = [];\n\n // Local array that holds all the wallets that are AIP-62 standard compatible but are not installed on the user machine\n private _standard_not_detected_wallets: AdapterNotDetectedWallet[] = [];\n\n // Local private variable to hold the network that is currently connected\n private _network: NetworkInfo | null = null;\n\n // Local private variable to hold the wallet connected state\n private _connected: boolean = false;\n\n // Local private variable to hold the connecting state\n private _connecting: boolean = false;\n\n // Local private variable to hold the account that is currently connected\n private _account: AdapterAccountInfo | null = null;\n\n // JSON configuration for AptosConnect\n private _dappConfig: DappConfig | undefined;\n\n // Private array that holds all the Wallets a dapp decided to opt-in to\n private _optInWallets: ReadonlyArray = [];\n\n // Local flag to disable the adapter telemetry tool\n private _disableTelemetry: boolean = false;\n\n // Google Analytics 4 module\n private readonly ga4: GA4 | null = null;\n\n constructor(\n optInWallets?: ReadonlyArray,\n dappConfig?: DappConfig,\n disableTelemetry?: boolean\n ) {\n super();\n this._optInWallets = optInWallets || [];\n this._dappConfig = dappConfig;\n this._disableTelemetry = disableTelemetry || false;\n this._sdkWallets = getSDKWallets(this._dappConfig);\n\n // If disableTelemetry set to false (by default), start GA4\n if (!this._disableTelemetry) {\n this.ga4 = new GA4();\n }\n // Strategy to detect AIP-62 standard compatible extension wallets\n this.fetchExtensionAIP62AptosWallets();\n // Strategy to detect AIP-62 standard compatible SDK wallets.\n // We separate the extension and sdk detection process so we dont refetch sdk wallets everytime a new\n // extension wallet is detected\n this.fetchSDKAIP62AptosWallets();\n\n this.appendNotDetectedStandardSupportedWallets();\n }\n\n private fetchExtensionAIP62AptosWallets(): void {\n let { aptosWallets, on } = getAptosWallets();\n this.setExtensionAIP62Wallets(aptosWallets);\n\n if (typeof window === \"undefined\") return;\n // Adds an event listener for new wallets that get registered after the dapp has been loaded,\n // receiving an unsubscribe function, which it can later use to remove the listener\n const that = this;\n const removeRegisterListener = on(\"register\", function () {\n let { aptosWallets } = getAptosWallets();\n that.setExtensionAIP62Wallets(aptosWallets);\n });\n\n const removeUnregisterListener = on(\"unregister\", function () {\n let { aptosWallets } = getAptosWallets();\n that.setExtensionAIP62Wallets(aptosWallets);\n });\n }\n\n /**\n * Set AIP-62 extension wallets\n *\n * @param extensionwWallets\n */\n private setExtensionAIP62Wallets(\n extensionwWallets: readonly AptosWallet[]\n ): void {\n // Twallet SDK fires a register event so the adapter assumes it is an extension wallet\n // so filter out t wallet, remove it when twallet fixes it\n const wallets = extensionwWallets.filter(\n (wallet) => wallet.name !== \"Dev T wallet\" && wallet.name !== \"T wallet\"\n );\n\n wallets.map((wallet: AptosStandardWallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n\n // Remove optional duplications in the _all_wallets array\n this._standard_wallets = this._standard_wallets.filter(\n (item) => item.name !== wallet.name\n );\n\n const isValid = isWalletWithRequiredFeatureSet(wallet);\n if (isValid) {\n // check if we already have this wallet as a not detected wallet\n const index = this._standard_not_detected_wallets.findIndex(\n (notDetctedWallet) => notDetctedWallet.name == wallet.name\n );\n // if we do, remove it from the not detected wallets array as it is now become detected\n if (index !== -1) {\n this._standard_not_detected_wallets.splice(index, 1);\n }\n\n wallet.readyState = WalletReadyState.Installed;\n this._standard_wallets.push(wallet);\n this.emit(\"standardWalletsAdded\", wallet);\n }\n });\n }\n\n /**\n * Set AIP-62 SDK wallets\n */\n private fetchSDKAIP62AptosWallets(): void {\n this._sdkWallets.map((wallet: AptosStandardWallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n const isValid = isWalletWithRequiredFeatureSet(wallet);\n\n if (isValid) {\n wallet.readyState = WalletReadyState.Installed;\n this._standard_wallets.push(wallet);\n }\n });\n }\n\n // Since we can't discover AIP-62 wallets that are not installed on the user machine,\n // we hold a AIP-62 wallets registry to show on the wallet selector modal for the users.\n // Append wallets from wallet standard support registry to the `all_wallets` array\n // when wallet is not installed on the user machine\n private appendNotDetectedStandardSupportedWallets(): void {\n // Loop over the registry map\n aptosStandardSupportedWalletList.map((supportedWallet) => {\n // Check if we already have this wallet as a AIP-62 wallet standard\n const existingStandardWallet = this._standard_wallets.find(\n (wallet) => wallet.name == supportedWallet.name\n );\n if (existingStandardWallet) {\n return;\n }\n // If AIP-62 wallet detected but it is excluded by the dapp, dont add it to the wallets array\n if (\n existingStandardWallet &&\n this.excludeWallet(existingStandardWallet)\n ) {\n return;\n }\n\n // If AIP-62 wallet does not exist, append it to the wallet selector modal\n // as an undetected wallet\n if (!existingStandardWallet) {\n this._standard_not_detected_wallets.push(supportedWallet);\n this.emit(\"standardNotDetectedWalletAdded\", supportedWallet);\n }\n });\n }\n\n /**\n * A function that excludes an AIP-62 compatible wallet the dapp doesnt want to include\n *\n * @param walletName\n * @returns\n */\n excludeWallet(wallet: AptosStandardWallet): boolean {\n // If _optInWallets is not empty, and does not include the provided wallet,\n // return true to exclude the wallet, otherwise return false\n if (\n this._optInWallets.length > 0 &&\n !this._optInWallets.includes(wallet.name as AvailableWallets)\n ) {\n return true;\n }\n return false;\n }\n\n private recordEvent(eventName: string, additionalInfo?: object): void {\n this.ga4?.gtag(\"event\", `wallet_adapter_${eventName}`, {\n wallet: this._wallet?.name,\n network: this._network?.name,\n network_url: this._network?.url,\n adapter_core_version: WALLET_ADAPTER_CORE_VERSION,\n send_to: process.env.GAID,\n ...additionalInfo,\n });\n }\n\n /**\n * Helper function to ensure wallet exists\n *\n * @param wallet A wallet\n */\n private ensureWalletExists(\n wallet: AdapterWallet | null\n ): asserts wallet is AdapterWallet {\n if (!wallet) {\n throw new WalletNotConnectedError().name;\n }\n if (!(wallet.readyState === WalletReadyState.Installed))\n throw new WalletNotReadyError(\"Wallet is not set\").name;\n }\n\n /**\n * Helper function to ensure account exists\n *\n * @param account An account\n */\n private ensureAccountExists(\n account: AccountInfo | null\n ): asserts account is AccountInfo {\n if (!account) {\n throw new WalletAccountError(\"Account is not set\").name;\n }\n }\n\n /**\n * Queries and sets ANS name for the current connected wallet account\n */\n private async setAnsName(): Promise {\n if (this._network?.chainId && this._account) {\n if (this._account.ansName) return;\n // ANS supports only MAINNET or TESTNET\n if (\n !ChainIdToAnsSupportedNetworkMap[this._network.chainId] ||\n !isAptosNetwork(this._network)\n ) {\n this._account.ansName = undefined;\n return;\n }\n\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new Aptos(aptosConfig);\n const name = await aptos.ans.getPrimaryName({\n address: this._account.address.toString(),\n });\n\n this._account.ansName = name;\n }\n }\n\n /**\n * Function to cleat wallet adapter data.\n *\n * - Removes current connected wallet state\n * - Removes current connected account state\n * - Removes current connected network state\n * - Removes autoconnect local storage value\n */\n private clearData(): void {\n this._connected = false;\n this.setWallet(null);\n this.setAccount(null);\n this.setNetwork(null);\n removeLocalStorage();\n }\n\n /**\n * Sets the connected wallet\n *\n * @param wallet A wallet\n */\n setWallet(wallet: AptosWallet | null): void {\n this._wallet = wallet;\n }\n\n /**\n * Sets the connected account\n *\n * @param account An account\n */\n setAccount(account: AccountInfo | null): void {\n this._account = account;\n }\n\n /**\n * Sets the connected network\n *\n * @param network A network\n */\n setNetwork(network: NetworkInfo | null): void {\n this._network = network;\n }\n\n /**\n * Helper function to detect whether a wallet is connected\n *\n * @returns boolean\n */\n isConnected(): boolean {\n return this._connected;\n }\n\n /**\n * Getter to fetch all detected wallets\n */\n get wallets(): ReadonlyArray {\n return this._standard_wallets;\n }\n\n get notDetectedWallets(): ReadonlyArray {\n return this._standard_not_detected_wallets;\n }\n\n /**\n * Getter for the current connected wallet\n *\n * @return wallet info\n * @throws WalletNotSelectedError\n */\n get wallet(): AptosWallet | null {\n try {\n if (!this._wallet) return null;\n return this._wallet;\n } catch (error: any) {\n throw new WalletNotSelectedError(error).message;\n }\n }\n\n /**\n * Getter for the current connected account\n *\n * @return account info\n * @throws WalletAccountError\n */\n get account(): AccountInfo | null {\n try {\n return this._account;\n } catch (error: any) {\n throw new WalletAccountError(error).message;\n }\n }\n\n /**\n * Getter for the current wallet network\n *\n * @return network info\n * @throws WalletGetNetworkError\n */\n get network(): NetworkInfo | null {\n try {\n return this._network;\n } catch (error: any) {\n throw new WalletGetNetworkError(error).message;\n }\n }\n\n /**\n * Helper function to run some checks before we connect with a wallet.\n *\n * @param walletName. The wallet name we want to connect with.\n */\n async connect(walletName: string): Promise {\n // Checks the wallet exists in the detected wallets array\n const allDetectedWallets = this._standard_wallets;\n\n const selectedWallet = allDetectedWallets.find(\n (wallet: AdapterWallet) => wallet.name === walletName\n );\n\n if (!selectedWallet) return;\n\n // Check if wallet is already connected\n if (this._connected) {\n // if the selected wallet is already connected, we don't need to connect again\n if (this._wallet?.name === walletName)\n throw new WalletConnectionError(\n `${walletName} wallet is already connected`\n ).message;\n }\n\n // Check if we are in a redirectable view (i.e on mobile AND not in an in-app browser)\n // Ignore if wallet is installed (iOS extension)\n if (\n isRedirectable() &&\n selectedWallet.readyState !== WalletReadyState.Installed\n ) {\n // use wallet deep link\n if (selectedWallet.features[\"aptos:openInMobileApp\"]?.openInMobileApp) {\n selectedWallet.features[\"aptos:openInMobileApp\"]?.openInMobileApp();\n return;\n }\n\n return;\n }\n\n // Check wallet state is Installed\n if (selectedWallet.readyState !== WalletReadyState.Installed) {\n return;\n }\n\n // Now we can connect to the wallet\n await this.connectWallet(selectedWallet);\n }\n\n /**\n * Connects a wallet to the dapp.\n * On connect success, we set the current account and the network, and keeping the selected wallet\n * name in LocalStorage to support autoConnect function.\n *\n * @param selectedWallet. The wallet we want to connect.\n * @emit emits \"connect\" event\n * @throws WalletConnectionError\n */\n async connectWallet(selectedWallet: AdapterWallet): Promise {\n try {\n this._connecting = true;\n this.setWallet(selectedWallet);\n const response = await selectedWallet.features[\"aptos:connect\"].connect();\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n const account = response.args;\n this.setAccount(account);\n const network = await selectedWallet.features[\"aptos:network\"]?.network();\n this.setNetwork(network);\n await this.setAnsName();\n setLocalStorage(selectedWallet.name);\n this._connected = true;\n this.recordEvent(\"wallet_connect\");\n this.emit(\"connect\", account);\n } catch (error: any) {\n this.clearData();\n const errMsg = generalizedErrorMessage(error);\n throw new WalletConnectionError(errMsg).message;\n } finally {\n this._connecting = false;\n }\n }\n\n /**\n * Disconnect the current connected wallet. On success, we clear the\n * current account, current network and LocalStorage data.\n *\n * @emit emits \"disconnect\" event\n * @throws WalletDisconnectionError\n */\n async disconnect(): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:disconnect\"].disconnect();\n this.clearData();\n this.recordEvent(\"wallet_disconnect\");\n this.emit(\"disconnect\");\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletDisconnectionError(errMsg).message;\n }\n }\n\n /**\n * Signs and submits a transaction to chain\n *\n * @param transactionInput InputTransactionData\n * @returns PendingTransactionResponse\n */\n async signAndSubmitTransaction(\n transactionInput: InputTransactionData\n ): Promise {\n try {\n if (\"function\" in transactionInput.data) {\n if (\n transactionInput.data.function ===\n \"0x1::account::rotate_authentication_key_call\"\n ) {\n throw new WalletSignAndSubmitMessageError(\"SCAM SITE DETECTED\")\n .message;\n }\n\n if (\n transactionInput.data.function === \"0x1::code::publish_package_txn\"\n ) {\n ({\n metadataBytes: transactionInput.data.functionArguments[0],\n byteCode: transactionInput.data.functionArguments[1],\n } = handlePublishPackageTransaction(transactionInput));\n }\n }\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_and_submit_transaction\");\n\n if (this._wallet.features[\"aptos:signAndSubmitTransaction\"]) {\n // check for backward compatibility. before version 1.1.0 the standard expected\n // AnyRawTransaction input so the adapter built the transaction before sending it to the wallet\n if (\n this._wallet.features[\"aptos:signAndSubmitTransaction\"]?.version !==\n \"1.1.0\"\n ) {\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n\n const aptos = new Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options,\n });\n\n type AptosSignAndSubmitTransactionV1Method = (\n transaction: AnyRawTransaction\n ) => Promise>;\n\n const signAndSubmitTransactionMethod = this._wallet.features[\n \"aptos:signAndSubmitTransaction\"\n ]\n .signAndSubmitTransaction as unknown as AptosSignAndSubmitTransactionV1Method;\n\n const response = (await signAndSubmitTransactionMethod(\n transaction\n )) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n }\n\n const response = await this._wallet.features[\n \"aptos:signAndSubmitTransaction\"\n ].signAndSubmitTransaction({\n payload: transactionInput.data,\n gasUnitPrice: transactionInput.options?.gasUnitPrice,\n maxGasAmount: transactionInput.options?.maxGasAmount,\n });\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n\n // If wallet does not support signAndSubmitTransaction\n // the adapter will sign and submit it for the dapp.\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n\n const aptos = new Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address,\n data: transactionInput.data,\n options: transactionInput.options,\n });\n\n const signTransactionResponse = await this.signTransaction(transaction);\n const response = await this.submitTransaction({\n transaction,\n senderAuthenticator:\n \"authenticator\" in signTransactionResponse\n ? signTransactionResponse.authenticator\n : signTransactionResponse,\n });\n return { hash: response.hash };\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a transaction\n *\n * To support both existing wallet adapter V1 and V2, we support 2 input types\n *\n * @param transactionOrPayload AnyRawTransaction - V2 input | Types.TransactionPayload - V1 input\n * @param options optional. V1 input\n *\n * @returns AccountAuthenticator\n */\n async signTransaction(\n transactionOrPayload: AnyRawTransaction | InputTransactionData,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions & {\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n }\n ): Promise {\n /**\n * All standard compatible wallets should support AnyRawTransaction for signTransaction version 1.0.0\n * For standard signTransaction version 1.1.0, the standard expects a transaction input\n *\n * So, if the input is AnyRawTransaction, we can directly call the wallet's signTransaction method\n *\n *\n * If the input is InputTransactionData, we need to\n * 1. check if the wallet supports signTransaction version 1.1.0 - if so, we convert the input to the standard expected input\n * 2. if it does not support signTransaction version 1.1.0, we convert it to a rawTransaction input and call the wallet's signTransaction method\n */\n\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_transaction\");\n\n // dapp sends a generated transaction (i.e AnyRawTransaction), which is supported by the wallet at signMessage version 1.0.0\n if (\"rawTransaction\" in transactionOrPayload) {\n const response = (await this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction(\n transactionOrPayload,\n asFeePayer\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } // dapp sends a transaction data input (i.e InputTransactionData), which is supported by the wallet at signMessage version 1.1.0\n else if (\n this._wallet.features[\"aptos:signTransaction\"]?.version === \"1.1\"\n ) {\n // convert input to standard expected input\n const signTransactionV1_1StandardInput: AptosSignTransactionInputV1_1 =\n {\n payload: transactionOrPayload.data,\n expirationTimestamp: options?.expirationTimestamp,\n expirationSecondsFromNow: options?.expirationSecondsFromNow,\n gasUnitPrice: options?.gasUnitPrice,\n maxGasAmount: options?.maxGasAmount,\n sequenceNumber: options?.accountSequenceNumber,\n sender: transactionOrPayload.sender\n ? { address: AccountAddress.from(transactionOrPayload.sender) }\n : undefined,\n };\n\n const walletSignTransactionMethod = this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction as AptosSignTransactionMethod &\n AptosSignTransactionMethodV1_1;\n\n const response = (await walletSignTransactionMethod(\n signTransactionV1_1StandardInput\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } else {\n // dapp input is InputTransactionData but the wallet does not support it, so we convert it to a rawTransaction\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const payload = await generateTransactionPayload({\n ...(transactionOrPayload.data as InputEntryFunctionData),\n aptosConfig,\n });\n const rawTransaction = await generateRawTransaction({\n aptosConfig,\n payload,\n sender: this._account.address,\n options: options,\n });\n const response = (await this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction(\n new SimpleTransaction(rawTransaction),\n asFeePayer\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignTransactionError(errMsg).message;\n }\n }\n\n /**\n * Sign message (doesnt submit to chain).\n *\n * @param message\n * @return response from the wallet's signMessage function\n * @throws WalletSignMessageError\n */\n async signMessage(\n message: AptosSignMessageInput\n ): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"sign_message\");\n\n const response =\n await this._wallet?.features[\"aptos:signMessage\"]?.signMessage(message);\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageError(errMsg).message;\n }\n }\n\n /**\n * Submits transaction to chain\n *\n * @param transaction\n * @returns PendingTransactionResponse\n */\n async submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise {\n // The standard does not support submitTransaction, so we use the adapter to submit the transaction\n try {\n this.ensureWalletExists(this._wallet);\n\n const { additionalSignersAuthenticators } = transaction;\n const transactionType =\n additionalSignersAuthenticators !== undefined\n ? \"multi-agent\"\n : \"simple\";\n this.recordEvent(\"submit_transaction\", {\n transaction_type: transactionType,\n });\n\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new Aptos(aptosConfig);\n if (additionalSignersAuthenticators !== undefined) {\n const multiAgentTxn = {\n ...transaction,\n additionalSignersAuthenticators,\n };\n return aptos.transaction.submit.multiAgent(multiAgentTxn);\n } else {\n return aptos.transaction.submit.simple(transaction);\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSubmitTransactionError(errMsg).message;\n }\n }\n\n /**\n Event for when account has changed on the wallet\n @return the new account info\n @throws WalletAccountChangeError\n */\n async onAccountChange(): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onAccountChange\"]?.onAccountChange(\n async (data: AccountInfo) => {\n this.setAccount(data);\n await this.setAnsName();\n this.recordEvent(\"account_change\");\n this.emit(\"accountChange\", this._account);\n }\n );\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletAccountChangeError(errMsg).message;\n }\n }\n\n /**\n Event for when network has changed on the wallet\n @return the new network info\n @throws WalletNetworkChangeError\n */\n async onNetworkChange(): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onNetworkChange\"]?.onNetworkChange(\n async (data: NetworkInfo) => {\n this.setNetwork(data);\n await this.setAnsName();\n this.emit(\"networkChange\", this._network);\n }\n );\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletNetworkChangeError(errMsg).message;\n }\n }\n\n /**\n * Sends a change network request to the wallet to change the connected network\n *\n * @param network\n * @returns AptosChangeNetworkOutput\n */\n async changeNetwork(network: Network): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"change_network_request\", {\n from: this._network?.name,\n to: network,\n });\n const chainId =\n network === Network.DEVNET\n ? await fetchDevnetChainId()\n : NetworkToChainId[network];\n\n const networkInfo: NetworkInfo = {\n name: network,\n chainId,\n };\n\n if (this._wallet.features[\"aptos:changeNetwork\"]) {\n const response =\n await this._wallet.features[\"aptos:changeNetwork\"].changeNetwork(\n networkInfo\n );\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n\n throw new WalletChangeNetworkError(\n `${this._wallet.name} does not support changing network request`\n ).message;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletChangeNetworkError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message SignMessagePayload\n * @returns boolean\n */\n async signMessageAndVerify(message: AptosSignMessageInput): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_message_and_verify\");\n\n try {\n // sign the message\n const response = (await this._wallet.features[\n \"aptos:signMessage\"\n ].signMessage(message)) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"Failed to sign a message\").message;\n }\n\n // For Keyless wallet accounts we skip verification for now.\n // TODO: Remove when client-side verification is done in SDK.\n if (\n this._account.publicKey instanceof AnyPublicKey &&\n this._account.publicKey.variant === AnyPublicKeyVariant.Keyless\n ) {\n return true;\n }\n\n let verified = false;\n // if is a multi sig wallet with a MultiEd25519Signature type\n if (response.args.signature instanceof MultiEd25519Signature) {\n if (!(this._account.publicKey instanceof MultiEd25519PublicKey)) {\n throw new WalletSignMessageAndVerifyError(\n \"Public key and Signature type mismatch\"\n ).message;\n }\n const { fullMessage, signature } = response.args;\n const bitmap = signature.bitmap;\n if (bitmap) {\n const minKeysRequired = this._account.publicKey.threshold;\n if (signature.signatures.length < minKeysRequired) {\n verified = false;\n } else {\n verified = this._account.publicKey.verifySignature({\n message: new TextEncoder().encode(fullMessage),\n signature,\n });\n }\n }\n } else {\n verified = this._account.publicKey.verifySignature({\n message: new TextEncoder().encode(response.args.fullMessage),\n signature: response.args.signature,\n });\n }\n return verified;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n","export class GA4 {\n readonly aptosGAID: string | undefined = process.env.GAID;\n\n constructor() {\n // Inject Aptos Google Analytics 4 script\n this.injectGA(this.aptosGAID);\n }\n\n gtag(a: string, b: string | object, c?: object) {\n let dataLayer = (window as any).dataLayer || [];\n dataLayer.push(arguments);\n }\n\n private injectGA(gaID?: string) {\n if (typeof window === \"undefined\") return;\n if (!gaID) return;\n\n const head = document.getElementsByTagName(\"head\")[0];\n\n var myScript = document.createElement(\"script\");\n\n myScript.setAttribute(\n \"src\",\n `https://www.googletagmanager.com/gtag/js?id=${gaID}`\n );\n\n const that = this;\n myScript.onload = function () {\n that.gtag(\"js\", new Date());\n that.gtag(\"config\", `${gaID}`, {\n send_page_view: false,\n });\n };\n\n head.insertBefore(myScript, head.children[1]);\n }\n}\n","export enum WalletReadyState {\n /**\n * User-installable wallets can typically be detected by scanning for an API\n * that they've injected into the global context. If such an API is present,\n * we consider the wallet to have been installed.\n */\n Installed = \"Installed\",\n NotDetected = \"NotDetected\",\n /**\n * Loadable wallets are always available to you. Since you can load them at\n * any time, it's meaningless to say that they have been detected.\n */\n Loadable = \"Loadable\",\n /**\n * If a wallet is not supported on a given platform (eg. server-rendering, or\n * mobile) then it will stay in the `Unsupported` state.\n */\n Unsupported = \"Unsupported\",\n}\n\nexport enum NetworkName {\n Mainnet = \"mainnet\",\n Testnet = \"testnet\",\n Devnet = \"devnet\",\n}\n\nexport const ChainIdToAnsSupportedNetworkMap: Record = {\n \"1\": \"mainnet\", // mainnet\n \"2\": \"testnet\", // testnet\n};\n\n/** The base URL for all Aptos Connect wallets. */\nexport const APTOS_CONNECT_BASE_URL = \"https://aptosconnect.app\";\n\n/** The URL to the Aptos Connect account page if the user is signed in to Aptos Connect. */\nexport const APTOS_CONNECT_ACCOUNT_URL =\n \"https://aptosconnect.app/dashboard/main-account\";\n","import {\n AptosConnectAppleWallet,\n AptosConnectGoogleWallet,\n} from \"@aptos-connect/wallet-adapter-plugin\";\nimport { Network } from \"@aptos-labs/ts-sdk\";\nimport { DevTWallet, TWallet } from \"@atomrigslab/aptos-wallet-adapter\";\nimport { MizuWallet } from \"@mizuwallet-sdk/aptos-wallet-adapter\";\nimport { DappConfig } from \"../WalletCoreNew\";\nimport { AptosStandardWallet } from \"./WalletStandard\";\n\nexport function getSDKWallets(dappConfig?: DappConfig) {\n const sdkWallets: AptosStandardWallet[] = [];\n\n // Need to check window is defined for AptosConnect\n if (typeof window !== \"undefined\") {\n sdkWallets.push(\n new AptosConnectGoogleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect,\n }),\n new AptosConnectAppleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect,\n })\n );\n\n if (\n dappConfig?.mizuwallet &&\n dappConfig?.network &&\n [Network.MAINNET, Network.TESTNET].includes(dappConfig.network)\n ) {\n sdkWallets.push(\n new MizuWallet({\n network: dappConfig.network as any,\n manifestURL: dappConfig.mizuwallet.manifestURL,\n appId: dappConfig.mizuwallet.appId,\n }) as any\n );\n }\n }\n\n // Push production wallet if env is production, otherwise use dev wallet\n if (dappConfig?.network === Network.MAINNET) {\n // TODO twallet uses @aptos-labs/wallet-standard at version 0.0.11 while adapter uses\n // a newer version (0.1.0) - this causes type mismatch. We should figure out how to handle it.\n sdkWallets.push(new TWallet() as any);\n } else {\n sdkWallets.push(new DevTWallet() as any);\n }\n\n // Add new SDK wallet plugins (ones that should be installed as packages) here:\n // Ex. sdkWallets.push(new YourSDKWallet(dappConfig))\n\n return sdkWallets;\n}\n","import {\n Aptos,\n AptosConfig,\n EntryFunctionArgumentTypes,\n Hex,\n Network,\n NetworkToNodeAPI,\n Serializable,\n SimpleEntryFunctionArgumentTypes,\n} from \"@aptos-labs/ts-sdk\";\nimport { NetworkInfo as StandardNetworkInfo } from \"@aptos-labs/wallet-standard\";\nimport { convertNetwork } from \"../LegacyWalletPlugins/conversion\";\nimport {\n InputTransactionData,\n NetworkInfo,\n} from \"../LegacyWalletPlugins/types\";\nimport { DappConfig } from \"../WalletCoreNew\";\nimport { WalletSignAndSubmitMessageError } from \"../error\";\n\nexport function isMobile(): boolean {\n return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(\n navigator.userAgent\n );\n}\n\nexport function isInAppBrowser(): boolean {\n const isIphone = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(\n navigator.userAgent\n );\n\n const isAndroid = /(Android).*Version\\/[\\d.]+.*Chrome\\/[^\\s]+ Mobile/i.test(\n navigator.userAgent\n );\n\n return isIphone || isAndroid;\n}\n\nexport function isRedirectable(): boolean {\n // SSR: return false\n if (typeof navigator === \"undefined\" || !navigator) return false;\n\n // if we are on mobile and NOT in a in-app browser we will redirect to a wallet app\n\n return isMobile() && !isInAppBrowser();\n}\n\nexport function generalizedErrorMessage(error: any): string {\n return typeof error === \"object\" && \"message\" in error\n ? error.message\n : error;\n}\n\n// Helper function to check if input arguments are BCS serialized arguments.\n// In @aptos-labs/ts-sdk each move representative class extends\n// Serializable, so if each argument is of an instance of a class\n// the extends Serializable - we know these are BCS arguments\nexport const areBCSArguments = (\n args: Array\n): boolean => {\n // `every` returns true if the array is empty, so\n // first check the array length\n if (args.length === 0) return false;\n return args.every(\n (arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes) =>\n arg instanceof Serializable\n );\n};\n\n/**\n * Helper function to get AptosConfig that supports Aptos and Custom networks\n *\n * @param networkInfo\n * @param dappConfig\n * @returns AptosConfig\n */\nexport const getAptosConfig = (\n networkInfo: NetworkInfo | StandardNetworkInfo | null,\n dappConfig: DappConfig | undefined\n): AptosConfig => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n const currentNetwork = convertNetwork(networkInfo);\n\n if (isAptosLiveNetwork(currentNetwork)) {\n const apiKey = dappConfig?.aptosApiKeys;\n return new AptosConfig({\n network: currentNetwork,\n clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : undefined },\n });\n }\n\n if (isAptosNetwork(networkInfo)) {\n return new AptosConfig({\n network: currentNetwork,\n });\n }\n return new AptosConfig({\n network: Network.CUSTOM,\n fullnode: networkInfo.url,\n });\n};\n\n/**\n * Helper function to resolve if the current connected network is an Aptos network\n *\n * @param networkInfo\n * @returns boolean\n */\nexport const isAptosNetwork = (\n networkInfo: NetworkInfo | StandardNetworkInfo | null\n): boolean => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n return NetworkToNodeAPI[networkInfo.name] !== undefined;\n};\n\nexport const isAptosLiveNetwork = (networkInfo: Network): boolean => {\n return (\n networkInfo === \"devnet\" ||\n networkInfo === \"testnet\" ||\n networkInfo === \"mainnet\"\n );\n};\n\n/**\n * Helper function to fetch Devnet chain id\n */\nexport const fetchDevnetChainId = async (): Promise => {\n const aptos = new Aptos(); // default to devnet\n return await aptos.getChainId();\n};\n\n/**\n * A helper function to handle the publish package transaction.\n * The Aptos SDK expects the metadataBytes and byteCode to be Uint8Array, but in case the arguments are passed in\n * as a string, this function converts the string to Uint8Array.\n */\nexport const handlePublishPackageTransaction = (\n transactionInput: InputTransactionData\n) => {\n // convert the first argument, metadataBytes, to uint8array if is a string\n let metadataBytes = transactionInput.data.functionArguments[0];\n if (typeof metadataBytes === \"string\") {\n metadataBytes = Hex.fromHexInput(metadataBytes).toUint8Array();\n }\n\n // convert the second argument, byteCode, to uint8array if is a string\n let byteCode = transactionInput.data.functionArguments[1];\n if (Array.isArray(byteCode)) {\n byteCode = byteCode.map((byte) => {\n if (typeof byte === \"string\") {\n return Hex.fromHexInput(byte).toUint8Array();\n }\n return byte;\n });\n } else {\n throw new WalletSignAndSubmitMessageError(\n \"The bytecode argument must be an array.\"\n ).message;\n }\n\n return { metadataBytes, byteCode };\n};\n","import {\n Network,\n TransactionPayload,\n InputGenerateTransactionPayloadData,\n TypeTag,\n AptosConfig,\n InputEntryFunctionData,\n InputMultiSigData,\n MoveFunctionId,\n generateTransactionPayload,\n TransactionPayloadEntryFunction,\n} from \"@aptos-labs/ts-sdk\";\nimport { NetworkInfo as StandardNetworkInfo } from \"@aptos-labs/wallet-standard\";\nimport { BCS, TxnBuilderTypes, Types } from \"aptos\";\nimport { NetworkInfo } from \"./types\";\n\n// old => new\nexport function convertNetwork(\n networkInfo: NetworkInfo | StandardNetworkInfo | null\n): Network {\n switch (networkInfo?.name) {\n case \"mainnet\" as Network:\n return Network.MAINNET;\n case \"testnet\" as Network:\n return Network.TESTNET;\n case \"devnet\" as Network:\n return Network.DEVNET;\n case \"local\" as Network:\n return Network.LOCAL;\n default:\n throw new Error(\"Invalid Aptos network name\");\n }\n}\n\n// new => old\nexport function convertV2TransactionPayloadToV1BCSPayload(\n payload: TransactionPayload\n): TxnBuilderTypes.TransactionPayload {\n const deserializer = new BCS.Deserializer(payload.bcsToBytes());\n return TxnBuilderTypes.TransactionPayload.deserialize(deserializer);\n}\n\nexport function convertV2PayloadToV1JSONPayload(\n payload: InputGenerateTransactionPayloadData\n): Types.TransactionPayload {\n if (\"bytecode\" in payload) {\n // is a script payload\n throw new Error(\"script payload not supported\");\n // is multisig function payload\n } else if (\"multisigAddress\" in payload) {\n const stringTypeTags: string[] | undefined = payload.typeArguments?.map(\n (typeTag) => {\n if (typeTag instanceof TypeTag) {\n return typeTag.toString();\n }\n return typeTag;\n }\n );\n const newPayload: Types.TransactionPayload = {\n type: \"multisig_payload\",\n multisig_address: payload.multisigAddress.toString(),\n function: payload.function,\n type_arguments: stringTypeTags || [],\n arguments: payload.functionArguments,\n };\n\n return newPayload;\n } else {\n // is entry function payload\n const stringTypeTags: string[] | undefined = payload.typeArguments?.map(\n (typeTag) => {\n if (typeTag instanceof TypeTag) {\n return typeTag.toString();\n }\n return typeTag;\n }\n );\n const newPayload: Types.TransactionPayload = {\n type: \"entry_function_payload\",\n function: payload.function,\n type_arguments: stringTypeTags || [],\n arguments: payload.functionArguments,\n };\n\n return newPayload;\n }\n}\n\nexport function convertPayloadInputV1ToV2(\n inputV1: Types.TransactionPayload\n) {\n if (\"function\" in inputV1) {\n const inputV2: InputEntryFunctionData | InputMultiSigData = {\n function: inputV1.function as MoveFunctionId,\n functionArguments: inputV1.arguments,\n typeArguments: inputV1.type_arguments,\n };\n return inputV2;\n }\n\n throw new Error(\"Payload type not supported\");\n}\n\nexport async function generateTransactionPayloadFromV1Input(\n aptosConfig: AptosConfig,\n inputV1: Types.TransactionPayload\n): Promise {\n if (\"function\" in inputV1) {\n const inputV2 = convertPayloadInputV1ToV2(inputV1);\n return generateTransactionPayload({ ...inputV2, aptosConfig });\n }\n\n throw new Error(\"Payload type not supported\");\n}\n\nexport interface CompatibleTransactionOptions {\n expireTimestamp?: number;\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n gasUnitPrice?: number;\n gas_unit_price?: number;\n maxGasAmount?: number;\n max_gas_amount?: number;\n sender?: string;\n sequenceNumber?: number;\n}\n","export class WalletError extends Error {\n public error: any;\n\n constructor(message?: string, error?: any) {\n super(message);\n this.error = error;\n }\n}\n\nexport class WalletNotSelectedError extends WalletError {\n name = \"WalletNotSelectedError\";\n}\n\nexport class WalletNotReadyError extends WalletError {\n name = \"WalletNotReadyError\";\n}\n\nexport class WalletLoadError extends WalletError {\n name = \"WalletLoadError\";\n}\n\nexport class WalletConfigError extends WalletError {\n name = \"WalletConfigError\";\n}\n\nexport class WalletConnectionError extends WalletError {\n name = \"WalletConnectionError\";\n}\n\nexport class WalletDisconnectedError extends WalletError {\n name = \"WalletDisconnectedError\";\n}\n\nexport class WalletDisconnectionError extends WalletError {\n name = \"WalletDisconnectionError\";\n}\n\nexport class WalletAccountError extends WalletError {\n name = \"WalletAccountError\";\n}\nexport class WalletGetNetworkError extends WalletError {\n name = \"WalletGetNetworkError\";\n}\n\nexport class WalletAccountChangeError extends WalletError {\n name = \"WalletAccountChangeError\";\n}\n\nexport class WalletNetworkChangeError extends WalletError {\n name = \"WalletNetworkChangeError\";\n}\n\nexport class WalletPublicKeyError extends WalletError {\n name = \"WalletPublicKeyError\";\n}\n\nexport class WalletKeypairError extends WalletError {\n name = \"WalletKeypairError\";\n}\n\nexport class WalletNotConnectedError extends WalletError {\n name = \"WalletNotConnectedError\";\n}\n\nexport class WalletSendTransactionError extends WalletError {\n name = \"WalletSendTransactionError\";\n}\n\nexport class WalletSignMessageError extends WalletError {\n name = \"WalletSignMessageError\";\n}\n\nexport class WalletSubmitTransactionError extends WalletError {\n name = \"WalletSubmitTransactionError\";\n}\n\nexport class WalletSignMessageAndVerifyError extends WalletError {\n name = \"WalletSignMessageAndVerifyError\";\n}\n\nexport class WalletSignAndSubmitMessageError extends WalletError {\n name = \"WalletSignAndSubmitMessageError\";\n}\n\nexport class WalletSignTransactionError extends WalletError {\n name = \"WalletSignTransactionError\";\n}\n\nexport class WalletTimeoutError extends WalletError {\n name = \"WalletTimeoutError\";\n}\n\nexport class WalletWindowBlockedError extends WalletError {\n name = \"WalletWindowBlockedError\";\n}\n\nexport class WalletWindowClosedError extends WalletError {\n name = \"WalletWindowClosedError\";\n}\n\nexport class WalletResponseError extends WalletError {\n name = \"WalletResponseError\";\n}\n\nexport class WalletNotSupportedMethod extends WalletError {\n name = \"WalletNotSupportedMethod\";\n}\n\nexport class WalletChangeNetworkError extends WalletError {\n name = \"WalletChangeNetworkError\";\n}\n","const LOCAL_STORAGE_ITEM_KEY = \"AptosWalletName\";\n\nexport function setLocalStorage(walletName: string) {\n localStorage.setItem(LOCAL_STORAGE_ITEM_KEY, walletName);\n}\n\nexport function removeLocalStorage() {\n localStorage.removeItem(LOCAL_STORAGE_ITEM_KEY);\n}\n\nexport function getLocalStorage() {\n localStorage.getItem(LOCAL_STORAGE_ITEM_KEY);\n}\n","import { AptosStandardWallet } from \"../AIP62StandardWallets\";\nimport { WalletInfo } from \"../LegacyWalletPlugins\";\nimport { AdapterNotDetectedWallet, AdapterWallet } from \"../WalletCoreNew\";\nimport { APTOS_CONNECT_BASE_URL, WalletReadyState } from \"../constants\";\nimport { isRedirectable } from \"./helpers\";\n\n/**\n * A function that will partition the provided wallets into two list — `defaultWallets` and `moreWallets`.\n * By default, the wallets will be partitioned by whether or not they are installed or loadable.\n * You can pass your own partition function if you wish to customize this behavior.\n */\nexport function partitionWallets(\n wallets: ReadonlyArray,\n partitionFunction: (\n wallet: AdapterWallet | AdapterNotDetectedWallet\n ) => boolean = isInstalled\n) {\n const defaultWallets: Array = [];\n const moreWallets: Array = [];\n\n for (const wallet of wallets) {\n if (partitionFunction(wallet)) defaultWallets.push(wallet as AdapterWallet);\n else moreWallets.push(wallet as AdapterNotDetectedWallet);\n }\n\n return { defaultWallets, moreWallets };\n}\n\n/** Returns true if the wallet is installed. */\nexport function isInstalled(wallet: AdapterWallet | AdapterNotDetectedWallet) {\n return wallet.readyState === WalletReadyState.Installed;\n}\n\n/**\n * Returns true if the user is on desktop and the provided wallet requires installation of a browser extension.\n * This can be used to decide whether to show a \"Connect\" button or \"Install\" link in the UI.\n */\nexport function isInstallRequired(\n wallet: AdapterWallet | AdapterNotDetectedWallet\n) {\n const isWalletReady = isInstalled(wallet);\n const isMobile = !isWalletReady && isRedirectable();\n\n return !isMobile && !isWalletReady;\n}\n\n/** Truncates the provided wallet address at the middle with an ellipsis. */\nexport function truncateAddress(address: string | undefined) {\n if (!address) return;\n return `${address.slice(0, 6)}...${address.slice(-5)}`;\n}\n\n/** Returns `true` if the provided wallet is an Aptos Connect wallet. */\nexport function isAptosConnectWallet(\n wallet:\n | WalletInfo\n | AdapterWallet\n | AptosStandardWallet\n | AdapterNotDetectedWallet\n) {\n if (!wallet.url) return false;\n return wallet.url.startsWith(APTOS_CONNECT_BASE_URL);\n}\n\n/**\n * Partitions the `wallets` array so that Aptos Connect wallets are grouped separately from the rest.\n * Aptos Connect is a web wallet that uses social login to create accounts on the blockchain.\n */\nexport function getAptosConnectWallets(\n wallets: ReadonlyArray\n) {\n const { defaultWallets, moreWallets } = partitionWallets(\n wallets,\n isAptosConnectWallet\n );\n return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets };\n}\n\nexport interface WalletSortingOptions {\n /** An optional function for sorting Aptos Connect wallets. */\n sortAptosConnectWallets?: (a: AdapterWallet, b: AdapterWallet) => number;\n /** An optional function for sorting wallets that are currently installed or loadable. */\n sortAvailableWallets?: (a: AdapterWallet, b: AdapterWallet) => number;\n /** An optional function for sorting wallets that are NOT currently installed or loadable. */\n sortInstallableWallets?: (\n a: AdapterNotDetectedWallet,\n b: AdapterNotDetectedWallet\n ) => number;\n}\n\n/**\n * Partitions the `wallets` array into three distinct groups:\n *\n * `aptosConnectWallets` - Wallets that use social login to create accounts on\n * the blockchain via Aptos Connect.\n *\n * `availableWallets` - Wallets that are currently installed or loadable by the client.\n *\n * `installableWallets` - Wallets that are NOT current installed or loadable and\n * require the client to install a browser extension first.\n *\n * Additionally, these wallet groups can be sorted by passing sort functions via the `options` argument.\n */\nexport function groupAndSortWallets(\n wallets: ReadonlyArray,\n options?: WalletSortingOptions\n) {\n const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets);\n const { defaultWallets, moreWallets } = partitionWallets(otherWallets);\n\n if (options?.sortAptosConnectWallets) {\n aptosConnectWallets.sort(options.sortAptosConnectWallets);\n }\n if (options?.sortAvailableWallets) {\n defaultWallets.sort(options.sortAvailableWallets);\n }\n if (options?.sortInstallableWallets) {\n moreWallets.sort(options.sortInstallableWallets);\n }\n\n return {\n /** Wallets that use social login to create an account on the blockchain */\n aptosConnectWallets,\n /** Wallets that are currently installed or loadable. */\n availableWallets: defaultWallets,\n /** Wallets that are NOT currently installed or loadable. */\n installableWallets: moreWallets,\n };\n}\n","import { WalletName } from \"../LegacyWalletPlugins/types\";\nimport { AdapterNotDetectedWallet } from \"../WalletCoreNew\";\nimport { WalletReadyState } from \"../constants\";\n\n/**\n * Registry of AIP-62 wallet standard supported wallets.\n * This list is used to show supported wallets even if they are not installed on the user machine.\n *\n * AIP-62 compatible wallets are required to add their wallet info here if they want to be detected by the adapter\n *\n * name - The name of your wallet cast to WalletName (Ex. \"Petra\" as WalletName<\"Petra\">)\n * url - TThe link to your chrome extension or main website where new users can create an account with your wallet.\n * icon - An icon for your wallet. Can be one of 4 data types. Be sure to follow the below format exactly (including the literal \",\" after base64).\n * Format: `data:image/${\"svg+xml\" | \"webp\" | \"png\" | \"gif\"};base64,${string}`\n * Note: ${...} data in the above format should be replaced. Other characters are literals (ex. \";\")\n */\nexport const aptosStandardSupportedWalletList: Array =\n [\n {\n name: \"Nightly\" as WalletName<\"Nightly\">,\n url: \"https://chromewebstore.google.com/detail/nightly/fiikommddbeccaoicoejoniammnalkfa?hl=en\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: WalletReadyState.NotDetected,\n },\n {\n name: \"Petra\" as WalletName<\"Petra\">,\n url: \"https://chromewebstore.google.com/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci?hl=en\",\n icon: \"data:image/png;base64,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\",\n readyState: WalletReadyState.NotDetected,\n },\n {\n name: \"Pontem Wallet\" as WalletName<\"Pontem Wallet\">,\n url: \"https://pontem.network/pontem-wallet\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K\",\n readyState: WalletReadyState.NotDetected,\n },\n ];\n","import { HexString, TxnBuilderTypes, Types } from \"aptos\";\nimport EventEmitter from \"eventemitter3\";\nimport { Buffer } from \"buffer\";\nimport {\n InputEntryFunctionDataWithRemoteABI,\n InputGenerateTransactionPayloadData,\n generateTransactionPayload,\n} from \"@aptos-labs/ts-sdk\";\nimport nacl from \"tweetnacl\";\nimport {\n WalletNotSupportedMethod,\n WalletSignAndSubmitMessageError,\n WalletSignMessageAndVerifyError,\n WalletSignTransactionError,\n} from \"../error\";\nimport {\n Wallet,\n WalletCoreEvents,\n TransactionOptions,\n NetworkInfo,\n InputTransactionData,\n AccountInfo,\n SignMessagePayload,\n SignMessageResponse,\n} from \"./types\";\n\nimport {\n convertV2PayloadToV1JSONPayload,\n convertV2TransactionPayloadToV1BCSPayload,\n} from \"./conversion\";\nimport {\n areBCSArguments,\n generalizedErrorMessage,\n getAptosConfig,\n} from \"../utils\";\nimport { DappConfig } from \"../WalletCoreNew\";\n\nexport class WalletCoreV1 extends EventEmitter {\n async connect(wallet: Wallet) {\n const account = await wallet.connect();\n return account;\n }\n\n /**\n * Resolve the transaction type (BCS arguments or Simple arguments)\n *\n * @param payloadData\n * @param network\n * @param wallet\n * @param transactionInput\n *\n * @returns\n */\n async resolveSignAndSubmitTransaction(\n payloadData: InputGenerateTransactionPayloadData,\n network: NetworkInfo | null,\n wallet: Wallet,\n transactionInput: InputTransactionData,\n dappConfig?: DappConfig\n ) {\n // first check if each argument is a BCS serialized argument\n if (areBCSArguments(payloadData.functionArguments)) {\n const aptosConfig = getAptosConfig(network, dappConfig);\n const newPayload = await generateTransactionPayload({\n ...(payloadData as InputEntryFunctionDataWithRemoteABI),\n aptosConfig: aptosConfig,\n });\n const oldTransactionPayload =\n convertV2TransactionPayloadToV1BCSPayload(newPayload);\n // Call and return signAndSubmitBCSTransaction response\n return await this.signAndSubmitBCSTransaction(\n oldTransactionPayload,\n wallet!,\n {\n max_gas_amount: transactionInput.options?.maxGasAmount\n ? BigInt(transactionInput.options?.maxGasAmount)\n : undefined,\n gas_unit_price: transactionInput.options?.gasUnitPrice\n ? BigInt(transactionInput.options?.gasUnitPrice)\n : undefined,\n }\n );\n }\n\n // if it is not a bcs serialized arguments transaction, convert to the old\n // json format\n const oldTransactionPayload = convertV2PayloadToV1JSONPayload(payloadData);\n return await this.signAndSubmitTransaction(oldTransactionPayload, wallet!, {\n max_gas_amount: transactionInput.options?.maxGasAmount\n ? BigInt(transactionInput.options?.maxGasAmount)\n : undefined,\n gas_unit_price: transactionInput.options?.gasUnitPrice\n ? BigInt(transactionInput.options?.gasUnitPrice)\n : undefined,\n });\n }\n\n /**\n Sign and submit an entry (not bcs serialized) transaction type to chain.\n @param transaction a non-bcs serialized transaction\n @param options max_gas_amount and gas_unit_limit\n @return response from the wallet's signAndSubmitTransaction function\n @throws WalletSignAndSubmitMessageError\n */\n async signAndSubmitTransaction(\n transaction: Types.TransactionPayload,\n wallet: Wallet,\n options?: TransactionOptions\n ): Promise {\n try {\n const response = await (wallet as any).signAndSubmitTransaction(\n transaction,\n options\n );\n return response;\n } catch (error: any) {\n const errMsg =\n typeof error == \"object\" && \"message\" in error ? error.message : error;\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n Sign and submit a bsc serialized transaction type to chain.\n @param transaction a bcs serialized transaction\n @param options max_gas_amount and gas_unit_limit\n @return response from the wallet's signAndSubmitBCSTransaction function\n @throws WalletSignAndSubmitMessageError\n */\n async signAndSubmitBCSTransaction(\n transaction: TxnBuilderTypes.TransactionPayload,\n wallet: Wallet,\n options?: TransactionOptions\n ): Promise {\n if (!(\"signAndSubmitBCSTransaction\" in wallet)) {\n throw new WalletNotSupportedMethod(\n `Submit a BCS Transaction is not supported by ${wallet.name}`\n ).message;\n }\n try {\n const response = await (wallet as any).signAndSubmitBCSTransaction(\n transaction,\n options\n );\n return response;\n } catch (error: any) {\n const errMsg =\n typeof error == \"object\" && \"message\" in error ? error.message : error;\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n Sign transaction\n @param transaction\n @param options max_gas_amount and gas_unit_limit\n @return response from the wallet's signTransaction function\n @throws WalletSignTransactionError\n */\n async signTransaction(\n transaction: Types.TransactionPayload,\n wallet: Wallet,\n options?: TransactionOptions\n ): Promise {\n try {\n const response = await (wallet as any).signTransaction(\n transaction,\n options\n );\n return response;\n } catch (error: any) {\n const errMsg =\n typeof error == \"object\" && \"message\" in error ? error.message : error;\n throw new WalletSignTransactionError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message SignMessagePayload\n * @returns boolean\n */\n async signMessageAndVerify(\n message: SignMessagePayload,\n wallet: Wallet,\n account: AccountInfo\n ): Promise {\n try {\n const response = await wallet.signMessage(message);\n if (!response)\n throw new WalletSignMessageAndVerifyError(\"Failed to sign a message\")\n .message;\n console.log(\"signMessageAndVerify signMessage response\", response);\n\n // Verify that the bytes were signed using the private key that matches the known public key\n let verified = false;\n if (Array.isArray((response as SignMessageResponse).signature)) {\n // multi sig wallets\n const { fullMessage, signature, bitmap } =\n response as SignMessageResponse;\n if (bitmap) {\n const minKeysRequired = account.minKeysRequired as number;\n if ((signature as string[]).length < minKeysRequired) {\n verified = false;\n } else {\n // Getting an array which marks the keys signing the message with 1, while marking 0 for the keys not being used.\n const bits = Array.from(bitmap).flatMap((n) =>\n Array.from({ length: 8 }).map((_, i) => (n >> i) & 1)\n );\n // Filter out indexes of the keys we need\n const index = bits.map((_, i) => i).filter((i) => bits[i]);\n\n const publicKeys = account.publicKey as string[];\n const matchedPublicKeys = publicKeys.filter(\n (_: string, i: number) => index.includes(i)\n );\n\n verified = true;\n for (let i = 0; i < (signature as string[]).length; i++) {\n const isSigVerified = nacl.sign.detached.verify(\n Buffer.from(fullMessage),\n Buffer.from((signature as string[])[i], \"hex\"),\n Buffer.from(matchedPublicKeys[i], \"hex\")\n ); // `isSigVerified` should be `true` for every signature\n\n if (!isSigVerified) {\n verified = false;\n break;\n }\n }\n }\n } else {\n throw new WalletSignMessageAndVerifyError(\"Failed to get a bitmap\")\n .message;\n }\n } else {\n // single sig wallets\n // support for when address doesnt have hex prefix (0x)\n const currentAccountPublicKey = new HexString(\n account.publicKey as string\n );\n // support for when address doesnt have hex prefix (0x)\n const signature = new HexString(\n (response as SignMessageResponse).signature as string\n );\n verified = nacl.sign.detached.verify(\n Buffer.from((response as SignMessageResponse).fullMessage),\n Buffer.from(signature.noPrefix(), \"hex\"),\n Buffer.from(currentAccountPublicKey.noPrefix(), \"hex\")\n );\n }\n return verified;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n","import { Types } from \"aptos\";\nimport {\n Network,\n InputGenerateTransactionOptions,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAddressInput,\n InputGenerateTransactionPayloadData,\n AnyRawTransaction,\n Signature,\n AccountAuthenticator,\n} from \"@aptos-labs/ts-sdk\";\nimport { WalletReadyState } from \"../constants\";\nimport {\n AptosSignAndSubmitTransactionOutput,\n AptosSignMessageOutput,\n UserResponse,\n AccountInfo as StandardAccountInfo,\n NetworkInfo as StandardNetworkInfo,\n AptosChangeNetworkMethod,\n AptosSignAndSubmitTransactionInput,\n} from \"@aptos-labs/wallet-standard\";\nimport { AptosStandardSupportedWallet } from \"../AIP62StandardWallets/types\";\n\nexport { TxnBuilderTypes, Types } from \"aptos\";\nexport type {\n InputGenerateTransactionData,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Network,\n} from \"@aptos-labs/ts-sdk\";\n\nexport type {\n NetworkInfo as StandardNetworkInfo,\n AptosChangeNetworkOutput,\n} from \"@aptos-labs/wallet-standard\";\n\n// WalletName is a nominal type that wallet adapters should use, e.g. `'MyCryptoWallet' as WalletName<'MyCryptoWallet'>`\nexport type WalletName = T & {\n __brand__: \"WalletName\";\n};\n\nexport type NetworkInfo = {\n name: Network;\n chainId?: string;\n url?: string;\n};\n\nexport type WalletInfo = {\n name: WalletName;\n icon: string;\n url: string;\n};\n\nexport type AccountInfo = {\n address: string;\n publicKey: string | string[];\n minKeysRequired?: number;\n ansName?: string | null;\n};\n\nexport interface AptosWalletErrorResult {\n code: number;\n name: string;\n message: string;\n}\n\nexport declare interface WalletCoreEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n readyStateChange(wallet: Wallet): void;\n standardWalletsAdded(wallets: Wallet | AptosStandardSupportedWallet): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport interface SignMessagePayload {\n address?: boolean; // Should we include the address of the account in the message\n application?: boolean; // Should we include the domain of the dapp\n chainId?: boolean; // Should we include the current chain id the wallet is connected to\n message: string; // The message to be signed and displayed to the user\n nonce: string; // A nonce the dapp should generate\n}\n\nexport interface SignMessageResponse {\n address?: string;\n application?: string;\n chainId?: number;\n fullMessage: string; // The message that was generated to sign\n message: string; // The message passed in by the user\n nonce: string;\n prefix: \"APTOS\"; // Should always be APTOS\n signature: string | string[] | Signature; // The signed full message\n bitmap?: Uint8Array; // a 4-byte (32 bits) bit-vector of length N\n}\n\nexport type OnNetworkChange = (\n callBack: (networkInfo: NetworkInfo | StandardNetworkInfo) => Promise\n) => Promise;\n\nexport type OnAccountChange = (\n callBack: (accountInfo: AccountInfo | StandardAccountInfo) => Promise\n) => Promise;\n\nexport interface AdapterPluginEvents {\n onNetworkChange: OnNetworkChange;\n onAccountChange: OnAccountChange;\n}\n\n// TODO add signTransaction()\nexport interface AdapterPluginProps {\n name: WalletName;\n url: string;\n icon: `data:image/${\"svg+xml\" | \"webp\" | \"png\" | \"gif\"};base64,${string}`;\n providerName?: string;\n provider: any;\n // Compatible with legacy wallet plugin\n deeplinkProvider?: (data: { url: string }) => string;\n // Comaptible with AIP-62 standard wallet\n openInMobileApp?: () => void;\n connect(): Promise;\n disconnect: () => Promise;\n network: () => Promise;\n signAndSubmitTransaction?(\n transaction:\n | Types.TransactionPayload\n | InputTransactionData\n | AnyRawTransaction\n | AptosSignAndSubmitTransactionInput,\n options?: InputGenerateTransactionOptions\n ): Promise<\n | { hash: Types.HexEncodedBytes; output?: any }\n | PendingTransactionResponse\n | UserResponse\n >;\n submitTransaction?(\n transaction: InputSubmitTransactionData\n ): Promise;\n signMessage(\n message: T\n ): Promise>;\n signTransaction?( // `any` type for backwards compatibility, especially for identity connect\n transactionOrPayload: any,\n optionsOrAsFeePayer?: any\n ): Promise;\n account?: () => Promise;\n changeNetwork?: AptosChangeNetworkMethod;\n}\n\nexport type AdapterPlugin =\n AdapterPluginProps & AdapterPluginEvents;\n\nexport type Wallet = AdapterPlugin & {\n readyState?: WalletReadyState;\n isAIP62Standard?: boolean;\n isSignTransactionV1_1?: boolean;\n};\n\nexport interface TransactionOptions {\n max_gas_amount?: bigint;\n gas_unit_price?: bigint;\n}\n\nexport type InputTransactionData = {\n sender?: AccountAddressInput;\n data: InputGenerateTransactionPayloadData;\n options?: InputGenerateTransactionOptions;\n};\n\n// To be used by a wallet plugin\nexport interface PluginProvider {\n connect: () => Promise;\n account: () => Promise;\n disconnect: () => Promise;\n signAndSubmitTransaction: (\n transaction: any,\n options?: any\n ) => Promise<{ hash: Types.HexEncodedBytes } | AptosWalletErrorResult>;\n signMessage: (message: SignMessagePayload) => Promise;\n network: () => Promise;\n onAccountChange: (\n listener: (newAddress: AccountInfo) => Promise\n ) => Promise;\n onNetworkChange: OnNetworkChange;\n}\n","import {\n UserResponse,\n AptosSignTransactionInputV1_1,\n AptosSignTransactionOutput,\n AptosSignMessageOutput,\n AptosSignMessageInput,\n AptosWallet,\n UserResponseStatus,\n AptosSignAndSubmitTransactionOutput,\n AccountInfo as StandardAccountInfo,\n AptosConnectOutput,\n AptosSignTransactionOutputV1_1,\n} from \"@aptos-labs/wallet-standard\";\nimport {\n AnyPublicKey,\n AnyPublicKeyVariant,\n AnyRawTransaction,\n PendingTransactionResponse,\n Aptos,\n MultiEd25519Signature,\n MultiEd25519PublicKey,\n} from \"@aptos-labs/ts-sdk\";\n\nimport { WalletReadyState } from \"../constants\";\nimport {\n WalletConnectionError,\n WalletSignAndSubmitMessageError,\n WalletSignMessageAndVerifyError,\n WalletSignMessageError,\n} from \"../error\";\nimport {\n AccountInfo,\n InputTransactionData,\n Wallet,\n} from \"../LegacyWalletPlugins\";\nimport { generalizedErrorMessage } from \"../utils\";\n\nexport type AptosStandardWallet = AptosWallet & {\n readyState?: WalletReadyState;\n};\n\nexport class WalletStandardCore {\n async connect(wallet: Wallet) {\n const response =\n (await wallet.connect()) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response.args;\n }\n\n /**\n * Signs and submits a transaction to chain\n *\n * @param transactionInput InputTransactionData\n * @returns PendingTransactionResponse\n */\n async signAndSubmitTransaction(\n transactionInput: InputTransactionData,\n aptos: Aptos,\n account: AccountInfo,\n wallet: Wallet,\n standardWallets: ReadonlyArray\n ): Promise {\n try {\n // need to find the standard wallet type to do the\n // next features check\n const standardWallet = standardWallets.find(\n (standardWallet: AptosStandardWallet) =>\n wallet.name === standardWallet.name\n );\n\n // check for backward compatibility. before version 1.1.0 the standard expected\n // AnyRawTransaction input so the adapter built the transaction before sending it to the wallet\n if (\n standardWallet?.features[\"aptos:signAndSubmitTransaction\"]?.version !==\n \"1.1.0\"\n ) {\n const transaction = await aptos.transaction.build.simple({\n sender: account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options,\n });\n const response = (await wallet.signAndSubmitTransaction!(\n transaction\n )) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n }\n\n // build standard json format\n const transaction = {\n gasUnitPrice: transactionInput.options?.gasUnitPrice,\n maxGasAmount: transactionInput.options?.maxGasAmount,\n payload: transactionInput.data,\n };\n const response = (await wallet.signAndSubmitTransaction!(\n transaction\n )) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a transaction\n *\n * To support both existing wallet adapter V1 and V2, we support 2 input types\n *\n * @param transactionOrPayload AnyRawTransaction\n * @param options asFeePayer. To sign a transaction as the fee payer sponsor\n *\n * @returns AptosSignTransactionOutput\n */\n async signTransaction(\n transaction: AnyRawTransaction,\n wallet: Wallet,\n asFeePayer?: boolean\n ): Promise\n async signTransaction(\n input: AptosSignTransactionInputV1_1,\n wallet: Wallet,\n ): Promise\n async signTransaction(\n transactionOrInput: AnyRawTransaction | AptosSignTransactionInputV1_1,\n wallet: Wallet,\n asFeePayer?: boolean\n ): Promise {\n const response = (await wallet.signTransaction!(\n transactionOrInput,\n asFeePayer\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response.args;\n }\n\n /**\n * Sign message\n *\n * @param message AptosSignMessageInput\n * @return AptosSignMessageOutput\n * @throws WalletSignMessageError\n */\n async signMessage(\n message: AptosSignMessageInput,\n wallet: Wallet\n ): Promise {\n try {\n const response = (await wallet.signMessage(\n message\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message AptosSignMessageInput\n * @returns boolean\n */\n async signMessageAndVerify(\n message: AptosSignMessageInput,\n wallet: Wallet\n ): Promise {\n try {\n // sign the message\n const response = (await wallet.signMessage(\n message\n )) as UserResponse;\n // standard wallet account() method is a required method\n const account = (await wallet.account!()) as StandardAccountInfo;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"Failed to sign a message\").message;\n }\n\n // For Keyless wallet accounts we skip verification for now.\n // TODO: Remove when client-side verification is done in SDK.\n if (\n account.publicKey instanceof AnyPublicKey &&\n account.publicKey.variant === AnyPublicKeyVariant.Keyless\n ) {\n return true;\n }\n\n let verified = false;\n // if is a multi sig wallet with a MultiEd25519Signature type\n if (response.args.signature instanceof MultiEd25519Signature) {\n if (!(account.publicKey instanceof MultiEd25519PublicKey)) {\n throw new WalletSignMessageAndVerifyError(\n \"Public key and Signature type mismatch\"\n ).message;\n }\n const { fullMessage, signature } = response.args;\n const bitmap = signature.bitmap;\n if (bitmap) {\n const minKeysRequired = account.publicKey.threshold;\n if (signature.signatures.length < minKeysRequired) {\n verified = false;\n } else {\n verified = account.publicKey.verifySignature({\n message: new TextEncoder().encode(fullMessage),\n signature,\n });\n }\n }\n } else {\n verified = account.publicKey.verifySignature({\n message: new TextEncoder().encode(response.args.fullMessage),\n signature: response.args.signature,\n });\n }\n return verified;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n"],"mappings":"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","names":["WalletReadyState","NetworkName","import_aptos_wallet_adapter","import_ts_sdk","import_ts_sdk","isMobile","import_ts_sdk","EventEmitter","aptosWallets","aptosConfig","aptos","transaction","response","import_aptos","import_eventemitter3","import_ts_sdk","EventEmitter","oldTransactionPayload","nacl","import_aptos","import_wallet_standard","import_ts_sdk","standardWallet","transaction","response","import_wallet_standard"]} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/index.mjs b/packages/wallet-adapter-core-new/dist/index.mjs new file mode 100644 index 00000000..d3915bf1 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/index.mjs @@ -0,0 +1,1330 @@ +// src/version.ts +var WALLET_ADAPTER_CORE_VERSION = "4.23.0"; + +// src/WalletCoreNew.ts +import EventEmitter from "eventemitter3"; + +// src/ga/index.ts +var GA4 = class { + constructor() { + this.aptosGAID = "G-GNVVWBL3J9"; + this.injectGA(this.aptosGAID); + } + gtag(a, b, c) { + let dataLayer = window.dataLayer || []; + dataLayer.push(arguments); + } + injectGA(gaID) { + if (typeof window === "undefined") + return; + if (!gaID) + return; + const head = document.getElementsByTagName("head")[0]; + var myScript = document.createElement("script"); + myScript.setAttribute( + "src", + `https://www.googletagmanager.com/gtag/js?id=${gaID}` + ); + const that = this; + myScript.onload = function() { + that.gtag("js", new Date()); + that.gtag("config", `${gaID}`, { + send_page_view: false + }); + }; + head.insertBefore(myScript, head.children[1]); + } +}; + +// src/constants.ts +var WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => { + WalletReadyState2["Installed"] = "Installed"; + WalletReadyState2["NotDetected"] = "NotDetected"; + WalletReadyState2["Loadable"] = "Loadable"; + WalletReadyState2["Unsupported"] = "Unsupported"; + return WalletReadyState2; +})(WalletReadyState || {}); +var NetworkName = /* @__PURE__ */ ((NetworkName2) => { + NetworkName2["Mainnet"] = "mainnet"; + NetworkName2["Testnet"] = "testnet"; + NetworkName2["Devnet"] = "devnet"; + return NetworkName2; +})(NetworkName || {}); +var ChainIdToAnsSupportedNetworkMap = { + "1": "mainnet", + "2": "testnet" +}; +var APTOS_CONNECT_BASE_URL = "https://aptosconnect.app"; +var APTOS_CONNECT_ACCOUNT_URL = "https://aptosconnect.app/dashboard/main-account"; + +// src/AIP62StandardWallets/sdkWallets.ts +import { + AptosConnectAppleWallet, + AptosConnectGoogleWallet +} from "@aptos-connect/wallet-adapter-plugin"; +import { Network } from "@aptos-labs/ts-sdk"; +import { DevTWallet, TWallet } from "@atomrigslab/aptos-wallet-adapter"; +import { MizuWallet } from "@mizuwallet-sdk/aptos-wallet-adapter"; +function getSDKWallets(dappConfig) { + const sdkWallets = []; + if (typeof window !== "undefined") { + sdkWallets.push( + new AptosConnectGoogleWallet({ + network: dappConfig == null ? void 0 : dappConfig.network, + dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId, + ...dappConfig == null ? void 0 : dappConfig.aptosConnect + }), + new AptosConnectAppleWallet({ + network: dappConfig == null ? void 0 : dappConfig.network, + dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId, + ...dappConfig == null ? void 0 : dappConfig.aptosConnect + }) + ); + if ((dappConfig == null ? void 0 : dappConfig.mizuwallet) && (dappConfig == null ? void 0 : dappConfig.network) && [Network.MAINNET, Network.TESTNET].includes(dappConfig.network)) { + sdkWallets.push( + new MizuWallet({ + network: dappConfig.network, + manifestURL: dappConfig.mizuwallet.manifestURL, + appId: dappConfig.mizuwallet.appId + }) + ); + } + } + if ((dappConfig == null ? void 0 : dappConfig.network) === Network.MAINNET) { + sdkWallets.push(new TWallet()); + } else { + sdkWallets.push(new DevTWallet()); + } + return sdkWallets; +} + +// src/utils/helpers.ts +import { + Aptos, + AptosConfig as AptosConfig2, + Hex, + Network as Network3, + NetworkToNodeAPI, + Serializable +} from "@aptos-labs/ts-sdk"; + +// src/LegacyWalletPlugins/conversion.ts +import { + Network as Network2, + TypeTag, + generateTransactionPayload +} from "@aptos-labs/ts-sdk"; +import { BCS, TxnBuilderTypes } from "aptos"; +function convertNetwork(networkInfo) { + switch (networkInfo == null ? void 0 : networkInfo.name) { + case "mainnet": + return Network2.MAINNET; + case "testnet": + return Network2.TESTNET; + case "devnet": + return Network2.DEVNET; + case "local": + return Network2.LOCAL; + default: + throw new Error("Invalid Aptos network name"); + } +} +function convertV2TransactionPayloadToV1BCSPayload(payload) { + const deserializer = new BCS.Deserializer(payload.bcsToBytes()); + return TxnBuilderTypes.TransactionPayload.deserialize(deserializer); +} +function convertV2PayloadToV1JSONPayload(payload) { + var _a, _b; + if ("bytecode" in payload) { + throw new Error("script payload not supported"); + } else if ("multisigAddress" in payload) { + const stringTypeTags = (_a = payload.typeArguments) == null ? void 0 : _a.map( + (typeTag) => { + if (typeTag instanceof TypeTag) { + return typeTag.toString(); + } + return typeTag; + } + ); + const newPayload = { + type: "multisig_payload", + multisig_address: payload.multisigAddress.toString(), + function: payload.function, + type_arguments: stringTypeTags || [], + arguments: payload.functionArguments + }; + return newPayload; + } else { + const stringTypeTags = (_b = payload.typeArguments) == null ? void 0 : _b.map( + (typeTag) => { + if (typeTag instanceof TypeTag) { + return typeTag.toString(); + } + return typeTag; + } + ); + const newPayload = { + type: "entry_function_payload", + function: payload.function, + type_arguments: stringTypeTags || [], + arguments: payload.functionArguments + }; + return newPayload; + } +} +function convertPayloadInputV1ToV2(inputV1) { + if ("function" in inputV1) { + const inputV2 = { + function: inputV1.function, + functionArguments: inputV1.arguments, + typeArguments: inputV1.type_arguments + }; + return inputV2; + } + throw new Error("Payload type not supported"); +} +async function generateTransactionPayloadFromV1Input(aptosConfig, inputV1) { + if ("function" in inputV1) { + const inputV2 = convertPayloadInputV1ToV2(inputV1); + return generateTransactionPayload({ ...inputV2, aptosConfig }); + } + throw new Error("Payload type not supported"); +} + +// src/error/index.ts +var WalletError = class extends Error { + constructor(message, error) { + super(message); + this.error = error; + } +}; +var WalletNotSelectedError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletNotSelectedError"; + } +}; +var WalletNotReadyError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletNotReadyError"; + } +}; +var WalletConnectionError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletConnectionError"; + } +}; +var WalletDisconnectionError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletDisconnectionError"; + } +}; +var WalletAccountError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletAccountError"; + } +}; +var WalletGetNetworkError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletGetNetworkError"; + } +}; +var WalletAccountChangeError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletAccountChangeError"; + } +}; +var WalletNetworkChangeError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletNetworkChangeError"; + } +}; +var WalletNotConnectedError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletNotConnectedError"; + } +}; +var WalletSignMessageError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletSignMessageError"; + } +}; +var WalletSubmitTransactionError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletSubmitTransactionError"; + } +}; +var WalletSignMessageAndVerifyError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletSignMessageAndVerifyError"; + } +}; +var WalletSignAndSubmitMessageError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletSignAndSubmitMessageError"; + } +}; +var WalletSignTransactionError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletSignTransactionError"; + } +}; +var WalletNotSupportedMethod = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletNotSupportedMethod"; + } +}; +var WalletChangeNetworkError = class extends WalletError { + constructor() { + super(...arguments); + this.name = "WalletChangeNetworkError"; + } +}; + +// src/utils/helpers.ts +function isMobile() { + return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test( + navigator.userAgent + ); +} +function isInAppBrowser() { + const isIphone = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test( + navigator.userAgent + ); + const isAndroid = /(Android).*Version\/[\d.]+.*Chrome\/[^\s]+ Mobile/i.test( + navigator.userAgent + ); + return isIphone || isAndroid; +} +function isRedirectable() { + if (typeof navigator === "undefined" || !navigator) + return false; + return isMobile() && !isInAppBrowser(); +} +function generalizedErrorMessage(error) { + return typeof error === "object" && "message" in error ? error.message : error; +} +var areBCSArguments = (args) => { + if (args.length === 0) + return false; + return args.every( + (arg) => arg instanceof Serializable + ); +}; +var getAptosConfig = (networkInfo, dappConfig) => { + if (!networkInfo) { + throw new Error("Undefined network"); + } + const currentNetwork = convertNetwork(networkInfo); + if (isAptosLiveNetwork(currentNetwork)) { + const apiKey = dappConfig == null ? void 0 : dappConfig.aptosApiKeys; + return new AptosConfig2({ + network: currentNetwork, + clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : void 0 } + }); + } + if (isAptosNetwork(networkInfo)) { + return new AptosConfig2({ + network: currentNetwork + }); + } + return new AptosConfig2({ + network: Network3.CUSTOM, + fullnode: networkInfo.url + }); +}; +var isAptosNetwork = (networkInfo) => { + if (!networkInfo) { + throw new Error("Undefined network"); + } + return NetworkToNodeAPI[networkInfo.name] !== void 0; +}; +var isAptosLiveNetwork = (networkInfo) => { + return networkInfo === "devnet" || networkInfo === "testnet" || networkInfo === "mainnet"; +}; +var fetchDevnetChainId = async () => { + const aptos = new Aptos(); + return await aptos.getChainId(); +}; +var handlePublishPackageTransaction = (transactionInput) => { + let metadataBytes = transactionInput.data.functionArguments[0]; + if (typeof metadataBytes === "string") { + metadataBytes = Hex.fromHexInput(metadataBytes).toUint8Array(); + } + let byteCode = transactionInput.data.functionArguments[1]; + if (Array.isArray(byteCode)) { + byteCode = byteCode.map((byte) => { + if (typeof byte === "string") { + return Hex.fromHexInput(byte).toUint8Array(); + } + return byte; + }); + } else { + throw new WalletSignAndSubmitMessageError( + "The bytecode argument must be an array." + ).message; + } + return { metadataBytes, byteCode }; +}; + +// src/utils/localStorage.ts +var LOCAL_STORAGE_ITEM_KEY = "AptosWalletName"; +function setLocalStorage(walletName) { + localStorage.setItem(LOCAL_STORAGE_ITEM_KEY, walletName); +} +function removeLocalStorage() { + localStorage.removeItem(LOCAL_STORAGE_ITEM_KEY); +} +function getLocalStorage() { + localStorage.getItem(LOCAL_STORAGE_ITEM_KEY); +} + +// src/utils/walletSelector.ts +function partitionWallets(wallets, partitionFunction = isInstalled) { + const defaultWallets = []; + const moreWallets = []; + for (const wallet of wallets) { + if (partitionFunction(wallet)) + defaultWallets.push(wallet); + else + moreWallets.push(wallet); + } + return { defaultWallets, moreWallets }; +} +function isInstalled(wallet) { + return wallet.readyState === "Installed" /* Installed */; +} +function isInstallRequired(wallet) { + const isWalletReady = isInstalled(wallet); + const isMobile2 = !isWalletReady && isRedirectable(); + return !isMobile2 && !isWalletReady; +} +function truncateAddress(address) { + if (!address) + return; + return `${address.slice(0, 6)}...${address.slice(-5)}`; +} +function isAptosConnectWallet(wallet) { + if (!wallet.url) + return false; + return wallet.url.startsWith(APTOS_CONNECT_BASE_URL); +} +function getAptosConnectWallets(wallets) { + const { defaultWallets, moreWallets } = partitionWallets( + wallets, + isAptosConnectWallet + ); + return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets }; +} +function groupAndSortWallets(wallets, options) { + const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets); + const { defaultWallets, moreWallets } = partitionWallets(otherWallets); + if (options == null ? void 0 : options.sortAptosConnectWallets) { + aptosConnectWallets.sort(options.sortAptosConnectWallets); + } + if (options == null ? void 0 : options.sortAvailableWallets) { + defaultWallets.sort(options.sortAvailableWallets); + } + if (options == null ? void 0 : options.sortInstallableWallets) { + moreWallets.sort(options.sortInstallableWallets); + } + return { + aptosConnectWallets, + availableWallets: defaultWallets, + installableWallets: moreWallets + }; +} + +// src/WalletCoreNew.ts +import { + AccountAddress, + AnyPublicKey, + AnyPublicKeyVariant, + Aptos as Aptos2, + generateRawTransaction, + generateTransactionPayload as generateTransactionPayload2, + MultiEd25519PublicKey, + MultiEd25519Signature, + Network as Network4, + NetworkToChainId, + SimpleTransaction +} from "@aptos-labs/ts-sdk"; +import { + getAptosWallets, + isWalletWithRequiredFeatureSet, + UserResponseStatus +} from "@aptos-labs/wallet-standard"; + +// src/AIP62StandardWallets/registry.ts +var aptosStandardSupportedWalletList = [ + { + name: "Nightly", + url: "https://chromewebstore.google.com/detail/nightly/fiikommddbeccaoicoejoniammnalkfa?hl=en", + icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==", + readyState: "NotDetected" /* NotDetected */ + }, + { + name: "Petra", + url: "https://chromewebstore.google.com/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci?hl=en", + icon: "data:image/png;base64,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", + readyState: "NotDetected" /* NotDetected */ + }, + { + name: "Pontem Wallet", + url: "https://pontem.network/pontem-wallet", + icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K", + readyState: "NotDetected" /* NotDetected */ + } +]; + +// src/WalletCoreNew.ts +var WalletCoreNew = class extends EventEmitter { + constructor(optInWallets, dappConfig, disableTelemetry) { + super(); + this._wallet = null; + this._sdkWallets = []; + this._standard_wallets = []; + this._standard_not_detected_wallets = []; + this._network = null; + this._connected = false; + this._connecting = false; + this._account = null; + this._optInWallets = []; + this._disableTelemetry = false; + this.ga4 = null; + this._optInWallets = optInWallets || []; + this._dappConfig = dappConfig; + this._disableTelemetry = disableTelemetry || false; + this._sdkWallets = getSDKWallets(this._dappConfig); + if (!this._disableTelemetry) { + this.ga4 = new GA4(); + } + this.fetchExtensionAIP62AptosWallets(); + this.fetchSDKAIP62AptosWallets(); + this.appendNotDetectedStandardSupportedWallets(); + } + fetchExtensionAIP62AptosWallets() { + let { aptosWallets, on } = getAptosWallets(); + this.setExtensionAIP62Wallets(aptosWallets); + if (typeof window === "undefined") + return; + const that = this; + const removeRegisterListener = on("register", function() { + let { aptosWallets: aptosWallets2 } = getAptosWallets(); + that.setExtensionAIP62Wallets(aptosWallets2); + }); + const removeUnregisterListener = on("unregister", function() { + let { aptosWallets: aptosWallets2 } = getAptosWallets(); + that.setExtensionAIP62Wallets(aptosWallets2); + }); + } + setExtensionAIP62Wallets(extensionwWallets) { + const wallets = extensionwWallets.filter( + (wallet) => wallet.name !== "Dev T wallet" && wallet.name !== "T wallet" + ); + wallets.map((wallet) => { + if (this.excludeWallet(wallet)) { + return; + } + this._standard_wallets = this._standard_wallets.filter( + (item) => item.name !== wallet.name + ); + const isValid = isWalletWithRequiredFeatureSet(wallet); + if (isValid) { + const index = this._standard_not_detected_wallets.findIndex( + (notDetctedWallet) => notDetctedWallet.name == wallet.name + ); + if (index !== -1) { + this._standard_not_detected_wallets.splice(index, 1); + } + wallet.readyState = "Installed" /* Installed */; + this._standard_wallets.push(wallet); + this.emit("standardWalletsAdded", wallet); + } + }); + } + fetchSDKAIP62AptosWallets() { + this._sdkWallets.map((wallet) => { + if (this.excludeWallet(wallet)) { + return; + } + const isValid = isWalletWithRequiredFeatureSet(wallet); + if (isValid) { + wallet.readyState = "Installed" /* Installed */; + this._standard_wallets.push(wallet); + } + }); + } + appendNotDetectedStandardSupportedWallets() { + aptosStandardSupportedWalletList.map((supportedWallet) => { + const existingStandardWallet = this._standard_wallets.find( + (wallet) => wallet.name == supportedWallet.name + ); + if (existingStandardWallet) { + return; + } + if (existingStandardWallet && this.excludeWallet(existingStandardWallet)) { + return; + } + if (!existingStandardWallet) { + this._standard_not_detected_wallets.push(supportedWallet); + this.emit("standardNotDetectedWalletAdded", supportedWallet); + } + }); + } + excludeWallet(wallet) { + if (this._optInWallets.length > 0 && !this._optInWallets.includes(wallet.name)) { + return true; + } + return false; + } + recordEvent(eventName, additionalInfo) { + var _a, _b, _c, _d; + (_d = this.ga4) == null ? void 0 : _d.gtag("event", `wallet_adapter_${eventName}`, { + wallet: (_a = this._wallet) == null ? void 0 : _a.name, + network: (_b = this._network) == null ? void 0 : _b.name, + network_url: (_c = this._network) == null ? void 0 : _c.url, + adapter_core_version: WALLET_ADAPTER_CORE_VERSION, + send_to: "G-GNVVWBL3J9", + ...additionalInfo + }); + } + ensureWalletExists(wallet) { + if (!wallet) { + throw new WalletNotConnectedError().name; + } + if (!(wallet.readyState === "Installed" /* Installed */)) + throw new WalletNotReadyError("Wallet is not set").name; + } + ensureAccountExists(account) { + if (!account) { + throw new WalletAccountError("Account is not set").name; + } + } + async setAnsName() { + var _a; + if (((_a = this._network) == null ? void 0 : _a.chainId) && this._account) { + if (this._account.ansName) + return; + if (!ChainIdToAnsSupportedNetworkMap[this._network.chainId] || !isAptosNetwork(this._network)) { + this._account.ansName = void 0; + return; + } + const aptosConfig = getAptosConfig(this._network, this._dappConfig); + const aptos = new Aptos2(aptosConfig); + const name = await aptos.ans.getPrimaryName({ + address: this._account.address.toString() + }); + this._account.ansName = name; + } + } + clearData() { + this._connected = false; + this.setWallet(null); + this.setAccount(null); + this.setNetwork(null); + removeLocalStorage(); + } + setWallet(wallet) { + this._wallet = wallet; + } + setAccount(account) { + this._account = account; + } + setNetwork(network) { + this._network = network; + } + isConnected() { + return this._connected; + } + get wallets() { + return this._standard_wallets; + } + get notDetectedWallets() { + return this._standard_not_detected_wallets; + } + get wallet() { + try { + if (!this._wallet) + return null; + return this._wallet; + } catch (error) { + throw new WalletNotSelectedError(error).message; + } + } + get account() { + try { + return this._account; + } catch (error) { + throw new WalletAccountError(error).message; + } + } + get network() { + try { + return this._network; + } catch (error) { + throw new WalletGetNetworkError(error).message; + } + } + async connect(walletName) { + var _a, _b, _c; + const allDetectedWallets = this._standard_wallets; + const selectedWallet = allDetectedWallets.find( + (wallet) => wallet.name === walletName + ); + if (!selectedWallet) + return; + if (this._connected) { + if (((_a = this._wallet) == null ? void 0 : _a.name) === walletName) + throw new WalletConnectionError( + `${walletName} wallet is already connected` + ).message; + } + if (isRedirectable() && selectedWallet.readyState !== "Installed" /* Installed */) { + if ((_b = selectedWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _b.openInMobileApp) { + (_c = selectedWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _c.openInMobileApp(); + return; + } + return; + } + if (selectedWallet.readyState !== "Installed" /* Installed */) { + return; + } + await this.connectWallet(selectedWallet); + } + async connectWallet(selectedWallet) { + var _a; + try { + this._connecting = true; + this.setWallet(selectedWallet); + const response = await selectedWallet.features["aptos:connect"].connect(); + if (response.status === UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + const account = response.args; + this.setAccount(account); + const network = await ((_a = selectedWallet.features["aptos:network"]) == null ? void 0 : _a.network()); + this.setNetwork(network); + await this.setAnsName(); + setLocalStorage(selectedWallet.name); + this._connected = true; + this.recordEvent("wallet_connect"); + this.emit("connect", account); + } catch (error) { + this.clearData(); + const errMsg = generalizedErrorMessage(error); + throw new WalletConnectionError(errMsg).message; + } finally { + this._connecting = false; + } + } + async disconnect() { + try { + this.ensureWalletExists(this._wallet); + await this._wallet.features["aptos:disconnect"].disconnect(); + this.clearData(); + this.recordEvent("wallet_disconnect"); + this.emit("disconnect"); + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletDisconnectionError(errMsg).message; + } + } + async signAndSubmitTransaction(transactionInput) { + var _a, _b, _c; + try { + if ("function" in transactionInput.data) { + if (transactionInput.data.function === "0x1::account::rotate_authentication_key_call") { + throw new WalletSignAndSubmitMessageError("SCAM SITE DETECTED").message; + } + if (transactionInput.data.function === "0x1::code::publish_package_txn") { + ({ + metadataBytes: transactionInput.data.functionArguments[0], + byteCode: transactionInput.data.functionArguments[1] + } = handlePublishPackageTransaction(transactionInput)); + } + } + this.ensureWalletExists(this._wallet); + this.ensureAccountExists(this._account); + this.recordEvent("sign_and_submit_transaction"); + if (this._wallet.features["aptos:signAndSubmitTransaction"]) { + if (((_a = this._wallet.features["aptos:signAndSubmitTransaction"]) == null ? void 0 : _a.version) !== "1.1.0") { + const aptosConfig2 = getAptosConfig(this._network, this._dappConfig); + const aptos2 = new Aptos2(aptosConfig2); + const transaction2 = await aptos2.transaction.build.simple({ + sender: this._account.address.toString(), + data: transactionInput.data, + options: transactionInput.options + }); + const signAndSubmitTransactionMethod = this._wallet.features["aptos:signAndSubmitTransaction"].signAndSubmitTransaction; + const response3 = await signAndSubmitTransactionMethod( + transaction2 + ); + if (response3.status === UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response3.args; + } + const response2 = await this._wallet.features["aptos:signAndSubmitTransaction"].signAndSubmitTransaction({ + payload: transactionInput.data, + gasUnitPrice: (_b = transactionInput.options) == null ? void 0 : _b.gasUnitPrice, + maxGasAmount: (_c = transactionInput.options) == null ? void 0 : _c.maxGasAmount + }); + if (response2.status === UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response2.args; + } + const aptosConfig = getAptosConfig(this._network, this._dappConfig); + const aptos = new Aptos2(aptosConfig); + const transaction = await aptos.transaction.build.simple({ + sender: this._account.address, + data: transactionInput.data, + options: transactionInput.options + }); + const signTransactionResponse = await this.signTransaction(transaction); + const response = await this.submitTransaction({ + transaction, + senderAuthenticator: "authenticator" in signTransactionResponse ? signTransactionResponse.authenticator : signTransactionResponse + }); + return { hash: response.hash }; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignAndSubmitMessageError(errMsg).message; + } + } + async signTransaction(transactionOrPayload, asFeePayer, options) { + var _a, _b, _c, _d; + try { + this.ensureWalletExists(this._wallet); + this.ensureAccountExists(this._account); + this.recordEvent("sign_transaction"); + if ("rawTransaction" in transactionOrPayload) { + const response = await ((_a = this._wallet) == null ? void 0 : _a.features["aptos:signTransaction"].signTransaction( + transactionOrPayload, + asFeePayer + )); + if (response.status === UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } else if (((_b = this._wallet.features["aptos:signTransaction"]) == null ? void 0 : _b.version) === "1.1") { + const signTransactionV1_1StandardInput = { + payload: transactionOrPayload.data, + expirationTimestamp: options == null ? void 0 : options.expirationTimestamp, + expirationSecondsFromNow: options == null ? void 0 : options.expirationSecondsFromNow, + gasUnitPrice: options == null ? void 0 : options.gasUnitPrice, + maxGasAmount: options == null ? void 0 : options.maxGasAmount, + sequenceNumber: options == null ? void 0 : options.accountSequenceNumber, + sender: transactionOrPayload.sender ? { address: AccountAddress.from(transactionOrPayload.sender) } : void 0 + }; + const walletSignTransactionMethod = (_c = this._wallet) == null ? void 0 : _c.features["aptos:signTransaction"].signTransaction; + const response = await walletSignTransactionMethod( + signTransactionV1_1StandardInput + ); + if (response.status === UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } else { + const aptosConfig = getAptosConfig(this._network, this._dappConfig); + const payload = await generateTransactionPayload2({ + ...transactionOrPayload.data, + aptosConfig + }); + const rawTransaction = await generateRawTransaction({ + aptosConfig, + payload, + sender: this._account.address, + options + }); + const response = await ((_d = this._wallet) == null ? void 0 : _d.features["aptos:signTransaction"].signTransaction( + new SimpleTransaction(rawTransaction), + asFeePayer + )); + if (response.status === UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignTransactionError(errMsg).message; + } + } + async signMessage(message) { + var _a, _b; + try { + this.ensureWalletExists(this._wallet); + this.recordEvent("sign_message"); + const response = await ((_b = (_a = this._wallet) == null ? void 0 : _a.features["aptos:signMessage"]) == null ? void 0 : _b.signMessage(message)); + if (response.status === UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignMessageError(errMsg).message; + } + } + async submitTransaction(transaction) { + try { + this.ensureWalletExists(this._wallet); + const { additionalSignersAuthenticators } = transaction; + const transactionType = additionalSignersAuthenticators !== void 0 ? "multi-agent" : "simple"; + this.recordEvent("submit_transaction", { + transaction_type: transactionType + }); + const aptosConfig = getAptosConfig(this._network, this._dappConfig); + const aptos = new Aptos2(aptosConfig); + if (additionalSignersAuthenticators !== void 0) { + const multiAgentTxn = { + ...transaction, + additionalSignersAuthenticators + }; + return aptos.transaction.submit.multiAgent(multiAgentTxn); + } else { + return aptos.transaction.submit.simple(transaction); + } + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSubmitTransactionError(errMsg).message; + } + } + async onAccountChange() { + var _a; + try { + this.ensureWalletExists(this._wallet); + await ((_a = this._wallet.features["aptos:onAccountChange"]) == null ? void 0 : _a.onAccountChange( + async (data) => { + this.setAccount(data); + await this.setAnsName(); + this.recordEvent("account_change"); + this.emit("accountChange", this._account); + } + )); + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletAccountChangeError(errMsg).message; + } + } + async onNetworkChange() { + var _a; + try { + this.ensureWalletExists(this._wallet); + await ((_a = this._wallet.features["aptos:onNetworkChange"]) == null ? void 0 : _a.onNetworkChange( + async (data) => { + this.setNetwork(data); + await this.setAnsName(); + this.emit("networkChange", this._network); + } + )); + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletNetworkChangeError(errMsg).message; + } + } + async changeNetwork(network) { + var _a; + try { + this.ensureWalletExists(this._wallet); + this.recordEvent("change_network_request", { + from: (_a = this._network) == null ? void 0 : _a.name, + to: network + }); + const chainId = network === Network4.DEVNET ? await fetchDevnetChainId() : NetworkToChainId[network]; + const networkInfo = { + name: network, + chainId + }; + if (this._wallet.features["aptos:changeNetwork"]) { + const response = await this._wallet.features["aptos:changeNetwork"].changeNetwork( + networkInfo + ); + if (response.status === UserResponseStatus.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } + throw new WalletChangeNetworkError( + `${this._wallet.name} does not support changing network request` + ).message; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletChangeNetworkError(errMsg).message; + } + } + async signMessageAndVerify(message) { + try { + this.ensureWalletExists(this._wallet); + this.ensureAccountExists(this._account); + this.recordEvent("sign_message_and_verify"); + try { + const response = await this._wallet.features["aptos:signMessage"].signMessage(message); + if (response.status === UserResponseStatus.REJECTED) { + throw new WalletConnectionError("Failed to sign a message").message; + } + if (this._account.publicKey instanceof AnyPublicKey && this._account.publicKey.variant === AnyPublicKeyVariant.Keyless) { + return true; + } + let verified = false; + if (response.args.signature instanceof MultiEd25519Signature) { + if (!(this._account.publicKey instanceof MultiEd25519PublicKey)) { + throw new WalletSignMessageAndVerifyError( + "Public key and Signature type mismatch" + ).message; + } + const { fullMessage, signature } = response.args; + const bitmap = signature.bitmap; + if (bitmap) { + const minKeysRequired = this._account.publicKey.threshold; + if (signature.signatures.length < minKeysRequired) { + verified = false; + } else { + verified = this._account.publicKey.verifySignature({ + message: new TextEncoder().encode(fullMessage), + signature + }); + } + } + } else { + verified = this._account.publicKey.verifySignature({ + message: new TextEncoder().encode(response.args.fullMessage), + signature: response.args.signature + }); + } + return verified; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignMessageAndVerifyError(errMsg).message; + } + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignMessageAndVerifyError(errMsg).message; + } + } +}; + +// src/LegacyWalletPlugins/WalletCoreV1.ts +import { HexString } from "aptos"; +import EventEmitter2 from "eventemitter3"; +import { Buffer } from "buffer"; +import { + generateTransactionPayload as generateTransactionPayload3 +} from "@aptos-labs/ts-sdk"; +import nacl from "tweetnacl"; +var WalletCoreV1 = class extends EventEmitter2 { + async connect(wallet) { + const account = await wallet.connect(); + return account; + } + async resolveSignAndSubmitTransaction(payloadData, network, wallet, transactionInput, dappConfig) { + var _a, _b, _c, _d, _e, _f, _g, _h; + if (areBCSArguments(payloadData.functionArguments)) { + const aptosConfig = getAptosConfig(network, dappConfig); + const newPayload = await generateTransactionPayload3({ + ...payloadData, + aptosConfig + }); + const oldTransactionPayload2 = convertV2TransactionPayloadToV1BCSPayload(newPayload); + return await this.signAndSubmitBCSTransaction( + oldTransactionPayload2, + wallet, + { + max_gas_amount: ((_a = transactionInput.options) == null ? void 0 : _a.maxGasAmount) ? BigInt((_b = transactionInput.options) == null ? void 0 : _b.maxGasAmount) : void 0, + gas_unit_price: ((_c = transactionInput.options) == null ? void 0 : _c.gasUnitPrice) ? BigInt((_d = transactionInput.options) == null ? void 0 : _d.gasUnitPrice) : void 0 + } + ); + } + const oldTransactionPayload = convertV2PayloadToV1JSONPayload(payloadData); + return await this.signAndSubmitTransaction(oldTransactionPayload, wallet, { + max_gas_amount: ((_e = transactionInput.options) == null ? void 0 : _e.maxGasAmount) ? BigInt((_f = transactionInput.options) == null ? void 0 : _f.maxGasAmount) : void 0, + gas_unit_price: ((_g = transactionInput.options) == null ? void 0 : _g.gasUnitPrice) ? BigInt((_h = transactionInput.options) == null ? void 0 : _h.gasUnitPrice) : void 0 + }); + } + async signAndSubmitTransaction(transaction, wallet, options) { + try { + const response = await wallet.signAndSubmitTransaction( + transaction, + options + ); + return response; + } catch (error) { + const errMsg = typeof error == "object" && "message" in error ? error.message : error; + throw new WalletSignAndSubmitMessageError(errMsg).message; + } + } + async signAndSubmitBCSTransaction(transaction, wallet, options) { + if (!("signAndSubmitBCSTransaction" in wallet)) { + throw new WalletNotSupportedMethod( + `Submit a BCS Transaction is not supported by ${wallet.name}` + ).message; + } + try { + const response = await wallet.signAndSubmitBCSTransaction( + transaction, + options + ); + return response; + } catch (error) { + const errMsg = typeof error == "object" && "message" in error ? error.message : error; + throw new WalletSignAndSubmitMessageError(errMsg).message; + } + } + async signTransaction(transaction, wallet, options) { + try { + const response = await wallet.signTransaction( + transaction, + options + ); + return response; + } catch (error) { + const errMsg = typeof error == "object" && "message" in error ? error.message : error; + throw new WalletSignTransactionError(errMsg).message; + } + } + async signMessageAndVerify(message, wallet, account) { + try { + const response = await wallet.signMessage(message); + if (!response) + throw new WalletSignMessageAndVerifyError("Failed to sign a message").message; + console.log("signMessageAndVerify signMessage response", response); + let verified = false; + if (Array.isArray(response.signature)) { + const { fullMessage, signature, bitmap } = response; + if (bitmap) { + const minKeysRequired = account.minKeysRequired; + if (signature.length < minKeysRequired) { + verified = false; + } else { + const bits = Array.from(bitmap).flatMap( + (n) => Array.from({ length: 8 }).map((_, i) => n >> i & 1) + ); + const index = bits.map((_, i) => i).filter((i) => bits[i]); + const publicKeys = account.publicKey; + const matchedPublicKeys = publicKeys.filter( + (_, i) => index.includes(i) + ); + verified = true; + for (let i = 0; i < signature.length; i++) { + const isSigVerified = nacl.sign.detached.verify( + Buffer.from(fullMessage), + Buffer.from(signature[i], "hex"), + Buffer.from(matchedPublicKeys[i], "hex") + ); + if (!isSigVerified) { + verified = false; + break; + } + } + } + } else { + throw new WalletSignMessageAndVerifyError("Failed to get a bitmap").message; + } + } else { + const currentAccountPublicKey = new HexString( + account.publicKey + ); + const signature = new HexString( + response.signature + ); + verified = nacl.sign.detached.verify( + Buffer.from(response.fullMessage), + Buffer.from(signature.noPrefix(), "hex"), + Buffer.from(currentAccountPublicKey.noPrefix(), "hex") + ); + } + return verified; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignMessageAndVerifyError(errMsg).message; + } + } +}; + +// src/LegacyWalletPlugins/types.ts +import { TxnBuilderTypes as TxnBuilderTypes3, Types as Types3 } from "aptos"; + +// src/AIP62StandardWallets/WalletStandard.ts +import { + UserResponseStatus as UserResponseStatus2 +} from "@aptos-labs/wallet-standard"; +import { + AnyPublicKey as AnyPublicKey2, + AnyPublicKeyVariant as AnyPublicKeyVariant2, + MultiEd25519Signature as MultiEd25519Signature2, + MultiEd25519PublicKey as MultiEd25519PublicKey2 +} from "@aptos-labs/ts-sdk"; +var WalletStandardCore = class { + async connect(wallet) { + const response = await wallet.connect(); + if (response.status === UserResponseStatus2.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } + async signAndSubmitTransaction(transactionInput, aptos, account, wallet, standardWallets) { + var _a, _b, _c; + try { + const standardWallet = standardWallets.find( + (standardWallet2) => wallet.name === standardWallet2.name + ); + if (((_a = standardWallet == null ? void 0 : standardWallet.features["aptos:signAndSubmitTransaction"]) == null ? void 0 : _a.version) !== "1.1.0") { + const transaction2 = await aptos.transaction.build.simple({ + sender: account.address.toString(), + data: transactionInput.data, + options: transactionInput.options + }); + const response2 = await wallet.signAndSubmitTransaction( + transaction2 + ); + if (response2.status === UserResponseStatus2.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response2.args; + } + const transaction = { + gasUnitPrice: (_b = transactionInput.options) == null ? void 0 : _b.gasUnitPrice, + maxGasAmount: (_c = transactionInput.options) == null ? void 0 : _c.maxGasAmount, + payload: transactionInput.data + }; + const response = await wallet.signAndSubmitTransaction( + transaction + ); + if (response.status === UserResponseStatus2.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignAndSubmitMessageError(errMsg).message; + } + } + async signTransaction(transactionOrInput, wallet, asFeePayer) { + const response = await wallet.signTransaction( + transactionOrInput, + asFeePayer + ); + if (response.status === UserResponseStatus2.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } + async signMessage(message, wallet) { + try { + const response = await wallet.signMessage( + message + ); + if (response.status === UserResponseStatus2.REJECTED) { + throw new WalletConnectionError("User has rejected the request").message; + } + return response.args; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignMessageError(errMsg).message; + } + } + async signMessageAndVerify(message, wallet) { + try { + const response = await wallet.signMessage( + message + ); + const account = await wallet.account(); + if (response.status === UserResponseStatus2.REJECTED) { + throw new WalletConnectionError("Failed to sign a message").message; + } + if (account.publicKey instanceof AnyPublicKey2 && account.publicKey.variant === AnyPublicKeyVariant2.Keyless) { + return true; + } + let verified = false; + if (response.args.signature instanceof MultiEd25519Signature2) { + if (!(account.publicKey instanceof MultiEd25519PublicKey2)) { + throw new WalletSignMessageAndVerifyError( + "Public key and Signature type mismatch" + ).message; + } + const { fullMessage, signature } = response.args; + const bitmap = signature.bitmap; + if (bitmap) { + const minKeysRequired = account.publicKey.threshold; + if (signature.signatures.length < minKeysRequired) { + verified = false; + } else { + verified = account.publicKey.verifySignature({ + message: new TextEncoder().encode(fullMessage), + signature + }); + } + } + } else { + verified = account.publicKey.verifySignature({ + message: new TextEncoder().encode(response.args.fullMessage), + signature: response.args.signature + }); + } + return verified; + } catch (error) { + const errMsg = generalizedErrorMessage(error); + throw new WalletSignMessageAndVerifyError(errMsg).message; + } + } +}; + +// src/index.ts +import { +} from "@aptos-labs/wallet-standard"; +if (typeof window !== "undefined") { + window.WALLET_ADAPTER_CORE_VERSION = WALLET_ADAPTER_CORE_VERSION; +} +export { + APTOS_CONNECT_ACCOUNT_URL, + APTOS_CONNECT_BASE_URL, + ChainIdToAnsSupportedNetworkMap, + NetworkName, + TxnBuilderTypes3 as TxnBuilderTypes, + Types3 as Types, + WalletCoreNew, + WalletCoreV1, + WalletReadyState, + WalletStandardCore, + areBCSArguments, + convertNetwork, + convertPayloadInputV1ToV2, + convertV2PayloadToV1JSONPayload, + convertV2TransactionPayloadToV1BCSPayload, + fetchDevnetChainId, + generalizedErrorMessage, + generateTransactionPayloadFromV1Input, + getAptosConfig, + getAptosConnectWallets, + getLocalStorage, + groupAndSortWallets, + handlePublishPackageTransaction, + isAptosConnectWallet, + isAptosLiveNetwork, + isAptosNetwork, + isInAppBrowser, + isInstallRequired, + isInstalled, + isMobile, + isRedirectable, + partitionWallets, + removeLocalStorage, + setLocalStorage, + truncateAddress +}; +//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/index.mjs.map b/packages/wallet-adapter-core-new/dist/index.mjs.map new file mode 100644 index 00000000..36c7a848 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/version.ts","../src/WalletCoreNew.ts","../src/ga/index.ts","../src/constants.ts","../src/AIP62StandardWallets/sdkWallets.ts","../src/utils/helpers.ts","../src/LegacyWalletPlugins/conversion.ts","../src/error/index.ts","../src/utils/localStorage.ts","../src/utils/walletSelector.ts","../src/AIP62StandardWallets/registry.ts","../src/LegacyWalletPlugins/WalletCoreV1.ts","../src/LegacyWalletPlugins/types.ts","../src/AIP62StandardWallets/WalletStandard.ts","../src/index.ts"],"sourcesContent":["export const WALLET_ADAPTER_CORE_VERSION = \"4.23.0\";\n","import EventEmitter from \"eventemitter3\";\nimport {\n AptosStandardWallet,\n AvailableWallets,\n WalletStandardCore,\n} from \"./AIP62StandardWallets\";\nimport { GA4 } from \"./ga\";\n\nimport { ChainIdToAnsSupportedNetworkMap, WalletReadyState } from \"./constants\";\nimport { getSDKWallets } from \"./AIP62StandardWallets/sdkWallets\";\nimport { WALLET_ADAPTER_CORE_VERSION } from \"./version\";\nimport {\n fetchDevnetChainId,\n generalizedErrorMessage,\n getAptosConfig,\n handlePublishPackageTransaction,\n isAptosNetwork,\n isRedirectable,\n removeLocalStorage,\n setLocalStorage,\n} from \"./utils\";\nimport {\n AccountAddress,\n AccountAuthenticator,\n AnyPublicKey,\n AnyPublicKeyVariant,\n AnyRawTransaction,\n Aptos,\n generateRawTransaction,\n generateTransactionPayload,\n InputEntryFunctionData,\n InputGenerateTransactionOptions,\n InputSubmitTransactionData,\n MultiEd25519PublicKey,\n MultiEd25519Signature,\n Network,\n NetworkToChainId,\n PendingTransactionResponse,\n SimpleTransaction,\n} from \"@aptos-labs/ts-sdk\";\nimport {\n WalletChangeNetworkError,\n WalletAccountChangeError,\n WalletAccountError,\n WalletConnectionError,\n WalletGetNetworkError,\n WalletNetworkChangeError,\n WalletNotConnectedError,\n WalletNotReadyError,\n WalletNotSelectedError,\n WalletSignAndSubmitMessageError,\n WalletSignMessageError,\n WalletSignTransactionError,\n WalletSignMessageAndVerifyError,\n WalletDisconnectionError,\n WalletSubmitTransactionError,\n} from \"./error\";\nimport {\n AptosWallet,\n getAptosWallets,\n isWalletWithRequiredFeatureSet,\n UserResponseStatus,\n AptosSignAndSubmitTransactionOutput,\n UserResponse,\n AptosSignTransactionOutputV1_1,\n AptosSignTransactionInputV1_1,\n AptosSignTransactionMethod,\n AptosSignTransactionMethodV1_1,\n NetworkInfo,\n AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosChangeNetworkOutput,\n} from \"@aptos-labs/wallet-standard\";\nexport type { NetworkInfo, AccountInfo } from \"@aptos-labs/wallet-standard\";\nimport { InputTransactionData } from \"./LegacyWalletPlugins/types\";\nimport { AptosConnectWalletConfig } from \"@aptos-connect/wallet-adapter-plugin\";\nimport { aptosStandardSupportedWalletList } from \"./AIP62StandardWallets/registry\";\n\n// An adapter wallet types is a wallet that is compatible with the wallet standard and the wallet adapter properties\nexport type AdapterWallet = AptosWallet & {\n readyState?: WalletReadyState;\n};\n\n// An adapter not detected wallet types is a wallet that is compatible with the wallet standard but not detected\nexport type AdapterNotDetectedWallet = Omit<\n AdapterWallet,\n \"features\" | \"version\" | \"chains\" | \"accounts\"\n> & {\n readyState: WalletReadyState.NotDetected;\n};\n\nexport interface DappConfig {\n network: Network;\n aptosApiKeys?: Partial>;\n aptosConnectDappId?: string;\n aptosConnect?: Omit;\n mizuwallet?: {\n manifestURL: string;\n appId?: string;\n };\n}\n\nexport declare interface WalletCoreEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n standardWalletsAdded(wallets: AdapterWallet): void;\n standardNotDetectedWalletAdded(wallets: AdapterNotDetectedWallet): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport type AdapterAccountInfo = Omit & {\n // ansName is a read-only property on the standard AccountInfo type\n ansName?: string;\n};\n\nexport class WalletCoreNew extends EventEmitter {\n // Local private variable to hold the wallet that is currently connected\n private _wallet: AdapterWallet | null = null;\n\n // Local private variable to hold SDK wallets in the adapter\n private readonly _sdkWallets: AdapterWallet[] = [];\n\n // Local array that holds all the wallets that are AIP-62 standard compatible\n private _standard_wallets: AdapterWallet[] = [];\n\n // Local array that holds all the wallets that are AIP-62 standard compatible but are not installed on the user machine\n private _standard_not_detected_wallets: AdapterNotDetectedWallet[] = [];\n\n // Local private variable to hold the network that is currently connected\n private _network: NetworkInfo | null = null;\n\n // Local private variable to hold the wallet connected state\n private _connected: boolean = false;\n\n // Local private variable to hold the connecting state\n private _connecting: boolean = false;\n\n // Local private variable to hold the account that is currently connected\n private _account: AdapterAccountInfo | null = null;\n\n // JSON configuration for AptosConnect\n private _dappConfig: DappConfig | undefined;\n\n // Private array that holds all the Wallets a dapp decided to opt-in to\n private _optInWallets: ReadonlyArray = [];\n\n // Local flag to disable the adapter telemetry tool\n private _disableTelemetry: boolean = false;\n\n // Google Analytics 4 module\n private readonly ga4: GA4 | null = null;\n\n constructor(\n optInWallets?: ReadonlyArray,\n dappConfig?: DappConfig,\n disableTelemetry?: boolean\n ) {\n super();\n this._optInWallets = optInWallets || [];\n this._dappConfig = dappConfig;\n this._disableTelemetry = disableTelemetry || false;\n this._sdkWallets = getSDKWallets(this._dappConfig);\n\n // If disableTelemetry set to false (by default), start GA4\n if (!this._disableTelemetry) {\n this.ga4 = new GA4();\n }\n // Strategy to detect AIP-62 standard compatible extension wallets\n this.fetchExtensionAIP62AptosWallets();\n // Strategy to detect AIP-62 standard compatible SDK wallets.\n // We separate the extension and sdk detection process so we dont refetch sdk wallets everytime a new\n // extension wallet is detected\n this.fetchSDKAIP62AptosWallets();\n\n this.appendNotDetectedStandardSupportedWallets();\n }\n\n private fetchExtensionAIP62AptosWallets(): void {\n let { aptosWallets, on } = getAptosWallets();\n this.setExtensionAIP62Wallets(aptosWallets);\n\n if (typeof window === \"undefined\") return;\n // Adds an event listener for new wallets that get registered after the dapp has been loaded,\n // receiving an unsubscribe function, which it can later use to remove the listener\n const that = this;\n const removeRegisterListener = on(\"register\", function () {\n let { aptosWallets } = getAptosWallets();\n that.setExtensionAIP62Wallets(aptosWallets);\n });\n\n const removeUnregisterListener = on(\"unregister\", function () {\n let { aptosWallets } = getAptosWallets();\n that.setExtensionAIP62Wallets(aptosWallets);\n });\n }\n\n /**\n * Set AIP-62 extension wallets\n *\n * @param extensionwWallets\n */\n private setExtensionAIP62Wallets(\n extensionwWallets: readonly AptosWallet[]\n ): void {\n // Twallet SDK fires a register event so the adapter assumes it is an extension wallet\n // so filter out t wallet, remove it when twallet fixes it\n const wallets = extensionwWallets.filter(\n (wallet) => wallet.name !== \"Dev T wallet\" && wallet.name !== \"T wallet\"\n );\n\n wallets.map((wallet: AptosStandardWallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n\n // Remove optional duplications in the _all_wallets array\n this._standard_wallets = this._standard_wallets.filter(\n (item) => item.name !== wallet.name\n );\n\n const isValid = isWalletWithRequiredFeatureSet(wallet);\n if (isValid) {\n // check if we already have this wallet as a not detected wallet\n const index = this._standard_not_detected_wallets.findIndex(\n (notDetctedWallet) => notDetctedWallet.name == wallet.name\n );\n // if we do, remove it from the not detected wallets array as it is now become detected\n if (index !== -1) {\n this._standard_not_detected_wallets.splice(index, 1);\n }\n\n wallet.readyState = WalletReadyState.Installed;\n this._standard_wallets.push(wallet);\n this.emit(\"standardWalletsAdded\", wallet);\n }\n });\n }\n\n /**\n * Set AIP-62 SDK wallets\n */\n private fetchSDKAIP62AptosWallets(): void {\n this._sdkWallets.map((wallet: AptosStandardWallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n const isValid = isWalletWithRequiredFeatureSet(wallet);\n\n if (isValid) {\n wallet.readyState = WalletReadyState.Installed;\n this._standard_wallets.push(wallet);\n }\n });\n }\n\n // Since we can't discover AIP-62 wallets that are not installed on the user machine,\n // we hold a AIP-62 wallets registry to show on the wallet selector modal for the users.\n // Append wallets from wallet standard support registry to the `all_wallets` array\n // when wallet is not installed on the user machine\n private appendNotDetectedStandardSupportedWallets(): void {\n // Loop over the registry map\n aptosStandardSupportedWalletList.map((supportedWallet) => {\n // Check if we already have this wallet as a AIP-62 wallet standard\n const existingStandardWallet = this._standard_wallets.find(\n (wallet) => wallet.name == supportedWallet.name\n );\n if (existingStandardWallet) {\n return;\n }\n // If AIP-62 wallet detected but it is excluded by the dapp, dont add it to the wallets array\n if (\n existingStandardWallet &&\n this.excludeWallet(existingStandardWallet)\n ) {\n return;\n }\n\n // If AIP-62 wallet does not exist, append it to the wallet selector modal\n // as an undetected wallet\n if (!existingStandardWallet) {\n this._standard_not_detected_wallets.push(supportedWallet);\n this.emit(\"standardNotDetectedWalletAdded\", supportedWallet);\n }\n });\n }\n\n /**\n * A function that excludes an AIP-62 compatible wallet the dapp doesnt want to include\n *\n * @param walletName\n * @returns\n */\n excludeWallet(wallet: AptosStandardWallet): boolean {\n // If _optInWallets is not empty, and does not include the provided wallet,\n // return true to exclude the wallet, otherwise return false\n if (\n this._optInWallets.length > 0 &&\n !this._optInWallets.includes(wallet.name as AvailableWallets)\n ) {\n return true;\n }\n return false;\n }\n\n private recordEvent(eventName: string, additionalInfo?: object): void {\n this.ga4?.gtag(\"event\", `wallet_adapter_${eventName}`, {\n wallet: this._wallet?.name,\n network: this._network?.name,\n network_url: this._network?.url,\n adapter_core_version: WALLET_ADAPTER_CORE_VERSION,\n send_to: process.env.GAID,\n ...additionalInfo,\n });\n }\n\n /**\n * Helper function to ensure wallet exists\n *\n * @param wallet A wallet\n */\n private ensureWalletExists(\n wallet: AdapterWallet | null\n ): asserts wallet is AdapterWallet {\n if (!wallet) {\n throw new WalletNotConnectedError().name;\n }\n if (!(wallet.readyState === WalletReadyState.Installed))\n throw new WalletNotReadyError(\"Wallet is not set\").name;\n }\n\n /**\n * Helper function to ensure account exists\n *\n * @param account An account\n */\n private ensureAccountExists(\n account: AccountInfo | null\n ): asserts account is AccountInfo {\n if (!account) {\n throw new WalletAccountError(\"Account is not set\").name;\n }\n }\n\n /**\n * Queries and sets ANS name for the current connected wallet account\n */\n private async setAnsName(): Promise {\n if (this._network?.chainId && this._account) {\n if (this._account.ansName) return;\n // ANS supports only MAINNET or TESTNET\n if (\n !ChainIdToAnsSupportedNetworkMap[this._network.chainId] ||\n !isAptosNetwork(this._network)\n ) {\n this._account.ansName = undefined;\n return;\n }\n\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new Aptos(aptosConfig);\n const name = await aptos.ans.getPrimaryName({\n address: this._account.address.toString(),\n });\n\n this._account.ansName = name;\n }\n }\n\n /**\n * Function to cleat wallet adapter data.\n *\n * - Removes current connected wallet state\n * - Removes current connected account state\n * - Removes current connected network state\n * - Removes autoconnect local storage value\n */\n private clearData(): void {\n this._connected = false;\n this.setWallet(null);\n this.setAccount(null);\n this.setNetwork(null);\n removeLocalStorage();\n }\n\n /**\n * Sets the connected wallet\n *\n * @param wallet A wallet\n */\n setWallet(wallet: AptosWallet | null): void {\n this._wallet = wallet;\n }\n\n /**\n * Sets the connected account\n *\n * @param account An account\n */\n setAccount(account: AccountInfo | null): void {\n this._account = account;\n }\n\n /**\n * Sets the connected network\n *\n * @param network A network\n */\n setNetwork(network: NetworkInfo | null): void {\n this._network = network;\n }\n\n /**\n * Helper function to detect whether a wallet is connected\n *\n * @returns boolean\n */\n isConnected(): boolean {\n return this._connected;\n }\n\n /**\n * Getter to fetch all detected wallets\n */\n get wallets(): ReadonlyArray {\n return this._standard_wallets;\n }\n\n get notDetectedWallets(): ReadonlyArray {\n return this._standard_not_detected_wallets;\n }\n\n /**\n * Getter for the current connected wallet\n *\n * @return wallet info\n * @throws WalletNotSelectedError\n */\n get wallet(): AptosWallet | null {\n try {\n if (!this._wallet) return null;\n return this._wallet;\n } catch (error: any) {\n throw new WalletNotSelectedError(error).message;\n }\n }\n\n /**\n * Getter for the current connected account\n *\n * @return account info\n * @throws WalletAccountError\n */\n get account(): AccountInfo | null {\n try {\n return this._account;\n } catch (error: any) {\n throw new WalletAccountError(error).message;\n }\n }\n\n /**\n * Getter for the current wallet network\n *\n * @return network info\n * @throws WalletGetNetworkError\n */\n get network(): NetworkInfo | null {\n try {\n return this._network;\n } catch (error: any) {\n throw new WalletGetNetworkError(error).message;\n }\n }\n\n /**\n * Helper function to run some checks before we connect with a wallet.\n *\n * @param walletName. The wallet name we want to connect with.\n */\n async connect(walletName: string): Promise {\n // Checks the wallet exists in the detected wallets array\n const allDetectedWallets = this._standard_wallets;\n\n const selectedWallet = allDetectedWallets.find(\n (wallet: AdapterWallet) => wallet.name === walletName\n );\n\n if (!selectedWallet) return;\n\n // Check if wallet is already connected\n if (this._connected) {\n // if the selected wallet is already connected, we don't need to connect again\n if (this._wallet?.name === walletName)\n throw new WalletConnectionError(\n `${walletName} wallet is already connected`\n ).message;\n }\n\n // Check if we are in a redirectable view (i.e on mobile AND not in an in-app browser)\n // Ignore if wallet is installed (iOS extension)\n if (\n isRedirectable() &&\n selectedWallet.readyState !== WalletReadyState.Installed\n ) {\n // use wallet deep link\n if (selectedWallet.features[\"aptos:openInMobileApp\"]?.openInMobileApp) {\n selectedWallet.features[\"aptos:openInMobileApp\"]?.openInMobileApp();\n return;\n }\n\n return;\n }\n\n // Check wallet state is Installed\n if (selectedWallet.readyState !== WalletReadyState.Installed) {\n return;\n }\n\n // Now we can connect to the wallet\n await this.connectWallet(selectedWallet);\n }\n\n /**\n * Connects a wallet to the dapp.\n * On connect success, we set the current account and the network, and keeping the selected wallet\n * name in LocalStorage to support autoConnect function.\n *\n * @param selectedWallet. The wallet we want to connect.\n * @emit emits \"connect\" event\n * @throws WalletConnectionError\n */\n async connectWallet(selectedWallet: AdapterWallet): Promise {\n try {\n this._connecting = true;\n this.setWallet(selectedWallet);\n const response = await selectedWallet.features[\"aptos:connect\"].connect();\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n const account = response.args;\n this.setAccount(account);\n const network = await selectedWallet.features[\"aptos:network\"]?.network();\n this.setNetwork(network);\n await this.setAnsName();\n setLocalStorage(selectedWallet.name);\n this._connected = true;\n this.recordEvent(\"wallet_connect\");\n this.emit(\"connect\", account);\n } catch (error: any) {\n this.clearData();\n const errMsg = generalizedErrorMessage(error);\n throw new WalletConnectionError(errMsg).message;\n } finally {\n this._connecting = false;\n }\n }\n\n /**\n * Disconnect the current connected wallet. On success, we clear the\n * current account, current network and LocalStorage data.\n *\n * @emit emits \"disconnect\" event\n * @throws WalletDisconnectionError\n */\n async disconnect(): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:disconnect\"].disconnect();\n this.clearData();\n this.recordEvent(\"wallet_disconnect\");\n this.emit(\"disconnect\");\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletDisconnectionError(errMsg).message;\n }\n }\n\n /**\n * Signs and submits a transaction to chain\n *\n * @param transactionInput InputTransactionData\n * @returns PendingTransactionResponse\n */\n async signAndSubmitTransaction(\n transactionInput: InputTransactionData\n ): Promise {\n try {\n if (\"function\" in transactionInput.data) {\n if (\n transactionInput.data.function ===\n \"0x1::account::rotate_authentication_key_call\"\n ) {\n throw new WalletSignAndSubmitMessageError(\"SCAM SITE DETECTED\")\n .message;\n }\n\n if (\n transactionInput.data.function === \"0x1::code::publish_package_txn\"\n ) {\n ({\n metadataBytes: transactionInput.data.functionArguments[0],\n byteCode: transactionInput.data.functionArguments[1],\n } = handlePublishPackageTransaction(transactionInput));\n }\n }\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_and_submit_transaction\");\n\n if (this._wallet.features[\"aptos:signAndSubmitTransaction\"]) {\n // check for backward compatibility. before version 1.1.0 the standard expected\n // AnyRawTransaction input so the adapter built the transaction before sending it to the wallet\n if (\n this._wallet.features[\"aptos:signAndSubmitTransaction\"]?.version !==\n \"1.1.0\"\n ) {\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n\n const aptos = new Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options,\n });\n\n type AptosSignAndSubmitTransactionV1Method = (\n transaction: AnyRawTransaction\n ) => Promise>;\n\n const signAndSubmitTransactionMethod = this._wallet.features[\n \"aptos:signAndSubmitTransaction\"\n ]\n .signAndSubmitTransaction as unknown as AptosSignAndSubmitTransactionV1Method;\n\n const response = (await signAndSubmitTransactionMethod(\n transaction\n )) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n }\n\n const response = await this._wallet.features[\n \"aptos:signAndSubmitTransaction\"\n ].signAndSubmitTransaction({\n payload: transactionInput.data,\n gasUnitPrice: transactionInput.options?.gasUnitPrice,\n maxGasAmount: transactionInput.options?.maxGasAmount,\n });\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n\n // If wallet does not support signAndSubmitTransaction\n // the adapter will sign and submit it for the dapp.\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n\n const aptos = new Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address,\n data: transactionInput.data,\n options: transactionInput.options,\n });\n\n const signTransactionResponse = await this.signTransaction(transaction);\n const response = await this.submitTransaction({\n transaction,\n senderAuthenticator:\n \"authenticator\" in signTransactionResponse\n ? signTransactionResponse.authenticator\n : signTransactionResponse,\n });\n return { hash: response.hash };\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a transaction\n *\n * To support both existing wallet adapter V1 and V2, we support 2 input types\n *\n * @param transactionOrPayload AnyRawTransaction - V2 input | Types.TransactionPayload - V1 input\n * @param options optional. V1 input\n *\n * @returns AccountAuthenticator\n */\n async signTransaction(\n transactionOrPayload: AnyRawTransaction | InputTransactionData,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions & {\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n }\n ): Promise {\n /**\n * All standard compatible wallets should support AnyRawTransaction for signTransaction version 1.0.0\n * For standard signTransaction version 1.1.0, the standard expects a transaction input\n *\n * So, if the input is AnyRawTransaction, we can directly call the wallet's signTransaction method\n *\n *\n * If the input is InputTransactionData, we need to\n * 1. check if the wallet supports signTransaction version 1.1.0 - if so, we convert the input to the standard expected input\n * 2. if it does not support signTransaction version 1.1.0, we convert it to a rawTransaction input and call the wallet's signTransaction method\n */\n\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_transaction\");\n\n // dapp sends a generated transaction (i.e AnyRawTransaction), which is supported by the wallet at signMessage version 1.0.0\n if (\"rawTransaction\" in transactionOrPayload) {\n const response = (await this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction(\n transactionOrPayload,\n asFeePayer\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } // dapp sends a transaction data input (i.e InputTransactionData), which is supported by the wallet at signMessage version 1.1.0\n else if (\n this._wallet.features[\"aptos:signTransaction\"]?.version === \"1.1\"\n ) {\n // convert input to standard expected input\n const signTransactionV1_1StandardInput: AptosSignTransactionInputV1_1 =\n {\n payload: transactionOrPayload.data,\n expirationTimestamp: options?.expirationTimestamp,\n expirationSecondsFromNow: options?.expirationSecondsFromNow,\n gasUnitPrice: options?.gasUnitPrice,\n maxGasAmount: options?.maxGasAmount,\n sequenceNumber: options?.accountSequenceNumber,\n sender: transactionOrPayload.sender\n ? { address: AccountAddress.from(transactionOrPayload.sender) }\n : undefined,\n };\n\n const walletSignTransactionMethod = this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction as AptosSignTransactionMethod &\n AptosSignTransactionMethodV1_1;\n\n const response = (await walletSignTransactionMethod(\n signTransactionV1_1StandardInput\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } else {\n // dapp input is InputTransactionData but the wallet does not support it, so we convert it to a rawTransaction\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const payload = await generateTransactionPayload({\n ...(transactionOrPayload.data as InputEntryFunctionData),\n aptosConfig,\n });\n const rawTransaction = await generateRawTransaction({\n aptosConfig,\n payload,\n sender: this._account.address,\n options: options,\n });\n const response = (await this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction(\n new SimpleTransaction(rawTransaction),\n asFeePayer\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignTransactionError(errMsg).message;\n }\n }\n\n /**\n * Sign message (doesnt submit to chain).\n *\n * @param message\n * @return response from the wallet's signMessage function\n * @throws WalletSignMessageError\n */\n async signMessage(\n message: AptosSignMessageInput\n ): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"sign_message\");\n\n const response =\n await this._wallet?.features[\"aptos:signMessage\"]?.signMessage(message);\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageError(errMsg).message;\n }\n }\n\n /**\n * Submits transaction to chain\n *\n * @param transaction\n * @returns PendingTransactionResponse\n */\n async submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise {\n // The standard does not support submitTransaction, so we use the adapter to submit the transaction\n try {\n this.ensureWalletExists(this._wallet);\n\n const { additionalSignersAuthenticators } = transaction;\n const transactionType =\n additionalSignersAuthenticators !== undefined\n ? \"multi-agent\"\n : \"simple\";\n this.recordEvent(\"submit_transaction\", {\n transaction_type: transactionType,\n });\n\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new Aptos(aptosConfig);\n if (additionalSignersAuthenticators !== undefined) {\n const multiAgentTxn = {\n ...transaction,\n additionalSignersAuthenticators,\n };\n return aptos.transaction.submit.multiAgent(multiAgentTxn);\n } else {\n return aptos.transaction.submit.simple(transaction);\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSubmitTransactionError(errMsg).message;\n }\n }\n\n /**\n Event for when account has changed on the wallet\n @return the new account info\n @throws WalletAccountChangeError\n */\n async onAccountChange(): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onAccountChange\"]?.onAccountChange(\n async (data: AccountInfo) => {\n this.setAccount(data);\n await this.setAnsName();\n this.recordEvent(\"account_change\");\n this.emit(\"accountChange\", this._account);\n }\n );\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletAccountChangeError(errMsg).message;\n }\n }\n\n /**\n Event for when network has changed on the wallet\n @return the new network info\n @throws WalletNetworkChangeError\n */\n async onNetworkChange(): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onNetworkChange\"]?.onNetworkChange(\n async (data: NetworkInfo) => {\n this.setNetwork(data);\n await this.setAnsName();\n this.emit(\"networkChange\", this._network);\n }\n );\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletNetworkChangeError(errMsg).message;\n }\n }\n\n /**\n * Sends a change network request to the wallet to change the connected network\n *\n * @param network\n * @returns AptosChangeNetworkOutput\n */\n async changeNetwork(network: Network): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"change_network_request\", {\n from: this._network?.name,\n to: network,\n });\n const chainId =\n network === Network.DEVNET\n ? await fetchDevnetChainId()\n : NetworkToChainId[network];\n\n const networkInfo: NetworkInfo = {\n name: network,\n chainId,\n };\n\n if (this._wallet.features[\"aptos:changeNetwork\"]) {\n const response =\n await this._wallet.features[\"aptos:changeNetwork\"].changeNetwork(\n networkInfo\n );\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n\n throw new WalletChangeNetworkError(\n `${this._wallet.name} does not support changing network request`\n ).message;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletChangeNetworkError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message SignMessagePayload\n * @returns boolean\n */\n async signMessageAndVerify(message: AptosSignMessageInput): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_message_and_verify\");\n\n try {\n // sign the message\n const response = (await this._wallet.features[\n \"aptos:signMessage\"\n ].signMessage(message)) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"Failed to sign a message\").message;\n }\n\n // For Keyless wallet accounts we skip verification for now.\n // TODO: Remove when client-side verification is done in SDK.\n if (\n this._account.publicKey instanceof AnyPublicKey &&\n this._account.publicKey.variant === AnyPublicKeyVariant.Keyless\n ) {\n return true;\n }\n\n let verified = false;\n // if is a multi sig wallet with a MultiEd25519Signature type\n if (response.args.signature instanceof MultiEd25519Signature) {\n if (!(this._account.publicKey instanceof MultiEd25519PublicKey)) {\n throw new WalletSignMessageAndVerifyError(\n \"Public key and Signature type mismatch\"\n ).message;\n }\n const { fullMessage, signature } = response.args;\n const bitmap = signature.bitmap;\n if (bitmap) {\n const minKeysRequired = this._account.publicKey.threshold;\n if (signature.signatures.length < minKeysRequired) {\n verified = false;\n } else {\n verified = this._account.publicKey.verifySignature({\n message: new TextEncoder().encode(fullMessage),\n signature,\n });\n }\n }\n } else {\n verified = this._account.publicKey.verifySignature({\n message: new TextEncoder().encode(response.args.fullMessage),\n signature: response.args.signature,\n });\n }\n return verified;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n","export class GA4 {\n readonly aptosGAID: string | undefined = process.env.GAID;\n\n constructor() {\n // Inject Aptos Google Analytics 4 script\n this.injectGA(this.aptosGAID);\n }\n\n gtag(a: string, b: string | object, c?: object) {\n let dataLayer = (window as any).dataLayer || [];\n dataLayer.push(arguments);\n }\n\n private injectGA(gaID?: string) {\n if (typeof window === \"undefined\") return;\n if (!gaID) return;\n\n const head = document.getElementsByTagName(\"head\")[0];\n\n var myScript = document.createElement(\"script\");\n\n myScript.setAttribute(\n \"src\",\n `https://www.googletagmanager.com/gtag/js?id=${gaID}`\n );\n\n const that = this;\n myScript.onload = function () {\n that.gtag(\"js\", new Date());\n that.gtag(\"config\", `${gaID}`, {\n send_page_view: false,\n });\n };\n\n head.insertBefore(myScript, head.children[1]);\n }\n}\n","export enum WalletReadyState {\n /**\n * User-installable wallets can typically be detected by scanning for an API\n * that they've injected into the global context. If such an API is present,\n * we consider the wallet to have been installed.\n */\n Installed = \"Installed\",\n NotDetected = \"NotDetected\",\n /**\n * Loadable wallets are always available to you. Since you can load them at\n * any time, it's meaningless to say that they have been detected.\n */\n Loadable = \"Loadable\",\n /**\n * If a wallet is not supported on a given platform (eg. server-rendering, or\n * mobile) then it will stay in the `Unsupported` state.\n */\n Unsupported = \"Unsupported\",\n}\n\nexport enum NetworkName {\n Mainnet = \"mainnet\",\n Testnet = \"testnet\",\n Devnet = \"devnet\",\n}\n\nexport const ChainIdToAnsSupportedNetworkMap: Record = {\n \"1\": \"mainnet\", // mainnet\n \"2\": \"testnet\", // testnet\n};\n\n/** The base URL for all Aptos Connect wallets. */\nexport const APTOS_CONNECT_BASE_URL = \"https://aptosconnect.app\";\n\n/** The URL to the Aptos Connect account page if the user is signed in to Aptos Connect. */\nexport const APTOS_CONNECT_ACCOUNT_URL =\n \"https://aptosconnect.app/dashboard/main-account\";\n","import {\n AptosConnectAppleWallet,\n AptosConnectGoogleWallet,\n} from \"@aptos-connect/wallet-adapter-plugin\";\nimport { Network } from \"@aptos-labs/ts-sdk\";\nimport { DevTWallet, TWallet } from \"@atomrigslab/aptos-wallet-adapter\";\nimport { MizuWallet } from \"@mizuwallet-sdk/aptos-wallet-adapter\";\nimport { DappConfig } from \"../WalletCoreNew\";\nimport { AptosStandardWallet } from \"./WalletStandard\";\n\nexport function getSDKWallets(dappConfig?: DappConfig) {\n const sdkWallets: AptosStandardWallet[] = [];\n\n // Need to check window is defined for AptosConnect\n if (typeof window !== \"undefined\") {\n sdkWallets.push(\n new AptosConnectGoogleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect,\n }),\n new AptosConnectAppleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect,\n })\n );\n\n if (\n dappConfig?.mizuwallet &&\n dappConfig?.network &&\n [Network.MAINNET, Network.TESTNET].includes(dappConfig.network)\n ) {\n sdkWallets.push(\n new MizuWallet({\n network: dappConfig.network as any,\n manifestURL: dappConfig.mizuwallet.manifestURL,\n appId: dappConfig.mizuwallet.appId,\n }) as any\n );\n }\n }\n\n // Push production wallet if env is production, otherwise use dev wallet\n if (dappConfig?.network === Network.MAINNET) {\n // TODO twallet uses @aptos-labs/wallet-standard at version 0.0.11 while adapter uses\n // a newer version (0.1.0) - this causes type mismatch. We should figure out how to handle it.\n sdkWallets.push(new TWallet() as any);\n } else {\n sdkWallets.push(new DevTWallet() as any);\n }\n\n // Add new SDK wallet plugins (ones that should be installed as packages) here:\n // Ex. sdkWallets.push(new YourSDKWallet(dappConfig))\n\n return sdkWallets;\n}\n","import {\n Aptos,\n AptosConfig,\n EntryFunctionArgumentTypes,\n Hex,\n Network,\n NetworkToNodeAPI,\n Serializable,\n SimpleEntryFunctionArgumentTypes,\n} from \"@aptos-labs/ts-sdk\";\nimport { NetworkInfo as StandardNetworkInfo } from \"@aptos-labs/wallet-standard\";\nimport { convertNetwork } from \"../LegacyWalletPlugins/conversion\";\nimport {\n InputTransactionData,\n NetworkInfo,\n} from \"../LegacyWalletPlugins/types\";\nimport { DappConfig } from \"../WalletCoreNew\";\nimport { WalletSignAndSubmitMessageError } from \"../error\";\n\nexport function isMobile(): boolean {\n return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(\n navigator.userAgent\n );\n}\n\nexport function isInAppBrowser(): boolean {\n const isIphone = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(\n navigator.userAgent\n );\n\n const isAndroid = /(Android).*Version\\/[\\d.]+.*Chrome\\/[^\\s]+ Mobile/i.test(\n navigator.userAgent\n );\n\n return isIphone || isAndroid;\n}\n\nexport function isRedirectable(): boolean {\n // SSR: return false\n if (typeof navigator === \"undefined\" || !navigator) return false;\n\n // if we are on mobile and NOT in a in-app browser we will redirect to a wallet app\n\n return isMobile() && !isInAppBrowser();\n}\n\nexport function generalizedErrorMessage(error: any): string {\n return typeof error === \"object\" && \"message\" in error\n ? error.message\n : error;\n}\n\n// Helper function to check if input arguments are BCS serialized arguments.\n// In @aptos-labs/ts-sdk each move representative class extends\n// Serializable, so if each argument is of an instance of a class\n// the extends Serializable - we know these are BCS arguments\nexport const areBCSArguments = (\n args: Array\n): boolean => {\n // `every` returns true if the array is empty, so\n // first check the array length\n if (args.length === 0) return false;\n return args.every(\n (arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes) =>\n arg instanceof Serializable\n );\n};\n\n/**\n * Helper function to get AptosConfig that supports Aptos and Custom networks\n *\n * @param networkInfo\n * @param dappConfig\n * @returns AptosConfig\n */\nexport const getAptosConfig = (\n networkInfo: NetworkInfo | StandardNetworkInfo | null,\n dappConfig: DappConfig | undefined\n): AptosConfig => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n const currentNetwork = convertNetwork(networkInfo);\n\n if (isAptosLiveNetwork(currentNetwork)) {\n const apiKey = dappConfig?.aptosApiKeys;\n return new AptosConfig({\n network: currentNetwork,\n clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : undefined },\n });\n }\n\n if (isAptosNetwork(networkInfo)) {\n return new AptosConfig({\n network: currentNetwork,\n });\n }\n return new AptosConfig({\n network: Network.CUSTOM,\n fullnode: networkInfo.url,\n });\n};\n\n/**\n * Helper function to resolve if the current connected network is an Aptos network\n *\n * @param networkInfo\n * @returns boolean\n */\nexport const isAptosNetwork = (\n networkInfo: NetworkInfo | StandardNetworkInfo | null\n): boolean => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n return NetworkToNodeAPI[networkInfo.name] !== undefined;\n};\n\nexport const isAptosLiveNetwork = (networkInfo: Network): boolean => {\n return (\n networkInfo === \"devnet\" ||\n networkInfo === \"testnet\" ||\n networkInfo === \"mainnet\"\n );\n};\n\n/**\n * Helper function to fetch Devnet chain id\n */\nexport const fetchDevnetChainId = async (): Promise => {\n const aptos = new Aptos(); // default to devnet\n return await aptos.getChainId();\n};\n\n/**\n * A helper function to handle the publish package transaction.\n * The Aptos SDK expects the metadataBytes and byteCode to be Uint8Array, but in case the arguments are passed in\n * as a string, this function converts the string to Uint8Array.\n */\nexport const handlePublishPackageTransaction = (\n transactionInput: InputTransactionData\n) => {\n // convert the first argument, metadataBytes, to uint8array if is a string\n let metadataBytes = transactionInput.data.functionArguments[0];\n if (typeof metadataBytes === \"string\") {\n metadataBytes = Hex.fromHexInput(metadataBytes).toUint8Array();\n }\n\n // convert the second argument, byteCode, to uint8array if is a string\n let byteCode = transactionInput.data.functionArguments[1];\n if (Array.isArray(byteCode)) {\n byteCode = byteCode.map((byte) => {\n if (typeof byte === \"string\") {\n return Hex.fromHexInput(byte).toUint8Array();\n }\n return byte;\n });\n } else {\n throw new WalletSignAndSubmitMessageError(\n \"The bytecode argument must be an array.\"\n ).message;\n }\n\n return { metadataBytes, byteCode };\n};\n","import {\n Network,\n TransactionPayload,\n InputGenerateTransactionPayloadData,\n TypeTag,\n AptosConfig,\n InputEntryFunctionData,\n InputMultiSigData,\n MoveFunctionId,\n generateTransactionPayload,\n TransactionPayloadEntryFunction,\n} from \"@aptos-labs/ts-sdk\";\nimport { NetworkInfo as StandardNetworkInfo } from \"@aptos-labs/wallet-standard\";\nimport { BCS, TxnBuilderTypes, Types } from \"aptos\";\nimport { NetworkInfo } from \"./types\";\n\n// old => new\nexport function convertNetwork(\n networkInfo: NetworkInfo | StandardNetworkInfo | null\n): Network {\n switch (networkInfo?.name) {\n case \"mainnet\" as Network:\n return Network.MAINNET;\n case \"testnet\" as Network:\n return Network.TESTNET;\n case \"devnet\" as Network:\n return Network.DEVNET;\n case \"local\" as Network:\n return Network.LOCAL;\n default:\n throw new Error(\"Invalid Aptos network name\");\n }\n}\n\n// new => old\nexport function convertV2TransactionPayloadToV1BCSPayload(\n payload: TransactionPayload\n): TxnBuilderTypes.TransactionPayload {\n const deserializer = new BCS.Deserializer(payload.bcsToBytes());\n return TxnBuilderTypes.TransactionPayload.deserialize(deserializer);\n}\n\nexport function convertV2PayloadToV1JSONPayload(\n payload: InputGenerateTransactionPayloadData\n): Types.TransactionPayload {\n if (\"bytecode\" in payload) {\n // is a script payload\n throw new Error(\"script payload not supported\");\n // is multisig function payload\n } else if (\"multisigAddress\" in payload) {\n const stringTypeTags: string[] | undefined = payload.typeArguments?.map(\n (typeTag) => {\n if (typeTag instanceof TypeTag) {\n return typeTag.toString();\n }\n return typeTag;\n }\n );\n const newPayload: Types.TransactionPayload = {\n type: \"multisig_payload\",\n multisig_address: payload.multisigAddress.toString(),\n function: payload.function,\n type_arguments: stringTypeTags || [],\n arguments: payload.functionArguments,\n };\n\n return newPayload;\n } else {\n // is entry function payload\n const stringTypeTags: string[] | undefined = payload.typeArguments?.map(\n (typeTag) => {\n if (typeTag instanceof TypeTag) {\n return typeTag.toString();\n }\n return typeTag;\n }\n );\n const newPayload: Types.TransactionPayload = {\n type: \"entry_function_payload\",\n function: payload.function,\n type_arguments: stringTypeTags || [],\n arguments: payload.functionArguments,\n };\n\n return newPayload;\n }\n}\n\nexport function convertPayloadInputV1ToV2(\n inputV1: Types.TransactionPayload\n) {\n if (\"function\" in inputV1) {\n const inputV2: InputEntryFunctionData | InputMultiSigData = {\n function: inputV1.function as MoveFunctionId,\n functionArguments: inputV1.arguments,\n typeArguments: inputV1.type_arguments,\n };\n return inputV2;\n }\n\n throw new Error(\"Payload type not supported\");\n}\n\nexport async function generateTransactionPayloadFromV1Input(\n aptosConfig: AptosConfig,\n inputV1: Types.TransactionPayload\n): Promise {\n if (\"function\" in inputV1) {\n const inputV2 = convertPayloadInputV1ToV2(inputV1);\n return generateTransactionPayload({ ...inputV2, aptosConfig });\n }\n\n throw new Error(\"Payload type not supported\");\n}\n\nexport interface CompatibleTransactionOptions {\n expireTimestamp?: number;\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n gasUnitPrice?: number;\n gas_unit_price?: number;\n maxGasAmount?: number;\n max_gas_amount?: number;\n sender?: string;\n sequenceNumber?: number;\n}\n","export class WalletError extends Error {\n public error: any;\n\n constructor(message?: string, error?: any) {\n super(message);\n this.error = error;\n }\n}\n\nexport class WalletNotSelectedError extends WalletError {\n name = \"WalletNotSelectedError\";\n}\n\nexport class WalletNotReadyError extends WalletError {\n name = \"WalletNotReadyError\";\n}\n\nexport class WalletLoadError extends WalletError {\n name = \"WalletLoadError\";\n}\n\nexport class WalletConfigError extends WalletError {\n name = \"WalletConfigError\";\n}\n\nexport class WalletConnectionError extends WalletError {\n name = \"WalletConnectionError\";\n}\n\nexport class WalletDisconnectedError extends WalletError {\n name = \"WalletDisconnectedError\";\n}\n\nexport class WalletDisconnectionError extends WalletError {\n name = \"WalletDisconnectionError\";\n}\n\nexport class WalletAccountError extends WalletError {\n name = \"WalletAccountError\";\n}\nexport class WalletGetNetworkError extends WalletError {\n name = \"WalletGetNetworkError\";\n}\n\nexport class WalletAccountChangeError extends WalletError {\n name = \"WalletAccountChangeError\";\n}\n\nexport class WalletNetworkChangeError extends WalletError {\n name = \"WalletNetworkChangeError\";\n}\n\nexport class WalletPublicKeyError extends WalletError {\n name = \"WalletPublicKeyError\";\n}\n\nexport class WalletKeypairError extends WalletError {\n name = \"WalletKeypairError\";\n}\n\nexport class WalletNotConnectedError extends WalletError {\n name = \"WalletNotConnectedError\";\n}\n\nexport class WalletSendTransactionError extends WalletError {\n name = \"WalletSendTransactionError\";\n}\n\nexport class WalletSignMessageError extends WalletError {\n name = \"WalletSignMessageError\";\n}\n\nexport class WalletSubmitTransactionError extends WalletError {\n name = \"WalletSubmitTransactionError\";\n}\n\nexport class WalletSignMessageAndVerifyError extends WalletError {\n name = \"WalletSignMessageAndVerifyError\";\n}\n\nexport class WalletSignAndSubmitMessageError extends WalletError {\n name = \"WalletSignAndSubmitMessageError\";\n}\n\nexport class WalletSignTransactionError extends WalletError {\n name = \"WalletSignTransactionError\";\n}\n\nexport class WalletTimeoutError extends WalletError {\n name = \"WalletTimeoutError\";\n}\n\nexport class WalletWindowBlockedError extends WalletError {\n name = \"WalletWindowBlockedError\";\n}\n\nexport class WalletWindowClosedError extends WalletError {\n name = \"WalletWindowClosedError\";\n}\n\nexport class WalletResponseError extends WalletError {\n name = \"WalletResponseError\";\n}\n\nexport class WalletNotSupportedMethod extends WalletError {\n name = \"WalletNotSupportedMethod\";\n}\n\nexport class WalletChangeNetworkError extends WalletError {\n name = \"WalletChangeNetworkError\";\n}\n","const LOCAL_STORAGE_ITEM_KEY = \"AptosWalletName\";\n\nexport function setLocalStorage(walletName: string) {\n localStorage.setItem(LOCAL_STORAGE_ITEM_KEY, walletName);\n}\n\nexport function removeLocalStorage() {\n localStorage.removeItem(LOCAL_STORAGE_ITEM_KEY);\n}\n\nexport function getLocalStorage() {\n localStorage.getItem(LOCAL_STORAGE_ITEM_KEY);\n}\n","import { AptosStandardWallet } from \"../AIP62StandardWallets\";\nimport { WalletInfo } from \"../LegacyWalletPlugins\";\nimport { AdapterNotDetectedWallet, AdapterWallet } from \"../WalletCoreNew\";\nimport { APTOS_CONNECT_BASE_URL, WalletReadyState } from \"../constants\";\nimport { isRedirectable } from \"./helpers\";\n\n/**\n * A function that will partition the provided wallets into two list — `defaultWallets` and `moreWallets`.\n * By default, the wallets will be partitioned by whether or not they are installed or loadable.\n * You can pass your own partition function if you wish to customize this behavior.\n */\nexport function partitionWallets(\n wallets: ReadonlyArray,\n partitionFunction: (\n wallet: AdapterWallet | AdapterNotDetectedWallet\n ) => boolean = isInstalled\n) {\n const defaultWallets: Array = [];\n const moreWallets: Array = [];\n\n for (const wallet of wallets) {\n if (partitionFunction(wallet)) defaultWallets.push(wallet as AdapterWallet);\n else moreWallets.push(wallet as AdapterNotDetectedWallet);\n }\n\n return { defaultWallets, moreWallets };\n}\n\n/** Returns true if the wallet is installed. */\nexport function isInstalled(wallet: AdapterWallet | AdapterNotDetectedWallet) {\n return wallet.readyState === WalletReadyState.Installed;\n}\n\n/**\n * Returns true if the user is on desktop and the provided wallet requires installation of a browser extension.\n * This can be used to decide whether to show a \"Connect\" button or \"Install\" link in the UI.\n */\nexport function isInstallRequired(\n wallet: AdapterWallet | AdapterNotDetectedWallet\n) {\n const isWalletReady = isInstalled(wallet);\n const isMobile = !isWalletReady && isRedirectable();\n\n return !isMobile && !isWalletReady;\n}\n\n/** Truncates the provided wallet address at the middle with an ellipsis. */\nexport function truncateAddress(address: string | undefined) {\n if (!address) return;\n return `${address.slice(0, 6)}...${address.slice(-5)}`;\n}\n\n/** Returns `true` if the provided wallet is an Aptos Connect wallet. */\nexport function isAptosConnectWallet(\n wallet:\n | WalletInfo\n | AdapterWallet\n | AptosStandardWallet\n | AdapterNotDetectedWallet\n) {\n if (!wallet.url) return false;\n return wallet.url.startsWith(APTOS_CONNECT_BASE_URL);\n}\n\n/**\n * Partitions the `wallets` array so that Aptos Connect wallets are grouped separately from the rest.\n * Aptos Connect is a web wallet that uses social login to create accounts on the blockchain.\n */\nexport function getAptosConnectWallets(\n wallets: ReadonlyArray\n) {\n const { defaultWallets, moreWallets } = partitionWallets(\n wallets,\n isAptosConnectWallet\n );\n return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets };\n}\n\nexport interface WalletSortingOptions {\n /** An optional function for sorting Aptos Connect wallets. */\n sortAptosConnectWallets?: (a: AdapterWallet, b: AdapterWallet) => number;\n /** An optional function for sorting wallets that are currently installed or loadable. */\n sortAvailableWallets?: (a: AdapterWallet, b: AdapterWallet) => number;\n /** An optional function for sorting wallets that are NOT currently installed or loadable. */\n sortInstallableWallets?: (\n a: AdapterNotDetectedWallet,\n b: AdapterNotDetectedWallet\n ) => number;\n}\n\n/**\n * Partitions the `wallets` array into three distinct groups:\n *\n * `aptosConnectWallets` - Wallets that use social login to create accounts on\n * the blockchain via Aptos Connect.\n *\n * `availableWallets` - Wallets that are currently installed or loadable by the client.\n *\n * `installableWallets` - Wallets that are NOT current installed or loadable and\n * require the client to install a browser extension first.\n *\n * Additionally, these wallet groups can be sorted by passing sort functions via the `options` argument.\n */\nexport function groupAndSortWallets(\n wallets: ReadonlyArray,\n options?: WalletSortingOptions\n) {\n const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets);\n const { defaultWallets, moreWallets } = partitionWallets(otherWallets);\n\n if (options?.sortAptosConnectWallets) {\n aptosConnectWallets.sort(options.sortAptosConnectWallets);\n }\n if (options?.sortAvailableWallets) {\n defaultWallets.sort(options.sortAvailableWallets);\n }\n if (options?.sortInstallableWallets) {\n moreWallets.sort(options.sortInstallableWallets);\n }\n\n return {\n /** Wallets that use social login to create an account on the blockchain */\n aptosConnectWallets,\n /** Wallets that are currently installed or loadable. */\n availableWallets: defaultWallets,\n /** Wallets that are NOT currently installed or loadable. */\n installableWallets: moreWallets,\n };\n}\n","import { WalletName } from \"../LegacyWalletPlugins/types\";\nimport { AdapterNotDetectedWallet } from \"../WalletCoreNew\";\nimport { WalletReadyState } from \"../constants\";\n\n/**\n * Registry of AIP-62 wallet standard supported wallets.\n * This list is used to show supported wallets even if they are not installed on the user machine.\n *\n * AIP-62 compatible wallets are required to add their wallet info here if they want to be detected by the adapter\n *\n * name - The name of your wallet cast to WalletName (Ex. \"Petra\" as WalletName<\"Petra\">)\n * url - TThe link to your chrome extension or main website where new users can create an account with your wallet.\n * icon - An icon for your wallet. Can be one of 4 data types. Be sure to follow the below format exactly (including the literal \",\" after base64).\n * Format: `data:image/${\"svg+xml\" | \"webp\" | \"png\" | \"gif\"};base64,${string}`\n * Note: ${...} data in the above format should be replaced. Other characters are literals (ex. \";\")\n */\nexport const aptosStandardSupportedWalletList: Array =\n [\n {\n name: \"Nightly\" as WalletName<\"Nightly\">,\n url: \"https://chromewebstore.google.com/detail/nightly/fiikommddbeccaoicoejoniammnalkfa?hl=en\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: WalletReadyState.NotDetected,\n },\n {\n name: \"Petra\" as WalletName<\"Petra\">,\n url: \"https://chromewebstore.google.com/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci?hl=en\",\n icon: \"data:image/png;base64,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\",\n readyState: WalletReadyState.NotDetected,\n },\n {\n name: \"Pontem Wallet\" as WalletName<\"Pontem Wallet\">,\n url: \"https://pontem.network/pontem-wallet\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K\",\n readyState: WalletReadyState.NotDetected,\n },\n ];\n","import { HexString, TxnBuilderTypes, Types } from \"aptos\";\nimport EventEmitter from \"eventemitter3\";\nimport { Buffer } from \"buffer\";\nimport {\n InputEntryFunctionDataWithRemoteABI,\n InputGenerateTransactionPayloadData,\n generateTransactionPayload,\n} from \"@aptos-labs/ts-sdk\";\nimport nacl from \"tweetnacl\";\nimport {\n WalletNotSupportedMethod,\n WalletSignAndSubmitMessageError,\n WalletSignMessageAndVerifyError,\n WalletSignTransactionError,\n} from \"../error\";\nimport {\n Wallet,\n WalletCoreEvents,\n TransactionOptions,\n NetworkInfo,\n InputTransactionData,\n AccountInfo,\n SignMessagePayload,\n SignMessageResponse,\n} from \"./types\";\n\nimport {\n convertV2PayloadToV1JSONPayload,\n convertV2TransactionPayloadToV1BCSPayload,\n} from \"./conversion\";\nimport {\n areBCSArguments,\n generalizedErrorMessage,\n getAptosConfig,\n} from \"../utils\";\nimport { DappConfig } from \"../WalletCoreNew\";\n\nexport class WalletCoreV1 extends EventEmitter {\n async connect(wallet: Wallet) {\n const account = await wallet.connect();\n return account;\n }\n\n /**\n * Resolve the transaction type (BCS arguments or Simple arguments)\n *\n * @param payloadData\n * @param network\n * @param wallet\n * @param transactionInput\n *\n * @returns\n */\n async resolveSignAndSubmitTransaction(\n payloadData: InputGenerateTransactionPayloadData,\n network: NetworkInfo | null,\n wallet: Wallet,\n transactionInput: InputTransactionData,\n dappConfig?: DappConfig\n ) {\n // first check if each argument is a BCS serialized argument\n if (areBCSArguments(payloadData.functionArguments)) {\n const aptosConfig = getAptosConfig(network, dappConfig);\n const newPayload = await generateTransactionPayload({\n ...(payloadData as InputEntryFunctionDataWithRemoteABI),\n aptosConfig: aptosConfig,\n });\n const oldTransactionPayload =\n convertV2TransactionPayloadToV1BCSPayload(newPayload);\n // Call and return signAndSubmitBCSTransaction response\n return await this.signAndSubmitBCSTransaction(\n oldTransactionPayload,\n wallet!,\n {\n max_gas_amount: transactionInput.options?.maxGasAmount\n ? BigInt(transactionInput.options?.maxGasAmount)\n : undefined,\n gas_unit_price: transactionInput.options?.gasUnitPrice\n ? BigInt(transactionInput.options?.gasUnitPrice)\n : undefined,\n }\n );\n }\n\n // if it is not a bcs serialized arguments transaction, convert to the old\n // json format\n const oldTransactionPayload = convertV2PayloadToV1JSONPayload(payloadData);\n return await this.signAndSubmitTransaction(oldTransactionPayload, wallet!, {\n max_gas_amount: transactionInput.options?.maxGasAmount\n ? BigInt(transactionInput.options?.maxGasAmount)\n : undefined,\n gas_unit_price: transactionInput.options?.gasUnitPrice\n ? BigInt(transactionInput.options?.gasUnitPrice)\n : undefined,\n });\n }\n\n /**\n Sign and submit an entry (not bcs serialized) transaction type to chain.\n @param transaction a non-bcs serialized transaction\n @param options max_gas_amount and gas_unit_limit\n @return response from the wallet's signAndSubmitTransaction function\n @throws WalletSignAndSubmitMessageError\n */\n async signAndSubmitTransaction(\n transaction: Types.TransactionPayload,\n wallet: Wallet,\n options?: TransactionOptions\n ): Promise {\n try {\n const response = await (wallet as any).signAndSubmitTransaction(\n transaction,\n options\n );\n return response;\n } catch (error: any) {\n const errMsg =\n typeof error == \"object\" && \"message\" in error ? error.message : error;\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n Sign and submit a bsc serialized transaction type to chain.\n @param transaction a bcs serialized transaction\n @param options max_gas_amount and gas_unit_limit\n @return response from the wallet's signAndSubmitBCSTransaction function\n @throws WalletSignAndSubmitMessageError\n */\n async signAndSubmitBCSTransaction(\n transaction: TxnBuilderTypes.TransactionPayload,\n wallet: Wallet,\n options?: TransactionOptions\n ): Promise {\n if (!(\"signAndSubmitBCSTransaction\" in wallet)) {\n throw new WalletNotSupportedMethod(\n `Submit a BCS Transaction is not supported by ${wallet.name}`\n ).message;\n }\n try {\n const response = await (wallet as any).signAndSubmitBCSTransaction(\n transaction,\n options\n );\n return response;\n } catch (error: any) {\n const errMsg =\n typeof error == \"object\" && \"message\" in error ? error.message : error;\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n Sign transaction\n @param transaction\n @param options max_gas_amount and gas_unit_limit\n @return response from the wallet's signTransaction function\n @throws WalletSignTransactionError\n */\n async signTransaction(\n transaction: Types.TransactionPayload,\n wallet: Wallet,\n options?: TransactionOptions\n ): Promise {\n try {\n const response = await (wallet as any).signTransaction(\n transaction,\n options\n );\n return response;\n } catch (error: any) {\n const errMsg =\n typeof error == \"object\" && \"message\" in error ? error.message : error;\n throw new WalletSignTransactionError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message SignMessagePayload\n * @returns boolean\n */\n async signMessageAndVerify(\n message: SignMessagePayload,\n wallet: Wallet,\n account: AccountInfo\n ): Promise {\n try {\n const response = await wallet.signMessage(message);\n if (!response)\n throw new WalletSignMessageAndVerifyError(\"Failed to sign a message\")\n .message;\n console.log(\"signMessageAndVerify signMessage response\", response);\n\n // Verify that the bytes were signed using the private key that matches the known public key\n let verified = false;\n if (Array.isArray((response as SignMessageResponse).signature)) {\n // multi sig wallets\n const { fullMessage, signature, bitmap } =\n response as SignMessageResponse;\n if (bitmap) {\n const minKeysRequired = account.minKeysRequired as number;\n if ((signature as string[]).length < minKeysRequired) {\n verified = false;\n } else {\n // Getting an array which marks the keys signing the message with 1, while marking 0 for the keys not being used.\n const bits = Array.from(bitmap).flatMap((n) =>\n Array.from({ length: 8 }).map((_, i) => (n >> i) & 1)\n );\n // Filter out indexes of the keys we need\n const index = bits.map((_, i) => i).filter((i) => bits[i]);\n\n const publicKeys = account.publicKey as string[];\n const matchedPublicKeys = publicKeys.filter(\n (_: string, i: number) => index.includes(i)\n );\n\n verified = true;\n for (let i = 0; i < (signature as string[]).length; i++) {\n const isSigVerified = nacl.sign.detached.verify(\n Buffer.from(fullMessage),\n Buffer.from((signature as string[])[i], \"hex\"),\n Buffer.from(matchedPublicKeys[i], \"hex\")\n ); // `isSigVerified` should be `true` for every signature\n\n if (!isSigVerified) {\n verified = false;\n break;\n }\n }\n }\n } else {\n throw new WalletSignMessageAndVerifyError(\"Failed to get a bitmap\")\n .message;\n }\n } else {\n // single sig wallets\n // support for when address doesnt have hex prefix (0x)\n const currentAccountPublicKey = new HexString(\n account.publicKey as string\n );\n // support for when address doesnt have hex prefix (0x)\n const signature = new HexString(\n (response as SignMessageResponse).signature as string\n );\n verified = nacl.sign.detached.verify(\n Buffer.from((response as SignMessageResponse).fullMessage),\n Buffer.from(signature.noPrefix(), \"hex\"),\n Buffer.from(currentAccountPublicKey.noPrefix(), \"hex\")\n );\n }\n return verified;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n","import { Types } from \"aptos\";\nimport {\n Network,\n InputGenerateTransactionOptions,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAddressInput,\n InputGenerateTransactionPayloadData,\n AnyRawTransaction,\n Signature,\n AccountAuthenticator,\n} from \"@aptos-labs/ts-sdk\";\nimport { WalletReadyState } from \"../constants\";\nimport {\n AptosSignAndSubmitTransactionOutput,\n AptosSignMessageOutput,\n UserResponse,\n AccountInfo as StandardAccountInfo,\n NetworkInfo as StandardNetworkInfo,\n AptosChangeNetworkMethod,\n AptosSignAndSubmitTransactionInput,\n} from \"@aptos-labs/wallet-standard\";\nimport { AptosStandardSupportedWallet } from \"../AIP62StandardWallets/types\";\n\nexport { TxnBuilderTypes, Types } from \"aptos\";\nexport type {\n InputGenerateTransactionData,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Network,\n} from \"@aptos-labs/ts-sdk\";\n\nexport type {\n NetworkInfo as StandardNetworkInfo,\n AptosChangeNetworkOutput,\n} from \"@aptos-labs/wallet-standard\";\n\n// WalletName is a nominal type that wallet adapters should use, e.g. `'MyCryptoWallet' as WalletName<'MyCryptoWallet'>`\nexport type WalletName = T & {\n __brand__: \"WalletName\";\n};\n\nexport type NetworkInfo = {\n name: Network;\n chainId?: string;\n url?: string;\n};\n\nexport type WalletInfo = {\n name: WalletName;\n icon: string;\n url: string;\n};\n\nexport type AccountInfo = {\n address: string;\n publicKey: string | string[];\n minKeysRequired?: number;\n ansName?: string | null;\n};\n\nexport interface AptosWalletErrorResult {\n code: number;\n name: string;\n message: string;\n}\n\nexport declare interface WalletCoreEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n readyStateChange(wallet: Wallet): void;\n standardWalletsAdded(wallets: Wallet | AptosStandardSupportedWallet): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport interface SignMessagePayload {\n address?: boolean; // Should we include the address of the account in the message\n application?: boolean; // Should we include the domain of the dapp\n chainId?: boolean; // Should we include the current chain id the wallet is connected to\n message: string; // The message to be signed and displayed to the user\n nonce: string; // A nonce the dapp should generate\n}\n\nexport interface SignMessageResponse {\n address?: string;\n application?: string;\n chainId?: number;\n fullMessage: string; // The message that was generated to sign\n message: string; // The message passed in by the user\n nonce: string;\n prefix: \"APTOS\"; // Should always be APTOS\n signature: string | string[] | Signature; // The signed full message\n bitmap?: Uint8Array; // a 4-byte (32 bits) bit-vector of length N\n}\n\nexport type OnNetworkChange = (\n callBack: (networkInfo: NetworkInfo | StandardNetworkInfo) => Promise\n) => Promise;\n\nexport type OnAccountChange = (\n callBack: (accountInfo: AccountInfo | StandardAccountInfo) => Promise\n) => Promise;\n\nexport interface AdapterPluginEvents {\n onNetworkChange: OnNetworkChange;\n onAccountChange: OnAccountChange;\n}\n\n// TODO add signTransaction()\nexport interface AdapterPluginProps {\n name: WalletName;\n url: string;\n icon: `data:image/${\"svg+xml\" | \"webp\" | \"png\" | \"gif\"};base64,${string}`;\n providerName?: string;\n provider: any;\n // Compatible with legacy wallet plugin\n deeplinkProvider?: (data: { url: string }) => string;\n // Comaptible with AIP-62 standard wallet\n openInMobileApp?: () => void;\n connect(): Promise;\n disconnect: () => Promise;\n network: () => Promise;\n signAndSubmitTransaction?(\n transaction:\n | Types.TransactionPayload\n | InputTransactionData\n | AnyRawTransaction\n | AptosSignAndSubmitTransactionInput,\n options?: InputGenerateTransactionOptions\n ): Promise<\n | { hash: Types.HexEncodedBytes; output?: any }\n | PendingTransactionResponse\n | UserResponse\n >;\n submitTransaction?(\n transaction: InputSubmitTransactionData\n ): Promise;\n signMessage(\n message: T\n ): Promise>;\n signTransaction?( // `any` type for backwards compatibility, especially for identity connect\n transactionOrPayload: any,\n optionsOrAsFeePayer?: any\n ): Promise;\n account?: () => Promise;\n changeNetwork?: AptosChangeNetworkMethod;\n}\n\nexport type AdapterPlugin =\n AdapterPluginProps & AdapterPluginEvents;\n\nexport type Wallet = AdapterPlugin & {\n readyState?: WalletReadyState;\n isAIP62Standard?: boolean;\n isSignTransactionV1_1?: boolean;\n};\n\nexport interface TransactionOptions {\n max_gas_amount?: bigint;\n gas_unit_price?: bigint;\n}\n\nexport type InputTransactionData = {\n sender?: AccountAddressInput;\n data: InputGenerateTransactionPayloadData;\n options?: InputGenerateTransactionOptions;\n};\n\n// To be used by a wallet plugin\nexport interface PluginProvider {\n connect: () => Promise;\n account: () => Promise;\n disconnect: () => Promise;\n signAndSubmitTransaction: (\n transaction: any,\n options?: any\n ) => Promise<{ hash: Types.HexEncodedBytes } | AptosWalletErrorResult>;\n signMessage: (message: SignMessagePayload) => Promise;\n network: () => Promise;\n onAccountChange: (\n listener: (newAddress: AccountInfo) => Promise\n ) => Promise;\n onNetworkChange: OnNetworkChange;\n}\n","import {\n UserResponse,\n AptosSignTransactionInputV1_1,\n AptosSignTransactionOutput,\n AptosSignMessageOutput,\n AptosSignMessageInput,\n AptosWallet,\n UserResponseStatus,\n AptosSignAndSubmitTransactionOutput,\n AccountInfo as StandardAccountInfo,\n AptosConnectOutput,\n AptosSignTransactionOutputV1_1,\n} from \"@aptos-labs/wallet-standard\";\nimport {\n AnyPublicKey,\n AnyPublicKeyVariant,\n AnyRawTransaction,\n PendingTransactionResponse,\n Aptos,\n MultiEd25519Signature,\n MultiEd25519PublicKey,\n} from \"@aptos-labs/ts-sdk\";\n\nimport { WalletReadyState } from \"../constants\";\nimport {\n WalletConnectionError,\n WalletSignAndSubmitMessageError,\n WalletSignMessageAndVerifyError,\n WalletSignMessageError,\n} from \"../error\";\nimport {\n AccountInfo,\n InputTransactionData,\n Wallet,\n} from \"../LegacyWalletPlugins\";\nimport { generalizedErrorMessage } from \"../utils\";\n\nexport type AptosStandardWallet = AptosWallet & {\n readyState?: WalletReadyState;\n};\n\nexport class WalletStandardCore {\n async connect(wallet: Wallet) {\n const response =\n (await wallet.connect()) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response.args;\n }\n\n /**\n * Signs and submits a transaction to chain\n *\n * @param transactionInput InputTransactionData\n * @returns PendingTransactionResponse\n */\n async signAndSubmitTransaction(\n transactionInput: InputTransactionData,\n aptos: Aptos,\n account: AccountInfo,\n wallet: Wallet,\n standardWallets: ReadonlyArray\n ): Promise {\n try {\n // need to find the standard wallet type to do the\n // next features check\n const standardWallet = standardWallets.find(\n (standardWallet: AptosStandardWallet) =>\n wallet.name === standardWallet.name\n );\n\n // check for backward compatibility. before version 1.1.0 the standard expected\n // AnyRawTransaction input so the adapter built the transaction before sending it to the wallet\n if (\n standardWallet?.features[\"aptos:signAndSubmitTransaction\"]?.version !==\n \"1.1.0\"\n ) {\n const transaction = await aptos.transaction.build.simple({\n sender: account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options,\n });\n const response = (await wallet.signAndSubmitTransaction!(\n transaction\n )) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n }\n\n // build standard json format\n const transaction = {\n gasUnitPrice: transactionInput.options?.gasUnitPrice,\n maxGasAmount: transactionInput.options?.maxGasAmount,\n payload: transactionInput.data,\n };\n const response = (await wallet.signAndSubmitTransaction!(\n transaction\n )) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a transaction\n *\n * To support both existing wallet adapter V1 and V2, we support 2 input types\n *\n * @param transactionOrPayload AnyRawTransaction\n * @param options asFeePayer. To sign a transaction as the fee payer sponsor\n *\n * @returns AptosSignTransactionOutput\n */\n async signTransaction(\n transaction: AnyRawTransaction,\n wallet: Wallet,\n asFeePayer?: boolean\n ): Promise\n async signTransaction(\n input: AptosSignTransactionInputV1_1,\n wallet: Wallet,\n ): Promise\n async signTransaction(\n transactionOrInput: AnyRawTransaction | AptosSignTransactionInputV1_1,\n wallet: Wallet,\n asFeePayer?: boolean\n ): Promise {\n const response = (await wallet.signTransaction!(\n transactionOrInput,\n asFeePayer\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response.args;\n }\n\n /**\n * Sign message\n *\n * @param message AptosSignMessageInput\n * @return AptosSignMessageOutput\n * @throws WalletSignMessageError\n */\n async signMessage(\n message: AptosSignMessageInput,\n wallet: Wallet\n ): Promise {\n try {\n const response = (await wallet.signMessage(\n message\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message AptosSignMessageInput\n * @returns boolean\n */\n async signMessageAndVerify(\n message: AptosSignMessageInput,\n wallet: Wallet\n ): Promise {\n try {\n // sign the message\n const response = (await wallet.signMessage(\n message\n )) as UserResponse;\n // standard wallet account() method is a required method\n const account = (await wallet.account!()) as StandardAccountInfo;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"Failed to sign a message\").message;\n }\n\n // For Keyless wallet accounts we skip verification for now.\n // TODO: Remove when client-side verification is done in SDK.\n if (\n account.publicKey instanceof AnyPublicKey &&\n account.publicKey.variant === AnyPublicKeyVariant.Keyless\n ) {\n return true;\n }\n\n let verified = false;\n // if is a multi sig wallet with a MultiEd25519Signature type\n if (response.args.signature instanceof MultiEd25519Signature) {\n if (!(account.publicKey instanceof MultiEd25519PublicKey)) {\n throw new WalletSignMessageAndVerifyError(\n \"Public key and Signature type mismatch\"\n ).message;\n }\n const { fullMessage, signature } = response.args;\n const bitmap = signature.bitmap;\n if (bitmap) {\n const minKeysRequired = account.publicKey.threshold;\n if (signature.signatures.length < minKeysRequired) {\n verified = false;\n } else {\n verified = account.publicKey.verifySignature({\n message: new TextEncoder().encode(fullMessage),\n signature,\n });\n }\n }\n } else {\n verified = account.publicKey.verifySignature({\n message: new TextEncoder().encode(response.args.fullMessage),\n signature: response.args.signature,\n });\n }\n return verified;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n","import { WALLET_ADAPTER_CORE_VERSION } from \"./version\";\n\nexport {\n type AdapterWallet,\n type NetworkInfo,\n type AccountInfo,\n WalletCoreNew,\n type DappConfig,\n type AdapterNotDetectedWallet,\n} from \"./WalletCoreNew\";\nexport * from \"./LegacyWalletPlugins\";\nexport * from \"./constants\";\nexport * from \"./utils\";\nexport * from \"./AIP62StandardWallets\";\nexport {\n type AptosSignAndSubmitTransactionOutput,\n type AptosSignTransactionOutputV1_1,\n type AptosSignMessageOutput,\n type AptosSignMessageInput,\n} from \"@aptos-labs/wallet-standard\";\n\n// inject adapter core version to the window\nif (typeof window !== \"undefined\") {\n (window as any).WALLET_ADAPTER_CORE_VERSION = WALLET_ADAPTER_CORE_VERSION;\n}\n"],"mappings":"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","names":["WalletReadyState","NetworkName","AptosConfig","Network","Network","AptosConfig","Network","isMobile","Aptos","generateTransactionPayload","Network","aptosWallets","Aptos","aptosConfig","aptos","transaction","response","generateTransactionPayload","Network","EventEmitter","generateTransactionPayload","EventEmitter","generateTransactionPayload","oldTransactionPayload","TxnBuilderTypes","Types","UserResponseStatus","AnyPublicKey","AnyPublicKeyVariant","MultiEd25519Signature","MultiEd25519PublicKey","UserResponseStatus","standardWallet","transaction","response","AnyPublicKey","AnyPublicKeyVariant","MultiEd25519Signature","MultiEd25519PublicKey"]} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts b/packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts new file mode 100644 index 00000000..0a6d361a --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts @@ -0,0 +1,18 @@ +import { AptosStandardWallet } from "../AIP62StandardWallets"; +import { WalletInfo } from "../LegacyWalletPlugins"; +import { AnyAptosWallet } from "../WalletCore"; +/** The base URL for all Aptos Connect wallets. */ +export declare const APTOS_CONNECT_BASE_URL = "https://aptosconnect.app"; +/** The URL to the Aptos Connect account page if the user is signed in to Aptos Connect. */ +export declare const APTOS_CONNECT_ACCOUNT_URL = "https://aptosconnect.app/dashboard/main-account"; +/** Returns `true` if the provided wallet is an Aptos Connect wallet. */ +export declare function isAptosConnectWallet(wallet: WalletInfo | AnyAptosWallet | AptosStandardWallet): boolean; +/** + * Partitions the `wallets` array so that Aptos Connect wallets are grouped separately from the rest. + * Aptos Connect is a web wallet that uses social login to create accounts on the blockchain. + */ +export declare function getAptosConnectWallets(wallets: ReadonlyArray): { + aptosConnectWallets: AnyAptosWallet[]; + otherWallets: AnyAptosWallet[]; +}; +//# sourceMappingURL=aptosConnect.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts.map b/packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts.map new file mode 100644 index 00000000..250d47e6 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"aptosConnect.d.ts","sourceRoot":"","sources":["../../src/utils/aptosConnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAEjE,2FAA2F;AAC3F,eAAO,MAAM,yBAAyB,oDACa,CAAC;AAEpD,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,mBAAmB,WAG1D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC;;;EAM5E"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/helpers.d.ts b/packages/wallet-adapter-core-new/dist/utils/helpers.d.ts new file mode 100644 index 00000000..fe76033b --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/utils/helpers.d.ts @@ -0,0 +1,39 @@ +import { AptosConfig, EntryFunctionArgumentTypes, Network, SimpleEntryFunctionArgumentTypes } from "@aptos-labs/ts-sdk"; +import { NetworkInfo as StandardNetworkInfo } from "@aptos-labs/wallet-standard"; +import { InputTransactionData, NetworkInfo } from "../LegacyWalletPlugins/types"; +import { DappConfig } from "../WalletCoreNew"; +export declare function isMobile(): boolean; +export declare function isInAppBrowser(): boolean; +export declare function isRedirectable(): boolean; +export declare function generalizedErrorMessage(error: any): string; +export declare const areBCSArguments: (args: Array) => boolean; +/** + * Helper function to get AptosConfig that supports Aptos and Custom networks + * + * @param networkInfo + * @param dappConfig + * @returns AptosConfig + */ +export declare const getAptosConfig: (networkInfo: NetworkInfo | StandardNetworkInfo | null, dappConfig: DappConfig | undefined) => AptosConfig; +/** + * Helper function to resolve if the current connected network is an Aptos network + * + * @param networkInfo + * @returns boolean + */ +export declare const isAptosNetwork: (networkInfo: NetworkInfo | StandardNetworkInfo | null) => boolean; +export declare const isAptosLiveNetwork: (networkInfo: Network) => boolean; +/** + * Helper function to fetch Devnet chain id + */ +export declare const fetchDevnetChainId: () => Promise; +/** + * A helper function to handle the publish package transaction. + * The Aptos SDK expects the metadataBytes and byteCode to be Uint8Array, but in case the arguments are passed in + * as a string, this function converts the string to Uint8Array. + */ +export declare const handlePublishPackageTransaction: (transactionInput: InputTransactionData) => { + metadataBytes: number | bigint | boolean | Uint8Array | import("@aptos-labs/ts-sdk/dist/common/accountAddress-BHsGaOsa").g | import("@aptos-labs/ts-sdk").Bool | import("@aptos-labs/ts-sdk").U8 | import("@aptos-labs/ts-sdk").U16 | import("@aptos-labs/ts-sdk").U32 | import("@aptos-labs/ts-sdk").U64 | import("@aptos-labs/ts-sdk").U128 | import("@aptos-labs/ts-sdk").U256 | import("@aptos-labs/ts-sdk").MoveVector | import("@aptos-labs/ts-sdk").MoveOption | import("@aptos-labs/ts-sdk").MoveString | import("@aptos-labs/ts-sdk").FixedBytes | ArrayBuffer | (EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes)[] | import("@aptos-labs/ts-sdk").MoveVector | import("@aptos-labs/ts-sdk").Serialized | null | undefined; + byteCode: (EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes)[]; +}; +//# sourceMappingURL=helpers.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/helpers.d.ts.map b/packages/wallet-adapter-core-new/dist/utils/helpers.d.ts.map new file mode 100644 index 00000000..f1c0419b --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/utils/helpers.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,0BAA0B,EAE1B,OAAO,EAGP,gCAAgC,EACjC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEjF,OAAO,EACL,oBAAoB,EACpB,WAAW,EACZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,wBAAgB,QAAQ,IAAI,OAAO,CAIlC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAUxC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAOxC;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAI1D;AAMD,eAAO,MAAM,eAAe,SACpB,MAAM,0BAA0B,GAAG,gCAAgC,CAAC,KACzE,OAQF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,gBACZ,WAAW,GAAG,mBAAmB,GAAG,IAAI,cACzC,UAAU,GAAG,SAAS,KACjC,WAuBF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,gBACZ,WAAW,GAAG,mBAAmB,GAAG,IAAI,KACpD,OAKF,CAAC;AAEF,eAAO,MAAM,kBAAkB,gBAAiB,OAAO,KAAG,OAMzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAAa,QAAQ,MAAM,CAGzD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,qBACxB,oBAAoB;;;CAwBvC,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/index.d.ts b/packages/wallet-adapter-core-new/dist/utils/index.d.ts new file mode 100644 index 00000000..ab0ff35a --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/utils/index.d.ts @@ -0,0 +1,4 @@ +export * from "./helpers"; +export * from "./localStorage"; +export * from "./walletSelector"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/index.d.ts.map b/packages/wallet-adapter-core-new/dist/utils/index.d.ts.map new file mode 100644 index 00000000..8902b9d4 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/utils/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts b/packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts new file mode 100644 index 00000000..8008c4a6 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts @@ -0,0 +1,4 @@ +export declare function setLocalStorage(walletName: string): void; +export declare function removeLocalStorage(): void; +export declare function getLocalStorage(): void; +//# sourceMappingURL=localStorage.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts.map b/packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts.map new file mode 100644 index 00000000..9a7fb848 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"localStorage.d.ts","sourceRoot":"","sources":["../../src/utils/localStorage.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,QAEjD;AAED,wBAAgB,kBAAkB,SAEjC;AAED,wBAAgB,eAAe,SAE9B"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts b/packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts new file mode 100644 index 00000000..06755e1d --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts @@ -0,0 +1,2 @@ +export declare function scopePollingDetectionStrategy(detect: () => boolean): void; +//# sourceMappingURL=scopePollingDetectionStrategy.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts.map b/packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts.map new file mode 100644 index 00000000..bea9111e --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scopePollingDetectionStrategy.d.ts","sourceRoot":"","sources":["../../src/utils/scopePollingDetectionStrategy.ts"],"names":[],"mappings":"AAAA,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,OAAO,GAAG,IAAI,CA6CzE"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts b/packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts new file mode 100644 index 00000000..a5684c55 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts @@ -0,0 +1,61 @@ +import { AptosStandardWallet } from "../AIP62StandardWallets"; +import { WalletInfo } from "../LegacyWalletPlugins"; +import { AdapterNotDetectedWallet, AdapterWallet } from "../WalletCoreNew"; +/** + * A function that will partition the provided wallets into two list — `defaultWallets` and `moreWallets`. + * By default, the wallets will be partitioned by whether or not they are installed or loadable. + * You can pass your own partition function if you wish to customize this behavior. + */ +export declare function partitionWallets(wallets: ReadonlyArray, partitionFunction?: (wallet: AdapterWallet | AdapterNotDetectedWallet) => boolean): { + defaultWallets: AdapterWallet[]; + moreWallets: AdapterNotDetectedWallet[]; +}; +/** Returns true if the wallet is installed. */ +export declare function isInstalled(wallet: AdapterWallet | AdapterNotDetectedWallet): boolean; +/** + * Returns true if the user is on desktop and the provided wallet requires installation of a browser extension. + * This can be used to decide whether to show a "Connect" button or "Install" link in the UI. + */ +export declare function isInstallRequired(wallet: AdapterWallet | AdapterNotDetectedWallet): boolean; +/** Truncates the provided wallet address at the middle with an ellipsis. */ +export declare function truncateAddress(address: string | undefined): string | undefined; +/** Returns `true` if the provided wallet is an Aptos Connect wallet. */ +export declare function isAptosConnectWallet(wallet: WalletInfo | AdapterWallet | AptosStandardWallet | AdapterNotDetectedWallet): boolean; +/** + * Partitions the `wallets` array so that Aptos Connect wallets are grouped separately from the rest. + * Aptos Connect is a web wallet that uses social login to create accounts on the blockchain. + */ +export declare function getAptosConnectWallets(wallets: ReadonlyArray): { + aptosConnectWallets: AdapterWallet[]; + otherWallets: AdapterNotDetectedWallet[]; +}; +export interface WalletSortingOptions { + /** An optional function for sorting Aptos Connect wallets. */ + sortAptosConnectWallets?: (a: AdapterWallet, b: AdapterWallet) => number; + /** An optional function for sorting wallets that are currently installed or loadable. */ + sortAvailableWallets?: (a: AdapterWallet, b: AdapterWallet) => number; + /** An optional function for sorting wallets that are NOT currently installed or loadable. */ + sortInstallableWallets?: (a: AdapterNotDetectedWallet, b: AdapterNotDetectedWallet) => number; +} +/** + * Partitions the `wallets` array into three distinct groups: + * + * `aptosConnectWallets` - Wallets that use social login to create accounts on + * the blockchain via Aptos Connect. + * + * `availableWallets` - Wallets that are currently installed or loadable by the client. + * + * `installableWallets` - Wallets that are NOT current installed or loadable and + * require the client to install a browser extension first. + * + * Additionally, these wallet groups can be sorted by passing sort functions via the `options` argument. + */ +export declare function groupAndSortWallets(wallets: ReadonlyArray, options?: WalletSortingOptions): { + /** Wallets that use social login to create an account on the blockchain */ + aptosConnectWallets: AdapterWallet[]; + /** Wallets that are currently installed or loadable. */ + availableWallets: AdapterWallet[]; + /** Wallets that are NOT currently installed or loadable. */ + installableWallets: AdapterNotDetectedWallet[]; +}; +//# sourceMappingURL=walletSelector.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts.map b/packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts.map new file mode 100644 index 00000000..b95833c5 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"walletSelector.d.ts","sourceRoot":"","sources":["../../src/utils/walletSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAI3E;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,CAAC,aAAa,GAAG,wBAAwB,CAAC,EAChE,iBAAiB,GAAE,CACjB,MAAM,EAAE,aAAa,GAAG,wBAAwB,KAC7C,OAAqB;;;EAW3B;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,wBAAwB,WAE3E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,GAAG,wBAAwB,WAMjD;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,sBAG1D;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,MAAM,EACF,UAAU,GACV,aAAa,GACb,mBAAmB,GACnB,wBAAwB,WAI7B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,CAAC,aAAa,GAAG,wBAAwB,CAAC;;;EAOjE;AAED,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,uBAAuB,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC;IACzE,yFAAyF;IACzF,oBAAoB,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC;IACtE,6FAA6F;IAC7F,sBAAsB,CAAC,EAAE,CACvB,CAAC,EAAE,wBAAwB,EAC3B,CAAC,EAAE,wBAAwB,KACxB,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,CAAC,aAAa,GAAG,wBAAwB,CAAC,EAChE,OAAO,CAAC,EAAE,oBAAoB;IAgB5B,2EAA2E;;IAE3E,wDAAwD;;IAExD,4DAA4D;;EAG/D"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/version.d.ts b/packages/wallet-adapter-core-new/dist/version.d.ts new file mode 100644 index 00000000..e11977f4 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/version.d.ts @@ -0,0 +1,2 @@ +export declare const WALLET_ADAPTER_CORE_VERSION = "4.23.0"; +//# sourceMappingURL=version.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/version.d.ts.map b/packages/wallet-adapter-core-new/dist/version.d.ts.map new file mode 100644 index 00000000..a81762b3 --- /dev/null +++ b/packages/wallet-adapter-core-new/dist/version.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts b/packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts new file mode 100644 index 00000000..8e23f604 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts @@ -0,0 +1,12 @@ +import { AvailableWallets, DappConfig } from "@aptos-labs/wallet-adapter-core-new"; +import { ReactNode, FC } from "react"; +export interface AptosWalletProviderPropsNew { + children: ReactNode; + optInWallets?: ReadonlyArray; + autoConnect?: boolean; + dappConfig?: DappConfig; + disableTelemetry?: boolean; + onError?: (error: any) => void; +} +export declare const AptosWalletAdapterProviderNew: FC; +//# sourceMappingURL=WalletProviderNew.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts.map b/packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts.map new file mode 100644 index 00000000..358df793 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WalletProviderNew.d.ts","sourceRoot":"","sources":["../src/WalletProviderNew.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,UAAU,EAcX,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,EAAE,EAAoC,MAAM,OAAO,CAAC;AAGxE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC;AAcD,eAAO,MAAM,6BAA6B,EAAE,EAAE,CAAC,2BAA2B,CAgRzE,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts b/packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts new file mode 100644 index 00000000..9fc79c77 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts @@ -0,0 +1,60 @@ +import { ForwardRefExoticComponent, ReactNode, RefAttributes, SVGProps } from "react"; +import { HeadlessComponentProps } from "./utils"; +export declare const EXPLORE_ECOSYSTEM_URL = "https://aptosfoundation.org/ecosystem/projects/all"; +declare const educationScreenIndicators: ForwardRefExoticComponent>[]; +export interface AboutAptosConnectEducationScreen { + /** A component that renders an SVG to illustrate the idea of the current screen. */ + Graphic: ForwardRefExoticComponent, "ref"> & RefAttributes>; + /** A headless component that renders the title of the current screen. */ + Title: ForwardRefExoticComponent>; + /** A headless component that renders the description text of the current screen. */ + Description: ForwardRefExoticComponent>; + /** The index of the current education screen. */ + screenIndex: number; + /** The total number of education screens. */ + totalScreens: number; + /** + * An array of headless components for indicating the current screen of the set. + * Each indicator will navigate the user to the screen it represents when clicked. + */ + screenIndicators: typeof educationScreenIndicators; + /** + * A function that navigates the user to the previous education screen. + * If the user is on the first education screen, they will be navigated to the + * initial wallet selection screen. + */ + back: () => void; + /** + * A function that navigates the user to the next education screen. + * If the user is on the last education screen, they will be navigated to the + * initial wallet selection screen. + */ + next: () => void; + /** A function that navigates the user to the initial wallet selection screen. */ + cancel: () => void; +} +export interface AboutAptosConnectProps { + /** + * A function for defining how each education screen should be rendered. + * Each screen is modeled as a uniform set of headless components and utilities + * that allow you to construct your UI and apply your own styles. + */ + renderEducationScreen: (screen: AboutAptosConnectEducationScreen) => ReactNode; + /** + * The initial wallet selection UI that will be replaced by the education + * screens when `AboutAptosConnect.Trigger` is clicked. + */ + children?: ReactNode; +} +/** + * A headless component for rendering education screens that explain the basics + * of Aptos Connect and web3 wallets. + */ +export declare const AboutAptosConnect: { + ({ renderEducationScreen, children }: AboutAptosConnectProps): import("react/jsx-runtime").JSX.Element; + displayName: string; +} & { + Trigger: ForwardRefExoticComponent>; +}; +export {}; +//# sourceMappingURL=AboutAptosConnect.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts.map b/packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts.map new file mode 100644 index 00000000..08aef105 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AboutAptosConnect.d.ts","sourceRoot":"","sources":["../../src/components/AboutAptosConnect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,yBAAyB,EACzB,SAAS,EACT,aAAa,EACb,QAAQ,EAMT,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,sBAAsB,EAA2B,MAAM,SAAS,CAAC;AAE1E,eAAO,MAAM,qBAAqB,uDACoB,CAAC;AAgEvD,QAAA,MAAM,yBAAyB,wFAoB5B,CAAC;AAEJ,MAAM,WAAW,gCAAgC;IAC/C,oFAAoF;IACpF,OAAO,EAAE,yBAAyB,CAChC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CACpE,CAAC;IACF,yEAAyE;IACzE,KAAK,EAAE,yBAAyB,CAC9B,sBAAsB,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAC3D,CAAC;IACF,oFAAoF;IACpF,WAAW,EAAE,yBAAyB,CACpC,sBAAsB,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAC7D,CAAC;IACF,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,gBAAgB,EAAE,OAAO,yBAAyB,CAAC;IACnD;;;;OAIG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB;;;;OAIG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,iFAAiF;IACjF,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,qBAAqB,EAAE,CACrB,MAAM,EAAE,gCAAgC,KACrC,SAAS,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAmDD;;;GAGG;AACH,eAAO,MAAM,iBAAiB;0CArDqB,sBAAsB;;;;CAuDvE,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts b/packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts new file mode 100644 index 00000000..884b59e3 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts @@ -0,0 +1,13 @@ +/// +import { HeadlessComponentProps } from "./utils"; +export declare const APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy"; +/** + * A headless component for rendering the Aptos Labs privacy policy disclaimer + * that should be placed under the Aptos Connect login options. + */ +export declare const AptosPrivacyPolicy: import("react").ForwardRefExoticComponent> & { + Disclaimer: import("react").ForwardRefExoticComponent>; + Link: import("react").ForwardRefExoticComponent>; + PoweredBy: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; +}; +//# sourceMappingURL=AptosPrivacyPolicy.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts.map b/packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts.map new file mode 100644 index 00000000..30f2e48f --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AptosPrivacyPolicy.d.ts","sourceRoot":"","sources":["../../src/components/AptosPrivacyPolicy.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,sBAAsB,EAA2B,MAAM,SAAS,CAAC;AAE1E,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AA+BxE;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;CAI7B,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts b/packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts new file mode 100644 index 00000000..7eb9ea14 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts @@ -0,0 +1,17 @@ +/// +import { AdapterNotDetectedWallet, AdapterWallet } from "@aptos-labs/wallet-adapter-core-new"; +import { HeadlessComponentProps } from "./utils"; +export interface WalletItemProps extends HeadlessComponentProps { + /** The wallet option to be displayed. */ + wallet: AdapterWallet | AdapterNotDetectedWallet; + /** A callback to be invoked when the wallet is connected. */ + onConnect?: () => void; +} +/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */ +export declare const WalletItem: import("react").ForwardRefExoticComponent> & { + Icon: import("react").ForwardRefExoticComponent>; + Name: import("react").ForwardRefExoticComponent>; + ConnectButton: import("react").ForwardRefExoticComponent>; + InstallLink: import("react").ForwardRefExoticComponent>; +}; +//# sourceMappingURL=WalletItem.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts.map b/packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts.map new file mode 100644 index 00000000..bbefa5f3 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WalletItem.d.ts","sourceRoot":"","sources":["../../src/components/WalletItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,wBAAwB,EACxB,aAAa,EAId,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EAAE,sBAAsB,EAA2B,MAAM,SAAS,CAAC;AAE1E,MAAM,WAAW,eAAgB,SAAQ,sBAAsB;IAC7D,yCAAyC;IACzC,MAAM,EAAE,aAAa,GAAG,wBAAwB,CAAC;IACjD,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAwGD,kHAAkH;AAClH,eAAO,MAAM,UAAU;;;;;CAKrB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/utils.d.ts b/packages/wallet-adapter-react-new/dist/components/utils.d.ts new file mode 100644 index 00000000..0c217500 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/components/utils.d.ts @@ -0,0 +1,20 @@ +import { ReactNode } from "react"; +export interface HeadlessComponentProps { + /** A class name for styling the element. */ + className?: string; + /** + * Whether to render as the child element instead of the default element provided. + * All props will be merged into the child element. + */ + asChild?: boolean; + children?: ReactNode; +} +/** + * Gets an HTML element type from its tag name + * @example + * HTMLElementFromTag<"img"> // resolved type: HTMLImageElement + */ +type HTMLElementFromTag = JSX.IntrinsicElements[T] extends React.ClassAttributes ? Element : HTMLElement; +export declare function createHeadlessComponent(displayName: string, elementType: TElement, props?: JSX.IntrinsicElements[TElement] | ((displayName: string) => JSX.IntrinsicElements[TElement])): import("react").ForwardRefExoticComponent>>; +export {}; +//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/utils.d.ts.map b/packages/wallet-adapter-react-new/dist/components/utils.d.ts.map new file mode 100644 index 00000000..a4de8b19 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/components/utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/components/utils.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA4C,MAAM,OAAO,CAAC;AAE5E,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,IAC3D,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,eAAe,CAAC,MAAM,OAAO,CAAC,GACjE,OAAO,GACP,WAAW,CAAC;AAElB,wBAAgB,uBAAuB,CACrC,QAAQ,SAAS,MAAM,GAAG,CAAC,iBAAiB,EAE5C,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,QAAQ,EACrB,KAAK,CAAC,EACF,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAC/B,CAAC,CAAC,WAAW,EAAE,MAAM,KAAK,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,mIAsC/D"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts b/packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts new file mode 100644 index 00000000..2089bf6e --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts @@ -0,0 +1,3 @@ +import { SVGProps } from "react"; +export declare const LinkGraphic: import("react").ForwardRefExoticComponent, "ref"> & import("react").RefAttributes>; +//# sourceMappingURL=LinkGraphic.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts.map b/packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts.map new file mode 100644 index 00000000..c6a757a3 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"LinkGraphic.d.ts","sourceRoot":"","sources":["../../src/graphics/LinkGraphic.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,OAAO,CAAC;AAE7C,eAAO,MAAM,WAAW,gIAsBvB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts b/packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts new file mode 100644 index 00000000..e29766c8 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts @@ -0,0 +1,3 @@ +import { SVGProps } from "react"; +export declare const SmallAptosLogo: import("react").ForwardRefExoticComponent, "ref"> & import("react").RefAttributes>; +//# sourceMappingURL=SmallAptosLogo.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts.map b/packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts.map new file mode 100644 index 00000000..0515bc0d --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"SmallAptosLogo.d.ts","sourceRoot":"","sources":["../../src/graphics/SmallAptosLogo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,OAAO,CAAC;AAE7C,eAAO,MAAM,cAAc,gIAqBzB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts b/packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts new file mode 100644 index 00000000..8611f5af --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts @@ -0,0 +1,3 @@ +import { SVGProps } from "react"; +export declare const WalletGraphic: import("react").ForwardRefExoticComponent, "ref"> & import("react").RefAttributes>; +//# sourceMappingURL=WalletGraphic.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts.map b/packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts.map new file mode 100644 index 00000000..6a7202f7 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WalletGraphic.d.ts","sourceRoot":"","sources":["../../src/graphics/WalletGraphic.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,OAAO,CAAC;AAE7C,eAAO,MAAM,aAAa,gIAsCzB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts b/packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts new file mode 100644 index 00000000..9c8b1c55 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts @@ -0,0 +1,3 @@ +import { SVGProps } from "react"; +export declare const Web3Graphic: import("react").ForwardRefExoticComponent, "ref"> & import("react").RefAttributes>; +//# sourceMappingURL=Web3Graphic.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts.map b/packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts.map new file mode 100644 index 00000000..5a82c28c --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Web3Graphic.d.ts","sourceRoot":"","sources":["../../src/graphics/Web3Graphic.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,OAAO,CAAC;AAE7C,eAAO,MAAM,WAAW,gIA2BvB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/index.d.ts b/packages/wallet-adapter-react-new/dist/index.d.ts new file mode 100644 index 00000000..180dbc63 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/index.d.ts @@ -0,0 +1,7 @@ +export * from "@aptos-labs/wallet-adapter-core-new"; +export * from "./WalletProviderNew"; +export * from "./components/AboutAptosConnect"; +export * from "./components/AptosPrivacyPolicy"; +export * from "./components/WalletItem"; +export * from "./useWalletNew"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/index.d.ts.map b/packages/wallet-adapter-react-new/dist/index.d.ts.map new file mode 100644 index 00000000..c72747ae --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/index.js b/packages/wallet-adapter-react-new/dist/index.js new file mode 100644 index 00000000..b3251d84 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/index.js @@ -0,0 +1,738 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.tsx +var src_exports = {}; +__export(src_exports, { + APTOS_PRIVACY_POLICY_URL: () => APTOS_PRIVACY_POLICY_URL, + AboutAptosConnect: () => AboutAptosConnect, + AptosPrivacyPolicy: () => AptosPrivacyPolicy, + AptosWalletAdapterProviderNew: () => AptosWalletAdapterProviderNew, + EXPLORE_ECOSYSTEM_URL: () => EXPLORE_ECOSYSTEM_URL, + WalletContextNew: () => WalletContextNew, + WalletItem: () => WalletItem, + useWalletNew: () => useWalletNew +}); +module.exports = __toCommonJS(src_exports); +__reExport(src_exports, require("@aptos-labs/wallet-adapter-core-new"), module.exports); + +// src/WalletProviderNew.tsx +var import_wallet_adapter_core_new = require("@aptos-labs/wallet-adapter-core-new"); +var import_react3 = require("react"); + +// src/useWalletNew.tsx +var import_react = require("react"); +var import_react2 = require("react"); +var DEFAULT_CONTEXT = { + connected: false +}; +var WalletContextNew = (0, import_react2.createContext)( + DEFAULT_CONTEXT +); +function useWalletNew() { + const context = (0, import_react.useContext)(WalletContextNew); + if (!context) { + throw new Error("useWallet must be used within a WalletContextState"); + } + return context; +} + +// src/WalletProviderNew.tsx +var import_jsx_runtime = require("react/jsx-runtime"); +var initialState = { + connected: false, + account: null, + network: null, + wallet: null +}; +var AptosWalletAdapterProviderNew = ({ + children, + optInWallets, + autoConnect = false, + dappConfig, + disableTelemetry = false, + onError +}) => { + const [{ account, network, connected, wallet }, setState] = (0, import_react3.useState)(initialState); + const [isLoading, setIsLoading] = (0, import_react3.useState)(true); + const [walletCore, setWalletCore] = (0, import_react3.useState)(); + const [wallets, setWallets] = (0, import_react3.useState)([]); + const [notDetectedWallets, setNotDetectedWallets] = (0, import_react3.useState)([]); + (0, import_react3.useEffect)(() => { + const walletCore2 = new import_wallet_adapter_core_new.WalletCoreNew( + optInWallets, + dappConfig, + disableTelemetry + ); + setWalletCore(walletCore2); + }, []); + (0, import_react3.useEffect)(() => { + var _a, _b; + setWallets((_a = walletCore == null ? void 0 : walletCore.wallets) != null ? _a : []); + setNotDetectedWallets((_b = walletCore == null ? void 0 : walletCore.notDetectedWallets) != null ? _b : []); + }, [walletCore]); + (0, import_react3.useEffect)(() => { + if (autoConnect) { + if (localStorage.getItem("AptosWalletName") && !connected) { + connect(localStorage.getItem("AptosWalletName")); + } else { + setIsLoading(false); + } + } + }, [autoConnect, wallets]); + const connect = async (walletName) => { + try { + setIsLoading(true); + await (walletCore == null ? void 0 : walletCore.connect(walletName)); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } finally { + setIsLoading(false); + } + }; + const disconnect = async () => { + try { + await (walletCore == null ? void 0 : walletCore.disconnect()); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const signAndSubmitTransaction = async (transaction) => { + try { + if (!walletCore) { + throw new Error("WalletCore is not initialized"); + } + return await walletCore.signAndSubmitTransaction(transaction); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const signTransaction = async (transactionOrPayload, asFeePayer, options) => { + if (!walletCore) { + throw new Error("WalletCore is not initialized"); + } + try { + return await walletCore.signTransaction( + transactionOrPayload, + asFeePayer, + options + ); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const signMessage = async (message) => { + if (!walletCore) { + throw new Error("WalletCore is not initialized"); + } + try { + return await (walletCore == null ? void 0 : walletCore.signMessage(message)); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const signMessageAndVerify = async (message) => { + if (!walletCore) { + throw new Error("WalletCore is not initialized"); + } + try { + return await (walletCore == null ? void 0 : walletCore.signMessageAndVerify(message)); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const handleConnect = () => { + setState((state) => { + return { + ...state, + connected: true, + account: (walletCore == null ? void 0 : walletCore.account) || null, + network: (walletCore == null ? void 0 : walletCore.network) || null, + wallet: (walletCore == null ? void 0 : walletCore.wallet) || null + }; + }); + }; + const handleAccountChange = (0, import_react3.useCallback)(() => { + if (!connected) + return; + if (!(walletCore == null ? void 0 : walletCore.wallet)) + return; + setState((state) => { + return { + ...state, + account: (walletCore == null ? void 0 : walletCore.account) || null + }; + }); + }, [connected]); + const handleNetworkChange = (0, import_react3.useCallback)(() => { + if (!connected) + return; + if (!(walletCore == null ? void 0 : walletCore.wallet)) + return; + setState((state) => { + return { + ...state, + network: (walletCore == null ? void 0 : walletCore.network) || null + }; + }); + }, [connected]); + (0, import_react3.useEffect)(() => { + if (connected) { + walletCore == null ? void 0 : walletCore.onAccountChange(); + walletCore == null ? void 0 : walletCore.onNetworkChange(); + } + }, [connected]); + const handleDisconnect = () => { + if (!connected) + return; + setState((state) => { + return { + ...state, + connected: false, + account: (walletCore == null ? void 0 : walletCore.account) || null, + network: (walletCore == null ? void 0 : walletCore.network) || null, + wallet: null + }; + }); + }; + const handleStandardWalletsAdded = (standardWallet) => { + const existingWalletIndex = wallets.findIndex( + (wallet2) => wallet2.name == standardWallet.name + ); + if (existingWalletIndex !== -1) { + setWallets((wallets2) => [ + ...wallets2.slice(0, existingWalletIndex), + standardWallet, + ...wallets2.slice(existingWalletIndex + 1) + ]); + } else { + setWallets((wallets2) => [...wallets2, standardWallet]); + } + }; + const handleStandardNotDetectedWalletsAdded = (notDetectedWallet) => { + const existingWalletIndex = wallets.findIndex( + (wallet2) => wallet2.name == notDetectedWallet.name + ); + if (existingWalletIndex !== -1) { + setNotDetectedWallets((wallets2) => [ + ...wallets2.slice(0, existingWalletIndex), + notDetectedWallet, + ...wallets2.slice(existingWalletIndex + 1) + ]); + } else { + setNotDetectedWallets((wallets2) => [...wallets2, notDetectedWallet]); + } + }; + (0, import_react3.useEffect)(() => { + walletCore == null ? void 0 : walletCore.on("connect", handleConnect); + walletCore == null ? void 0 : walletCore.on("accountChange", handleAccountChange); + walletCore == null ? void 0 : walletCore.on("networkChange", handleNetworkChange); + walletCore == null ? void 0 : walletCore.on("disconnect", handleDisconnect); + walletCore == null ? void 0 : walletCore.on("standardWalletsAdded", handleStandardWalletsAdded); + walletCore == null ? void 0 : walletCore.on( + "standardNotDetectedWalletAdded", + handleStandardNotDetectedWalletsAdded + ); + return () => { + walletCore == null ? void 0 : walletCore.off("connect", handleConnect); + walletCore == null ? void 0 : walletCore.off("accountChange", handleAccountChange); + walletCore == null ? void 0 : walletCore.off("networkChange", handleNetworkChange); + walletCore == null ? void 0 : walletCore.off("disconnect", handleDisconnect); + walletCore == null ? void 0 : walletCore.off("standardWalletsAdded", handleStandardWalletsAdded); + walletCore == null ? void 0 : walletCore.off( + "standardNotDetectedWalletAdded", + handleStandardNotDetectedWalletsAdded + ); + }; + }, [wallets, account]); + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WalletContextNew.Provider, { + value: { + connect, + disconnect, + signAndSubmitTransaction, + signTransaction, + signMessage, + signMessageAndVerify, + account, + network, + connected, + wallet, + wallets, + notDetectedWallets, + isLoading + }, + children + }); +}; + +// src/components/AboutAptosConnect.tsx +var import_react8 = require("react"); + +// src/graphics/LinkGraphic.tsx +var import_react4 = require("react"); +var import_jsx_runtime = require("react/jsx-runtime"); +var LinkGraphic = (0, import_react4.forwardRef)( + (props, ref) => { + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { + ref, + width: "102", + height: "132", + viewBox: "0 0 102 132", + fill: "none", + ...props, + children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", { + stroke: "currentColor", + strokeMiterlimit: "10", + children: [ + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "M59.633 80.66c11.742-2.814 17.48-7.018 20.925-13.254l17.518-31.69c6.257-11.317 2.142-25.55-9.189-31.798C82.737.53 75.723.188 69.593 2.398M60.7 69.565a14.09 14.09 0 0 1-6.907-1.767l-.228-.108" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "m52.365 41.075 12.507-22.627a14.146 14.146 0 0 1 4.727-5.062M32.407 118.619a14.139 14.139 0 0 1-7.034-1.768c-6.857-3.78-9.353-12.402-5.561-19.25l16.634-30.1a14.097 14.097 0 0 1 4.518-4.923" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "M41.211 78.85c11.332 6.248 25.583 2.14 31.84-9.177l17.518-31.691c6.256-11.317 2.142-25.55-9.19-31.798-6.085-3.357-13.018-3.724-19.104-1.59A23.31 23.31 0 0 0 49.541 15.36L36.863 38.298l7.989 5.036 12.506-22.627c3.786-6.848 12.419-9.34 19.276-5.554 6.856 3.78 9.353 12.402 5.561 19.25l-16.634 30.1c-3.785 6.848-12.418 9.341-19.275 5.555l-5.075 8.791ZM29.5 130.447c12.361-1.37 19.2-6.994 22.966-13.804l12.678-22.936-8.305-5.239" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "m55.72 61.947-.442.764 5.511-9.55c-6.901-3.806-18.65-3.124-27.105.814M44.85 43.523l7.635-2.486m-4.221 23.264 7.217-1.723m-9.316 7.517 7.59-2.405m-.562-12.156 7.508-2.221m10.136-51.32L62.761 4.43M49.642 90.778l7.514-2.26m.474 7.448 7.514-2.26m-50.306-60.13c7.135 0 12.918-5.776 12.918-12.9 0-7.126-5.783-12.902-12.918-12.902-7.134 0-12.917 5.776-12.917 12.901s5.783 12.901 12.918 12.901Z" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "M15.724 7.774h3.197c7.135 0 12.918 5.776 12.918 12.901 0 7.126-5.783 12.901-12.918 12.901h-3.425m65.112 66.935h3.198c7.135 0 12.918 5.775 12.918 12.901 0 7.125-5.783 12.9-12.918 12.9h-3.425" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "M79.717 126.312c7.135 0 12.918-5.775 12.918-12.9s-5.783-12.901-12.918-12.901c-7.134 0-12.917 5.776-12.917 12.901s5.783 12.9 12.917 12.9ZM53.281 55.414c-11.33-6.248-25.582-2.14-31.839 9.177L3.924 96.281c-6.257 11.318-2.142 25.55 9.189 31.799 11.331 6.248 25.582 2.139 31.839-9.177l12.677-22.937-7.988-5.036-12.507 22.627c-3.785 6.848-12.418 9.341-19.275 5.554-6.857-3.781-9.353-12.402-5.561-19.25l16.633-30.1c3.786-6.848 12.419-9.341 19.276-5.555l5.074-8.792Z" + }) + ] + }) + }); + } +); +LinkGraphic.displayName = "LinkGraphic"; + +// src/graphics/WalletGraphic.tsx +var import_react5 = require("react"); +var import_jsx_runtime = require("react/jsx-runtime"); +var WalletGraphic = (0, import_react5.forwardRef)( + (props, ref) => { + return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", { + ref, + width: "128", + height: "102", + viewBox: "0 0 128 102", + fill: "none", + ...props, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + fill: "currentColor", + d: "m.96 25.93-.36-.35.36.85v-.5Zm7.79-7.81v-.5h-.21l-.15.15.36.35ZM1.3 26.28l7.79-7.8-.7-.71-7.8 7.8.7.71Zm7.44-7.66H10v-1H8.75v1Zm29.22 6.8h-37v1h37.01v-1Z" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + stroke: "currentColor", + strokeMiterlimit: "10", + d: "M82.25 26.08c0 12.25-9.92 22.2-22.14 22.2a22.17 22.17 0 0 1-22.14-22.2H1.1v74.82h118.02V26.08H82.25Zm44.33 67.02h.33V18.27h-5.7" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + stroke: "currentColor", + strokeMiterlimit: "10", + d: "M74.52 42.92a22.4 22.4 0 0 1-11.43 3.3 22.5 22.5 0 0 1-22.46-22.53H9.52M119.22 101l7.78-7.82m-7.88-67.1 7.79-7.81m-44.78 7.72 2.73-2.3m-46.89 2.39 2.39-2.4" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + stroke: "currentColor", + strokeMiterlimit: "10", + d: "M9.86 23.69V5.72h107.97v18.04H84.65" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + stroke: "currentColor", + strokeMiterlimit: "10", + d: "M117.83 20.46h3.39V1H13.25v4.72M9.36 23.69h31.78" + }) + ] + }); + } +); +WalletGraphic.displayName = "WalletGraphic"; + +// src/graphics/Web3Graphic.tsx +var import_react6 = require("react"); +var import_jsx_runtime = require("react/jsx-runtime"); +var Web3Graphic = (0, import_react6.forwardRef)( + (props, ref) => { + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { + ref, + width: "142", + height: "108", + viewBox: "0 0 142 108", + fill: "none", + ...props, + children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", { + stroke: "currentColor", + strokeLinejoin: "round", + children: [ + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "m91.26 35.8.06-10.46L71.3 1v10.53L87 30.5m-36.11 5.24-.06-10.45L71.3 1v10.53L55 30.5" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "M71 59.55V49.17L50.83 25.3l.06 10.45L57 42.5m14 17.05V49.18l20.33-23.84-.07 10.45L86 42M1 59.68l.22-9.07 35.33-19.8-.1 9L9 55" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "M36.55 30.8s-.08 5.92-.1 9l.1-9ZM71 59.51v-9.07L36.55 30.8l-.1 9L63.5 55" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "M71 59.51v-9.07L36.44 70.78l-.1 9.14L55.5 68.5" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "M1.22 50.6a77387.2 77387.2 0 0 0 35.22 20.18l-.1 9.14L1 59.68l.23-9.07h-.01ZM141 59.68l-.23-9.07-35.33-19.8.11 9L133 55" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "m105.44 30.8.11 9-.1-9Z" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "M71 59.51v-9.07l34.44-19.64.11 9L78.5 55" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "M71 59.51v-9.07l34.56 20.34.1 9.14L87 69" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "M140.78 50.6a78487.3 78487.3 0 0 1-35.23 20.18l.11 9.14L141 59.68l-.23-9.07ZM50.83 80.15l.06-6.33 20.1-23.38H71v9.26L55 79" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "M71.3 97.6 50.89 73.81l-.06 9.33L71.3 107v-9.4Zm20.03-14.5-.07-9.33L71 50.44v9.26l16 18.8" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + d: "m71.3 97.6 19.96-23.83.06 9.33L71.3 107v-9.4Z" + }) + ] + }) + }); + } +); +Web3Graphic.displayName = "Web3Graphic"; + +// src/components/utils.tsx +var import_react_slot = require("@radix-ui/react-slot"); +var import_react7 = require("react"); +var import_jsx_runtime = require("react/jsx-runtime"); +function createHeadlessComponent(displayName, elementType, props) { + const component = (0, import_react7.forwardRef)(({ className, asChild, children }, ref) => { + const Component = asChild ? import_react_slot.Slot : elementType; + const { children: defaultChildren, ...resolvedProps } = typeof props === "function" ? props(displayName) : props != null ? props : {}; + const resolvedChildren = asChild && (0, import_react7.isValidElement)(children) && !children.props.children ? (0, import_react7.cloneElement)(children, {}, defaultChildren) : children != null ? children : defaultChildren; + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { + ref, + className, + ...resolvedProps, + children: resolvedChildren + }); + }); + component.displayName = displayName; + return component; +} + +// src/components/AboutAptosConnect.tsx +var import_jsx_runtime = require("react/jsx-runtime"); +var EXPLORE_ECOSYSTEM_URL = "https://aptosfoundation.org/ecosystem/projects/all"; +var AboutAptosConnectContext = (0, import_react8.createContext)(null); +function useAboutAptosConnectContext(displayName) { + const context = (0, import_react8.useContext)(AboutAptosConnectContext); + if (!context) { + throw new Error( + `\`${displayName}\` must be used within \`AboutAptosConnect\`` + ); + } + return context; +} +var educationScreens = [ + { + Graphic: LinkGraphic, + Title: createHeadlessComponent("EducationScreen.Title", "h3", { + children: "A better way to login." + }), + Description: createHeadlessComponent("EducationScreen.Description", "p", { + children: "Aptos Connect is a web3 wallet that uses a Social Login to create accounts on the Aptos blockchain." + }) + }, + { + Graphic: WalletGraphic, + Title: createHeadlessComponent("EducationScreen.Title", "h2", { + children: "What is a wallet?" + }), + Description: createHeadlessComponent("EducationScreen.Description", "p", { + children: "Wallets are a secure way to send, receive, and interact with digital assets like cryptocurrencies & NFTs." + }) + }, + { + Graphic: Web3Graphic, + Title: createHeadlessComponent("EducationScreen.Title", "h2", { + children: "Explore more of web3." + }), + Description: createHeadlessComponent("EducationScreen.Description", "p", { + children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { + children: [ + "Aptos Connect lets you take one account across any application built on Aptos.", + " ", + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { + href: EXPLORE_ECOSYSTEM_URL, + target: "_blank", + rel: "noopener noreferrer", + children: "Explore the ecosystem" + }), + "." + ] + }) + }) + } +]; +var educationScreenIndicators = Array(educationScreens.length).fill(null).map( + (_, index) => createHeadlessComponent( + "AboutAptosConnect.ScreenIndicator", + "button", + (displayName) => { + const context = useAboutAptosConnectContext(displayName); + const isActive = context.screenIndex - 1 === index; + return { + "aria-label": `Go to screen ${index + 1}`, + "aria-current": isActive ? "step" : void 0, + "data-active": isActive || void 0, + onClick: () => { + context.setScreenIndex(index + 1); + } + }; + } + ) +); +var Root = ({ renderEducationScreen, children }) => { + const [screenIndex, setScreenIndex] = (0, import_react8.useState)(0); + const currentEducationScreen = (0, import_react8.useMemo)( + () => educationScreens.map((screen, i) => ({ + ...screen, + screenIndex: i, + totalScreens: educationScreens.length, + screenIndicators: educationScreenIndicators, + back: () => { + setScreenIndex(screenIndex - 1); + }, + next: () => { + setScreenIndex( + screenIndex === educationScreens.length ? 0 : screenIndex + 1 + ); + }, + cancel: () => { + setScreenIndex(0); + } + }))[screenIndex - 1], + [screenIndex] + ); + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AboutAptosConnectContext.Provider, { + value: { screenIndex, setScreenIndex }, + children: screenIndex === 0 ? children : renderEducationScreen(currentEducationScreen) + }); +}; +Root.displayName = "AboutAptosConnect"; +var Trigger = createHeadlessComponent( + "AboutAptosConnect.Trigger", + "button", + (displayName) => { + const context = useAboutAptosConnectContext(displayName); + return { + onClick: () => { + context.setScreenIndex(1); + } + }; + } +); +var AboutAptosConnect = Object.assign(Root, { + Trigger +}); + +// src/components/AptosPrivacyPolicy.tsx +var import_react10 = require("react"); + +// src/graphics/SmallAptosLogo.tsx +var import_react9 = require("react"); +var import_jsx_runtime = require("react/jsx-runtime"); +var SmallAptosLogo = (0, import_react9.forwardRef)((props, ref) => { + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { + ref, + width: "12", + height: "12", + viewBox: "0 0 12 12", + fill: "none", + ...props, + children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z", + fill: "currentColor" + }) + }); +}); +SmallAptosLogo.displayName = "SmallAptosLogo"; + +// src/components/AptosPrivacyPolicy.tsx +var import_jsx_runtime = require("react/jsx-runtime"); +var APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy"; +var Root2 = createHeadlessComponent("AptosPrivacyPolicy.Root", "div"); +var Disclaimer = createHeadlessComponent( + "AptosPrivacyPolicy.Disclaimer", + "span", + { children: "By continuing, you agree to Aptos Labs'" } +); +var Link = createHeadlessComponent("AptosPrivacyPolicy.Disclaimer", "a", { + href: APTOS_PRIVACY_POLICY_URL, + target: "_blank", + rel: "noopener noreferrer", + children: "Privacy Policy" +}); +var PoweredBy = (0, import_react10.forwardRef)(({ className }, ref) => { + return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { + ref, + className, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { + children: "Powered by" + }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SmallAptosLogo, {}), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { + children: "Aptos Labs" + }) + ] + }); +}); +PoweredBy.displayName = "AptosPrivacyPolicy.PoweredBy"; +var AptosPrivacyPolicy = Object.assign(Root2, { + Disclaimer, + Link, + PoweredBy +}); + +// src/components/WalletItem.tsx +var import_wallet_adapter_core_new2 = require("@aptos-labs/wallet-adapter-core-new"); +var import_react_slot2 = require("@radix-ui/react-slot"); +var import_react11 = require("react"); +var import_jsx_runtime = require("react/jsx-runtime"); +function useWalletItemContext(displayName) { + const context = (0, import_react11.useContext)(WalletItemContext); + if (!context) { + throw new Error(`\`${displayName}\` must be used within \`WalletItem\``); + } + return context; +} +var WalletItemContext = (0, import_react11.createContext)(null); +var Root3 = (0, import_react11.forwardRef)( + ({ wallet, onConnect, className, asChild, children }, ref) => { + var _a; + const { connect } = useWalletNew(); + const connectWallet = (0, import_react11.useCallback)(() => { + connect(wallet.name); + onConnect == null ? void 0 : onConnect(); + }, [connect, wallet.name, onConnect]); + const isWalletReady = wallet.readyState === import_wallet_adapter_core_new2.WalletReadyState.Installed; + const mobileSupport = "features" in wallet && "aptos:openInMobileApp" in wallet.features && ((_a = wallet.features["aptos:openInMobileApp"]) == null ? void 0 : _a.openInMobileApp); + if ((0, import_wallet_adapter_core_new2.isMobile)()) { + if (!isWalletReady && (0, import_wallet_adapter_core_new2.isRedirectable)() && !mobileSupport) + return null; + } + const Component = asChild ? import_react_slot2.Slot : "div"; + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WalletItemContext.Provider, { + value: { wallet, connectWallet }, + children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { + ref, + className, + children + }) + }); + } +); +Root3.displayName = "WalletItem"; +var Icon = createHeadlessComponent( + "WalletItem.Icon", + "img", + (displayName) => { + const context = useWalletItemContext(displayName); + return { + src: context.wallet.icon, + alt: `${context.wallet.name} icon` + }; + } +); +var Name = createHeadlessComponent( + "WalletItem.Name", + "div", + (displayName) => { + const context = useWalletItemContext(displayName); + return { + children: context.wallet.name + }; + } +); +var ConnectButton = createHeadlessComponent( + "WalletItem.ConnectButton", + "button", + (displayName) => { + const context = useWalletItemContext(displayName); + return { + onClick: context.connectWallet, + children: "Connect" + }; + } +); +var InstallLink = createHeadlessComponent( + "WalletItem.InstallLink", + "a", + (displayName) => { + const context = useWalletItemContext(displayName); + return { + href: context.wallet.url, + target: "_blank", + rel: "noopener noreferrer", + children: "Install" + }; + } +); +var WalletItem = Object.assign(Root3, { + Icon, + Name, + ConnectButton, + InstallLink +}); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + APTOS_PRIVACY_POLICY_URL, + AboutAptosConnect, + AptosPrivacyPolicy, + AptosWalletAdapterProviderNew, + EXPLORE_ECOSYSTEM_URL, + WalletContextNew, + WalletItem, + useWalletNew +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/index.js.map b/packages/wallet-adapter-react-new/dist/index.js.map new file mode 100644 index 00000000..6df75349 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.tsx","../src/WalletProviderNew.tsx","../src/useWalletNew.tsx","../src/components/AboutAptosConnect.tsx","../src/graphics/LinkGraphic.tsx","../src/graphics/WalletGraphic.tsx","../src/graphics/Web3Graphic.tsx","../src/components/utils.tsx","../src/components/AptosPrivacyPolicy.tsx","../src/graphics/SmallAptosLogo.tsx","../src/components/WalletItem.tsx"],"sourcesContent":["export * from \"@aptos-labs/wallet-adapter-core-new\";\nexport * from \"./WalletProviderNew\";\nexport * from \"./components/AboutAptosConnect\";\nexport * from \"./components/AptosPrivacyPolicy\";\nexport * from \"./components/WalletItem\";\nexport * from \"./useWalletNew\";\n","import {\n AvailableWallets,\n DappConfig,\n AccountInfo,\n AdapterWallet,\n NetworkInfo,\n WalletCoreNew,\n InputTransactionData,\n AptosSignAndSubmitTransactionOutput,\n AnyRawTransaction,\n InputGenerateTransactionOptions,\n AccountAuthenticator,\n AptosSignTransactionOutputV1_1,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AdapterNotDetectedWallet,\n} from \"@aptos-labs/wallet-adapter-core-new\";\nimport { ReactNode, FC, useState, useEffect, useCallback } from \"react\";\nimport { WalletContextNew } from \"./useWalletNew\";\n\nexport interface AptosWalletProviderPropsNew {\n children: ReactNode;\n optInWallets?: ReadonlyArray;\n autoConnect?: boolean;\n dappConfig?: DappConfig;\n disableTelemetry?: boolean;\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: AdapterWallet | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\nexport const AptosWalletAdapterProviderNew: FC = ({\n children,\n optInWallets,\n autoConnect = false,\n dappConfig,\n disableTelemetry = false,\n onError,\n}: AptosWalletProviderPropsNew) => {\n const [{ account, network, connected, wallet }, setState] =\n useState(initialState);\n\n const [isLoading, setIsLoading] = useState(true);\n const [walletCore, setWalletCore] = useState();\n\n const [wallets, setWallets] = useState>([]);\n const [notDetectedWallets, setNotDetectedWallets] = useState<\n ReadonlyArray\n >([]);\n // Initialize WalletCore on first load\n useEffect(() => {\n const walletCore = new WalletCoreNew(\n optInWallets,\n dappConfig,\n disableTelemetry\n );\n setWalletCore(walletCore);\n }, []);\n\n // Update initial Wallets state once WalletCore has been initialized\n useEffect(() => {\n setWallets(walletCore?.wallets ?? []);\n setNotDetectedWallets(walletCore?.notDetectedWallets ?? []);\n }, [walletCore]);\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as string);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, [autoConnect, wallets]);\n\n const connect = async (walletName: string): Promise => {\n try {\n setIsLoading(true);\n await walletCore?.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async (): Promise => {\n try {\n await walletCore?.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ): Promise => {\n try {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transactionOrPayload: AnyRawTransaction | InputTransactionData,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions & {\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n }\n ): Promise => {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n try {\n return await walletCore.signTransaction(\n transactionOrPayload,\n asFeePayer,\n options\n );\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: AptosSignMessageInput\n ): Promise => {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n try {\n return await walletCore?.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: AptosSignMessageInput\n ): Promise => {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n try {\n return await walletCore?.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n // Handle the adapter's connect event\n const handleConnect = (): void => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore?.account || null,\n network: walletCore?.network || null,\n wallet: walletCore?.wallet || null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback((): void => {\n if (!connected) return;\n if (!walletCore?.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore?.account || null,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback((): void => {\n if (!connected) return;\n if (!walletCore?.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore?.network || null,\n };\n });\n }, [connected]);\n\n useEffect(() => {\n if (connected) {\n walletCore?.onAccountChange();\n walletCore?.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's disconnect event\n const handleDisconnect = (): void => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore?.account || null,\n network: walletCore?.network || null,\n wallet: null,\n };\n });\n };\n\n const handleStandardWalletsAdded = (standardWallet: AdapterWallet): void => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n const handleStandardNotDetectedWalletsAdded = (\n notDetectedWallet: AdapterNotDetectedWallet\n ): void => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == notDetectedWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setNotDetectedWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n notDetectedWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setNotDetectedWallets((wallets) => [...wallets, notDetectedWallet]);\n }\n };\n\n useEffect(() => {\n walletCore?.on(\"connect\", handleConnect);\n walletCore?.on(\"accountChange\", handleAccountChange);\n walletCore?.on(\"networkChange\", handleNetworkChange);\n walletCore?.on(\"disconnect\", handleDisconnect);\n walletCore?.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n walletCore?.on(\n \"standardNotDetectedWalletAdded\",\n handleStandardNotDetectedWalletsAdded\n );\n return () => {\n walletCore?.off(\"connect\", handleConnect);\n walletCore?.off(\"accountChange\", handleAccountChange);\n walletCore?.off(\"networkChange\", handleNetworkChange);\n walletCore?.off(\"disconnect\", handleDisconnect);\n walletCore?.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n walletCore?.off(\n \"standardNotDetectedWalletAdded\",\n handleStandardNotDetectedWalletsAdded\n );\n };\n }, [wallets, account]);\n return (\n \n {children}\n \n );\n};\n","import { useContext } from \"react\";\nimport {\n AccountAuthenticator,\n AccountInfo,\n AdapterWallet,\n AnyRawTransaction,\n AptosSignAndSubmitTransactionOutput,\n AptosSignTransactionOutputV1_1,\n InputGenerateTransactionOptions,\n InputTransactionData,\n NetworkInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AdapterNotDetectedWallet,\n} from \"@aptos-labs/wallet-adapter-core-new\";\nimport { createContext } from \"react\";\n\nexport interface WalletContextStateNew {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: string): void;\n signAndSubmitTransaction(\n transaction: InputTransactionData\n ): Promise;\n signTransaction(\n transaction: AnyRawTransaction | InputTransactionData,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions & {\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n }\n ): Promise;\n signMessage(message: AptosSignMessageInput): Promise;\n signMessageAndVerify(message: AptosSignMessageInput): Promise;\n disconnect(): void;\n wallet: AdapterWallet | null;\n wallets: ReadonlyArray;\n notDetectedWallets: ReadonlyArray;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContextNew = createContext(\n DEFAULT_CONTEXT as WalletContextStateNew\n);\n\nexport function useWalletNew(): WalletContextStateNew {\n const context = useContext(WalletContextNew);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import {\n Dispatch,\n ForwardRefExoticComponent,\n ReactNode,\n RefAttributes,\n SVGProps,\n SetStateAction,\n createContext,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport { LinkGraphic } from \"../graphics/LinkGraphic\";\nimport { WalletGraphic } from \"../graphics/WalletGraphic\";\nimport { Web3Graphic } from \"../graphics/Web3Graphic\";\nimport { HeadlessComponentProps, createHeadlessComponent } from \"./utils\";\n\nexport const EXPLORE_ECOSYSTEM_URL =\n \"https://aptosfoundation.org/ecosystem/projects/all\";\n\nconst AboutAptosConnectContext = createContext<{\n screenIndex: number;\n setScreenIndex: Dispatch>;\n} | null>(null);\n\nfunction useAboutAptosConnectContext(displayName: string) {\n const context = useContext(AboutAptosConnectContext);\n\n if (!context) {\n throw new Error(\n `\\`${displayName}\\` must be used within \\`AboutAptosConnect\\``\n );\n }\n\n return context;\n}\n\nconst educationScreens = [\n {\n Graphic: LinkGraphic,\n Title: createHeadlessComponent(\"EducationScreen.Title\", \"h3\", {\n children: \"A better way to login.\",\n }),\n Description: createHeadlessComponent(\"EducationScreen.Description\", \"p\", {\n children:\n \"Aptos Connect is a web3 wallet that uses a Social Login to create accounts on the Aptos blockchain.\",\n }),\n },\n {\n Graphic: WalletGraphic,\n Title: createHeadlessComponent(\"EducationScreen.Title\", \"h2\", {\n children: \"What is a wallet?\",\n }),\n Description: createHeadlessComponent(\"EducationScreen.Description\", \"p\", {\n children:\n \"Wallets are a secure way to send, receive, and interact with digital assets like cryptocurrencies & NFTs.\",\n }),\n },\n {\n Graphic: Web3Graphic,\n Title: createHeadlessComponent(\"EducationScreen.Title\", \"h2\", {\n children: \"Explore more of web3.\",\n }),\n Description: createHeadlessComponent(\"EducationScreen.Description\", \"p\", {\n children: (\n <>\n Aptos Connect lets you take one account across any application built\n on Aptos.{\" \"}\n \n Explore the ecosystem\n \n .\n \n ),\n }),\n },\n];\n\nconst educationScreenIndicators = Array(educationScreens.length)\n .fill(null)\n .map((_, index) =>\n createHeadlessComponent(\n \"AboutAptosConnect.ScreenIndicator\",\n \"button\",\n (displayName) => {\n const context = useAboutAptosConnectContext(displayName);\n const isActive = context.screenIndex - 1 === index;\n\n return {\n \"aria-label\": `Go to screen ${index + 1}`,\n \"aria-current\": isActive ? \"step\" : undefined,\n \"data-active\": isActive || undefined,\n onClick: () => {\n context.setScreenIndex(index + 1);\n },\n };\n }\n )\n );\n\nexport interface AboutAptosConnectEducationScreen {\n /** A component that renders an SVG to illustrate the idea of the current screen. */\n Graphic: ForwardRefExoticComponent<\n Omit, \"ref\"> & RefAttributes\n >;\n /** A headless component that renders the title of the current screen. */\n Title: ForwardRefExoticComponent<\n HeadlessComponentProps & RefAttributes\n >;\n /** A headless component that renders the description text of the current screen. */\n Description: ForwardRefExoticComponent<\n HeadlessComponentProps & RefAttributes\n >;\n /** The index of the current education screen. */\n screenIndex: number;\n /** The total number of education screens. */\n totalScreens: number;\n /**\n * An array of headless components for indicating the current screen of the set.\n * Each indicator will navigate the user to the screen it represents when clicked.\n */\n screenIndicators: typeof educationScreenIndicators;\n /**\n * A function that navigates the user to the previous education screen.\n * If the user is on the first education screen, they will be navigated to the\n * initial wallet selection screen.\n */\n back: () => void;\n /**\n * A function that navigates the user to the next education screen.\n * If the user is on the last education screen, they will be navigated to the\n * initial wallet selection screen.\n */\n next: () => void;\n /** A function that navigates the user to the initial wallet selection screen. */\n cancel: () => void;\n}\n\nexport interface AboutAptosConnectProps {\n /**\n * A function for defining how each education screen should be rendered.\n * Each screen is modeled as a uniform set of headless components and utilities\n * that allow you to construct your UI and apply your own styles.\n */\n renderEducationScreen: (\n screen: AboutAptosConnectEducationScreen\n ) => ReactNode;\n /**\n * The initial wallet selection UI that will be replaced by the education\n * screens when `AboutAptosConnect.Trigger` is clicked.\n */\n children?: ReactNode;\n}\n\nconst Root = ({ renderEducationScreen, children }: AboutAptosConnectProps) => {\n const [screenIndex, setScreenIndex] = useState(0);\n\n const currentEducationScreen: AboutAptosConnectEducationScreen = useMemo(\n () =>\n educationScreens.map((screen, i) => ({\n ...screen,\n screenIndex: i,\n totalScreens: educationScreens.length,\n screenIndicators: educationScreenIndicators,\n back: () => {\n setScreenIndex(screenIndex - 1);\n },\n next: () => {\n setScreenIndex(\n screenIndex === educationScreens.length ? 0 : screenIndex + 1\n );\n },\n cancel: () => {\n setScreenIndex(0);\n },\n }))[screenIndex - 1],\n [screenIndex]\n );\n\n return (\n \n {screenIndex === 0\n ? children\n : renderEducationScreen(currentEducationScreen)}\n \n );\n};\nRoot.displayName = \"AboutAptosConnect\";\n\nconst Trigger = createHeadlessComponent(\n \"AboutAptosConnect.Trigger\",\n \"button\",\n (displayName) => {\n const context = useAboutAptosConnectContext(displayName);\n\n return {\n onClick: () => {\n context.setScreenIndex(1);\n },\n };\n }\n);\n\n/**\n * A headless component for rendering education screens that explain the basics\n * of Aptos Connect and web3 wallets.\n */\nexport const AboutAptosConnect = Object.assign(Root, {\n Trigger,\n});\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const LinkGraphic = forwardRef>(\n (props, ref) => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n }\n);\nLinkGraphic.displayName = \"LinkGraphic\";\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const WalletGraphic = forwardRef>(\n (props, ref) => {\n return (\n \n \n \n \n \n \n \n );\n }\n);\nWalletGraphic.displayName = \"WalletGraphic\";\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const Web3Graphic = forwardRef>(\n (props, ref) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n);\nWeb3Graphic.displayName = \"Web3Graphic\";\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { ReactNode, cloneElement, forwardRef, isValidElement } from \"react\";\n\nexport interface HeadlessComponentProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Gets an HTML element type from its tag name\n * @example\n * HTMLElementFromTag<\"img\"> // resolved type: HTMLImageElement\n */\ntype HTMLElementFromTag =\n JSX.IntrinsicElements[T] extends React.ClassAttributes\n ? Element\n : HTMLElement;\n\nexport function createHeadlessComponent<\n TElement extends keyof JSX.IntrinsicElements,\n>(\n displayName: string,\n elementType: TElement,\n props?:\n | JSX.IntrinsicElements[TElement]\n | ((displayName: string) => JSX.IntrinsicElements[TElement]),\n) {\n const component = forwardRef<\n HTMLElementFromTag,\n HeadlessComponentProps\n >(({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : elementType;\n\n const { children: defaultChildren, ...resolvedProps } =\n typeof props === \"function\" ? props(displayName) : props ?? {};\n const resolvedChildren =\n /**\n * Use props' default children if no children are set in the component element's children and when asChild is true.\n */\n asChild && isValidElement(children) && !children.props.children\n ? cloneElement(children, {}, defaultChildren)\n : (children ?? defaultChildren);\n\n return (\n /**\n * Due to the complexity of the types at play, TypeScript reports the\n * following error for our JSX below:\n *\n * `Expression produces a union type that is too complex to represent.`\n *\n * We can safely ignore this error and retain accurate return types for\n * consumers of this function. The only drawback is that type-checking is\n * ignored for the JSX block below.\n */\n // @ts-expect-error\n \n {resolvedChildren}\n \n );\n });\n component.displayName = displayName;\n\n return component;\n}\n","import { forwardRef } from \"react\";\nimport { SmallAptosLogo } from \"../graphics/SmallAptosLogo\";\nimport { HeadlessComponentProps, createHeadlessComponent } from \"./utils\";\n\nexport const APTOS_PRIVACY_POLICY_URL = \"https://aptoslabs.com/privacy\";\n\nconst Root = createHeadlessComponent(\"AptosPrivacyPolicy.Root\", \"div\");\n\nconst Disclaimer = createHeadlessComponent(\n \"AptosPrivacyPolicy.Disclaimer\",\n \"span\",\n { children: \"By continuing, you agree to Aptos Labs'\" }\n);\n\nconst Link = createHeadlessComponent(\"AptosPrivacyPolicy.Disclaimer\", \"a\", {\n href: APTOS_PRIVACY_POLICY_URL,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: \"Privacy Policy\",\n});\n\nconst PoweredBy = forwardRef<\n HTMLDivElement,\n Pick\n>(({ className }, ref) => {\n return (\n
\n Powered by\n \n Aptos Labs\n
\n );\n});\nPoweredBy.displayName = \"AptosPrivacyPolicy.PoweredBy\";\n\n/**\n * A headless component for rendering the Aptos Labs privacy policy disclaimer\n * that should be placed under the Aptos Connect login options.\n */\nexport const AptosPrivacyPolicy = Object.assign(Root, {\n Disclaimer,\n Link,\n PoweredBy,\n});\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const SmallAptosLogo = forwardRef<\n SVGSVGElement,\n SVGProps\n>((props, ref) => {\n return (\n \n \n \n );\n});\nSmallAptosLogo.displayName = \"SmallAptosLogo\";\n","import {\n AdapterNotDetectedWallet,\n AdapterWallet,\n WalletReadyState,\n isMobile,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core-new\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { createContext, forwardRef, useCallback, useContext } from \"react\";\nimport { useWalletNew } from \"../useWalletNew\";\nimport { HeadlessComponentProps, createHeadlessComponent } from \"./utils\";\n\nexport interface WalletItemProps extends HeadlessComponentProps {\n /** The wallet option to be displayed. */\n wallet: AdapterWallet | AdapterNotDetectedWallet;\n /** A callback to be invoked when the wallet is connected. */\n onConnect?: () => void;\n}\n\nfunction useWalletItemContext(displayName: string) {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(`\\`${displayName}\\` must be used within \\`WalletItem\\``);\n }\n\n return context;\n}\n\nconst WalletItemContext = createContext<{\n wallet: AdapterWallet | AdapterNotDetectedWallet;\n connectWallet: () => void;\n} | null>(null);\n\nconst Root = forwardRef(\n ({ wallet, onConnect, className, asChild, children }, ref) => {\n const { connect } = useWalletNew();\n\n const connectWallet = useCallback(() => {\n connect(wallet.name);\n onConnect?.();\n }, [connect, wallet.name, onConnect]);\n\n const isWalletReady = wallet.readyState === WalletReadyState.Installed;\n\n const mobileSupport =\n \"features\" in wallet &&\n \"aptos:openInMobileApp\" in (wallet as AdapterWallet).features &&\n (wallet as AdapterWallet).features[\"aptos:openInMobileApp\"]\n ?.openInMobileApp;\n\n if (isMobile()) {\n if (!isWalletReady && isRedirectable() && !mobileSupport) return null;\n }\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n \n \n {children}\n \n \n );\n }\n);\nRoot.displayName = \"WalletItem\";\n\nconst Icon = createHeadlessComponent(\n \"WalletItem.Icon\",\n \"img\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n src: context.wallet.icon,\n alt: `${context.wallet.name} icon`,\n };\n }\n);\n\nconst Name = createHeadlessComponent(\n \"WalletItem.Name\",\n \"div\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n children: context.wallet.name,\n };\n }\n);\n\nconst ConnectButton = createHeadlessComponent(\n \"WalletItem.ConnectButton\",\n \"button\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n onClick: context.connectWallet,\n children: \"Connect\",\n };\n }\n);\n\nconst InstallLink = createHeadlessComponent(\n \"WalletItem.InstallLink\",\n \"a\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n href: context.wallet.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: \"Install\",\n };\n }\n);\n\n/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */\nexport const WalletItem = Object.assign(Root, {\n Icon,\n Name,\n ConnectButton,\n InstallLink,\n});\n"],"mappings":"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","names":["import_react","import_react","walletCore","wallet","wallets","import_react","import_react","import_react","import_react","import_react","import_react","import_react","Root","import_wallet_adapter_core_new","import_react_slot","import_react","Root"]} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/index.mjs b/packages/wallet-adapter-react-new/dist/index.mjs new file mode 100644 index 00000000..12eb943b --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/index.mjs @@ -0,0 +1,716 @@ +// src/index.tsx +export * from "@aptos-labs/wallet-adapter-core-new"; + +// src/WalletProviderNew.tsx +import { + WalletCoreNew +} from "@aptos-labs/wallet-adapter-core-new"; +import { useState, useEffect, useCallback } from "react"; + +// src/useWalletNew.tsx +import { useContext } from "react"; +import { createContext } from "react"; +var DEFAULT_CONTEXT = { + connected: false +}; +var WalletContextNew = createContext( + DEFAULT_CONTEXT +); +function useWalletNew() { + const context = useContext(WalletContextNew); + if (!context) { + throw new Error("useWallet must be used within a WalletContextState"); + } + return context; +} + +// src/WalletProviderNew.tsx +import { jsx } from "react/jsx-runtime"; +var initialState = { + connected: false, + account: null, + network: null, + wallet: null +}; +var AptosWalletAdapterProviderNew = ({ + children, + optInWallets, + autoConnect = false, + dappConfig, + disableTelemetry = false, + onError +}) => { + const [{ account, network, connected, wallet }, setState] = useState(initialState); + const [isLoading, setIsLoading] = useState(true); + const [walletCore, setWalletCore] = useState(); + const [wallets, setWallets] = useState([]); + const [notDetectedWallets, setNotDetectedWallets] = useState([]); + useEffect(() => { + const walletCore2 = new WalletCoreNew( + optInWallets, + dappConfig, + disableTelemetry + ); + setWalletCore(walletCore2); + }, []); + useEffect(() => { + var _a, _b; + setWallets((_a = walletCore == null ? void 0 : walletCore.wallets) != null ? _a : []); + setNotDetectedWallets((_b = walletCore == null ? void 0 : walletCore.notDetectedWallets) != null ? _b : []); + }, [walletCore]); + useEffect(() => { + if (autoConnect) { + if (localStorage.getItem("AptosWalletName") && !connected) { + connect(localStorage.getItem("AptosWalletName")); + } else { + setIsLoading(false); + } + } + }, [autoConnect, wallets]); + const connect = async (walletName) => { + try { + setIsLoading(true); + await (walletCore == null ? void 0 : walletCore.connect(walletName)); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } finally { + setIsLoading(false); + } + }; + const disconnect = async () => { + try { + await (walletCore == null ? void 0 : walletCore.disconnect()); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const signAndSubmitTransaction = async (transaction) => { + try { + if (!walletCore) { + throw new Error("WalletCore is not initialized"); + } + return await walletCore.signAndSubmitTransaction(transaction); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const signTransaction = async (transactionOrPayload, asFeePayer, options) => { + if (!walletCore) { + throw new Error("WalletCore is not initialized"); + } + try { + return await walletCore.signTransaction( + transactionOrPayload, + asFeePayer, + options + ); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const signMessage = async (message) => { + if (!walletCore) { + throw new Error("WalletCore is not initialized"); + } + try { + return await (walletCore == null ? void 0 : walletCore.signMessage(message)); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const signMessageAndVerify = async (message) => { + if (!walletCore) { + throw new Error("WalletCore is not initialized"); + } + try { + return await (walletCore == null ? void 0 : walletCore.signMessageAndVerify(message)); + } catch (error) { + if (onError) + onError(error); + return Promise.reject(error); + } + }; + const handleConnect = () => { + setState((state) => { + return { + ...state, + connected: true, + account: (walletCore == null ? void 0 : walletCore.account) || null, + network: (walletCore == null ? void 0 : walletCore.network) || null, + wallet: (walletCore == null ? void 0 : walletCore.wallet) || null + }; + }); + }; + const handleAccountChange = useCallback(() => { + if (!connected) + return; + if (!(walletCore == null ? void 0 : walletCore.wallet)) + return; + setState((state) => { + return { + ...state, + account: (walletCore == null ? void 0 : walletCore.account) || null + }; + }); + }, [connected]); + const handleNetworkChange = useCallback(() => { + if (!connected) + return; + if (!(walletCore == null ? void 0 : walletCore.wallet)) + return; + setState((state) => { + return { + ...state, + network: (walletCore == null ? void 0 : walletCore.network) || null + }; + }); + }, [connected]); + useEffect(() => { + if (connected) { + walletCore == null ? void 0 : walletCore.onAccountChange(); + walletCore == null ? void 0 : walletCore.onNetworkChange(); + } + }, [connected]); + const handleDisconnect = () => { + if (!connected) + return; + setState((state) => { + return { + ...state, + connected: false, + account: (walletCore == null ? void 0 : walletCore.account) || null, + network: (walletCore == null ? void 0 : walletCore.network) || null, + wallet: null + }; + }); + }; + const handleStandardWalletsAdded = (standardWallet) => { + const existingWalletIndex = wallets.findIndex( + (wallet2) => wallet2.name == standardWallet.name + ); + if (existingWalletIndex !== -1) { + setWallets((wallets2) => [ + ...wallets2.slice(0, existingWalletIndex), + standardWallet, + ...wallets2.slice(existingWalletIndex + 1) + ]); + } else { + setWallets((wallets2) => [...wallets2, standardWallet]); + } + }; + const handleStandardNotDetectedWalletsAdded = (notDetectedWallet) => { + const existingWalletIndex = wallets.findIndex( + (wallet2) => wallet2.name == notDetectedWallet.name + ); + if (existingWalletIndex !== -1) { + setNotDetectedWallets((wallets2) => [ + ...wallets2.slice(0, existingWalletIndex), + notDetectedWallet, + ...wallets2.slice(existingWalletIndex + 1) + ]); + } else { + setNotDetectedWallets((wallets2) => [...wallets2, notDetectedWallet]); + } + }; + useEffect(() => { + walletCore == null ? void 0 : walletCore.on("connect", handleConnect); + walletCore == null ? void 0 : walletCore.on("accountChange", handleAccountChange); + walletCore == null ? void 0 : walletCore.on("networkChange", handleNetworkChange); + walletCore == null ? void 0 : walletCore.on("disconnect", handleDisconnect); + walletCore == null ? void 0 : walletCore.on("standardWalletsAdded", handleStandardWalletsAdded); + walletCore == null ? void 0 : walletCore.on( + "standardNotDetectedWalletAdded", + handleStandardNotDetectedWalletsAdded + ); + return () => { + walletCore == null ? void 0 : walletCore.off("connect", handleConnect); + walletCore == null ? void 0 : walletCore.off("accountChange", handleAccountChange); + walletCore == null ? void 0 : walletCore.off("networkChange", handleNetworkChange); + walletCore == null ? void 0 : walletCore.off("disconnect", handleDisconnect); + walletCore == null ? void 0 : walletCore.off("standardWalletsAdded", handleStandardWalletsAdded); + walletCore == null ? void 0 : walletCore.off( + "standardNotDetectedWalletAdded", + handleStandardNotDetectedWalletsAdded + ); + }; + }, [wallets, account]); + return /* @__PURE__ */ jsx(WalletContextNew.Provider, { + value: { + connect, + disconnect, + signAndSubmitTransaction, + signTransaction, + signMessage, + signMessageAndVerify, + account, + network, + connected, + wallet, + wallets, + notDetectedWallets, + isLoading + }, + children + }); +}; + +// src/components/AboutAptosConnect.tsx +import { + createContext as createContext2, + useContext as useContext2, + useMemo, + useState as useState2 +} from "react"; + +// src/graphics/LinkGraphic.tsx +import { forwardRef } from "react"; +import { jsx as jsx2, jsxs } from "react/jsx-runtime"; +var LinkGraphic = forwardRef( + (props, ref) => { + return /* @__PURE__ */ jsx2("svg", { + ref, + width: "102", + height: "132", + viewBox: "0 0 102 132", + fill: "none", + ...props, + children: /* @__PURE__ */ jsxs("g", { + stroke: "currentColor", + strokeMiterlimit: "10", + children: [ + /* @__PURE__ */ jsx2("path", { + d: "M59.633 80.66c11.742-2.814 17.48-7.018 20.925-13.254l17.518-31.69c6.257-11.317 2.142-25.55-9.189-31.798C82.737.53 75.723.188 69.593 2.398M60.7 69.565a14.09 14.09 0 0 1-6.907-1.767l-.228-.108" + }), + /* @__PURE__ */ jsx2("path", { + d: "m52.365 41.075 12.507-22.627a14.146 14.146 0 0 1 4.727-5.062M32.407 118.619a14.139 14.139 0 0 1-7.034-1.768c-6.857-3.78-9.353-12.402-5.561-19.25l16.634-30.1a14.097 14.097 0 0 1 4.518-4.923" + }), + /* @__PURE__ */ jsx2("path", { + d: "M41.211 78.85c11.332 6.248 25.583 2.14 31.84-9.177l17.518-31.691c6.256-11.317 2.142-25.55-9.19-31.798-6.085-3.357-13.018-3.724-19.104-1.59A23.31 23.31 0 0 0 49.541 15.36L36.863 38.298l7.989 5.036 12.506-22.627c3.786-6.848 12.419-9.34 19.276-5.554 6.856 3.78 9.353 12.402 5.561 19.25l-16.634 30.1c-3.785 6.848-12.418 9.341-19.275 5.555l-5.075 8.791ZM29.5 130.447c12.361-1.37 19.2-6.994 22.966-13.804l12.678-22.936-8.305-5.239" + }), + /* @__PURE__ */ jsx2("path", { + d: "m55.72 61.947-.442.764 5.511-9.55c-6.901-3.806-18.65-3.124-27.105.814M44.85 43.523l7.635-2.486m-4.221 23.264 7.217-1.723m-9.316 7.517 7.59-2.405m-.562-12.156 7.508-2.221m10.136-51.32L62.761 4.43M49.642 90.778l7.514-2.26m.474 7.448 7.514-2.26m-50.306-60.13c7.135 0 12.918-5.776 12.918-12.9 0-7.126-5.783-12.902-12.918-12.902-7.134 0-12.917 5.776-12.917 12.901s5.783 12.901 12.918 12.901Z" + }), + /* @__PURE__ */ jsx2("path", { + d: "M15.724 7.774h3.197c7.135 0 12.918 5.776 12.918 12.901 0 7.126-5.783 12.901-12.918 12.901h-3.425m65.112 66.935h3.198c7.135 0 12.918 5.775 12.918 12.901 0 7.125-5.783 12.9-12.918 12.9h-3.425" + }), + /* @__PURE__ */ jsx2("path", { + d: "M79.717 126.312c7.135 0 12.918-5.775 12.918-12.9s-5.783-12.901-12.918-12.901c-7.134 0-12.917 5.776-12.917 12.901s5.783 12.9 12.917 12.9ZM53.281 55.414c-11.33-6.248-25.582-2.14-31.839 9.177L3.924 96.281c-6.257 11.318-2.142 25.55 9.189 31.799 11.331 6.248 25.582 2.139 31.839-9.177l12.677-22.937-7.988-5.036-12.507 22.627c-3.785 6.848-12.418 9.341-19.275 5.554-6.857-3.781-9.353-12.402-5.561-19.25l16.633-30.1c3.786-6.848 12.419-9.341 19.276-5.555l5.074-8.792Z" + }) + ] + }) + }); + } +); +LinkGraphic.displayName = "LinkGraphic"; + +// src/graphics/WalletGraphic.tsx +import { forwardRef as forwardRef2 } from "react"; +import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime"; +var WalletGraphic = forwardRef2( + (props, ref) => { + return /* @__PURE__ */ jsxs2("svg", { + ref, + width: "128", + height: "102", + viewBox: "0 0 128 102", + fill: "none", + ...props, + children: [ + /* @__PURE__ */ jsx3("path", { + fill: "currentColor", + d: "m.96 25.93-.36-.35.36.85v-.5Zm7.79-7.81v-.5h-.21l-.15.15.36.35ZM1.3 26.28l7.79-7.8-.7-.71-7.8 7.8.7.71Zm7.44-7.66H10v-1H8.75v1Zm29.22 6.8h-37v1h37.01v-1Z" + }), + /* @__PURE__ */ jsx3("path", { + stroke: "currentColor", + strokeMiterlimit: "10", + d: "M82.25 26.08c0 12.25-9.92 22.2-22.14 22.2a22.17 22.17 0 0 1-22.14-22.2H1.1v74.82h118.02V26.08H82.25Zm44.33 67.02h.33V18.27h-5.7" + }), + /* @__PURE__ */ jsx3("path", { + stroke: "currentColor", + strokeMiterlimit: "10", + d: "M74.52 42.92a22.4 22.4 0 0 1-11.43 3.3 22.5 22.5 0 0 1-22.46-22.53H9.52M119.22 101l7.78-7.82m-7.88-67.1 7.79-7.81m-44.78 7.72 2.73-2.3m-46.89 2.39 2.39-2.4" + }), + /* @__PURE__ */ jsx3("path", { + stroke: "currentColor", + strokeMiterlimit: "10", + d: "M9.86 23.69V5.72h107.97v18.04H84.65" + }), + /* @__PURE__ */ jsx3("path", { + stroke: "currentColor", + strokeMiterlimit: "10", + d: "M117.83 20.46h3.39V1H13.25v4.72M9.36 23.69h31.78" + }) + ] + }); + } +); +WalletGraphic.displayName = "WalletGraphic"; + +// src/graphics/Web3Graphic.tsx +import { forwardRef as forwardRef3 } from "react"; +import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime"; +var Web3Graphic = forwardRef3( + (props, ref) => { + return /* @__PURE__ */ jsx4("svg", { + ref, + width: "142", + height: "108", + viewBox: "0 0 142 108", + fill: "none", + ...props, + children: /* @__PURE__ */ jsxs3("g", { + stroke: "currentColor", + strokeLinejoin: "round", + children: [ + /* @__PURE__ */ jsx4("path", { + d: "m91.26 35.8.06-10.46L71.3 1v10.53L87 30.5m-36.11 5.24-.06-10.45L71.3 1v10.53L55 30.5" + }), + /* @__PURE__ */ jsx4("path", { + d: "M71 59.55V49.17L50.83 25.3l.06 10.45L57 42.5m14 17.05V49.18l20.33-23.84-.07 10.45L86 42M1 59.68l.22-9.07 35.33-19.8-.1 9L9 55" + }), + /* @__PURE__ */ jsx4("path", { + d: "M36.55 30.8s-.08 5.92-.1 9l.1-9ZM71 59.51v-9.07L36.55 30.8l-.1 9L63.5 55" + }), + /* @__PURE__ */ jsx4("path", { + d: "M71 59.51v-9.07L36.44 70.78l-.1 9.14L55.5 68.5" + }), + /* @__PURE__ */ jsx4("path", { + d: "M1.22 50.6a77387.2 77387.2 0 0 0 35.22 20.18l-.1 9.14L1 59.68l.23-9.07h-.01ZM141 59.68l-.23-9.07-35.33-19.8.11 9L133 55" + }), + /* @__PURE__ */ jsx4("path", { + d: "m105.44 30.8.11 9-.1-9Z" + }), + /* @__PURE__ */ jsx4("path", { + d: "M71 59.51v-9.07l34.44-19.64.11 9L78.5 55" + }), + /* @__PURE__ */ jsx4("path", { + d: "M71 59.51v-9.07l34.56 20.34.1 9.14L87 69" + }), + /* @__PURE__ */ jsx4("path", { + d: "M140.78 50.6a78487.3 78487.3 0 0 1-35.23 20.18l.11 9.14L141 59.68l-.23-9.07ZM50.83 80.15l.06-6.33 20.1-23.38H71v9.26L55 79" + }), + /* @__PURE__ */ jsx4("path", { + d: "M71.3 97.6 50.89 73.81l-.06 9.33L71.3 107v-9.4Zm20.03-14.5-.07-9.33L71 50.44v9.26l16 18.8" + }), + /* @__PURE__ */ jsx4("path", { + d: "m71.3 97.6 19.96-23.83.06 9.33L71.3 107v-9.4Z" + }) + ] + }) + }); + } +); +Web3Graphic.displayName = "Web3Graphic"; + +// src/components/utils.tsx +import { Slot } from "@radix-ui/react-slot"; +import { cloneElement, forwardRef as forwardRef4, isValidElement } from "react"; +import { jsx as jsx5 } from "react/jsx-runtime"; +function createHeadlessComponent(displayName, elementType, props) { + const component = forwardRef4(({ className, asChild, children }, ref) => { + const Component = asChild ? Slot : elementType; + const { children: defaultChildren, ...resolvedProps } = typeof props === "function" ? props(displayName) : props != null ? props : {}; + const resolvedChildren = asChild && isValidElement(children) && !children.props.children ? cloneElement(children, {}, defaultChildren) : children != null ? children : defaultChildren; + return /* @__PURE__ */ jsx5(Component, { + ref, + className, + ...resolvedProps, + children: resolvedChildren + }); + }); + component.displayName = displayName; + return component; +} + +// src/components/AboutAptosConnect.tsx +import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime"; +var EXPLORE_ECOSYSTEM_URL = "https://aptosfoundation.org/ecosystem/projects/all"; +var AboutAptosConnectContext = createContext2(null); +function useAboutAptosConnectContext(displayName) { + const context = useContext2(AboutAptosConnectContext); + if (!context) { + throw new Error( + `\`${displayName}\` must be used within \`AboutAptosConnect\`` + ); + } + return context; +} +var educationScreens = [ + { + Graphic: LinkGraphic, + Title: createHeadlessComponent("EducationScreen.Title", "h3", { + children: "A better way to login." + }), + Description: createHeadlessComponent("EducationScreen.Description", "p", { + children: "Aptos Connect is a web3 wallet that uses a Social Login to create accounts on the Aptos blockchain." + }) + }, + { + Graphic: WalletGraphic, + Title: createHeadlessComponent("EducationScreen.Title", "h2", { + children: "What is a wallet?" + }), + Description: createHeadlessComponent("EducationScreen.Description", "p", { + children: "Wallets are a secure way to send, receive, and interact with digital assets like cryptocurrencies & NFTs." + }) + }, + { + Graphic: Web3Graphic, + Title: createHeadlessComponent("EducationScreen.Title", "h2", { + children: "Explore more of web3." + }), + Description: createHeadlessComponent("EducationScreen.Description", "p", { + children: /* @__PURE__ */ jsxs4(Fragment, { + children: [ + "Aptos Connect lets you take one account across any application built on Aptos.", + " ", + /* @__PURE__ */ jsx6("a", { + href: EXPLORE_ECOSYSTEM_URL, + target: "_blank", + rel: "noopener noreferrer", + children: "Explore the ecosystem" + }), + "." + ] + }) + }) + } +]; +var educationScreenIndicators = Array(educationScreens.length).fill(null).map( + (_, index) => createHeadlessComponent( + "AboutAptosConnect.ScreenIndicator", + "button", + (displayName) => { + const context = useAboutAptosConnectContext(displayName); + const isActive = context.screenIndex - 1 === index; + return { + "aria-label": `Go to screen ${index + 1}`, + "aria-current": isActive ? "step" : void 0, + "data-active": isActive || void 0, + onClick: () => { + context.setScreenIndex(index + 1); + } + }; + } + ) +); +var Root = ({ renderEducationScreen, children }) => { + const [screenIndex, setScreenIndex] = useState2(0); + const currentEducationScreen = useMemo( + () => educationScreens.map((screen, i) => ({ + ...screen, + screenIndex: i, + totalScreens: educationScreens.length, + screenIndicators: educationScreenIndicators, + back: () => { + setScreenIndex(screenIndex - 1); + }, + next: () => { + setScreenIndex( + screenIndex === educationScreens.length ? 0 : screenIndex + 1 + ); + }, + cancel: () => { + setScreenIndex(0); + } + }))[screenIndex - 1], + [screenIndex] + ); + return /* @__PURE__ */ jsx6(AboutAptosConnectContext.Provider, { + value: { screenIndex, setScreenIndex }, + children: screenIndex === 0 ? children : renderEducationScreen(currentEducationScreen) + }); +}; +Root.displayName = "AboutAptosConnect"; +var Trigger = createHeadlessComponent( + "AboutAptosConnect.Trigger", + "button", + (displayName) => { + const context = useAboutAptosConnectContext(displayName); + return { + onClick: () => { + context.setScreenIndex(1); + } + }; + } +); +var AboutAptosConnect = Object.assign(Root, { + Trigger +}); + +// src/components/AptosPrivacyPolicy.tsx +import { forwardRef as forwardRef6 } from "react"; + +// src/graphics/SmallAptosLogo.tsx +import { forwardRef as forwardRef5 } from "react"; +import { jsx as jsx7 } from "react/jsx-runtime"; +var SmallAptosLogo = forwardRef5((props, ref) => { + return /* @__PURE__ */ jsx7("svg", { + ref, + width: "12", + height: "12", + viewBox: "0 0 12 12", + fill: "none", + ...props, + children: /* @__PURE__ */ jsx7("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z", + fill: "currentColor" + }) + }); +}); +SmallAptosLogo.displayName = "SmallAptosLogo"; + +// src/components/AptosPrivacyPolicy.tsx +import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime"; +var APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy"; +var Root2 = createHeadlessComponent("AptosPrivacyPolicy.Root", "div"); +var Disclaimer = createHeadlessComponent( + "AptosPrivacyPolicy.Disclaimer", + "span", + { children: "By continuing, you agree to Aptos Labs'" } +); +var Link = createHeadlessComponent("AptosPrivacyPolicy.Disclaimer", "a", { + href: APTOS_PRIVACY_POLICY_URL, + target: "_blank", + rel: "noopener noreferrer", + children: "Privacy Policy" +}); +var PoweredBy = forwardRef6(({ className }, ref) => { + return /* @__PURE__ */ jsxs5("div", { + ref, + className, + children: [ + /* @__PURE__ */ jsx8("span", { + children: "Powered by" + }), + /* @__PURE__ */ jsx8(SmallAptosLogo, {}), + /* @__PURE__ */ jsx8("span", { + children: "Aptos Labs" + }) + ] + }); +}); +PoweredBy.displayName = "AptosPrivacyPolicy.PoweredBy"; +var AptosPrivacyPolicy = Object.assign(Root2, { + Disclaimer, + Link, + PoweredBy +}); + +// src/components/WalletItem.tsx +import { + WalletReadyState, + isMobile, + isRedirectable +} from "@aptos-labs/wallet-adapter-core-new"; +import { Slot as Slot2 } from "@radix-ui/react-slot"; +import { createContext as createContext3, forwardRef as forwardRef7, useCallback as useCallback2, useContext as useContext3 } from "react"; +import { jsx as jsx9 } from "react/jsx-runtime"; +function useWalletItemContext(displayName) { + const context = useContext3(WalletItemContext); + if (!context) { + throw new Error(`\`${displayName}\` must be used within \`WalletItem\``); + } + return context; +} +var WalletItemContext = createContext3(null); +var Root3 = forwardRef7( + ({ wallet, onConnect, className, asChild, children }, ref) => { + var _a; + const { connect } = useWalletNew(); + const connectWallet = useCallback2(() => { + connect(wallet.name); + onConnect == null ? void 0 : onConnect(); + }, [connect, wallet.name, onConnect]); + const isWalletReady = wallet.readyState === WalletReadyState.Installed; + const mobileSupport = "features" in wallet && "aptos:openInMobileApp" in wallet.features && ((_a = wallet.features["aptos:openInMobileApp"]) == null ? void 0 : _a.openInMobileApp); + if (isMobile()) { + if (!isWalletReady && isRedirectable() && !mobileSupport) + return null; + } + const Component = asChild ? Slot2 : "div"; + return /* @__PURE__ */ jsx9(WalletItemContext.Provider, { + value: { wallet, connectWallet }, + children: /* @__PURE__ */ jsx9(Component, { + ref, + className, + children + }) + }); + } +); +Root3.displayName = "WalletItem"; +var Icon = createHeadlessComponent( + "WalletItem.Icon", + "img", + (displayName) => { + const context = useWalletItemContext(displayName); + return { + src: context.wallet.icon, + alt: `${context.wallet.name} icon` + }; + } +); +var Name = createHeadlessComponent( + "WalletItem.Name", + "div", + (displayName) => { + const context = useWalletItemContext(displayName); + return { + children: context.wallet.name + }; + } +); +var ConnectButton = createHeadlessComponent( + "WalletItem.ConnectButton", + "button", + (displayName) => { + const context = useWalletItemContext(displayName); + return { + onClick: context.connectWallet, + children: "Connect" + }; + } +); +var InstallLink = createHeadlessComponent( + "WalletItem.InstallLink", + "a", + (displayName) => { + const context = useWalletItemContext(displayName); + return { + href: context.wallet.url, + target: "_blank", + rel: "noopener noreferrer", + children: "Install" + }; + } +); +var WalletItem = Object.assign(Root3, { + Icon, + Name, + ConnectButton, + InstallLink +}); +export { + APTOS_PRIVACY_POLICY_URL, + AboutAptosConnect, + AptosPrivacyPolicy, + AptosWalletAdapterProviderNew, + EXPLORE_ECOSYSTEM_URL, + WalletContextNew, + WalletItem, + useWalletNew +}; +//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/index.mjs.map b/packages/wallet-adapter-react-new/dist/index.mjs.map new file mode 100644 index 00000000..337206f7 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.tsx","../src/WalletProviderNew.tsx","../src/useWalletNew.tsx","../src/components/AboutAptosConnect.tsx","../src/graphics/LinkGraphic.tsx","../src/graphics/WalletGraphic.tsx","../src/graphics/Web3Graphic.tsx","../src/components/utils.tsx","../src/components/AptosPrivacyPolicy.tsx","../src/graphics/SmallAptosLogo.tsx","../src/components/WalletItem.tsx"],"sourcesContent":["export * from \"@aptos-labs/wallet-adapter-core-new\";\nexport * from \"./WalletProviderNew\";\nexport * from \"./components/AboutAptosConnect\";\nexport * from \"./components/AptosPrivacyPolicy\";\nexport * from \"./components/WalletItem\";\nexport * from \"./useWalletNew\";\n","import {\n AvailableWallets,\n DappConfig,\n AccountInfo,\n AdapterWallet,\n NetworkInfo,\n WalletCoreNew,\n InputTransactionData,\n AptosSignAndSubmitTransactionOutput,\n AnyRawTransaction,\n InputGenerateTransactionOptions,\n AccountAuthenticator,\n AptosSignTransactionOutputV1_1,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AdapterNotDetectedWallet,\n} from \"@aptos-labs/wallet-adapter-core-new\";\nimport { ReactNode, FC, useState, useEffect, useCallback } from \"react\";\nimport { WalletContextNew } from \"./useWalletNew\";\n\nexport interface AptosWalletProviderPropsNew {\n children: ReactNode;\n optInWallets?: ReadonlyArray;\n autoConnect?: boolean;\n dappConfig?: DappConfig;\n disableTelemetry?: boolean;\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: AdapterWallet | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\nexport const AptosWalletAdapterProviderNew: FC = ({\n children,\n optInWallets,\n autoConnect = false,\n dappConfig,\n disableTelemetry = false,\n onError,\n}: AptosWalletProviderPropsNew) => {\n const [{ account, network, connected, wallet }, setState] =\n useState(initialState);\n\n const [isLoading, setIsLoading] = useState(true);\n const [walletCore, setWalletCore] = useState();\n\n const [wallets, setWallets] = useState>([]);\n const [notDetectedWallets, setNotDetectedWallets] = useState<\n ReadonlyArray\n >([]);\n // Initialize WalletCore on first load\n useEffect(() => {\n const walletCore = new WalletCoreNew(\n optInWallets,\n dappConfig,\n disableTelemetry\n );\n setWalletCore(walletCore);\n }, []);\n\n // Update initial Wallets state once WalletCore has been initialized\n useEffect(() => {\n setWallets(walletCore?.wallets ?? []);\n setNotDetectedWallets(walletCore?.notDetectedWallets ?? []);\n }, [walletCore]);\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as string);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, [autoConnect, wallets]);\n\n const connect = async (walletName: string): Promise => {\n try {\n setIsLoading(true);\n await walletCore?.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async (): Promise => {\n try {\n await walletCore?.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ): Promise => {\n try {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transactionOrPayload: AnyRawTransaction | InputTransactionData,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions & {\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n }\n ): Promise => {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n try {\n return await walletCore.signTransaction(\n transactionOrPayload,\n asFeePayer,\n options\n );\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: AptosSignMessageInput\n ): Promise => {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n try {\n return await walletCore?.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: AptosSignMessageInput\n ): Promise => {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n try {\n return await walletCore?.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n // Handle the adapter's connect event\n const handleConnect = (): void => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore?.account || null,\n network: walletCore?.network || null,\n wallet: walletCore?.wallet || null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback((): void => {\n if (!connected) return;\n if (!walletCore?.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore?.account || null,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback((): void => {\n if (!connected) return;\n if (!walletCore?.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore?.network || null,\n };\n });\n }, [connected]);\n\n useEffect(() => {\n if (connected) {\n walletCore?.onAccountChange();\n walletCore?.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's disconnect event\n const handleDisconnect = (): void => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore?.account || null,\n network: walletCore?.network || null,\n wallet: null,\n };\n });\n };\n\n const handleStandardWalletsAdded = (standardWallet: AdapterWallet): void => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n const handleStandardNotDetectedWalletsAdded = (\n notDetectedWallet: AdapterNotDetectedWallet\n ): void => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == notDetectedWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setNotDetectedWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n notDetectedWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setNotDetectedWallets((wallets) => [...wallets, notDetectedWallet]);\n }\n };\n\n useEffect(() => {\n walletCore?.on(\"connect\", handleConnect);\n walletCore?.on(\"accountChange\", handleAccountChange);\n walletCore?.on(\"networkChange\", handleNetworkChange);\n walletCore?.on(\"disconnect\", handleDisconnect);\n walletCore?.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n walletCore?.on(\n \"standardNotDetectedWalletAdded\",\n handleStandardNotDetectedWalletsAdded\n );\n return () => {\n walletCore?.off(\"connect\", handleConnect);\n walletCore?.off(\"accountChange\", handleAccountChange);\n walletCore?.off(\"networkChange\", handleNetworkChange);\n walletCore?.off(\"disconnect\", handleDisconnect);\n walletCore?.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n walletCore?.off(\n \"standardNotDetectedWalletAdded\",\n handleStandardNotDetectedWalletsAdded\n );\n };\n }, [wallets, account]);\n return (\n \n {children}\n \n );\n};\n","import { useContext } from \"react\";\nimport {\n AccountAuthenticator,\n AccountInfo,\n AdapterWallet,\n AnyRawTransaction,\n AptosSignAndSubmitTransactionOutput,\n AptosSignTransactionOutputV1_1,\n InputGenerateTransactionOptions,\n InputTransactionData,\n NetworkInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AdapterNotDetectedWallet,\n} from \"@aptos-labs/wallet-adapter-core-new\";\nimport { createContext } from \"react\";\n\nexport interface WalletContextStateNew {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: string): void;\n signAndSubmitTransaction(\n transaction: InputTransactionData\n ): Promise;\n signTransaction(\n transaction: AnyRawTransaction | InputTransactionData,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions & {\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n }\n ): Promise;\n signMessage(message: AptosSignMessageInput): Promise;\n signMessageAndVerify(message: AptosSignMessageInput): Promise;\n disconnect(): void;\n wallet: AdapterWallet | null;\n wallets: ReadonlyArray;\n notDetectedWallets: ReadonlyArray;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContextNew = createContext(\n DEFAULT_CONTEXT as WalletContextStateNew\n);\n\nexport function useWalletNew(): WalletContextStateNew {\n const context = useContext(WalletContextNew);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import {\n Dispatch,\n ForwardRefExoticComponent,\n ReactNode,\n RefAttributes,\n SVGProps,\n SetStateAction,\n createContext,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport { LinkGraphic } from \"../graphics/LinkGraphic\";\nimport { WalletGraphic } from \"../graphics/WalletGraphic\";\nimport { Web3Graphic } from \"../graphics/Web3Graphic\";\nimport { HeadlessComponentProps, createHeadlessComponent } from \"./utils\";\n\nexport const EXPLORE_ECOSYSTEM_URL =\n \"https://aptosfoundation.org/ecosystem/projects/all\";\n\nconst AboutAptosConnectContext = createContext<{\n screenIndex: number;\n setScreenIndex: Dispatch>;\n} | null>(null);\n\nfunction useAboutAptosConnectContext(displayName: string) {\n const context = useContext(AboutAptosConnectContext);\n\n if (!context) {\n throw new Error(\n `\\`${displayName}\\` must be used within \\`AboutAptosConnect\\``\n );\n }\n\n return context;\n}\n\nconst educationScreens = [\n {\n Graphic: LinkGraphic,\n Title: createHeadlessComponent(\"EducationScreen.Title\", \"h3\", {\n children: \"A better way to login.\",\n }),\n Description: createHeadlessComponent(\"EducationScreen.Description\", \"p\", {\n children:\n \"Aptos Connect is a web3 wallet that uses a Social Login to create accounts on the Aptos blockchain.\",\n }),\n },\n {\n Graphic: WalletGraphic,\n Title: createHeadlessComponent(\"EducationScreen.Title\", \"h2\", {\n children: \"What is a wallet?\",\n }),\n Description: createHeadlessComponent(\"EducationScreen.Description\", \"p\", {\n children:\n \"Wallets are a secure way to send, receive, and interact with digital assets like cryptocurrencies & NFTs.\",\n }),\n },\n {\n Graphic: Web3Graphic,\n Title: createHeadlessComponent(\"EducationScreen.Title\", \"h2\", {\n children: \"Explore more of web3.\",\n }),\n Description: createHeadlessComponent(\"EducationScreen.Description\", \"p\", {\n children: (\n <>\n Aptos Connect lets you take one account across any application built\n on Aptos.{\" \"}\n \n Explore the ecosystem\n \n .\n \n ),\n }),\n },\n];\n\nconst educationScreenIndicators = Array(educationScreens.length)\n .fill(null)\n .map((_, index) =>\n createHeadlessComponent(\n \"AboutAptosConnect.ScreenIndicator\",\n \"button\",\n (displayName) => {\n const context = useAboutAptosConnectContext(displayName);\n const isActive = context.screenIndex - 1 === index;\n\n return {\n \"aria-label\": `Go to screen ${index + 1}`,\n \"aria-current\": isActive ? \"step\" : undefined,\n \"data-active\": isActive || undefined,\n onClick: () => {\n context.setScreenIndex(index + 1);\n },\n };\n }\n )\n );\n\nexport interface AboutAptosConnectEducationScreen {\n /** A component that renders an SVG to illustrate the idea of the current screen. */\n Graphic: ForwardRefExoticComponent<\n Omit, \"ref\"> & RefAttributes\n >;\n /** A headless component that renders the title of the current screen. */\n Title: ForwardRefExoticComponent<\n HeadlessComponentProps & RefAttributes\n >;\n /** A headless component that renders the description text of the current screen. */\n Description: ForwardRefExoticComponent<\n HeadlessComponentProps & RefAttributes\n >;\n /** The index of the current education screen. */\n screenIndex: number;\n /** The total number of education screens. */\n totalScreens: number;\n /**\n * An array of headless components for indicating the current screen of the set.\n * Each indicator will navigate the user to the screen it represents when clicked.\n */\n screenIndicators: typeof educationScreenIndicators;\n /**\n * A function that navigates the user to the previous education screen.\n * If the user is on the first education screen, they will be navigated to the\n * initial wallet selection screen.\n */\n back: () => void;\n /**\n * A function that navigates the user to the next education screen.\n * If the user is on the last education screen, they will be navigated to the\n * initial wallet selection screen.\n */\n next: () => void;\n /** A function that navigates the user to the initial wallet selection screen. */\n cancel: () => void;\n}\n\nexport interface AboutAptosConnectProps {\n /**\n * A function for defining how each education screen should be rendered.\n * Each screen is modeled as a uniform set of headless components and utilities\n * that allow you to construct your UI and apply your own styles.\n */\n renderEducationScreen: (\n screen: AboutAptosConnectEducationScreen\n ) => ReactNode;\n /**\n * The initial wallet selection UI that will be replaced by the education\n * screens when `AboutAptosConnect.Trigger` is clicked.\n */\n children?: ReactNode;\n}\n\nconst Root = ({ renderEducationScreen, children }: AboutAptosConnectProps) => {\n const [screenIndex, setScreenIndex] = useState(0);\n\n const currentEducationScreen: AboutAptosConnectEducationScreen = useMemo(\n () =>\n educationScreens.map((screen, i) => ({\n ...screen,\n screenIndex: i,\n totalScreens: educationScreens.length,\n screenIndicators: educationScreenIndicators,\n back: () => {\n setScreenIndex(screenIndex - 1);\n },\n next: () => {\n setScreenIndex(\n screenIndex === educationScreens.length ? 0 : screenIndex + 1\n );\n },\n cancel: () => {\n setScreenIndex(0);\n },\n }))[screenIndex - 1],\n [screenIndex]\n );\n\n return (\n \n {screenIndex === 0\n ? children\n : renderEducationScreen(currentEducationScreen)}\n \n );\n};\nRoot.displayName = \"AboutAptosConnect\";\n\nconst Trigger = createHeadlessComponent(\n \"AboutAptosConnect.Trigger\",\n \"button\",\n (displayName) => {\n const context = useAboutAptosConnectContext(displayName);\n\n return {\n onClick: () => {\n context.setScreenIndex(1);\n },\n };\n }\n);\n\n/**\n * A headless component for rendering education screens that explain the basics\n * of Aptos Connect and web3 wallets.\n */\nexport const AboutAptosConnect = Object.assign(Root, {\n Trigger,\n});\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const LinkGraphic = forwardRef>(\n (props, ref) => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n }\n);\nLinkGraphic.displayName = \"LinkGraphic\";\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const WalletGraphic = forwardRef>(\n (props, ref) => {\n return (\n \n \n \n \n \n \n \n );\n }\n);\nWalletGraphic.displayName = \"WalletGraphic\";\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const Web3Graphic = forwardRef>(\n (props, ref) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n);\nWeb3Graphic.displayName = \"Web3Graphic\";\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { ReactNode, cloneElement, forwardRef, isValidElement } from \"react\";\n\nexport interface HeadlessComponentProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Gets an HTML element type from its tag name\n * @example\n * HTMLElementFromTag<\"img\"> // resolved type: HTMLImageElement\n */\ntype HTMLElementFromTag =\n JSX.IntrinsicElements[T] extends React.ClassAttributes\n ? Element\n : HTMLElement;\n\nexport function createHeadlessComponent<\n TElement extends keyof JSX.IntrinsicElements,\n>(\n displayName: string,\n elementType: TElement,\n props?:\n | JSX.IntrinsicElements[TElement]\n | ((displayName: string) => JSX.IntrinsicElements[TElement]),\n) {\n const component = forwardRef<\n HTMLElementFromTag,\n HeadlessComponentProps\n >(({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : elementType;\n\n const { children: defaultChildren, ...resolvedProps } =\n typeof props === \"function\" ? props(displayName) : props ?? {};\n const resolvedChildren =\n /**\n * Use props' default children if no children are set in the component element's children and when asChild is true.\n */\n asChild && isValidElement(children) && !children.props.children\n ? cloneElement(children, {}, defaultChildren)\n : (children ?? defaultChildren);\n\n return (\n /**\n * Due to the complexity of the types at play, TypeScript reports the\n * following error for our JSX below:\n *\n * `Expression produces a union type that is too complex to represent.`\n *\n * We can safely ignore this error and retain accurate return types for\n * consumers of this function. The only drawback is that type-checking is\n * ignored for the JSX block below.\n */\n // @ts-expect-error\n \n {resolvedChildren}\n \n );\n });\n component.displayName = displayName;\n\n return component;\n}\n","import { forwardRef } from \"react\";\nimport { SmallAptosLogo } from \"../graphics/SmallAptosLogo\";\nimport { HeadlessComponentProps, createHeadlessComponent } from \"./utils\";\n\nexport const APTOS_PRIVACY_POLICY_URL = \"https://aptoslabs.com/privacy\";\n\nconst Root = createHeadlessComponent(\"AptosPrivacyPolicy.Root\", \"div\");\n\nconst Disclaimer = createHeadlessComponent(\n \"AptosPrivacyPolicy.Disclaimer\",\n \"span\",\n { children: \"By continuing, you agree to Aptos Labs'\" }\n);\n\nconst Link = createHeadlessComponent(\"AptosPrivacyPolicy.Disclaimer\", \"a\", {\n href: APTOS_PRIVACY_POLICY_URL,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: \"Privacy Policy\",\n});\n\nconst PoweredBy = forwardRef<\n HTMLDivElement,\n Pick\n>(({ className }, ref) => {\n return (\n
\n Powered by\n \n Aptos Labs\n
\n );\n});\nPoweredBy.displayName = \"AptosPrivacyPolicy.PoweredBy\";\n\n/**\n * A headless component for rendering the Aptos Labs privacy policy disclaimer\n * that should be placed under the Aptos Connect login options.\n */\nexport const AptosPrivacyPolicy = Object.assign(Root, {\n Disclaimer,\n Link,\n PoweredBy,\n});\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const SmallAptosLogo = forwardRef<\n SVGSVGElement,\n SVGProps\n>((props, ref) => {\n return (\n \n \n \n );\n});\nSmallAptosLogo.displayName = \"SmallAptosLogo\";\n","import {\n AdapterNotDetectedWallet,\n AdapterWallet,\n WalletReadyState,\n isMobile,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core-new\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { createContext, forwardRef, useCallback, useContext } from \"react\";\nimport { useWalletNew } from \"../useWalletNew\";\nimport { HeadlessComponentProps, createHeadlessComponent } from \"./utils\";\n\nexport interface WalletItemProps extends HeadlessComponentProps {\n /** The wallet option to be displayed. */\n wallet: AdapterWallet | AdapterNotDetectedWallet;\n /** A callback to be invoked when the wallet is connected. */\n onConnect?: () => void;\n}\n\nfunction useWalletItemContext(displayName: string) {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(`\\`${displayName}\\` must be used within \\`WalletItem\\``);\n }\n\n return context;\n}\n\nconst WalletItemContext = createContext<{\n wallet: AdapterWallet | AdapterNotDetectedWallet;\n connectWallet: () => void;\n} | null>(null);\n\nconst Root = forwardRef(\n ({ wallet, onConnect, className, asChild, children }, ref) => {\n const { connect } = useWalletNew();\n\n const connectWallet = useCallback(() => {\n connect(wallet.name);\n onConnect?.();\n }, [connect, wallet.name, onConnect]);\n\n const isWalletReady = wallet.readyState === WalletReadyState.Installed;\n\n const mobileSupport =\n \"features\" in wallet &&\n \"aptos:openInMobileApp\" in (wallet as AdapterWallet).features &&\n (wallet as AdapterWallet).features[\"aptos:openInMobileApp\"]\n ?.openInMobileApp;\n\n if (isMobile()) {\n if (!isWalletReady && isRedirectable() && !mobileSupport) return null;\n }\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n \n \n {children}\n \n \n );\n }\n);\nRoot.displayName = \"WalletItem\";\n\nconst Icon = createHeadlessComponent(\n \"WalletItem.Icon\",\n \"img\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n src: context.wallet.icon,\n alt: `${context.wallet.name} icon`,\n };\n }\n);\n\nconst Name = createHeadlessComponent(\n \"WalletItem.Name\",\n \"div\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n children: context.wallet.name,\n };\n }\n);\n\nconst ConnectButton = createHeadlessComponent(\n \"WalletItem.ConnectButton\",\n \"button\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n onClick: context.connectWallet,\n children: \"Connect\",\n };\n }\n);\n\nconst InstallLink = createHeadlessComponent(\n \"WalletItem.InstallLink\",\n \"a\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n href: context.wallet.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: \"Install\",\n };\n }\n);\n\n/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */\nexport const WalletItem = Object.assign(Root, {\n Icon,\n Name,\n ConnectButton,\n InstallLink,\n});\n"],"mappings":"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","names":["walletCore","wallet","wallets","createContext","useContext","useState","jsx","forwardRef","jsx","jsxs","forwardRef","jsx","jsxs","forwardRef","jsx","jsx","jsxs","createContext","useContext","useState","forwardRef","forwardRef","jsx","jsx","jsxs","Root","forwardRef","Slot","createContext","forwardRef","useCallback","useContext","jsx","useContext","createContext","Root","forwardRef","useCallback","Slot"]} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/useWalletNew.d.ts b/packages/wallet-adapter-react-new/dist/useWalletNew.d.ts new file mode 100644 index 00000000..ea297f74 --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/useWalletNew.d.ts @@ -0,0 +1,23 @@ +/// +import { AccountAuthenticator, AccountInfo, AdapterWallet, AnyRawTransaction, AptosSignAndSubmitTransactionOutput, AptosSignTransactionOutputV1_1, InputGenerateTransactionOptions, InputTransactionData, NetworkInfo, AptosSignMessageInput, AptosSignMessageOutput, AdapterNotDetectedWallet } from "@aptos-labs/wallet-adapter-core-new"; +export interface WalletContextStateNew { + connected: boolean; + isLoading: boolean; + account: AccountInfo | null; + network: NetworkInfo | null; + connect(walletName: string): void; + signAndSubmitTransaction(transaction: InputTransactionData): Promise; + signTransaction(transaction: AnyRawTransaction | InputTransactionData, asFeePayer?: boolean, options?: InputGenerateTransactionOptions & { + expirationSecondsFromNow?: number; + expirationTimestamp?: number; + }): Promise; + signMessage(message: AptosSignMessageInput): Promise; + signMessageAndVerify(message: AptosSignMessageInput): Promise; + disconnect(): void; + wallet: AdapterWallet | null; + wallets: ReadonlyArray; + notDetectedWallets: ReadonlyArray; +} +export declare const WalletContextNew: import("react").Context; +export declare function useWalletNew(): WalletContextStateNew; +//# sourceMappingURL=useWalletNew.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/useWalletNew.d.ts.map b/packages/wallet-adapter-react-new/dist/useWalletNew.d.ts.map new file mode 100644 index 00000000..0f90b0ac --- /dev/null +++ b/packages/wallet-adapter-react-new/dist/useWalletNew.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useWalletNew.d.ts","sourceRoot":"","sources":["../src/useWalletNew.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,mCAAmC,EACnC,8BAA8B,EAC9B,+BAA+B,EAC/B,oBAAoB,EACpB,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,qCAAqC,CAAC;AAG7C,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,wBAAwB,CACtB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAChD,eAAe,CACb,WAAW,EAAE,iBAAiB,GAAG,oBAAoB,EACrD,UAAU,CAAC,EAAE,OAAO,EACpB,OAAO,CAAC,EAAE,+BAA+B,GAAG;QAC1C,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,GACA,OAAO,CAAC,oBAAoB,GAAG,8BAA8B,CAAC,CAAC;IAClE,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7E,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,UAAU,IAAI,IAAI,CAAC;IACnB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACtC,kBAAkB,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;CAC7D;AAMD,eAAO,MAAM,gBAAgB,gDAE5B,CAAC;AAEF,wBAAgB,YAAY,IAAI,qBAAqB,CAMpD"} \ No newline at end of file diff --git a/packages/wallet-adapter-swap/.eslintrc.js b/packages/wallet-adapter-swap/.eslintrc.js new file mode 100644 index 00000000..9ca9f6a5 --- /dev/null +++ b/packages/wallet-adapter-swap/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ["@aptos-labs/eslint-config-adapter"], +}; diff --git a/packages/wallet-adapter-swap/.gitignore b/packages/wallet-adapter-swap/.gitignore new file mode 100644 index 00000000..53c37a16 --- /dev/null +++ b/packages/wallet-adapter-swap/.gitignore @@ -0,0 +1 @@ +dist \ No newline at end of file diff --git a/packages/wallet-adapter-swap/.npmignore b/packages/wallet-adapter-swap/.npmignore new file mode 100644 index 00000000..1087c0ce --- /dev/null +++ b/packages/wallet-adapter-swap/.npmignore @@ -0,0 +1,4 @@ +node_modules +.turbo +.eslintrc.js +tsconfig.json \ No newline at end of file diff --git a/packages/wallet-adapter-swap/CHANGELOG.md b/packages/wallet-adapter-swap/CHANGELOG.md new file mode 100644 index 00000000..2c8be190 --- /dev/null +++ b/packages/wallet-adapter-swap/CHANGELOG.md @@ -0,0 +1,687 @@ +# @aptos-labs/wallet-adapter-swap + +## 3.7.9 + +### Patch Changes + +- Updated dependencies [80a3c8a] + - @aptos-labs/wallet-adapter-core@4.23.0 + +## 3.7.8 + +### Patch Changes + +- Updated dependencies [af7c080] + - @aptos-labs/wallet-adapter-core@4.22.2 + +## 3.7.7 + +### Patch Changes + +- ca1dc8e: Bump all packages version to fix broken previous version +- Updated dependencies [ca1dc8e] + - @aptos-labs/wallet-adapter-core@4.22.1 + +## 3.7.6 + +### Patch Changes + +- Updated dependencies + - @aptos-labs/wallet-adapter-core@4.22.0 + +## 3.7.5 + +### Patch Changes + +- Updated dependencies [6915184] +- Updated dependencies + - @aptos-labs/wallet-adapter-core@4.21.0 + +## 3.7.4 + +### Patch Changes + +- Updated dependencies [f5ba2f2] + - @aptos-labs/wallet-adapter-core@4.20.0 + +## 3.7.3 + +### Patch Changes + +- Updated dependencies [66ad437] + - @aptos-labs/wallet-adapter-core@4.19.0 + +## 3.7.2 + +### Patch Changes + +- Updated dependencies [737bd2b] +- Updated dependencies [f9ecf18] + - @aptos-labs/wallet-adapter-core@4.18.1 + +## 3.7.1 + +### Patch Changes + +- Updated dependencies [67440bf] +- Updated dependencies [bde8112] + - @aptos-labs/wallet-adapter-core@4.18.0 + +## 3.7.0 + +### Minor Changes + +- e252fce: Add support for a dapp generated api key + +### Patch Changes + +- Updated dependencies [d348384] +- Updated dependencies [e252fce] +- Updated dependencies [bd54d77] + - @aptos-labs/wallet-adapter-core@4.17.0 + +## 3.6.2 + +### Patch Changes + +- Updated dependencies [3795c56] + - @aptos-labs/wallet-adapter-core@4.16.0 + +## 3.6.1 + +### Patch Changes + +- Updated dependencies [3419043] +- Updated dependencies [ee95b8b] + - @aptos-labs/wallet-adapter-core@4.15.1 + +## 3.6.0 + +### Minor Changes + +- a2391db: Support a boolean flag to disable the adapter telemetry tool + +### Patch Changes + +- Updated dependencies [a2391db] +- Updated dependencies [92f7187] + - @aptos-labs/wallet-adapter-core@4.15.0 + +## 3.5.10 + +### Patch Changes + +- Updated dependencies [0e37588] +- Updated dependencies [4240f8b] + - @aptos-labs/wallet-adapter-core@4.14.0 + +## 3.5.9 + +### Patch Changes + +- Updated dependencies [754f6e1] +- Updated dependencies [754f6e1] + - @aptos-labs/wallet-adapter-core@4.13.2 + +## 3.5.8 + +### Patch Changes + +- Updated dependencies [ae2351b] + - @aptos-labs/wallet-adapter-core@4.13.1 + +## 3.5.7 + +### Patch Changes + +- Updated dependencies [74f99d2] +- Updated dependencies [3d9ae51] + - @aptos-labs/wallet-adapter-core@4.13.0 + +## 3.5.6 + +### Patch Changes + +- Updated dependencies [4fd4527] + - @aptos-labs/wallet-adapter-core@4.12.1 + +## 3.5.5 + +### Patch Changes + +- Updated dependencies [d9ce63d] + - @aptos-labs/wallet-adapter-core@4.12.0 + +## 3.5.4 + +### Patch Changes + +- Updated dependencies [0b7d07f] + - @aptos-labs/wallet-adapter-core@4.11.1 + +## 3.5.3 + +### Patch Changes + +- 91fe52c: Corrected a typo in the last education screen of the `AboutAptosConnect` component. + +## 3.5.2 + +### Patch Changes + +- Updated dependencies [f1fb4a5] + - @aptos-labs/wallet-adapter-core@4.11.0 + +## 3.5.1 + +### Patch Changes + +- Updated dependencies [249331f] +- Updated dependencies [6bfeb14] +- Updated dependencies [ed4f483] + - @aptos-labs/wallet-adapter-core@4.10.0 + +## 3.5.0 + +### Minor Changes + +- 96df1f7: Added `AboutAptosConnect` headless component for building Aptos Connect education screens. +- f23cf43: Fix adapter event communication + +### Patch Changes + +- Updated dependencies [96df1f7] +- Updated dependencies [f23cf43] + - @aptos-labs/wallet-adapter-core@4.9.0 + +## 3.4.3 + +### Patch Changes + +- Updated dependencies [79a0212] + - @aptos-labs/wallet-adapter-core@4.8.2 + +## 3.4.2 + +### Patch Changes + +- cbbbe23: Added Dapp id to dappConfig +- Updated dependencies [1644cfc] +- Updated dependencies [cbbbe23] + - @aptos-labs/wallet-adapter-core@4.8.1 + +## 3.4.1 + +### Patch Changes + +- 0bdbb0d: Fixed the SVG attributes for the graphic of the Aptos logo. + +## 3.4.0 + +### Minor Changes + +- 6bec234: Added `AptosPrivacyPolicy` headless component for building the privacy policy disclaimer that should be displayed below Aptos Connect login options. + +## 3.3.1 + +### Patch Changes + +- Updated dependencies [e3df2db] +- Updated dependencies [1580df8] + - @aptos-labs/wallet-adapter-core@4.8.0 + +## 3.3.0 + +### Minor Changes + +- 07ee265: Support dappConfig user prop to set SDK wallets configuration + +### Patch Changes + +- Updated dependencies [07ee265] + - @aptos-labs/wallet-adapter-core@4.7.0 + +## 3.2.0 + +### Minor Changes + +- 2e9b7df: Added `getAptosConnectWallets` utility function + +### Patch Changes + +- Updated dependencies [0672ff4] + - @aptos-labs/wallet-adapter-core@4.6.0 + +## 3.1.1 + +### Patch Changes + +- Updated dependencies [c1a9f41] + - @aptos-labs/wallet-adapter-core@4.5.0 + +## 3.1.0 + +### Minor Changes + +- 2e9c156: Added `partitionWallets`, `isInstalledOrLoadable`, `isInstallRequired`, and `truncateAddress` utility functions to make it easier to implement custom wallet selectors. +- 2e9c156: Added `WalletItem` headless component for implementing custom wallet selectors. + +### Patch Changes + +- 2e9c156: Fixed a bug where `WalletProvider` would not automatically attempt to reconnect the wallet when the `autoConnect` is set to true after the initial render. +- Updated dependencies [2e9c156] + - @aptos-labs/wallet-adapter-core@4.4.0 + +## 3.0.7 + +### Patch Changes + +- Updated dependencies [79b1bf8] +- Updated dependencies [9566c50] + - @aptos-labs/wallet-adapter-core@4.3.0 + +## 3.0.6 + +### Patch Changes + +- Updated dependencies [4db7a8d] + - @aptos-labs/wallet-adapter-core@4.2.1 + +## 3.0.5 + +### Patch Changes + +- Updated dependencies [9f94e4d] + - @aptos-labs/wallet-adapter-core@4.2.0 + +## 3.0.4 + +### Patch Changes + +- Updated dependencies [cc4021b] +- Updated dependencies [ec6cb0c] + - @aptos-labs/wallet-adapter-core@4.1.3 + +## 3.0.3 + +### Patch Changes + +- Updated dependencies [1ff5230] + - @aptos-labs/wallet-adapter-core@4.1.2 + +## 3.0.2 + +### Patch Changes + +- 6e152e4: Revert Support account prop to be of AIP-62 AccountInfo type +- Updated dependencies [6e152e4] + - @aptos-labs/wallet-adapter-core@4.1.1 + +## 3.0.1 + +### Patch Changes + +- Updated dependencies [3ed84cd] + - @aptos-labs/wallet-adapter-core@4.1.0 + +## 3.0.0 + +### Major Changes + +- 2c826a4: Support account prop to be of AIP-62 AccountInfo type + +### Patch Changes + +- Updated dependencies [2c826a4] + - @aptos-labs/wallet-adapter-core@4.0.0 + +## 2.5.1 + +### Patch Changes + +- Updated dependencies [6a58c61] + - @aptos-labs/wallet-adapter-core@3.16.0 + +## 2.5.0 + +### Minor Changes + +- 4832532: Wallets opt-in support + +### Patch Changes + +- Updated dependencies [4832532] + - @aptos-labs/wallet-adapter-core@3.15.0 + +## 2.4.0 + +### Minor Changes + +- ef53f38: AIP-62 standard compatible wallet registry list + +### Patch Changes + +- Updated dependencies [69b6101] +- Updated dependencies [870ee0c] +- Updated dependencies [ef53f38] + - @aptos-labs/wallet-adapter-core@3.14.0 + +## 2.3.7 + +### Patch Changes + +- Updated dependencies [19f4fdd] + - @aptos-labs/wallet-adapter-core@3.13.0 + +## 2.3.6 + +### Patch Changes + +- 92a1801: Fixed the `useEffect` dependency array for auto-connecting to be `[wallets]` instead of `wallets` +- 106d55c: Export all Interfaces and types +- Updated dependencies [106d55c] + - @aptos-labs/wallet-adapter-core@3.12.1 + +## 2.3.5 + +### Patch Changes + +- Updated dependencies [740e909] +- Updated dependencies [2cc2eb5] +- Updated dependencies [e46b930] + - @aptos-labs/wallet-adapter-core@3.12.0 + +## 2.3.4 + +### Patch Changes + +- Updated dependencies [ec02b10] + - @aptos-labs/wallet-adapter-core@3.11.2 + +## 2.3.3 + +### Patch Changes + +- Updated dependencies [55f9970] + - @aptos-labs/wallet-adapter-core@3.11.1 + +## 2.3.2 + +### Patch Changes + +- Updated dependencies [245ce8d] + - @aptos-labs/wallet-adapter-core@3.11.0 + +## 2.3.1 + +### Patch Changes + +- Updated dependencies [41f9485] + - @aptos-labs/wallet-adapter-core@3.10.0 + +## 2.3.0 + +### Minor Changes + +- 444c708: Fix wallet detection + +### Patch Changes + +- Updated dependencies [6be2a06] + - @aptos-labs/wallet-adapter-core@3.9.0 + +## 2.2.1 + +### Patch Changes + +- Updated dependencies [4127cfb] + - @aptos-labs/wallet-adapter-core@3.8.0 + +## 2.2.0 + +### Minor Changes + +- 4d6e2f6: Add AIP-62 wallet standard support + +### Patch Changes + +- Updated dependencies [4d6e2f6] + - @aptos-labs/wallet-adapter-core@3.7.0 + +## 2.1.8 + +### Patch Changes + +- Updated dependencies [8ebd4c7] + - @aptos-labs/wallet-adapter-core@3.6.0 + +## 2.1.7 + +### Patch Changes + +- Updated dependencies [4ca4201] + - @aptos-labs/wallet-adapter-core@3.5.0 + +## 2.1.6 + +### Patch Changes + +- Updated dependencies [e1e9eb2] + - @aptos-labs/wallet-adapter-core@3.4.0 + +## 2.1.5 + +### Patch Changes + +- Updated dependencies [570cbda] + - @aptos-labs/wallet-adapter-core@3.3.0 + +## 2.1.4 + +### Patch Changes + +- Updated dependencies [3f38c51] + - @aptos-labs/wallet-adapter-core@3.2.1 + +## 2.1.3 + +### Patch Changes + +- Updated dependencies [12163ca] +- Updated dependencies [a6f0e46] + - @aptos-labs/wallet-adapter-core@3.2.0 + +## 2.1.2 + +### Patch Changes + +- a1c08cc: Export missing InputTransactionData type + +## 2.1.1 + +### Patch Changes + +- 6266a29: Consolidate options argument on signAndSubmitTransaction +- Updated dependencies [6266a29] + - @aptos-labs/wallet-adapter-core@3.1.1 + +## 2.1.0 + +### Minor Changes + +- aa3d15a: Make sender optional when sign and submit single signer transaction + +### Patch Changes + +- Updated dependencies [6257015] +- Updated dependencies [aa3d15a] + - @aptos-labs/wallet-adapter-core@3.1.0 + +## 2.0.0 + +### Major Changes + +- 31e0084: Support TypeScript SDK V2. Fully compatible with existing SDK V1 and Wallet Adapter V1 + but with a full SDK V2 support for the dapp. + + - Add support for SDK V2 input types + - `signAndSubmitTransaction()` accept only SDK V2 transaction input type + - Implement a `submitTransaction()` function for multi signers transactions + - `signTransaction()` to support both SDK V1 and V2 versions + - Convert wallet `SignedTransaction` response from `signTransaction()` to TS SDK V2 `AccountAuthenticator` + - Demo app to demonstrate different trnsaction flows - single signer, sponsor and multi agent transactions + - Reject promise on core and/or provider errors instead of just returning `false` + - Use `@aptos-labs/ts-sdk@experimental` version `0.0.7` + +### Patch Changes + +- Updated dependencies [31e0084] + - @aptos-labs/wallet-adapter-core@3.0.0 + +## 1.4.0 + +### Minor Changes + +- 7acfa69: Adding support for the new Typescript SDK in the package `@aptos-labs/ts-sdk`. The wallet adapter now supports submitting a basic transaction with the new SDK types. + +### Patch Changes + +- dd6e1ed: Moves dependencies to peer dependencies as needed +- Updated dependencies [7acfa69] +- Updated dependencies [dd6e1ed] + - @aptos-labs/wallet-adapter-core@2.6.0 + +## 1.3.2 + +### Patch Changes + +- 7e314e5: Update aptos dependency +- Updated dependencies [7e314e5] + - @aptos-labs/wallet-adapter-core@2.5.1 + +## 1.3.1 + +### Patch Changes + +- Updated dependencies [c95933a] + - @aptos-labs/wallet-adapter-core@2.5.0 + +## 1.3.0 + +### Minor Changes + +- 3834890: Add an optional `onError` prop to error handle wallet callbacks + +### Patch Changes + +- Updated dependencies [d2a0bbd] +- Updated dependencies [b0586e8] + - @aptos-labs/wallet-adapter-core@2.4.0 + +## 1.2.3 + +### Patch Changes + +- dc98bf4: fix sendAndSubmitTransaction params +- Updated dependencies [dc98bf4] + - @aptos-labs/wallet-adapter-core@2.3.3 + +## 1.2.2 + +### Patch Changes + +- 22ecf6a: Throw `wallet already connected` error when trying to connect to an already connected wallet +- e4b06de: Await for wallet connect request before setting isLoading state +- Updated dependencies [22ecf6a] + - @aptos-labs/wallet-adapter-core@2.3.2 + +## 1.2.1 + +### Patch Changes + +- Updated dependencies [06f334f] + - @aptos-labs/wallet-adapter-core@2.3.1 + +## 1.2.0 + +### Minor Changes + +- 1605d28: Support ReadonlyArray of Wallets in AptosWalletAdapterProvider and WalletCore + +### Patch Changes + +- Updated dependencies [bb1595e] +- Updated dependencies [1605d28] + - @aptos-labs/wallet-adapter-core@2.3.0 + +## 1.1.0 + +### Minor Changes + +- d8d5a8a: Support deeplink on React Provider and Nextjs demo app + +## 1.0.6 + +### Patch Changes + +- Updated dependencies [814939c] + - @aptos-labs/wallet-adapter-core@2.2.0 + +## 1.0.5 + +### Patch Changes + +- 56a3f9f: BCS transaction support in react provider package + +## 1.0.4 + +### Patch Changes + +- 8dea640: Fix wallet adapter auto reconnect on page refresh +- Updated dependencies [50968c4] +- Updated dependencies [8dea640] + - @aptos-labs/wallet-adapter-core@2.1.0 + +## 1.0.3 + +### Patch Changes + +- 03eb0f5: Define core package version to use + +## 0.2.4 + +### Patch Changes + +- e03f79c: Update Blocto and Martian package version and fix a minor autoConnect bug + +## 0.2.3 + +### Patch Changes + +- 7498973: Support Loadable wallet for ant-design and export NetworkName + +## 0.2.2 + +### Patch Changes + +- 552d255: Add react package as a dependency + +## 0.2.1 + +### Patch Changes + +- c3eb031: Export WalletReadyState enum from react package + +## 0.2.0 + +### Minor Changes + +- 6e53116: Add support to verify a signed message + +### Patch Changes + +- Updated dependencies [18a0429] +- Updated dependencies [42e29f6] +- Updated dependencies [576bb57] +- Updated dependencies [6e53116] + - @aptos-labs/wallet-adapter-core@0.2.0 diff --git a/packages/wallet-adapter-swap/README.md b/packages/wallet-adapter-swap/README.md new file mode 100644 index 00000000..c137dbc5 --- /dev/null +++ b/packages/wallet-adapter-swap/README.md @@ -0,0 +1,283 @@ +> **_NOTE:_** This documentation is for Wallet Adapter `v2.0.0` and up that is fully compatible with the Aptos TypeScript SDK V2. For Wallet Adapter `v^1.*.*` refer to [this guide](./READMEV1.md) + +# Wallet Adapter React Provider + +A react provider wrapper for the Aptos Wallet Adapter + +Dapps that want to use the adapter should install this package and other supported wallet packages. + +### Support + +The react provider supports all [wallet standard](https://aptos.dev/integration/wallet-adapter-for-wallets#aip-62-wallet-standard) functions and feature functions + +##### Standard functions + +``` +connect +disconnect +connected +account +network +signAndSubmitTransaction +signMessage +``` + +##### Feature functions - functions that may not be supported by all wallets + +``` +signTransaction +signMessageAndVerify +signAndSubmitBCSTransaction +submitTransaction +``` + +### Usage + +#### Install Dependencies + +Install wallet dependencies you want to include in your app. +To do that, you can look at our [supported wallets list](https://github.com/aptos-labs/aptos-wallet-adapter#supported-wallet-packages). Each wallet is a link to npm package where you can install it from. + +Next, install the `@aptos-labs/wallet-adapter-react` + +``` +pnpm i @aptos-labs/wallet-adapter-react +``` + +using npm + +``` +npm i @aptos-labs/wallet-adapter-react +``` + +#### Import dependencies + +On the `App.jsx` file, + +Import the installed wallets. + +```js +import { SomeAptosWallet } from "some-aptos-wallet-package"; +``` + +Import the `AptosWalletAdapterProvider`. + +```js +import { AptosWalletAdapterProvider } from "@aptos-labs/wallet-adapter-react"; +``` + +Wrap your app with the Provider, pass it the relevant props. + +```js +const wallets = [new AptosLegacyStandardWallet()]; + + { + console.log("error", error); + }} +> + +; +``` + +#### Available Provider Props + +- `dappConfig` - Config used to initialize the dapp with. + - `network` - the network the dapp works with + - `aptosApiKey` - an api key generated from https://developers.aptoslabs.com/docs/api-access +- `onError` - a callback function to fire when the adapter throws an error +- `plugins` - any legacy standard wallet, i.e a wallet that is not AIP-62 standard compatible, should be installed and passed in this array. [Check here](../../README.md#supported-wallet-packages) for a list of AIP-62 and legacy standard wallets. +- `autoConnect` - a prop indicates whether the dapp should auto connect with a previous connected wallet. +- `optInWallets` - the adapter detects and adds AIP-62 standard wallets by default, sometimes you might want to opt-in with specific wallets. This props lets you define the AIP-62 standard wallets you want to support in your dapp. +- `disableTelemetry` - A boolean flag to disable the adapter telemetry tool, false by default + +#### Use Wallet + +On any page you want to use the wallet props, import `useWallet` from `@aptos-labs/wallet-adapter-react` + +```js +import { useWallet } from "@aptos-labs/wallet-adapter-react"; +``` + +Then you can use the exported properties + +```js +const { + connect, + account, + network, + connected, + disconnect, + wallet, + wallets, + signAndSubmitTransaction, + signAndSubmitBCSTransaction, + signTransaction, + signMessage, + signMessageAndVerify, +} = useWallet(); +``` + +### Use a UI package (recommended) + +As part of the wallet adapter repo we provide a wallet connect UI package that provides a wallet connect button and a wallet select modal. + +The available UI Packages are + +- [shadcn/ui](../../apps/nextjs-example/README.md#use-shadcnui-wallet-selector-for-your-own-app) +- [Ant Design](<(../wallet-adapter-ant-design/)>) +- [MUI](../wallet-adapter-mui-design/) + +If you want to create your own wallet selector UI from existing components and styles in your app, `@aptos-labs/wallet-adapter-react` provides a series of headless components and utilities to simplify this process so that you can focus on writing CSS instead of implementing business logic. For more information, check out the [Building Your Own Wallet Selector](./docs/BYO-wallet-selector.md) document. + +#### Examples + +##### Initialize Aptos + +```js +const aptosConfig = new AptosConfig({ network: Network.MAINNET }); +const aptos = new Aptos(aptosConfig); +``` + +##### connect(walletName) + +```js +const onConnect = async (walletName) => { + await connect(walletName); +}; + +; +``` + +##### disconnect() + +```js + +``` + +##### signAndSubmitTransaction(payload) + +```js +const onSignAndSubmitTransaction = async () => { + const response = await signAndSubmitTransaction({ + sender: account.address, + data: { + function: "0x1::coin::transfer", + typeArguments: ["0x1::aptos_coin::AptosCoin"], + functionArguments: [account.address, 1], + }, + }); + // if you want to wait for transaction + try { + await aptos.waitForTransaction({ transactionHash: response.hash }); + } catch (error) { + console.error(error); + } +}; + +; +``` + +##### signAndSubmitBCSTransaction(payload) + +```js +const onSignAndSubmitBCSTransaction = async () => { + const response = await signAndSubmitTransaction({ + sender: account.address, + data: { + function: "0x1::coin::transfer", + typeArguments: [parseTypeTag(APTOS_COIN)], + functionArguments: [AccountAddress.from(account.address), new U64(1)], + }, + }); + // if you want to wait for transaction + try { + await aptos.waitForTransaction({ transactionHash: response.hash }); + } catch (error) { + console.error(error); + } +}; + +; +``` + +##### signMessage(payload) + +```js +const onSignMessage = async () => { + const payload = { + message: "Hello from Aptos Wallet Adapter", + nonce: "random_string", + }; + const response = await signMessage(payload); +}; + +; +``` + +##### Account + +```js +
{account?.address}
+
{account?.publicKey}
+``` + +##### Network + +```js +
{network?.name}
+``` + +##### Wallet + +```js +
{wallet?.name}
+
{wallet?.icon}
+
{wallet?.url}
+``` + +##### Wallets + +```js +{ + wallets.map((wallet) =>

{wallet.name}

); +} +``` + +##### signTransaction(payload) + +```js +const onSignTransaction = async () => { + const payload = { + type: "entry_function_payload", + function: "0x1::coin::transfer", + type_arguments: ["0x1::aptos_coin::AptosCoin"], + arguments: [account?.address, 1], // 1 is in Octas + }; + const response = await signTransaction(payload); +}; + +; +``` + +##### signMessageAndVerify(payload) + +```js +const onSignMessageAndVerify = async () => { + const payload = { + message: "Hello from Aptos Wallet Adapter", + nonce: "random_string", + }; + const response = await signMessageAndVerify(payload); +}; + +; +``` diff --git a/packages/wallet-adapter-swap/components.json b/packages/wallet-adapter-swap/components.json new file mode 100644 index 00000000..96719649 --- /dev/null +++ b/packages/wallet-adapter-swap/components.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/globals.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/ui" + } +} diff --git a/packages/wallet-adapter-swap/package.json b/packages/wallet-adapter-swap/package.json new file mode 100644 index 00000000..a58c6fc2 --- /dev/null +++ b/packages/wallet-adapter-swap/package.json @@ -0,0 +1,91 @@ +{ + "name": "@aptos-labs/wallet-adapter-swap", + "version": "3.7.9", + "description": "Aptos Wallet Adapter Swap", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "license": "Apache-2.0", + "exports": { + "require": "./dist/index.js", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + }, + "repository": { + "type": "git", + "url": "https://github.com/aptos-labs/aptos-wallet-adapter.git" + }, + "homepage": "https://github.com/aptos-labs/aptos-wallet-adapter", + "bugs": { + "url": "https://github.com/aptos-labs/aptos-wallet-adapter/issues" + }, + "author": "aptoslabs.com", + "keywords": [ + "Aptos", + "Aptos Labs", + "Wallet", + "Swap", + "Wallet Adapter", + "Wallet Adapter Provider", + "React" + ], + "scripts": { + "build:bundle": "tsup src/index.tsx --format esm,cjs --sourcemap", + "build:declarations": "tsc --emitDeclarationOnly --declaration --declarationMap", + "build": "pnpm build:bundle", + "dev": "tsup src/index.tsx --format esm,cjs --watch", + "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", + "lint": "TIMING=1 eslint \"src/**/*.ts*\"" + }, + "devDependencies": { + "@aptos-labs/wallet-adapter-tsconfig": "workspace:*", + "@types/node": "^20", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "eslint": "^8.15.0", + "tailwindcss": "^3.4.1", + "tsup": "^5.10.1", + "typescript": "^4.5.3" + }, + "dependencies": { + "@aptos-labs/ts-sdk": "^1.33.2", + "@aptos-labs/wallet-adapter-core": "workspace:*", + "@radix-ui/react-collapsible": "^1.0.3", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-dropdown-menu": "^2.0.6", + "@radix-ui/react-icons": "^1.3.2", + "@radix-ui/react-progress": "^1.1.1", + "@radix-ui/react-select": "^2.1.5", + "@radix-ui/react-slot": "^1.0.2", + "@radix-ui/react-toast": "^1.1.5", + "@solana/web3.js": "^1.95.8", + "@wallet-standard/react-core": "^1.0.0", + "@wormhole-foundation/sdk": "1.5.2", + "@wormhole-foundation/sdk-aptos": "^1.5.2", + "@wormhole-foundation/sdk-evm": "^1.5.2", + "@wormhole-foundation/sdk-icons": "^1.5.2", + "@wormhole-foundation/sdk-solana": "^1.5.2", + "@xlabs-libs/wallet-aggregator-aptos": "1.0.0-alpha.2", + "@xlabs-libs/wallet-aggregator-core": "^0.0.1-alpha.22", + "@xlabs-libs/wallet-aggregator-evm": "0.0.2-alpha.5", + "@xlabs-libs/wallet-aggregator-solana": "0.0.1-alpha.15", + "aptos": "link:@wormhole-foundation/sdk/aptos", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "ethers": "^6.4.2", + "lucide-react": "^0.383.0", + "solana": "link:@wormhole-foundation/sdk/solana", + "tailwind-merge": "^2.3.0", + "tailwindcss-animate": "^1.0.7" + }, + "peerDependencies": { + "@aptos-labs/wallet-adapter-react": "workspace:*", + "react": "^18" + }, + "files": [ + "dist", + "src", + "!src/**.test.ts", + "!src/**/__tests__" + ] +} diff --git a/packages/wallet-adapter-swap/postcss.config.mjs b/packages/wallet-adapter-swap/postcss.config.mjs new file mode 100644 index 00000000..2ef30fcf --- /dev/null +++ b/packages/wallet-adapter-swap/postcss.config.mjs @@ -0,0 +1,9 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; + +export default config; diff --git a/packages/wallet-adapter-swap/src/AptosSigner.ts b/packages/wallet-adapter-swap/src/AptosSigner.ts new file mode 100644 index 00000000..f1adeb19 --- /dev/null +++ b/packages/wallet-adapter-swap/src/AptosSigner.ts @@ -0,0 +1,122 @@ +import { Wallet } from "@xlabs-libs/wallet-aggregator-core"; +import { AptosWallet } from "@xlabs-libs/wallet-aggregator-aptos"; +import { + Aptos, + AptosConfig, + Network as AptosNetwork, +} from "@aptos-labs/ts-sdk"; + +import { + Chain, + Network, + SignAndSendSigner, + TxHash, + UnsignedTransaction, +} from "@wormhole-foundation/sdk"; +import { + AptosUnsignedTransaction, + AptosChains, +} from "@wormhole-foundation/sdk-aptos"; +import { WalletContextState } from "@aptos-labs/wallet-adapter-react"; + +export class AptosSigner + implements SignAndSendSigner +{ + _chain: C; + _address: string; + _options: any; + _wallet: WalletContextState; + + constructor( + chain: C, + address: string, + options: any, + wallet: WalletContextState + ) { + this._chain = chain; + this._address = address; + this._options = options; + this._wallet = wallet; + } + + chain(): C { + return this._chain; + } + address(): string { + return this._address; + } + /* other methods... */ + + async signAndSend(txs: UnsignedTransaction[]): Promise { + console.log("Signer signAndSend txs", txs); + const txHashes: TxHash[] = []; + + for (const tx of txs) { + const txId = await signAndSendTransaction( + tx as AptosUnsignedTransaction, + this._wallet + ); + txHashes.push(txId); + } + return txHashes; + } +} + +export function fetchOptions() { + // const aptosWalletConfig = { + // network: config.isMainnet + // ? ('mainnet' as AptosNetwork) + // : ('testnet' as AptosNetwork), + // }; + const aptosWallets: Record = {}; + const walletCore = AptosWallet.walletCoreFactory( + { network: AptosNetwork.TESTNET }, + true, + [] + ); + walletCore.wallets.forEach((wallet) => { + aptosWallets[wallet.name] = new AptosWallet(wallet, walletCore); + }); + return aptosWallets; +} + +export async function signAndSendTransaction( + request: UnsignedTransaction, + wallet: WalletContextState | undefined +) { + if (!wallet) { + throw new Error("Wallet is undefined"); + } + + const payload = request.transaction; + // The wallets do not handle Uint8Array serialization + payload.functionArguments = payload.functionArguments.map((a: any) => { + if (a instanceof Uint8Array) { + return Array.from(a); + } else if (typeof a === "bigint") { + return a.toString(); + } else { + return a; + } + }); + + //const context = await getWormholeContextV2(); + const aptosConfig = new AptosConfig({ + network: AptosNetwork.TESTNET, + }); + const aptos = new Aptos(aptosConfig); + //const aptos = context.getPlatform('Aptos'); + //const rpc = (await aptos.getRpc('Aptos')) as Aptos; + console.log("payload", payload); + const tx = await wallet.signAndSubmitTransaction({ + data: payload, + options: { + // this is set to 5 minutes in case the user takes a while to sign the transaction + expireTimestamp: Math.floor(Date.now() / 1000) + 60 * 5, + }, + }); + console.log("aptos tx", tx); + await aptos.waitForTransaction({ transactionHash: tx.hash }); + + return tx; +} diff --git a/packages/wallet-adapter-swap/src/ChainSelect.tsx b/packages/wallet-adapter-swap/src/ChainSelect.tsx new file mode 100644 index 00000000..9f9785e6 --- /dev/null +++ b/packages/wallet-adapter-swap/src/ChainSelect.tsx @@ -0,0 +1,85 @@ +import * as React from "react"; +import { ChevronDown, ExternalLink } from "lucide-react"; +import { Button } from "./ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "./ui/dropdown-menu"; +import { mainnetChains, mainnetChainTokens } from "./utils"; +import { chainToIcon } from "@wormhole-foundation/sdk-icons"; +import { truncateAddress } from "@aptos-labs/wallet-adapter-react"; +import { Chain } from "@wormhole-foundation/sdk/dist/cjs"; + +export function ChainSelect({ + setSelectedSourceChain, + selectedSourceChain, +}: { + setSelectedSourceChain: (chain: Chain) => void; + selectedSourceChain: Chain; +}) { + const [selectedItem, setSelectedItem] = + React.useState(selectedSourceChain); + + const onSelectedSourceChainChangeClicked = (chain: string) => { + setSelectedItem(chain as Chain); + setSelectedSourceChain(chain as Chain); + }; + + return ( + + + + + + {Object.values(mainnetChains).map((item, index) => ( + + onSelectedSourceChainChangeClicked(item.displayName) + } + className="flex items-center justify-between" + > +
+ {item.key} +
+ +
+ ))} +
+
+ ); +} diff --git a/packages/wallet-adapter-swap/src/EthereumSigner.ts b/packages/wallet-adapter-swap/src/EthereumSigner.ts new file mode 100644 index 00000000..e056d317 --- /dev/null +++ b/packages/wallet-adapter-swap/src/EthereumSigner.ts @@ -0,0 +1,40 @@ +import { + EvmUnsignedTransaction, + EvmChains, +} from "@wormhole-foundation/sdk-evm"; +import { Network } from "@wormhole-foundation/sdk"; +import { Eip6963Wallet } from "@xlabs-libs/wallet-aggregator-evm"; +import { getBigInt } from "ethers"; + +export async function signAndSendTransaction( + request: EvmUnsignedTransaction, + wallet: Eip6963Wallet, + chainName: string, + options: any // TODO ?!?!!?!? +): Promise { + // Ensure the signer is connected to the correct chain + console.log("wallet", wallet); + const provider = await wallet.getNetworkInfo(); + console.log("provider", provider); + if (!provider) throw new Error("No signer found for chain" + chainName); + const expectedChainId = request.transaction.chainId + ? getBigInt(request.transaction.chainId) + : undefined; + const actualChainId = provider?.chainId; + + if ( + !actualChainId || + !expectedChainId || + BigInt(actualChainId) !== expectedChainId + ) { + throw new Error( + `Signer is not connected to the right chain. Expected ${expectedChainId}, got ${actualChainId}` + ); + } + + const tx = await wallet.sendTransaction(request.transaction); + //const result = await tx.wait(); + console.log("tx.hash", tx.id); + + return tx.id; +} diff --git a/packages/wallet-adapter-swap/src/EthereumWalletItem.tsx b/packages/wallet-adapter-swap/src/EthereumWalletItem.tsx new file mode 100644 index 00000000..d5a30d99 --- /dev/null +++ b/packages/wallet-adapter-swap/src/EthereumWalletItem.tsx @@ -0,0 +1,192 @@ +import { Slot } from "@radix-ui/react-slot"; +import { + cloneElement, + createContext, + forwardRef, + isValidElement, + ReactNode, + useCallback, + useContext, +} from "react"; +import { Eip6963Wallet } from "@xlabs-libs/wallet-aggregator-evm"; +export interface WalletItemProps extends HeadlessComponentProps { + /** The wallet option to be displayed. */ + wallet: Eip6963Wallet; + /** A callback to be invoked when the wallet is connected. */ + onConnect?: () => void; +} + +function useEthereumWalletItemContext(displayName: string) { + const context = useContext(EthereumWalletItemContext); + + if (!context) { + throw new Error( + `\`${displayName}\` must be used within \`EthereumWalletItem\`` + ); + } + + return context; +} + +const EthereumWalletItemContext = createContext<{ + wallet: Eip6963Wallet; + connectWallet: () => void; +} | null>(null); + +const Root = forwardRef( + ({ wallet, onConnect, className, asChild, children }, ref) => { + const connectWallet = useCallback(async () => { + await wallet.connect(); + onConnect?.(); + }, [wallet, onConnect]); + + // const isWalletReady = + // wallet.readyState === WalletReadyState.Installed || + // wallet.readyState === WalletReadyState.Loadable; + + // const mobileSupport = + // "deeplinkProvider" in wallet && wallet.deeplinkProvider; + + // if (!isWalletReady && isRedirectable() && !mobileSupport) return null; + + const Component = asChild ? Slot : "div"; + + return ( + + + {children} + + + ); + } +); +Root.displayName = "EthereumWalletItem"; + +const Icon = createHeadlessComponent( + "EthereumWalletItem.Icon", + "img", + (displayName) => { + const context = useEthereumWalletItemContext(displayName); + + return { + src: context.wallet.getIcon(), + alt: `${context.wallet.getName()} icon`, + }; + } +); + +const Name = createHeadlessComponent( + "EthereumWalletItem.Name", + "div", + (displayName) => { + const context = useEthereumWalletItemContext(displayName); + + return { + children: context.wallet.getName(), + }; + } +); + +const ConnectButton = createHeadlessComponent( + "EthereumWalletItem.ConnectButton", + "button", + (displayName) => { + const context = useEthereumWalletItemContext(displayName); + + return { + onClick: context.connectWallet, + children: "Connect", + }; + } +); + +const InstallLink = createHeadlessComponent( + "EthereumWalletItem.InstallLink", + "a", + (displayName) => { + const context = useEthereumWalletItemContext(displayName); + + return { + href: context.wallet.getUrl(), + target: "_blank", + rel: "noopener noreferrer", + children: "Install", + }; + } +); + +/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */ +export const EthereumWalletItem = Object.assign(Root, { + Icon, + Name, + ConnectButton, + InstallLink, +}); + +export interface HeadlessComponentProps { + /** A class name for styling the element. */ + className?: string; + /** + * Whether to render as the child element instead of the default element provided. + * All props will be merged into the child element. + */ + asChild?: boolean; + children?: ReactNode; +} + +/** + * Gets an HTML element type from its tag name + * @example + * HTMLElementFromTag<"img"> // resolved type: HTMLImageElement + */ +type HTMLElementFromTag = + JSX.IntrinsicElements[T] extends React.ClassAttributes + ? Element + : HTMLElement; + +export function createHeadlessComponent< + TElement extends keyof JSX.IntrinsicElements, +>( + displayName: string, + elementType: TElement, + props?: + | JSX.IntrinsicElements[TElement] + | ((displayName: string) => JSX.IntrinsicElements[TElement]) +) { + const component = forwardRef< + HTMLElementFromTag, + HeadlessComponentProps + >(({ className, asChild, children }, ref) => { + const Component = asChild ? Slot : elementType; + + const { children: defaultChildren, ...resolvedProps } = + typeof props === "function" ? props(displayName) : (props ?? {}); + const resolvedChildren = + /** + * Use props' default children if no children are set in the component element's children and when asChild is true. + */ + asChild && isValidElement(children) && !children.props.children + ? cloneElement(children, {}, defaultChildren) + : (children ?? defaultChildren); + + return ( + /** + * Due to the complexity of the types at play, TypeScript reports the + * following error for our JSX below: + * + * `Expression produces a union type that is too complex to represent.` + * + * We can safely ignore this error and retain accurate return types for + * consumers of this function. The only drawback is that type-checking is + * ignored for the JSX block below. + */ + // @ts-expect-error + + {resolvedChildren} + + ); + }); + component.displayName = displayName; + + return component; +} diff --git a/packages/wallet-adapter-swap/src/EthereumWalletSelector.tsx b/packages/wallet-adapter-swap/src/EthereumWalletSelector.tsx new file mode 100644 index 00000000..5f90689e --- /dev/null +++ b/packages/wallet-adapter-swap/src/EthereumWalletSelector.tsx @@ -0,0 +1,192 @@ +import { Copy, LogOut } from "lucide-react"; +import { useCallback, useEffect, useState } from "react"; +import { Button } from "./ui/button"; +import { Dialog, DialogContent, DialogTrigger } from "./ui/dialog"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "./ui/dropdown-menu"; +import { useToast } from "./ui/use-toast"; +import { + BinanceWallet, + EVMWallet, + Eip6963Wallet, + Eip6963Wallets, + InjectedWallet, + InjectedWallets, + DEFAULT_CHAINS, +} from "@xlabs-libs/wallet-aggregator-evm"; +import { truncateAddress } from "@aptos-labs/wallet-adapter-react"; +import { Wallet, WalletState } from "@xlabs-libs/wallet-aggregator-core"; +import { EthereumWalletItem } from "./EthereumWalletItem"; + +const eip6963Wallets = Object.entries(Eip6963Wallets).reduce( + (acc, [key, name]) => ({ [key]: new Eip6963Wallet(name), ...acc }), + {} +); + +export function EthereumWalletSelector({ + setSourceWalletAddress, + setSourceWallet, +}: { + setSourceWalletAddress: (address: string | null) => void; + setSourceWallet: (wallet: Wallet | null) => void; +}) { + const [connected, setConnected] = useState(false); + const [accountAddress, setAccountAddress] = useState( + undefined + ); + const [wallet, setWallet] = useState(undefined); + + const { toast } = useToast(); + const [isDialogOpen, setIsDialogOpen] = useState(false); + + const closeDialog = useCallback(() => setIsDialogOpen(false), []); + + const onDisconnect = useCallback(async () => { + await wallet?.disconnect(); + setConnected(false); + setSourceWalletAddress(null); + setSourceWallet(null); + setAccountAddress(undefined); + setWallet(undefined); + }, [wallet]); + + const copyAddress = useCallback(async () => { + if (!accountAddress) return; + try { + await navigator.clipboard.writeText(accountAddress); + toast({ + title: "Success", + description: "Copied wallet address to clipboard.", + }); + } catch { + toast({ + variant: "destructive", + title: "Error", + description: "Failed to copy wallet address.", + }); + } + }, [accountAddress, toast]); + + return connected ? ( + + + + + + + Copy address + + + Disconnect + + + + ) : ( + + + + + + + ); +} + +interface ConnectWalletDialogProps { + close: () => void; + setAccountAddress: (address: string | undefined) => void; + setConnected: (connected: boolean) => void; + setWallet: (wallet: Eip6963Wallet | undefined) => void; + setSourceWalletAddress: (address: string | null) => void; + setSourceWallet: (wallet: Eip6963Wallet | null) => void; +} + +function ConnectWalletDialog({ + close, + setAccountAddress, + setConnected, + setWallet, + setSourceWalletAddress, + setSourceWallet, +}: ConnectWalletDialogProps) { + const [wallets, setEthereumWallets] = useState([]); + + useEffect(() => { + const ethereumWallets = Object.values(eip6963Wallets).filter((wallet) => + ["MetaMask", "Phantom", "Coinbase Wallet"].includes( + (wallet as Eip6963Wallet).getName() + ) + ); + setEthereumWallets(ethereumWallets as Eip6963Wallet[]); + }, []); + + const onConnectClick = useCallback( + (wallet: Eip6963Wallet) => { + setAccountAddress(wallet.getAddress()); + setConnected(true); + setWallet(wallet); + setSourceWalletAddress(wallet.getAddress() || null); + setSourceWallet(wallet); + close(); + }, + [setAccountAddress, close, setSourceWallet] + ); + return ( + +
+ {wallets.map((wallet) => ( + onConnectClick(wallet)} + /> + ))} +
+
+ ); +} + +interface WalletRowProps { + wallet: Eip6963Wallet; + onConnect?: () => void; +} + +function WalletRow({ wallet, onConnect }: WalletRowProps) { + const connectWallet = useCallback(async () => { + const res = await wallet.connect(); + console.log("res", res); + onConnect?.(); + }, [wallet, onConnect]); + + return ( + +
+ + +
+ {wallet.getWalletState() === WalletState.NotDetected ? ( + + ) : ( + + + + )} +
+ ); +} diff --git a/packages/wallet-adapter-swap/src/MultiChain.tsx b/packages/wallet-adapter-swap/src/MultiChain.tsx new file mode 100644 index 00000000..4cb71311 --- /dev/null +++ b/packages/wallet-adapter-swap/src/MultiChain.tsx @@ -0,0 +1,389 @@ +import "./global.css"; +import { Card, CardContent } from "./ui/card"; +import { WalletSelector } from "./WalletSelector"; +import { Button } from "./ui/button"; +import { useEffect, useState } from "react"; +import { + chainToPlatform, + routes, + TokenId, + Wormhole, + wormhole, + Chain, + Platform, + Network, + AttestationReceipt, + TransferState, + PlatformContext, + amount as amountUtils, +} from "@wormhole-foundation/sdk"; +import { chainToIcon } from "@wormhole-foundation/sdk-icons"; +import aptos from "@wormhole-foundation/sdk/aptos"; +import solana from "@wormhole-foundation/sdk/solana"; +import evm from "@wormhole-foundation/sdk/evm"; + +import { SolanaWalletSelector } from "./SolanaWalletSelector"; +import { SolanaWallet } from "@xlabs-libs/wallet-aggregator-solana"; +import { AptosWallet } from "@xlabs-libs/wallet-aggregator-aptos"; +import { + AptosMainnetUSDCToken, + AptosTestnetUSDCToken, + mainnetChainTokens, + testnetChainTokens, +} from "./utils"; +import { ChainSelect } from "./ChainSelect"; +import { Input } from "./ui/input"; +import { Signer } from "./Signer"; +import { useWallet } from "@aptos-labs/wallet-adapter-react"; +import { AptosSigner } from "./AptosSigner"; +import { sleep } from "./SolanaSigner"; +import { Progress } from "./ui/progress"; +import { EthereumWalletSelector } from "./EthereumWalletSelector"; +import { Wallet } from "@xlabs-libs/wallet-aggregator-core"; + +export const MultiChain = () => { + const [sourceWalletAddress, setSourceWalletAddress] = useState( + null + ); + const [sourceWallet, setSourceWallet] = useState(null); + const [selectedSourceChain, setSelectedSourceChain] = + useState("Solana"); + const [amount, setAmount] = useState("0"); + + const [transactionReceipt, setTransactionReceipt] = + useState | null>(null); + + const [destinationWallet, setDestinationWallet] = + useState(null); + + const aptosWalletContext = useWallet(); + const { wallet, account, connected } = aptosWalletContext; + + const [cctpRequest, setCctpRequest] = useState< + routes.RouteTransferRequest | undefined + >(undefined); + + const [cctpRoute, setCctpRoute] = useState< + | routes.Route< + Network, + routes.Options, + routes.ValidatedTransferParams, + routes.Receipt + > + | undefined + >(undefined); + + const [platform, setPlatform] = useState< + PlatformContext | undefined + >(undefined); + + const [wormholeContext, setWormholeContext] = useState< + Wormhole | undefined + >(undefined); + + const [sourceWalletUSDCBalance, setSourceWalletUSDCBalance] = + useState(null); + + const [progress, setProgress] = useState(0); + const [transactionETA, setTransactionETA] = useState(0); + const [startTime, setStartTime] = useState(null); + + const [transactionInitiated, setTransactionInitiated] = useState(false); + + useEffect(() => { + if (!startTime || !transactionETA) return; + + const interval = setInterval(() => { + const elapsed = Date.now() - startTime; + const progressPercent = Math.min((elapsed / transactionETA) * 100, 100); + setProgress(progressPercent); + + if (progressPercent >= 100) { + clearInterval(interval); + } + }, 100); // Update every 100ms for smooth animation + + return () => clearInterval(interval); + }, [startTime, transactionETA]); + + useEffect(() => { + const initializeRoute = async () => { + const wh = await wormhole("Testnet", [solana, aptos, evm]); + setWormholeContext(wh); + const platform = wh.getPlatform(chainToPlatform(selectedSourceChain)); + setPlatform(platform); + + console.log("selectedSourceChain", selectedSourceChain); + const sourceToken: TokenId = Wormhole.tokenId( + testnetChainTokens[selectedSourceChain].tokenId.chain as Chain, + testnetChainTokens[selectedSourceChain].tokenId.address + ); + const destToken: TokenId = Wormhole.tokenId( + AptosTestnetUSDCToken.USDCapt.tokenId.chain as Chain, + AptosTestnetUSDCToken.USDCapt.tokenId.address + ); + + const sourceContext = wh + .getPlatform(chainToPlatform(selectedSourceChain)) + .getChain(selectedSourceChain); + console.log("sourceContext", sourceContext); + const destContext = wh + .getPlatform(chainToPlatform("Aptos")) + .getChain("Aptos"); + + // create request + const req = await routes.RouteTransferRequest.create( + wh, + { + source: sourceToken, + destination: destToken, + }, + sourceContext, + destContext + ); + console.log("req", req); + setCctpRequest(req); + // create new resolver, passing the set of routes to consider + const resolver = wh.resolver([ + routes.CCTPRoute, // manual CCTP + ]); + console.log("resolver", resolver); + const route = await resolver.findRoutes(req); + console.log("route", route); + const cctpRoute = route[0]; + setCctpRoute(cctpRoute); + }; + + initializeRoute(); + }, [selectedSourceChain]); + + useEffect(() => { + const getBalances = async () => { + if (!wormholeContext) { + return; + } + + try { + const platform = wormholeContext.getPlatform( + chainToPlatform(selectedSourceChain) + ); + const rpc = platform.getRpc(selectedSourceChain); + + const result = await platform + .utils() + .getBalances(selectedSourceChain, rpc, sourceWallet?.getAddress()!, [ + testnetChainTokens[selectedSourceChain].tokenId.address, + ]); + + const currentAmount = + result[testnetChainTokens[selectedSourceChain].tokenId.address]; + + const usdcBalance = amountUtils.fromBaseUnits( + currentAmount ?? BigInt(0), + testnetChainTokens[selectedSourceChain].decimals + ); + + return usdcBalance; + } catch (e) { + console.error("Failed to get token balances", e); + } + }; + + getBalances().then((usdcBalance) => { + if (usdcBalance) { + setSourceWalletUSDCBalance(usdcBalance); + } + }); + }, [sourceWallet, platform]); + + const onSetMaxAmount = () => { + if (!sourceWalletUSDCBalance) { + return; + } + setAmount( + amountUtils.display(amountUtils.truncate(sourceWalletUSDCBalance, 6)) + ); + }; + + const onSwapClick = async () => { + if (!sourceWallet) { + return; + } + if (!sourceWallet.getAddress()) { + throw new Error("Source wallet address is undefined"); + } + + if (!cctpRoute) { + throw new Error("Route is not initialized"); + } + + if (!cctpRequest) { + throw new Error("Request is not initialized"); + } + + // TODO what is nativeGas for? + const transferParams = { amount, options: { nativeGas: 0 } }; + + //const cctpRoute = route[0]; + const validated = await cctpRoute.validate(cctpRequest, transferParams); + if (!validated.valid) { + console.log("invalid", validated.valid); + throw validated.error; + } + const quote = await cctpRoute.quote(cctpRequest, validated.params); + if (!quote.success) { + console.log("quote failed", quote.success); + throw quote.error; + } + const signer = new Signer( + selectedSourceChain, + sourceWallet.getAddress()!, + {}, + sourceWallet + ); + console.log("quote", quote); + setProgress(0); // Reset progress + setTransactionETA(quote.eta ?? 0); + setStartTime(Date.now()); // Start the timer + // initiate transfer + setTransactionInitiated(true); + let receipt = await cctpRoute.initiate( + cctpRequest, + signer, + quote, + Wormhole.chainAddress( + "Aptos", + "0x4bc9014919924c620b0b3cc370af637cb0aee3f73a0a525a28fe7e7a376338bc" + ) + ); + console.log("Initiated transfer with receipt: ", receipt); + + let retries = 0; + const maxRetries = 5; + const baseDelay = 1000; // Initial delay of 1 second + + while (retries < maxRetries) { + try { + for await (receipt of cctpRoute.track(receipt, 120 * 1000)) { + if (receipt.state >= TransferState.SourceInitiated) { + setTransactionReceipt(receipt); + console.log("Receipt is on track ", receipt); + return; + } + } + } catch (e) { + console.error( + `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`, + e + ); + const delay = baseDelay * Math.pow(2, retries); // Exponential backoff + await sleep(delay); + retries++; + } + } + }; + + const onClaimClick = async () => { + if (!wallet) { + throw new Error("Wallet is not initialized"); + } + + if (!cctpRoute) { + throw new Error("Route is not initialized"); + } + + if (!transactionReceipt) { + throw new Error("Transaction receipt is not initialized"); + } + + const signer = new AptosSigner( + "Aptos", + account?.address!, + {}, + aptosWalletContext + ); + + if (routes.isManual(cctpRoute)) { + const receipt = await cctpRoute.complete(signer, transactionReceipt); + console.log("Claim receipt: ", receipt); + } else { + // Should be unreachable + return undefined; + } + }; + + return ( +
+ + + {/*From*/} +
+
+

From:

+

+ +

+
+ +
+ + {/*To*/} +
+
+

To:

+

+ +

+
+ +
+
+ setAmount(e.target.value)} /> +
+ Max + + {sourceWalletUSDCBalance + ? amountUtils.display( + amountUtils.truncate(sourceWalletUSDCBalance, 6) + ) + : "0"} + +
+
+ + {/* {transactionInitiated && } */} + + {transactionReceipt && } +
+
+
+ ); +}; diff --git a/packages/wallet-adapter-swap/src/Signer.ts b/packages/wallet-adapter-swap/src/Signer.ts new file mode 100644 index 00000000..bed0bff0 --- /dev/null +++ b/packages/wallet-adapter-swap/src/Signer.ts @@ -0,0 +1,113 @@ +import { + UnsignedTransaction, + Network, + Chain, + TxHash, + SignAndSendSigner, +} from "@wormhole-foundation/sdk"; +import { SolanaUnsignedTransaction } from "@wormhole-foundation/sdk-solana/dist/cjs/unsignedTransaction"; +import { Wallet } from "@xlabs-libs/wallet-aggregator-core"; +import { SolanaWallet } from "@xlabs-libs/wallet-aggregator-solana"; +import * as solanaSigner from "./SolanaSigner"; +import * as ethereumSigner from "./EthereumSigner"; +import { EvmChains } from "@wormhole-foundation/sdk-evm/dist/cjs/types"; +import { EvmUnsignedTransaction } from "@wormhole-foundation/sdk-evm/dist/cjs/unsignedTransaction"; +import { Eip6963Wallet } from "@xlabs-libs/wallet-aggregator-evm"; + +export class Signer + implements SignAndSendSigner +{ + _chain: C; + _address: string; + _options: any; + _wallet: Wallet; + + constructor(chain: C, address: string, options: any, wallet: Wallet) { + this._chain = chain; + this._address = address; + this._options = options; + this._wallet = wallet; + } + + chain(): C { + return this._chain; + } + address(): string { + return this._address; + } + /* other methods... */ + + async signAndSend(txs: UnsignedTransaction[]): Promise { + console.log("Signer signAndSend txs", txs); + const txHashes: TxHash[] = []; + + for (const tx of txs) { + const txId = await signAndSendTransaction( + this._chain, + tx, + this._wallet, + this._options + ); + txHashes.push(txId); + } + return txHashes; + } +} + +export const signAndSendTransaction = async ( + chain: Chain, + request: UnsignedTransaction, + wallet: Wallet, + options: any = {} +): Promise => { + if (!wallet) { + throw new Error("wallet is undefined"); + } + // TODO make it dynamic import + if (chain === "Solana") { + const signature = await solanaSigner.signAndSendTransaction( + request as SolanaUnsignedTransaction, + wallet as SolanaWallet, + options + ); + return signature; + } else if (chain === "Ethereum") { + const tx = await ethereumSigner.signAndSendTransaction( + request as EvmUnsignedTransaction, + wallet as Eip6963Wallet, + chain, + options + ); + return tx; + } else { + throw new Error(`Unsupported chain: ${chain}`); + } + + // if (chain === "Ethereum") { + // const evm = await import('./SolanaSigner'); + // const tx = await evm.signAndSendTransaction( + // request as EvmUnsignedTransaction, + // wallet, + // chain, + // options, + // ); + // return tx; + // } else if (chain === "Solana") { + // const solana = await import('./SolanaSigner'); + // const signature = await solana.signAndSendTransaction( + // request as SolanaUnsignedTransaction, + // wallet, + // options, + // ); + // return signature; + // } else if (chain === "Aptos") { + // const aptos = await import('utils/wallet/aptos'); + // const tx = await aptos.signAndSendTransaction( + // request as AptosUnsignedTransaction, + // wallet, + // ); + // return tx.id; + // } else { + // throw new Error('unimplemented'); + // } +}; diff --git a/packages/wallet-adapter-swap/src/SolanaSigner.ts b/packages/wallet-adapter-swap/src/SolanaSigner.ts new file mode 100644 index 00000000..8eebb55c --- /dev/null +++ b/packages/wallet-adapter-swap/src/SolanaSigner.ts @@ -0,0 +1,430 @@ +// This function signs and sends the transaction while constantly checking for confirmation +// and resending the transaction if it hasn't been confirmed after the specified interval + +import { SolanaWallet } from "@xlabs-libs/wallet-aggregator-solana"; + +import { + AddressLookupTableAccount, + Commitment, + ComputeBudgetProgram, + ConfirmOptions, + LAMPORTS_PER_SOL, + SimulatedTransactionResponse, + TransactionInstruction, + TransactionMessage, + VersionedTransaction, +} from "@solana/web3.js"; + +import { Transaction } from "@solana/web3.js"; +import { RpcResponseAndContext, SignatureResult } from "@solana/web3.js"; +import { + determinePriorityFee, + determinePriorityFeeTritonOne, + isVersionedTransaction, + SolanaUnsignedTransaction, +} from "@wormhole-foundation/sdk-solana"; + +import { Connection } from "@solana/web3.js"; +import { Network } from "@wormhole-foundation/sdk"; + +export type SolanaRpcProvider = "triton" | "helius" | "ankr" | "unknown"; + +// See https://docs.triton.one/chains/solana/sending-txs for more information +export async function signAndSendTransaction( + request: SolanaUnsignedTransaction, + wallet: SolanaWallet | undefined, + options?: ConfirmOptions +) { + if (!wallet) throw new Error("Wallet not found"); + // if (!config.rpcs.Solana) throw new Error('Solana RPC not found'); + + const commitment = options?.commitment ?? "finalized"; + console.log("SolanaSigner", wallet); + const connection = new Connection((wallet as any).connection._rpcEndpoint); + const { blockhash, lastValidBlockHeight } = + await connection.getLatestBlockhash(commitment); + + const unsignedTx = await setPriorityFeeInstructions( + connection, + blockhash, + lastValidBlockHeight, + request + ); + + let confirmTransactionPromise: Promise< + RpcResponseAndContext + > | null = null; + let confirmedTx: RpcResponseAndContext | null = null; + let txSendAttempts = 1; + let signature = ""; + // TODO: VersionedTransaction is supported, but the interface needs to be updated + const tx = await wallet.signTransaction(unsignedTx as Transaction); + const serializedTx = tx.serialize(); + const sendOptions = { + skipPreflight: true, + maxRetries: 0, + preFlightCommitment: commitment, // See PR and linked issue for why setting this matters: https://github.com/anza-xyz/agave/pull/483 + }; + signature = await connection.sendRawTransaction(serializedTx, sendOptions); + confirmTransactionPromise = connection.confirmTransaction( + { + signature, + blockhash, + lastValidBlockHeight, + }, + commitment + ); + + // This loop will break once the transaction has been confirmed or the block height is exceeded. + // An exception will be thrown if the block height is exceeded by the confirmTransactionPromise. + // The transaction will be resent if it hasn't been confirmed after the interval. + const txRetryInterval = 5000; + while (!confirmedTx) { + confirmedTx = await Promise.race([ + confirmTransactionPromise, + new Promise((resolve) => + setTimeout(() => { + resolve(null); + }, txRetryInterval) + ), + ]); + if (confirmedTx) { + break; + } + console.log( + `Tx not confirmed after ${ + txRetryInterval * txSendAttempts++ + }ms, resending` + ); + try { + await connection.sendRawTransaction(serializedTx, sendOptions); + } catch (e) { + console.error("Failed to resend transaction:", e); + } + } + + if (confirmedTx.value.err) { + let errorMessage = `Transaction failed: ${confirmedTx.value.err}`; + if (typeof confirmedTx.value.err === "object") { + try { + errorMessage = `Transaction failed: ${JSON.stringify( + confirmedTx.value.err, + (_key, value) => + typeof value === "bigint" ? value.toString() : value // Handle bigint props + )}`; + } catch (e: unknown) { + // Most likely a circular reference error, we can't stringify this error object. + // See for more details: + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#exceptions + errorMessage = `Transaction failed: Unknown error`; + } + } + throw new Error(`Transaction failed: ${errorMessage}`); + } + + return signature; +} + +export async function setPriorityFeeInstructions( + connection: Connection, + blockhash: string, + lastValidBlockHeight: number, + request: SolanaUnsignedTransaction +): Promise { + const unsignedTx = request.transaction.transaction; + + const computeBudgetIxFilter = (ix: TransactionInstruction) => + ix.programId.toString() !== "ComputeBudget111111111111111111111111111111"; + + if (isVersionedTransaction(unsignedTx)) { + const luts = ( + await Promise.all( + unsignedTx.message.addressTableLookups.map((acc) => + connection.getAddressLookupTable(acc.accountKey) + ) + ) + ) + .map((lut) => lut.value) + .filter((lut) => lut !== null) as AddressLookupTableAccount[]; + + const message = TransactionMessage.decompile(unsignedTx.message, { + addressLookupTableAccounts: luts, + }); + message.recentBlockhash = blockhash; + unsignedTx.message.recentBlockhash = blockhash; + + // Remove existing compute budget instructions if they were added by the SDK + message.instructions = message.instructions.filter(computeBudgetIxFilter); + message.instructions.push( + ...(await createPriorityFeeInstructions(connection, unsignedTx)) + ); + + unsignedTx.message = message.compileToV0Message(luts); + unsignedTx.sign(request.transaction.signers ?? []); + } else { + unsignedTx.recentBlockhash = blockhash; + unsignedTx.lastValidBlockHeight = lastValidBlockHeight; + + // Remove existing compute budget instructions if they were added by the SDK + unsignedTx.instructions = unsignedTx.instructions.filter( + computeBudgetIxFilter + ); + unsignedTx.add( + ...(await createPriorityFeeInstructions(connection, unsignedTx)) + ); + if (request.transaction.signers) { + unsignedTx.partialSign(...request.transaction.signers); + } + } + + return unsignedTx; +} + +// This will throw if the simulation fails +async function createPriorityFeeInstructions( + connection: Connection, + transaction: Transaction | VersionedTransaction, + commitment?: Commitment +) { + let unitsUsed = 200_000; + let simulationAttempts = 0; + + simulationLoop: while (true) { + if ( + isVersionedTransaction(transaction) && + !transaction.message.recentBlockhash + ) { + // This is required for versioned transactions + // SimulateTransaction throws if recentBlockhash is an empty string + const { blockhash } = await connection.getLatestBlockhash(commitment); + transaction.message.recentBlockhash = blockhash; + } + + const response = await (isVersionedTransaction(transaction) + ? connection.simulateTransaction(transaction, { + commitment, + replaceRecentBlockhash: true, + }) + : connection.simulateTransaction(transaction)); + + if (response.value.err) { + if (checkKnownSimulationError(response.value)) { + // Number of attempts will be at most 5 for known errors + if (simulationAttempts < 5) { + simulationAttempts++; + await sleep(1000); + continue simulationLoop; + } + } else if (simulationAttempts < 3) { + // Number of attempts will be at most 3 for unknown errors + simulationAttempts++; + await sleep(1000); + continue simulationLoop; + } + + // Still failing after multiple attempts for both known and unknown errors + // We should throw in that case + throw new Error( + `Simulation failed: ${JSON.stringify(response.value.err)}\nLogs:\n${( + response.value.logs || [] + ).join("\n ")}` + ); + } else { + // Simulation was successful + if (response.value.unitsConsumed) { + unitsUsed = response.value.unitsConsumed; + } + break; + } + } + + const unitBudget = Math.floor(unitsUsed * 1.2); // Budget in 20% headroom + + const instructions: TransactionInstruction[] = []; + instructions.push( + ComputeBudgetProgram.setComputeUnitLimit({ + // Set compute budget to 120% of the units used in the simulated transaction + units: unitBudget, + }) + ); + + // const priorityFeeConfig = + // config.transactionSettings?.Solana?.priorityFee || {}; + + // const { + // percentile = 0.9, + // percentileMultiple = 1, + // min = 100_000, + // max = 100_000_000, + // } = priorityFeeConfig; + const percentile = 0.9; + const percentileMultiple = 1; + const min = 100_000; + const max = 100_000_000; + + const calculateFee = async ( + rpcProvider?: SolanaRpcProvider + ): Promise<{ fee: number; methodUsed: "triton" | "default" | "minimum" }> => { + if (rpcProvider === "triton") { + // Triton has an experimental RPC method that accepts a percentile paramater + // and usually gives more accurate fee numbers. + try { + const fee = await determinePriorityFeeTritonOne( + connection, + transaction, + percentile, + percentileMultiple, + min, + max + ); + + return { + fee, + methodUsed: "triton", + }; + } catch (e) { + console.warn(`Failed to determine priority fee using Triton RPC:`, e); + } + } + + try { + // By default, use generic Solana RPC method + const fee = await determinePriorityFee( + connection, + transaction, + percentile, + percentileMultiple, + min, + max + ); + + return { + fee, + methodUsed: "default", + }; + } catch (e) { + console.warn(`Failed to determine priority fee using Triton RPC:`, e); + + return { + fee: min, + methodUsed: "minimum", + }; + } + }; + + const rpcProvider = determineRpcProvider(connection.rpcEndpoint); + + const { fee, methodUsed } = await calculateFee(rpcProvider); + + const maxFeeInSol = + (fee / + // convert microlamports to lamports + 1e6 / + // convert lamports to SOL + LAMPORTS_PER_SOL) * + // multiply by maximum compute units used + unitBudget; + + console.table({ + "RPC Provider": rpcProvider, + "Method used": methodUsed, + "Percentile used": percentile, + "Multiple used": percentileMultiple, + "Compute budget": unitBudget, + "Priority fee": fee, + "Max fee in SOL": maxFeeInSol, + }); + + instructions.push( + ComputeBudgetProgram.setComputeUnitPrice({ microLamports: fee }) + ); + return instructions; +} + +// Checks response logs for known errors. +// Returns when the first error is encountered. +function checkKnownSimulationError( + response: SimulatedTransactionResponse +): boolean { + const errors = {} as any; + + // This error occur when the blockhash included in a transaction is not deemed to be valid + // when a validator processes a transaction. We can retry the simulation to get a valid blockhash. + if (response.err === "BlockhashNotFound") { + errors["BlockhashNotFound"] = + "Blockhash not found during simulation. Trying again."; + } + + // Check the response logs for any known errors + if (response.logs) { + for (const line of response.logs) { + // In some cases which aren't deterministic, like a slippage error, we can retry the + // simulation a few times to get a successful response. + if (line.includes("SlippageToleranceExceeded")) { + errors["SlippageToleranceExceeded"] = + "Slippage failure during simulation. Trying again."; + } + + // In this case a require_gte expression was violated during a Swap instruction. + // We can retry the simulation to get a successful response. + if (line.includes("RequireGteViolated")) { + errors["RequireGteViolated"] = + "Swap instruction failure during simulation. Trying again."; + } + } + } + + // No known simulation errors found + if (isEmptyObject(errors)) { + return false; + } + + console.table(errors); + return true; +} + +export async function sleep(timeout: number) { + return new Promise((resolve) => setTimeout(resolve, timeout)); +} + +/** + * Checks whether an object is empty. + * + * isEmptyObject(null) + * // => true + * + * isEmptyObject(undefined) + * // => true + * + * isEmptyObject({}) + * // => true + * + * isEmptyObject({ 'a': 1 }) + * // => false + */ +export const isEmptyObject = (value: object | null | undefined) => { + if (value === null || value === undefined) { + return true; + } + + // Check all property keys for any own prop + for (const key in value) { + if (value.hasOwnProperty.call(value, key)) { + return false; + } + } + + return true; +}; + +function determineRpcProvider(endpoint: string): SolanaRpcProvider { + if (endpoint.includes("rpcpool.com")) { + return "triton"; + } else if (endpoint.includes("helius-rpc.com")) { + return "helius"; + } else if (endpoint.includes("rpc.ankr.com")) { + return "ankr"; + } else { + return "unknown"; + } +} diff --git a/packages/wallet-adapter-swap/src/SolanaWalletItem.tsx b/packages/wallet-adapter-swap/src/SolanaWalletItem.tsx new file mode 100644 index 00000000..b451fdd1 --- /dev/null +++ b/packages/wallet-adapter-swap/src/SolanaWalletItem.tsx @@ -0,0 +1,193 @@ +import { Slot } from "@radix-ui/react-slot"; +import { + cloneElement, + createContext, + forwardRef, + isValidElement, + ReactNode, + useCallback, + useContext, +} from "react"; +import { SolanaWallet } from "@xlabs-libs/wallet-aggregator-solana"; + +export interface WalletItemProps extends HeadlessComponentProps { + /** The wallet option to be displayed. */ + wallet: SolanaWallet; + /** A callback to be invoked when the wallet is connected. */ + onConnect?: () => void; +} + +function useSolanaWalletItemContext(displayName: string) { + const context = useContext(SolanaWalletItemContext); + + if (!context) { + throw new Error( + `\`${displayName}\` must be used within \`SolanaWalletItem\`` + ); + } + + return context; +} + +const SolanaWalletItemContext = createContext<{ + wallet: SolanaWallet; + connectWallet: () => void; +} | null>(null); + +const Root = forwardRef( + ({ wallet, onConnect, className, asChild, children }, ref) => { + const connectWallet = useCallback(async () => { + await wallet.connect(); + onConnect?.(); + }, [wallet, onConnect]); + + // const isWalletReady = + // wallet.readyState === WalletReadyState.Installed || + // wallet.readyState === WalletReadyState.Loadable; + + // const mobileSupport = + // "deeplinkProvider" in wallet && wallet.deeplinkProvider; + + // if (!isWalletReady && isRedirectable() && !mobileSupport) return null; + + const Component = asChild ? Slot : "div"; + + return ( + + + {children} + + + ); + } +); +Root.displayName = "SolanaWalletItem"; + +const Icon = createHeadlessComponent( + "SolanaWalletItem.Icon", + "img", + (displayName) => { + const context = useSolanaWalletItemContext(displayName); + + return { + src: context.wallet.getIcon(), + alt: `${context.wallet.getName()} icon`, + }; + } +); + +const Name = createHeadlessComponent( + "SolanaWalletItem.Name", + "div", + (displayName) => { + const context = useSolanaWalletItemContext(displayName); + + return { + children: context.wallet.getName(), + }; + } +); + +const ConnectButton = createHeadlessComponent( + "SolanaWalletItem.ConnectButton", + "button", + (displayName) => { + const context = useSolanaWalletItemContext(displayName); + + return { + onClick: context.connectWallet, + children: "Connect", + }; + } +); + +const InstallLink = createHeadlessComponent( + "SolanaWalletItem.InstallLink", + "a", + (displayName) => { + const context = useSolanaWalletItemContext(displayName); + + return { + href: context.wallet.getUrl(), + target: "_blank", + rel: "noopener noreferrer", + children: "Install", + }; + } +); + +/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */ +export const SolanaWalletItem = Object.assign(Root, { + Icon, + Name, + ConnectButton, + InstallLink, +}); + +export interface HeadlessComponentProps { + /** A class name for styling the element. */ + className?: string; + /** + * Whether to render as the child element instead of the default element provided. + * All props will be merged into the child element. + */ + asChild?: boolean; + children?: ReactNode; +} + +/** + * Gets an HTML element type from its tag name + * @example + * HTMLElementFromTag<"img"> // resolved type: HTMLImageElement + */ +type HTMLElementFromTag = + JSX.IntrinsicElements[T] extends React.ClassAttributes + ? Element + : HTMLElement; + +export function createHeadlessComponent< + TElement extends keyof JSX.IntrinsicElements, +>( + displayName: string, + elementType: TElement, + props?: + | JSX.IntrinsicElements[TElement] + | ((displayName: string) => JSX.IntrinsicElements[TElement]) +) { + const component = forwardRef< + HTMLElementFromTag, + HeadlessComponentProps + >(({ className, asChild, children }, ref) => { + const Component = asChild ? Slot : elementType; + + const { children: defaultChildren, ...resolvedProps } = + typeof props === "function" ? props(displayName) : (props ?? {}); + const resolvedChildren = + /** + * Use props' default children if no children are set in the component element's children and when asChild is true. + */ + asChild && isValidElement(children) && !children.props.children + ? cloneElement(children, {}, defaultChildren) + : (children ?? defaultChildren); + + return ( + /** + * Due to the complexity of the types at play, TypeScript reports the + * following error for our JSX below: + * + * `Expression produces a union type that is too complex to represent.` + * + * We can safely ignore this error and retain accurate return types for + * consumers of this function. The only drawback is that type-checking is + * ignored for the JSX block below. + */ + // @ts-expect-error + + {resolvedChildren} + + ); + }); + component.displayName = displayName; + + return component; +} diff --git a/packages/wallet-adapter-swap/src/SolanaWalletSelector.tsx b/packages/wallet-adapter-swap/src/SolanaWalletSelector.tsx new file mode 100644 index 00000000..9358930a --- /dev/null +++ b/packages/wallet-adapter-swap/src/SolanaWalletSelector.tsx @@ -0,0 +1,192 @@ +import { Copy, LogOut } from "lucide-react"; +import { useCallback, useEffect, useState } from "react"; +import { Button } from "./ui/button"; +import { Dialog, DialogContent, DialogTrigger } from "./ui/dialog"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "./ui/dropdown-menu"; +import { useToast } from "./ui/use-toast"; +import { + getSolanaStandardWallets, + SolanaWallet, +} from "@xlabs-libs/wallet-aggregator-solana"; +import { WalletState } from "@xlabs-libs/wallet-aggregator-core"; +import { Connection } from "@solana/web3.js"; +import { SolanaWalletItem } from "./SolanaWalletItem"; +import { truncateAddress } from "@aptos-labs/wallet-adapter-react"; + +export function SolanaWalletSelector({ + setSourceWalletAddress, + setSourceWallet, +}: { + setSourceWalletAddress: (address: string | null) => void; + setSourceWallet: (wallet: SolanaWallet | null) => void; +}) { + const [connected, setConnected] = useState(false); + const [accountAddress, setAccountAddress] = useState( + undefined + ); + const [wallet, setWallet] = useState(undefined); + + const { toast } = useToast(); + const [isDialogOpen, setIsDialogOpen] = useState(false); + + const closeDialog = useCallback(() => setIsDialogOpen(false), []); + + const onDisconnect = useCallback(async () => { + await wallet?.disconnect(); + setConnected(false); + setSourceWalletAddress(null); + setSourceWallet(null); + setAccountAddress(undefined); + setWallet(undefined); + }, [wallet]); + + const copyAddress = useCallback(async () => { + if (!accountAddress) return; + try { + await navigator.clipboard.writeText(accountAddress); + toast({ + title: "Success", + description: "Copied wallet address to clipboard.", + }); + } catch { + toast({ + variant: "destructive", + title: "Error", + description: "Failed to copy wallet address.", + }); + } + }, [accountAddress, toast]); + + return connected ? ( + + + + + + + Copy address + + + Disconnect + + + + ) : ( + + + + + + + ); +} + +interface ConnectWalletDialogProps { + close: () => void; + setAccountAddress: (address: string | undefined) => void; + setConnected: (connected: boolean) => void; + setWallet: (wallet: SolanaWallet | undefined) => void; + setSourceWalletAddress: (address: string | null) => void; + setSourceWallet: (wallet: SolanaWallet | null) => void; +} + +function ConnectWalletDialog({ + close, + setAccountAddress, + setConnected, + setWallet, + setSourceWalletAddress, + setSourceWallet, +}: ConnectWalletDialogProps) { + const [wallets, setSolanaWallets] = useState([]); + + useEffect(() => { + const solanaWallets = async () => { + // const cluster = "mainnet-beta"; + // const url = clusterApiUrl(cluster); + const isDevnet = true; + const connection = isDevnet + ? "https://api.devnet.solana.com" + : "https://solana-mainnet.rpc.extrnode.com/eb370d10-948a-4f47-8017-a80241a5c7fc"; + const wallets = await getSolanaStandardWallets( + new Connection(connection) + ); + console.log("solanaWallets wallets", wallets); + setSolanaWallets(wallets); + }; + solanaWallets(); + }, []); + + const onConnectClick = useCallback( + (wallet: SolanaWallet) => { + setAccountAddress(wallet.getAddress()); + setConnected(true); + setWallet(wallet); + setSourceWalletAddress(wallet.getAddress() || null); + setSourceWallet(wallet); + close(); + }, + [setAccountAddress, close, setSourceWallet] + ); + + return ( + +
+ {wallets.map((wallet) => ( + onConnectClick(wallet)} + /> + ))} +
+
+ ); +} + +interface WalletRowProps { + wallet: SolanaWallet; + onConnect?: () => void; +} + +function WalletRow({ wallet, onConnect }: WalletRowProps) { + const connectWallet = useCallback(async () => { + const res = await wallet.connect(); + console.log("res", res); + onConnect?.(); + }, [wallet, onConnect]); + + return ( + +
+ + +
+ {wallet.getWalletState() === WalletState.NotDetected ? ( + + ) : ( + + + + )} +
+ ); +} diff --git a/packages/wallet-adapter-swap/src/WalletSelector.tsx b/packages/wallet-adapter-swap/src/WalletSelector.tsx new file mode 100644 index 00000000..8225fd48 --- /dev/null +++ b/packages/wallet-adapter-swap/src/WalletSelector.tsx @@ -0,0 +1,292 @@ +import { + APTOS_CONNECT_ACCOUNT_URL, + AboutAptosConnect, + AboutAptosConnectEducationScreen, + AnyAptosWallet, + AptosPrivacyPolicy, + WalletItem, + WalletSortingOptions, + groupAndSortWallets, + isAptosConnectWallet, + isInstallRequired, + truncateAddress, + useWallet, +} from "@aptos-labs/wallet-adapter-react"; +import { + ArrowLeft, + ArrowRight, + ChevronDown, + Copy, + LogOut, + User, +} from "lucide-react"; +import { useCallback, useState } from "react"; +import { Button } from "./ui/button"; +import { + Collapsible, + CollapsibleContent, + CollapsibleTrigger, +} from "./ui/collapsible"; +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, + DialogTrigger, +} from "./ui/dialog"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "./ui/dropdown-menu"; +import { useToast } from "./ui/use-toast"; + +export function WalletSelector(walletSortingOptions: WalletSortingOptions) { + const { account, connected, disconnect, wallet } = useWallet(); + const { toast } = useToast(); + const [isDialogOpen, setIsDialogOpen] = useState(false); + + const closeDialog = useCallback(() => setIsDialogOpen(false), []); + + const copyAddress = useCallback(async () => { + if (!account?.address) return; + try { + await navigator.clipboard.writeText(account.address); + toast({ + title: "Success", + description: "Copied wallet address to clipboard.", + }); + } catch { + toast({ + variant: "destructive", + title: "Error", + description: "Failed to copy wallet address.", + }); + } + }, [account?.address, toast]); + + return connected ? ( + + + + + + + Copy address + + {wallet && isAptosConnectWallet(wallet) && ( + + + Account + + + )} + + Disconnect + + + + ) : ( + + + + + + + ); +} + +interface ConnectWalletDialogProps extends WalletSortingOptions { + close: () => void; +} + +function ConnectWalletDialog({ + close, + ...walletSortingOptions +}: ConnectWalletDialogProps) { + const { wallets = [] } = useWallet(); + + const { aptosConnectWallets, availableWallets, installableWallets } = + groupAndSortWallets(wallets, walletSortingOptions); + + const hasAptosConnectWallets = !!aptosConnectWallets.length; + + const handleOnConnect = (wallet: AnyAptosWallet) => { + close(); + console.log("Connected to wallet: ", wallet); + }; + + return ( + + + + + {hasAptosConnectWallets ? ( + <> + Log in or sign up + with Social + Aptos Connect + + ) : ( + "Connect Wallet" + )} + + + + {hasAptosConnectWallets && ( +
+ {aptosConnectWallets.map((wallet) => ( + + ))} +

+ Learn more about{" "} + + Aptos Connect + +

+ +

+ {" "} + + . +

+ +
+
+
+ Or +
+
+
+ )} + +
+ {availableWallets.map((wallet) => ( + + ))} + {!!installableWallets.length && ( + + + + + + {installableWallets.map((wallet) => ( + + ))} + + + )} +
+ + + ); +} + +interface WalletRowProps { + wallet: AnyAptosWallet; + onConnect?: () => void; +} + +function WalletRow({ wallet, onConnect }: WalletRowProps) { + return ( + +
+ + +
+ {isInstallRequired(wallet) ? ( + + ) : ( + + + + )} +
+ ); +} + +function AptosConnectWalletRow({ wallet, onConnect }: WalletRowProps) { + return ( + + + + + + ); +} + +function renderEducationScreen(screen: AboutAptosConnectEducationScreen) { + return ( + <> + + + + About Aptos Connect + + + +
+ +
+
+ + +
+ +
+ +
+ {screen.screenIndicators.map((ScreenIndicator, i) => ( + +
+ + ))} +
+ +
+ + ); +} diff --git a/packages/wallet-adapter-swap/src/global.css b/packages/wallet-adapter-swap/src/global.css new file mode 100644 index 00000000..a1be0c34 --- /dev/null +++ b/packages/wallet-adapter-swap/src/global.css @@ -0,0 +1,59 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 222.2 47.4% 11.2%; + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; + --popover: 0 0% 100%; + --popover-foreground: 222.2 47.4% 11.2%; + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + --card: 0 0% 100%; + --card-foreground: 222.2 47.4% 11.2%; + --primary: 222.2 47.4% 11.2%; + --primary-foreground: 210 40% 98%; + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; + --accent: 210 40% 96.1%; + --accent-foreground: 222.2 47.4% 11.2%; + --destructive: 0 100% 50%; + --destructive-foreground: 210 40% 98%; + --ring: 215 20.2% 65.1%; + --radius: 0.5rem; + } + + .dark { + --background: 224 71% 4%; + --foreground: 213 31% 91%; + --muted: 223 47% 11%; + --muted-foreground: 215.4 16.3% 56.9%; + --accent: 216 34% 17%; + --accent-foreground: 210 40% 98%; + --popover: 224 71% 4%; + --popover-foreground: 215 20.2% 65.1%; + --border: 216 34% 17%; + --input: 216 34% 17%; + --card: 224 71% 4%; + --card-foreground: 213 31% 91%; + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 1.2%; + --secondary: 222.2 47.4% 11.2%; + --secondary-foreground: 210 40% 98%; + --destructive: 0 63% 31%; + --destructive-foreground: 210 40% 98%; + --ring: 216 34% 17%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply font-sans antialiased bg-background text-foreground; + } +} diff --git a/packages/wallet-adapter-swap/src/icons/Ethereum.tsx b/packages/wallet-adapter-swap/src/icons/Ethereum.tsx new file mode 100644 index 00000000..9b2f96d2 --- /dev/null +++ b/packages/wallet-adapter-swap/src/icons/Ethereum.tsx @@ -0,0 +1,26 @@ +import { SVGProps, forwardRef } from "react"; + +export const EthereumIcon = forwardRef>( + (props, ref) => { + return ( + + + + + + + + ); + } +); +EthereumIcon.displayName = "EthereumIcon"; diff --git a/packages/wallet-adapter-swap/src/icons/Solana.tsx b/packages/wallet-adapter-swap/src/icons/Solana.tsx new file mode 100644 index 00000000..4b0b748f --- /dev/null +++ b/packages/wallet-adapter-swap/src/icons/Solana.tsx @@ -0,0 +1,42 @@ +import { SVGProps, forwardRef } from "react"; + +export const SolanaIcon = forwardRef>( + (props, ref) => { + return ( + + + + + + + + + + + + + + + + ); + } +); +SolanaIcon.displayName = "SolanaIcon"; diff --git a/packages/wallet-adapter-swap/src/icons/USDC.tsx b/packages/wallet-adapter-swap/src/icons/USDC.tsx new file mode 100644 index 00000000..21817474 --- /dev/null +++ b/packages/wallet-adapter-swap/src/icons/USDC.tsx @@ -0,0 +1,29 @@ +import React from 'react'; + +function USDC() { + return ( + + + + + + ); +} + +export default USDC; diff --git a/packages/wallet-adapter-swap/src/index.tsx b/packages/wallet-adapter-swap/src/index.tsx new file mode 100644 index 00000000..438c0727 --- /dev/null +++ b/packages/wallet-adapter-swap/src/index.tsx @@ -0,0 +1 @@ +export * from "./MultiChain"; diff --git a/packages/wallet-adapter-swap/src/lib/utils.ts b/packages/wallet-adapter-swap/src/lib/utils.ts new file mode 100644 index 00000000..365058ce --- /dev/null +++ b/packages/wallet-adapter-swap/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} diff --git a/packages/wallet-adapter-swap/src/ui/button.tsx b/packages/wallet-adapter-swap/src/ui/button.tsx new file mode 100644 index 00000000..57c9fe47 --- /dev/null +++ b/packages/wallet-adapter-swap/src/ui/button.tsx @@ -0,0 +1,56 @@ +import * as React from "react"; +import { Slot } from "@radix-ui/react-slot"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/lib/utils"; + +const buttonVariants = cva( + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground hover:bg-destructive/90", + outline: + "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + }, +); + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean; +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button"; + return ( + + ); + }, +); +Button.displayName = "Button"; + +export { Button, buttonVariants }; diff --git a/packages/wallet-adapter-swap/src/ui/card.tsx b/packages/wallet-adapter-swap/src/ui/card.tsx new file mode 100644 index 00000000..dc3b01de --- /dev/null +++ b/packages/wallet-adapter-swap/src/ui/card.tsx @@ -0,0 +1,86 @@ +import * as React from "react"; + +import { cn } from "@/lib/utils"; + +const Card = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +Card.displayName = "Card"; + +const CardHeader = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +CardHeader.displayName = "CardHeader"; + +const CardTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)); +CardTitle.displayName = "CardTitle"; + +const CardDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)); +CardDescription.displayName = "CardDescription"; + +const CardContent = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)); +CardContent.displayName = "CardContent"; + +const CardFooter = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +CardFooter.displayName = "CardFooter"; + +export { + Card, + CardHeader, + CardFooter, + CardTitle, + CardDescription, + CardContent, +}; diff --git a/packages/wallet-adapter-swap/src/ui/collapsible.tsx b/packages/wallet-adapter-swap/src/ui/collapsible.tsx new file mode 100644 index 00000000..5c28cbcc --- /dev/null +++ b/packages/wallet-adapter-swap/src/ui/collapsible.tsx @@ -0,0 +1,9 @@ +import * as CollapsiblePrimitive from "@radix-ui/react-collapsible"; + +const Collapsible = CollapsiblePrimitive.Root; + +const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger; + +const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent; + +export { Collapsible, CollapsibleTrigger, CollapsibleContent }; diff --git a/packages/wallet-adapter-swap/src/ui/dialog.tsx b/packages/wallet-adapter-swap/src/ui/dialog.tsx new file mode 100644 index 00000000..30dacc9c --- /dev/null +++ b/packages/wallet-adapter-swap/src/ui/dialog.tsx @@ -0,0 +1,120 @@ +import * as React from "react"; +import * as DialogPrimitive from "@radix-ui/react-dialog"; +import { X } from "lucide-react"; + +import { cn } from "@/lib/utils"; + +const Dialog = DialogPrimitive.Root; + +const DialogTrigger = DialogPrimitive.Trigger; + +const DialogPortal = DialogPrimitive.Portal; + +const DialogClose = DialogPrimitive.Close; + +const DialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName; + +const DialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + {children} + + + Close + + + +)); +DialogContent.displayName = DialogPrimitive.Content.displayName; + +const DialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+); +DialogHeader.displayName = "DialogHeader"; + +const DialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+); +DialogFooter.displayName = "DialogFooter"; + +const DialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +DialogTitle.displayName = DialogPrimitive.Title.displayName; + +const DialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +DialogDescription.displayName = DialogPrimitive.Description.displayName; + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogClose, + DialogTrigger, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +}; diff --git a/packages/wallet-adapter-swap/src/ui/dropdown-menu.tsx b/packages/wallet-adapter-swap/src/ui/dropdown-menu.tsx new file mode 100644 index 00000000..5c1e59d3 --- /dev/null +++ b/packages/wallet-adapter-swap/src/ui/dropdown-menu.tsx @@ -0,0 +1,198 @@ +import * as React from "react"; +import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"; +import { Check, ChevronRight, Circle } from "lucide-react"; + +import { cn } from "@/lib/utils"; + +const DropdownMenu = DropdownMenuPrimitive.Root; + +const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger; + +const DropdownMenuGroup = DropdownMenuPrimitive.Group; + +const DropdownMenuPortal = DropdownMenuPrimitive.Portal; + +const DropdownMenuSub = DropdownMenuPrimitive.Sub; + +const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup; + +const DropdownMenuSubTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean; + } +>(({ className, inset, children, ...props }, ref) => ( + + {children} + + +)); +DropdownMenuSubTrigger.displayName = + DropdownMenuPrimitive.SubTrigger.displayName; + +const DropdownMenuSubContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +DropdownMenuSubContent.displayName = + DropdownMenuPrimitive.SubContent.displayName; + +const DropdownMenuContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + + + +)); +DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName; + +const DropdownMenuItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean; + } +>(({ className, inset, ...props }, ref) => ( + +)); +DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName; + +const DropdownMenuCheckboxItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, checked, ...props }, ref) => ( + + + + + + + {children} + +)); +DropdownMenuCheckboxItem.displayName = + DropdownMenuPrimitive.CheckboxItem.displayName; + +const DropdownMenuRadioItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + {children} + +)); +DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName; + +const DropdownMenuLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean; + } +>(({ className, inset, ...props }, ref) => ( + +)); +DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName; + +const DropdownMenuSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName; + +const DropdownMenuShortcut = ({ + className, + ...props +}: React.HTMLAttributes) => { + return ( + + ); +}; +DropdownMenuShortcut.displayName = "DropdownMenuShortcut"; + +export { + DropdownMenu, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuCheckboxItem, + DropdownMenuRadioItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuGroup, + DropdownMenuPortal, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuRadioGroup, +}; diff --git a/packages/wallet-adapter-swap/src/ui/input.tsx b/packages/wallet-adapter-swap/src/ui/input.tsx new file mode 100644 index 00000000..68551b92 --- /dev/null +++ b/packages/wallet-adapter-swap/src/ui/input.tsx @@ -0,0 +1,22 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Input = React.forwardRef>( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = "Input" + +export { Input } diff --git a/packages/wallet-adapter-swap/src/ui/progress.tsx b/packages/wallet-adapter-swap/src/ui/progress.tsx new file mode 100644 index 00000000..7cf0d93d --- /dev/null +++ b/packages/wallet-adapter-swap/src/ui/progress.tsx @@ -0,0 +1,28 @@ +import * as React from "react"; +import * as ProgressPrimitive from "@radix-ui/react-progress"; + +import { cn } from "@/lib/utils"; + +const Progress = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, value, ...props }, ref) => { + return ( + + + + ); +}); +Progress.displayName = ProgressPrimitive.Root.displayName; + +export { Progress }; diff --git a/packages/wallet-adapter-swap/src/ui/select.tsx b/packages/wallet-adapter-swap/src/ui/select.tsx new file mode 100644 index 00000000..df0d2287 --- /dev/null +++ b/packages/wallet-adapter-swap/src/ui/select.tsx @@ -0,0 +1,158 @@ +import * as React from "react"; +import * as SelectPrimitive from "@radix-ui/react-select"; +import { Check, ChevronDown, ChevronUp } from "lucide-react"; + +import { cn } from "@/lib/utils"; + +const Select = SelectPrimitive.Root; + +const SelectGroup = SelectPrimitive.Group; + +const SelectValue = SelectPrimitive.Value; + +const SelectTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + span]:line-clamp-1", + className + )} + {...props} + > + {children} + + + + +)); +SelectTrigger.displayName = SelectPrimitive.Trigger.displayName; + +const SelectScrollUpButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)); +SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName; + +const SelectScrollDownButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)); +SelectScrollDownButton.displayName = + SelectPrimitive.ScrollDownButton.displayName; + +const SelectContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, position = "popper", ...props }, ref) => ( + + + + + {children} + + + + +)); +SelectContent.displayName = SelectPrimitive.Content.displayName; + +const SelectLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +SelectLabel.displayName = SelectPrimitive.Label.displayName; + +const SelectItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + {/* + + + + */} + + {children} + +)); +SelectItem.displayName = SelectPrimitive.Item.displayName; + +const SelectSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +SelectSeparator.displayName = SelectPrimitive.Separator.displayName; + +export { + Select, + SelectGroup, + SelectValue, + SelectTrigger, + SelectContent, + SelectLabel, + SelectItem, + SelectSeparator, + SelectScrollUpButton, + SelectScrollDownButton, +}; diff --git a/packages/wallet-adapter-swap/src/ui/toast.tsx b/packages/wallet-adapter-swap/src/ui/toast.tsx new file mode 100644 index 00000000..e5c16c5c --- /dev/null +++ b/packages/wallet-adapter-swap/src/ui/toast.tsx @@ -0,0 +1,127 @@ +import * as React from "react"; +import * as ToastPrimitives from "@radix-ui/react-toast"; +import { cva, type VariantProps } from "class-variance-authority"; +import { X } from "lucide-react"; + +import { cn } from "@/lib/utils"; + +const ToastProvider = ToastPrimitives.Provider; + +const ToastViewport = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +ToastViewport.displayName = ToastPrimitives.Viewport.displayName; + +const toastVariants = cva( + "group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full", + { + variants: { + variant: { + default: "border bg-background text-foreground", + destructive: + "destructive group border-destructive bg-destructive text-destructive-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +); + +const Toast = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, variant, ...props }, ref) => { + return ( + + ); +}); +Toast.displayName = ToastPrimitives.Root.displayName; + +const ToastAction = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +ToastAction.displayName = ToastPrimitives.Action.displayName; + +const ToastClose = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)); +ToastClose.displayName = ToastPrimitives.Close.displayName; + +const ToastTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +ToastTitle.displayName = ToastPrimitives.Title.displayName; + +const ToastDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +ToastDescription.displayName = ToastPrimitives.Description.displayName; + +type ToastProps = React.ComponentPropsWithoutRef; + +type ToastActionElement = React.ReactElement; + +export { + type ToastProps, + type ToastActionElement, + ToastProvider, + ToastViewport, + Toast, + ToastTitle, + ToastDescription, + ToastClose, + ToastAction, +}; diff --git a/packages/wallet-adapter-swap/src/ui/use-toast.ts b/packages/wallet-adapter-swap/src/ui/use-toast.ts new file mode 100644 index 00000000..4bbde359 --- /dev/null +++ b/packages/wallet-adapter-swap/src/ui/use-toast.ts @@ -0,0 +1,189 @@ +// Inspired by react-hot-toast library +import * as React from "react"; + +import type { ToastActionElement, ToastProps } from "@/ui/toast"; + +const TOAST_LIMIT = 1; +const TOAST_REMOVE_DELAY = 1000000; + +type ToasterToast = ToastProps & { + id: string; + title?: React.ReactNode; + description?: React.ReactNode; + action?: ToastActionElement; +}; + +const actionTypes = { + ADD_TOAST: "ADD_TOAST", + UPDATE_TOAST: "UPDATE_TOAST", + DISMISS_TOAST: "DISMISS_TOAST", + REMOVE_TOAST: "REMOVE_TOAST", +} as const; + +let count = 0; + +function genId() { + count = (count + 1) % Number.MAX_SAFE_INTEGER; + return count.toString(); +} + +type ActionType = typeof actionTypes; + +type Action = + | { + type: ActionType["ADD_TOAST"]; + toast: ToasterToast; + } + | { + type: ActionType["UPDATE_TOAST"]; + toast: Partial; + } + | { + type: ActionType["DISMISS_TOAST"]; + toastId?: ToasterToast["id"]; + } + | { + type: ActionType["REMOVE_TOAST"]; + toastId?: ToasterToast["id"]; + }; + +interface State { + toasts: ToasterToast[]; +} + +const toastTimeouts = new Map>(); + +const addToRemoveQueue = (toastId: string) => { + if (toastTimeouts.has(toastId)) { + return; + } + + const timeout = setTimeout(() => { + toastTimeouts.delete(toastId); + dispatch({ + type: "REMOVE_TOAST", + toastId: toastId, + }); + }, TOAST_REMOVE_DELAY); + + toastTimeouts.set(toastId, timeout); +}; + +export const reducer = (state: State, action: Action): State => { + switch (action.type) { + case "ADD_TOAST": + return { + ...state, + toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT), + }; + + case "UPDATE_TOAST": + return { + ...state, + toasts: state.toasts.map((t) => + t.id === action.toast.id ? { ...t, ...action.toast } : t + ), + }; + + case "DISMISS_TOAST": { + const { toastId } = action; + + // ! Side effects ! - This could be extracted into a dismissToast() action, + // but I'll keep it here for simplicity + if (toastId) { + addToRemoveQueue(toastId); + } else { + state.toasts.forEach((toast) => { + addToRemoveQueue(toast.id); + }); + } + + return { + ...state, + toasts: state.toasts.map((t) => + t.id === toastId || toastId === undefined + ? { + ...t, + open: false, + } + : t + ), + }; + } + case "REMOVE_TOAST": + if (action.toastId === undefined) { + return { + ...state, + toasts: [], + }; + } + return { + ...state, + toasts: state.toasts.filter((t) => t.id !== action.toastId), + }; + } +}; + +const listeners: Array<(state: State) => void> = []; + +let memoryState: State = { toasts: [] }; + +function dispatch(action: Action) { + memoryState = reducer(memoryState, action); + listeners.forEach((listener) => { + listener(memoryState); + }); +} + +type Toast = Omit; + +function toast({ ...props }: Toast) { + const id = genId(); + + const update = (props: ToasterToast) => + dispatch({ + type: "UPDATE_TOAST", + toast: { ...props, id }, + }); + const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id }); + + dispatch({ + type: "ADD_TOAST", + toast: { + ...props, + id, + open: true, + onOpenChange: (open: any) => { + if (!open) dismiss(); + }, + }, + }); + + return { + id: id, + dismiss, + update, + }; +} + +function useToast() { + const [state, setState] = React.useState(memoryState); + + React.useEffect(() => { + listeners.push(setState); + return () => { + const index = listeners.indexOf(setState); + if (index > -1) { + listeners.splice(index, 1); + } + }; + }, [state]); + + return { + ...state, + toast, + dismiss: (toastId?: string) => dispatch({ type: "DISMISS_TOAST", toastId }), + }; +} + +export { useToast, toast }; diff --git a/packages/wallet-adapter-swap/src/utils.tsx b/packages/wallet-adapter-swap/src/utils.tsx new file mode 100644 index 00000000..9a388524 --- /dev/null +++ b/packages/wallet-adapter-swap/src/utils.tsx @@ -0,0 +1,201 @@ +export const mainnetChains = { + Ethereum: { + key: "Ethereum", + id: 2, + context: "Ethereum", + finalityThreshold: 64, + displayName: "Ethereum", + explorerUrl: "https://etherscan.io/", + explorerName: "Etherscan", + gasToken: "ETH", + chainId: 1, + icon: "Ethereum", + maxBlockSearch: 2000, + symbol: "ETH", + }, + Solana: { + key: "Solana", + id: 1, + context: "Solana", + finalityThreshold: 32, + displayName: "Solana", + explorerUrl: "https://explorer.solana.com/", + explorerName: "Solana Explorer", + gasToken: "SOL", + chainId: 0, + icon: "Solana", + maxBlockSearch: 2000, + symbol: "SOL", + }, +}; + +export const testnetChains = { + // Ethereum: { + // key: "Ethereum", + // id: 2, + // context: "Ethereum", + // finalityThreshold: 64, + // displayName: "Ethereum", + // explorerUrl: "https://etherscan.io/", + // explorerName: "Etherscan", + // gasToken: "ETH", + // chainId: 1, + // icon: "Ethereum", + // maxBlockSearch: 2000, + // symbol: "ETH", + // }, + Ethereum: { + key: "BaseSepolia", + id: 10004, + context: "Ethereum", + finalityThreshold: 0, + displayName: "Ethereum", + explorerUrl: "https://etherscan.io/", + explorerName: "Etherscan", + gasToken: "ETH", + chainId: 1, + icon: "Ethereum", + maxBlockSearch: 2000, + symbol: "ETH", + }, + Solana: { + key: "Solana", + id: 1, + context: "Solana", + finalityThreshold: 32, + displayName: "Solana", + explorerUrl: "https://explorer.solana.com/", + explorerName: "Solana Explorer", + gasToken: "SOL", + chainId: 0, + icon: "Solana", + maxBlockSearch: 2000, + symbol: "SOL", + sdkName: "Solana", + wrappedGasToken: "So11111111111111111111111111111111111111112", + }, +}; + +export const mainnetChainTokens: Record = { + Ethereum: { + key: "USDCeth", + symbol: "USDC", + nativeChain: "Ethereum", + tokenId: { + chain: "Ethereum", + address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + }, + icon: "USDC", + coinGeckoId: "usd-coin", + color: "#ffffff", + decimals: 6, + }, + Solana: { + key: "USDCsol", + symbol: "USDC", + nativeChain: "Solana", + tokenId: { + chain: "Solana", + address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + }, + icon: "USDC", + coinGeckoId: "usd-coin", + color: "#2774CA", + decimals: 6, + }, +}; + +export const testnetChainTokens: Record = { + Ethereum: { + symbol: "USDC", + decimals: 6, + tokenId: { + chain: "Sepolia", + address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238", + }, + icon: "USDC", + }, + // Ethereum: { + // symbol: "USDC", + // icon: "USDC", + // decimals: 6, + // tokenId: { + // chain: "Avalanche", + // address: "0x5425890298aed601595a70AB815c96711a31Bc65", + // }, + // }, + Solana: { + symbol: "USDC", + tokenId: { + chain: "Solana", + address: "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU", + }, + icon: "USDC", + decimals: 6, + }, +}; + +export const AptosMainnetUSDCToken = { + USDCapt: { + key: "USDCapt", + symbol: "USDC", + nativeChain: "Aptos", + tokenId: { + chain: "Aptos", + address: + "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b", + }, + icon: "USDC", + coinGeckoId: "usd-coin", + color: "#2774CA", + decimals: 6, + }, +}; + +export const AptosTestnetUSDCToken = { + USDCapt: { + symbol: "USDC", + decimals: 6, + tokenId: { + chain: "Aptos", + address: + "0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832", + }, + icon: "USDC", + }, +}; + +export const AptosMainnetChain = { + Aptos: { + key: "Aptos", + id: 22, + context: "Aptos", + finalityThreshold: 0, + displayName: "Aptos", + explorerUrl: "https://explorer.aptoslabs.com/", + explorerName: "Aptos Explorer", + gasToken: "APT", + chainId: 0, + icon: "Aptos", + maxBlockSearch: 0, + symbol: "APT", + }, +}; + +export const AptosTestnetChain = { + Aptos: { + key: "Aptos", + id: 22, + context: "Aptos", + finalityThreshold: 0, + displayName: "Aptos", + explorerUrl: "https://explorer.aptoslabs.com/", + explorerName: "Aptos Explorer", + gasToken: "APT", + chainId: 0, + icon: "Aptos", + maxBlockSearch: 0, + symbol: "APT", + sdkName: "Aptos", + }, +}; diff --git a/packages/wallet-adapter-swap/tailwind.config.d.ts b/packages/wallet-adapter-swap/tailwind.config.d.ts new file mode 100644 index 00000000..ea1cdaf5 --- /dev/null +++ b/packages/wallet-adapter-swap/tailwind.config.d.ts @@ -0,0 +1,84 @@ +declare const config: { + darkMode: ["class"]; + content: string[]; + prefix: string; + theme: { + container: { + center: true; + padding: string; + screens: { + "2xl": string; + }; + }; + extend: { + fontFamily: { + sans: [string, ...string[]]; + }; + colors: { + border: string; + input: string; + ring: string; + background: string; + foreground: string; + primary: { + DEFAULT: string; + foreground: string; + }; + secondary: { + DEFAULT: string; + foreground: string; + }; + destructive: { + DEFAULT: string; + foreground: string; + }; + muted: { + DEFAULT: string; + foreground: string; + }; + accent: { + DEFAULT: string; + foreground: string; + }; + popover: { + DEFAULT: string; + foreground: string; + }; + card: { + DEFAULT: string; + foreground: string; + }; + }; + borderRadius: { + lg: string; + md: string; + sm: string; + }; + keyframes: { + "accordion-down": { + from: { + height: string; + }; + to: { + height: string; + }; + }; + "accordion-up": { + from: { + height: string; + }; + to: { + height: string; + }; + }; + }; + animation: { + "accordion-down": string; + "accordion-up": string; + }; + }; + }; + plugins: any[]; +}; +export default config; +//# sourceMappingURL=tailwind.config.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-swap/tailwind.config.d.ts.map b/packages/wallet-adapter-swap/tailwind.config.d.ts.map new file mode 100644 index 00000000..a6ac077b --- /dev/null +++ b/packages/wallet-adapter-swap/tailwind.config.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tailwind.config.d.ts","sourceRoot":"","sources":["tailwind.config.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEM,CAAC;AAEnB,eAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-swap/tailwind.config.ts b/packages/wallet-adapter-swap/tailwind.config.ts new file mode 100644 index 00000000..3bb34d93 --- /dev/null +++ b/packages/wallet-adapter-swap/tailwind.config.ts @@ -0,0 +1,79 @@ +import type { Config } from "tailwindcss"; +import { fontFamily } from "tailwindcss/defaultTheme"; + +const config = { + darkMode: ["class"], + content: ["src/**/*.{ts,tsx}"], + prefix: "", + theme: { + container: { + center: true, + padding: "2rem", + screens: { + "2xl": "1400px", + }, + }, + extend: { + fontFamily: { + sans: ["var(--font-sans)", ...fontFamily.sans], + }, + colors: { + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))", + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))", + }, + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))", + }, + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", + }, + keyframes: { + "accordion-down": { + from: { height: "0" }, + to: { height: "var(--radix-accordion-content-height)" }, + }, + "accordion-up": { + from: { height: "var(--radix-accordion-content-height)" }, + to: { height: "0" }, + }, + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", + }, + }, + }, + plugins: [require("tailwindcss-animate")], +} satisfies Config; + +export default config; diff --git a/packages/wallet-adapter-swap/tsconfig.json b/packages/wallet-adapter-swap/tsconfig.json new file mode 100644 index 00000000..158ae22a --- /dev/null +++ b/packages/wallet-adapter-swap/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "@aptos-labs/wallet-adapter-tsconfig/react-library.json", + "include": ["**/*.ts", "**/*.tsx"], + "exclude": ["dist", "build", "node_modules"], + "compilerOptions": { + "outDir": "dist", + "paths": { + "@/*": ["./src/*"] + }, + "allowImportingTsExtensions": true, + "emitDeclarationOnly": true + } +} From 01d558339d4fdbc09ecb8e689869f7e23839fc4b Mon Sep 17 00:00:00 2001 From: Blake Zimmerman Date: Wed, 5 Feb 2025 12:26:42 -0500 Subject: [PATCH 2/7] Fix CSS --- apps/nextjs-example/src/app/swap/page.tsx | 1 + packages/wallet-adapter-swap/package.json | 12 +- pnpm-lock.yaml | 18386 -------------------- 3 files changed, 10 insertions(+), 18389 deletions(-) delete mode 100644 pnpm-lock.yaml diff --git a/apps/nextjs-example/src/app/swap/page.tsx b/apps/nextjs-example/src/app/swap/page.tsx index b1fe961b..0fab48c0 100644 --- a/apps/nextjs-example/src/app/swap/page.tsx +++ b/apps/nextjs-example/src/app/swap/page.tsx @@ -1,6 +1,7 @@ "use client"; import { MultiChain } from "@aptos-labs/wallet-adapter-swap"; +import "@aptos-labs/wallet-adapter-swap/dist/index.css"; export default function Swap() { return ; diff --git a/packages/wallet-adapter-swap/package.json b/packages/wallet-adapter-swap/package.json index a58c6fc2..9928684a 100644 --- a/packages/wallet-adapter-swap/package.json +++ b/packages/wallet-adapter-swap/package.json @@ -7,9 +7,15 @@ "types": "./dist/index.d.ts", "license": "Apache-2.0", "exports": { - "require": "./dist/index.js", - "import": "./dist/index.mjs", - "types": "./dist/index.d.ts" + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + }, + "./dist/index.css": { + "import": "./dist/index.css", + "require": "./dist/index.css" + } }, "repository": { "type": "git", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 264d6ceb..00000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,18386 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - gh-pages: - specifier: ^5.0.0 - version: 5.0.0 - devDependencies: - '@aptos-labs/eslint-config-adapter': - specifier: workspace:* - version: link:packages/eslint-config-adapter - '@changesets/cli': - specifier: ^2.22.0 - version: 2.27.12 - prettier: - specifier: latest - version: 3.5.0 - turbo: - specifier: latest - version: 2.4.0 - - apps/nextjs-example: - dependencies: - '@aptos-labs/ts-sdk': - specifier: ^1.35.0 - version: 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-adapter-ant-design': - specifier: workspace:* - version: link:../../packages/wallet-adapter-ant-design - '@aptos-labs/wallet-adapter-core': - specifier: workspace:* - version: link:../../packages/wallet-adapter-core - '@aptos-labs/wallet-adapter-mui-design': - specifier: workspace:* - version: link:../../packages/wallet-adapter-mui-design - '@aptos-labs/wallet-adapter-react': - specifier: workspace:* - version: link:../../packages/wallet-adapter-react - '@aptos-labs/wallet-standard': - specifier: ^0.3.0 - version: 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@radix-ui/react-collapsible': - specifier: ^1.0.3 - version: 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-dialog': - specifier: ^1.0.5 - version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-dropdown-menu': - specifier: ^2.0.6 - version: 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-label': - specifier: ^2.0.2 - version: 2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-radio-group': - specifier: ^1.1.3 - version: 1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': - specifier: ^1.0.2 - version: 1.1.2(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-switch': - specifier: ^1.0.3 - version: 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toast': - specifier: ^1.1.5 - version: 1.2.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/react-query': - specifier: ^5.59.16 - version: 5.66.0(react@18.3.1) - '@telegram-apps/sdk': - specifier: ^2.0.0 - version: 2.11.3 - antd: - specifier: ^5.1.2 - version: 5.23.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - class-variance-authority: - specifier: ^0.7.0 - version: 0.7.1 - clsx: - specifier: ^2.1.1 - version: 2.1.1 - lucide-react: - specifier: ^0.383.0 - version: 0.383.0(react@18.3.1) - next: - specifier: 14.2.24 - version: 14.2.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next-themes: - specifier: ^0.3.0 - version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: - specifier: ^18.3.1 - version: 18.3.1 - react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) - tailwind-merge: - specifier: ^2.3.0 - version: 2.6.0 - tailwindcss-animate: - specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.17) - devDependencies: - '@types/node': - specifier: ^20 - version: 20.17.17 - '@types/react': - specifier: ^18.3.3 - version: 18.3.18 - '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.5(@types/react@18.3.18) - autoprefixer: - specifier: ^10.4.19 - version: 10.4.20(postcss@8.5.1) - eslint: - specifier: ^8 - version: 8.57.1 - eslint-config-next: - specifier: 14.2.3 - version: 14.2.3(eslint@8.57.1)(typescript@5.7.3) - postcss: - specifier: ^8.4.38 - version: 8.5.1 - prettier: - specifier: ^3.3.1 - version: 3.5.0 - tailwindcss: - specifier: ^3.4.1 - version: 3.4.17 - typescript: - specifier: ^5.4.5 - version: 5.7.3 - - apps/nuxt-example: - dependencies: - '@aptos-labs/ts-sdk': - specifier: ^1.35.0 - version: 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-adapter-core': - specifier: workspace:* - version: link:../../packages/wallet-adapter-core - '@aptos-labs/wallet-adapter-vue': - specifier: workspace:* - version: link:../../packages/wallet-adapter-vue - '@aptos-labs/wallet-standard': - specifier: ^0.3.0 - version: 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@bitget-wallet/aptos-wallet-adapter': - specifier: ^0.1.0 - version: 0.1.2(@aptos-labs/wallet-adapter-core@packages+wallet-adapter-core)(aptos@1.21.0) - '@martianwallet/aptos-wallet-adapter': - specifier: ^0.0.5 - version: 0.0.5 - '@msafe/aptos-wallet-adapter': - specifier: ^1.0.11 - version: 1.1.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(axios@1.7.9)(got@11.8.6) - '@nuxtjs/google-fonts': - specifier: ^3.2.0 - version: 3.2.0(magicast@0.3.5) - '@okwallet/aptos-wallet-adapter': - specifier: ^0.0.3 - version: 0.0.3 - '@pontem/wallet-adapter-plugin': - specifier: ^0.2.1 - version: 0.2.1 - '@trustwallet/aptos-wallet-adapter': - specifier: ^0.1.6 - version: 0.1.6 - class-variance-authority: - specifier: ^0.7.0 - version: 0.7.1 - clsx: - specifier: ^2.1.1 - version: 2.1.1 - fewcha-plugin-wallet-adapter: - specifier: ^0.1.3 - version: 0.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) - lucide-vue-next: - specifier: 0.396.0 - version: 0.396.0(vue@3.5.13(typescript@5.7.3)) - nuxt: - specifier: ^3.15.4 - version: 3.15.4(@parcel/watcher@2.5.1)(@types/node@20.17.17)(bufferutil@4.0.9)(db0@0.2.3)(eslint@8.57.1)(ioredis@5.5.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.6)(terser@5.38.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0) - radix-vue: - specifier: ^1.9.1 - version: 1.9.13(vue@3.5.13(typescript@5.7.3)) - tailwind-merge: - specifier: ^2.3.0 - version: 2.6.0 - tailwindcss-animate: - specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.17) - vue: - specifier: ^3.4.29 - version: 3.5.13(typescript@5.7.3) - vue-router: - specifier: ^4.3.3 - version: 4.5.0(vue@3.5.13(typescript@5.7.3)) - devDependencies: - '@nuxtjs/color-mode': - specifier: ^3.4.2 - version: 3.5.2(magicast@0.3.5) - '@nuxtjs/eslint-config-typescript': - specifier: 12.1.0 - version: 12.1.0(eslint@8.57.1)(typescript@5.7.3) - '@nuxtjs/eslint-module': - specifier: 4.1.0 - version: 4.1.0(eslint@8.57.1)(magicast@0.3.5)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(webpack@5.97.1) - '@nuxtjs/tailwindcss': - specifier: ^6.13.1 - version: 6.13.1(magicast@0.3.5) - consola: - specifier: ^3.2.3 - version: 3.4.0 - eslint: - specifier: ^8.15.0 - version: 8.57.1 - prettier: - specifier: ^3.3.1 - version: 3.5.0 - shadcn-nuxt: - specifier: ^0.10.4 - version: 0.10.4(magicast@0.3.5) - typescript: - specifier: ^5.4.5 - version: 5.7.3 - ufo: - specifier: 1.5.3 - version: 1.5.3 - - packages/eslint-config-adapter: - dependencies: - eslint: - specifier: ^7.23.0 - version: 7.32.0 - eslint-config-next: - specifier: 13.0.0 - version: 13.0.0(eslint@7.32.0)(typescript@4.9.5) - eslint-config-prettier: - specifier: ^8.3.0 - version: 8.10.0(eslint@7.32.0) - eslint-config-turbo: - specifier: latest - version: 2.4.0(eslint@7.32.0)(turbo@2.4.2) - eslint-plugin-react: - specifier: 7.31.8 - version: 7.31.8(eslint@7.32.0) - devDependencies: - typescript: - specifier: ^4.7.4 - version: 4.9.5 - - packages/tsconfig: {} - - packages/wallet-adapter-ant-design: - dependencies: - '@ant-design/icons': - specifier: ^5.3.7 - version: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@aptos-labs/wallet-adapter-react': - specifier: workspace:* - version: link:../wallet-adapter-react - antd: - specifier: ^5.18.3 - version: 5.23.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: - specifier: ^18 - version: 18.3.1 - react-dom: - specifier: ^18 - version: 18.3.1(react@18.3.1) - devDependencies: - '@aptos-labs/wallet-adapter-tsconfig': - specifier: workspace:* - version: link:../tsconfig - '@types/react': - specifier: ^18.3.3 - version: 18.3.18 - '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.5(@types/react@18.3.18) - eslint: - specifier: ^8.15.0 - version: 8.57.1 - tsup: - specifier: ^5.10.1 - version: 5.12.9(postcss@8.5.1)(typescript@4.9.5) - typescript: - specifier: ^4.5.3 - version: 4.9.5 - - packages/wallet-adapter-core: - dependencies: - '@aptos-connect/wallet-adapter-plugin': - specifier: 2.4.1 - version: 2.4.1(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-labs/ts-sdk': - specifier: ^1.35.0 - version: 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': - specifier: ^0.3.0 - version: 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@atomrigslab/aptos-wallet-adapter': - specifier: ^0.1.20 - version: 0.1.21(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(axios@1.7.9)(got@11.8.6) - '@mizuwallet-sdk/aptos-wallet-adapter': - specifier: ^0.3.2 - version: 0.3.2(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(axios@1.7.9)(got@11.8.6) - buffer: - specifier: ^6.0.3 - version: 6.0.3 - eventemitter3: - specifier: ^4.0.7 - version: 4.0.7 - tweetnacl: - specifier: ^1.0.3 - version: 1.0.3 - devDependencies: - '@aptos-labs/eslint-config-adapter': - specifier: workspace:* - version: link:../eslint-config-adapter - '@aptos-labs/wallet-adapter-tsconfig': - specifier: workspace:* - version: link:../tsconfig - '@types/jest': - specifier: ^29.2.4 - version: 29.5.14 - '@types/node': - specifier: ^20.10.4 - version: 20.17.17 - eslint: - specifier: ^8.15.0 - version: 8.57.1 - jest: - specifier: ^29.3.1 - version: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) - ts-jest: - specifier: ^29.0.3 - version: 29.2.5(@babel/core@7.26.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.8))(jest@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0))(typescript@4.9.5) - tsup: - specifier: ^5.10.1 - version: 5.12.9(postcss@8.5.1)(typescript@4.9.5) - typescript: - specifier: ^4.5.3 - version: 4.9.5 - - packages/wallet-adapter-mui-design: - dependencies: - '@aptos-labs/wallet-adapter-react': - specifier: workspace:* - version: link:../wallet-adapter-react - '@emotion/react': - specifier: ^11.10.5 - version: 11.14.0(@types/react@18.3.18)(react@18.3.1) - '@emotion/styled': - specifier: ^11.10.5 - version: 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) - '@mui/icons-material': - specifier: ^5.11.0 - version: 5.16.14(@mui/material@5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) - '@mui/material': - specifier: ^5.11.6 - version: 5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: - specifier: ^18 - version: 18.3.1 - react-dom: - specifier: ^18 - version: 18.3.1(react@18.3.1) - react-router-dom: - specifier: ^6.8.0 - version: 6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - devDependencies: - '@aptos-labs/wallet-adapter-tsconfig': - specifier: workspace:* - version: link:../tsconfig - '@types/react': - specifier: ^18.3.3 - version: 18.3.18 - '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.5(@types/react@18.3.18) - eslint: - specifier: ^8.15.0 - version: 8.57.1 - tsup: - specifier: ^5.10.1 - version: 5.12.9(postcss@8.5.1)(typescript@4.9.5) - typescript: - specifier: ^4.5.3 - version: 4.9.5 - - packages/wallet-adapter-react: - dependencies: - '@aptos-labs/wallet-adapter-core': - specifier: workspace:* - version: link:../wallet-adapter-core - '@radix-ui/react-slot': - specifier: ^1.0.2 - version: 1.1.2(@types/react@18.3.18)(react@18.3.1) - react: - specifier: ^18 - version: 18.3.1 - devDependencies: - '@aptos-labs/wallet-adapter-tsconfig': - specifier: workspace:* - version: link:../tsconfig - '@types/react': - specifier: ^18.3.3 - version: 18.3.18 - '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.5(@types/react@18.3.18) - eslint: - specifier: ^8.15.0 - version: 8.57.1 - tsup: - specifier: ^5.10.1 - version: 5.12.9(postcss@8.5.1)(typescript@4.9.5) - typescript: - specifier: ^4.5.3 - version: 4.9.5 - - packages/wallet-adapter-vue: - dependencies: - '@aptos-labs/wallet-adapter-core': - specifier: 5.0.0 - version: 5.0.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)(axios@1.7.9)(got@11.8.6) - vue: - specifier: ^3.4.21 - version: 3.5.13(typescript@4.9.5) - devDependencies: - '@vitejs/plugin-vue': - specifier: 5.0.5 - version: 5.0.5(vite@5.3.6(@types/node@20.17.17)(terser@5.38.1))(vue@3.5.13(typescript@4.9.5)) - eslint: - specifier: ^8.15.0 - version: 8.57.1 - rollup-plugin-typescript2: - specifier: ^0.36.0 - version: 0.36.0(rollup@4.34.6)(typescript@4.9.5) - typescript: - specifier: ^4.5.3 - version: 4.9.5 - vite: - specifier: 5.3.6 - version: 5.3.6(@types/node@20.17.17)(terser@5.38.1) - vite-plugin-compression: - specifier: ^0.5.1 - version: 0.5.1(vite@5.3.6(@types/node@20.17.17)(terser@5.38.1)) - vite-plugin-css-injected-by-js: - specifier: ^3.5.1 - version: 3.5.2(vite@5.3.6(@types/node@20.17.17)(terser@5.38.1)) - vite-plugin-dts: - specifier: 3.9.1 - version: 3.9.1(@types/node@20.17.17)(rollup@4.34.6)(typescript@4.9.5)(vite@5.3.6(@types/node@20.17.17)(terser@5.38.1)) - vue-tsc: - specifier: ^2.0.26 - version: 2.2.0(typescript@4.9.5) - -packages: - - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@ant-design/colors@7.2.0': - resolution: {integrity: sha512-bjTObSnZ9C/O8MB/B4OUtd/q9COomuJAR2SYfhxLyHvCKn4EKwCN3e+fWGMo7H5InAyV0wL17jdE9ALrdOW/6A==} - - '@ant-design/cssinjs-utils@1.1.3': - resolution: {integrity: sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@ant-design/cssinjs@1.23.0': - resolution: {integrity: sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - '@ant-design/fast-color@2.0.6': - resolution: {integrity: sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==} - engines: {node: '>=8.x'} - - '@ant-design/icons-svg@4.4.2': - resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==} - - '@ant-design/icons@5.6.1': - resolution: {integrity: sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==} - engines: {node: '>=8'} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - '@ant-design/react-slick@1.1.2': - resolution: {integrity: sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==} - peerDependencies: - react: '>=16.9.0' - - '@antfu/utils@0.7.10': - resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} - - '@aptos-connect/wallet-adapter-plugin@2.3.2': - resolution: {integrity: sha512-LW/jV1Apomglr5Swvd5IULkaoPw9+9oN7wnczQx6mIc8Qmiuv8ekc1df/OvIxn7kFKo62Dy+wUjcBKobUR8wOQ==} - peerDependencies: - '@aptos-labs/ts-sdk': 1.26.0 - '@aptos-labs/wallet-standard': 0.2.0 - - '@aptos-connect/wallet-adapter-plugin@2.4.1': - resolution: {integrity: sha512-jFuOEtnNWvi8VjvrXrNFp4iI2dci8Jv0l1FIuC5khMZKj2sDHLNF1dbZtcXNTRbD32KDrzl0Lngi42K0gReX8Q==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.33.1 - '@aptos-labs/wallet-standard': ^0.3.0 - - '@aptos-connect/wallet-api@0.1.6': - resolution: {integrity: sha512-S/D95pfDKSEEI8SsYy7sSzrjJ1DDnlVx7JVT9kpW11IjgCpHMHFs62EhZVhxztwcS+CYMyKdQpDyRO+IDtPVFw==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.33.1 - '@aptos-labs/wallet-standard': ^0.2.0 - aptos: ^1.20.0 - - '@aptos-connect/wallet-api@0.1.9': - resolution: {integrity: sha512-Olxvg/Jpf426uiEIUbxFuoRluhX3dja9EUqklY29yw/wOY7QDFv0+Es71xp8R2lgaU3gPFJxUwko1Jwz0XjswQ==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.33.1 - aptos: ^1.20.0 - - '@aptos-connect/web-transport@0.1.2': - resolution: {integrity: sha512-PPSF1fJPoFxUG/iJSLUuh6cS6TZm7A5kZNqzvPVU1n9IKBKaUua9jqwEbqwILvSHnRIAPWzbP10t3zP5Wa17EQ==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.33.1 - '@aptos-labs/wallet-standard': ^0.2.0 - '@telegram-apps/bridge': ^1.0.0 - aptos: ^1.20.0 - - '@aptos-connect/web-transport@0.1.3': - resolution: {integrity: sha512-XgQqBkXMqTdbD3+udTGpQQtLYyPBzyVGvdOdPi6Yk6/DY61caFryT28e+Ibg3BkPwF6OcfwFf5QkBTaMWFT4LA==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.33.1 - '@aptos-labs/wallet-standard': ^0.3.0 - '@telegram-apps/bridge': ^1.0.0 - aptos: ^1.20.0 - - '@aptos-labs/aptos-cli@1.0.2': - resolution: {integrity: sha512-PYPsd0Kk3ynkxNfe3S4fanI3DiUICCoh4ibQderbvjPFL5A0oK6F4lPEO2t0MDsQySTk2t4vh99Xjy6Bd9y+aQ==} - hasBin: true - - '@aptos-labs/aptos-client@0.1.1': - resolution: {integrity: sha512-kJsoy4fAPTOhzVr7Vwq8s/AUg6BQiJDa7WOqRzev4zsuIS3+JCuIZ6vUd7UBsjnxtmguJJulMRs9qWCzVBt2XA==} - engines: {node: '>=15.10.0'} - - '@aptos-labs/aptos-client@1.0.0': - resolution: {integrity: sha512-P/U/xz9w7+tTQDkaeAc693lDFcADO15bjD5RtP/2sa5FSIYbAyGI5A1RfSNPESuBjvskHBa6s47wajgSt4yX7g==} - engines: {node: '>=15.10.0'} - peerDependencies: - axios: ^1.7.7 - got: ^11.8.6 - - '@aptos-labs/aptos-dynamic-transaction-composer@0.1.3': - resolution: {integrity: sha512-bJl+Zq5QbhpcPIJakAkl9tnT3T02mxCYhZThQDhUmjsOZ5wMRlKJ0P7aaq1dmlybSHkVj7vRgOy2t86/NDKKng==} - - '@aptos-labs/script-composer-pack@0.0.9': - resolution: {integrity: sha512-Y3kA1rgF65HETgoTn2omDymsgO+fnZouPLrKJZ9sbxTGdOekIIHtGee3A2gk84eCqa02ZKBumZmP+IDCXRtU/g==} - - '@aptos-labs/ts-sdk@1.35.0': - resolution: {integrity: sha512-ChW2Lvi6lKfEb0AYo0HAa98bYf0+935nMdjl40wFMWsR+mxFhtNA4EYINXsHVTMPfE/WV9sXEvDInvscJFrALQ==} - engines: {node: '>=20.0.0'} - - '@aptos-labs/wallet-adapter-core@0.1.7': - resolution: {integrity: sha512-g3HvX31kuFT5HqEe9Vh0ZgV1u0Otsfx54yeAwL7RO8CioBVBjYELhMsOYz0BOjecmAKhQ14G60VU8MqDyzYkIA==} - - '@aptos-labs/wallet-adapter-core@2.1.0': - resolution: {integrity: sha512-ZSCCsFt2heEh9IDaObbzw8EwqfzJGCWGBoaGouBtOYn2DVkh5R0P9xRj6ryF9cuO+tkfP+8KZmZ9m4c+xsJN2g==} - - '@aptos-labs/wallet-adapter-core@2.2.0': - resolution: {integrity: sha512-JL0zTXXoSQba1EDGqY5yTJxZVKMKwgMKZNA1JyV54s5loWzE2tinwg002EB+ONodkVmMhKbWnajCFFOgvgk+NQ==} - - '@aptos-labs/wallet-adapter-core@4.25.0': - resolution: {integrity: sha512-TMiHvteU/DvL9p8npna32kRjCsJdiQgP83QhFLoZKV1rGhvB9NwCs1BnPzoCSTCkgfGkWqZGjVmhynX2p+HZEA==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.33.1 - aptos: ^1.21.0 - - '@aptos-labs/wallet-adapter-core@5.0.0': - resolution: {integrity: sha512-G5teMzWixyqwz2KhG2YwEY/w3ZSRdqL3ypVrS+oFpdXXcDCRgYzyM9MsEaC+D7KFFNKizAj3OP7X/qoINThnKA==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.35.0 - - '@aptos-labs/wallet-standard@0.0.11': - resolution: {integrity: sha512-8dygyPBby7TaMJjUSyeVP4R1WC9D/FPpX9gVMMLaqTKCXrSbkzhGDxcuwbMZ3ziEwRmx3zz+d6BIJbDhd0hm5g==} - - '@aptos-labs/wallet-standard@0.1.0-ms.1': - resolution: {integrity: sha512-3aWEmdqMcll8D2lzhBZuYUW1o49TDpqw4QRAkHk00tSC3SwAkuukoW8g/M9lB5nHFxaX7UzuxeaYv8l6/mhJVQ==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.17.0 - '@wallet-standard/core': ^1.0.3 - - '@aptos-labs/wallet-standard@0.2.0': - resolution: {integrity: sha512-4aoO4MlqzrW+CtO83MwbHMMtu91DL5B7YKRvhJbRnVB4R+QCOwBI/aQTkNZbKBDfOplLlqWTTl6Li0l6e02YLQ==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.17.0 - '@wallet-standard/core': ^1.0.3 - - '@aptos-labs/wallet-standard@0.3.0': - resolution: {integrity: sha512-M0Luh2hWW0BlSHv90YytOJmbE5VeHR/w8ddd7BO8N8jZ2WylKW6AHdkn6oUi1Ft9yb2dt3Qp+T/Sd2JFoRGyzw==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.17.0 - '@wallet-standard/core': ^1.0.3 - - '@atomrigslab/aptos-wallet-adapter@0.1.21': - resolution: {integrity: sha512-LwT0OTOaGglctggMcihXLd4mzBFwRoJsR0aeFBHQRfTxZV1agNTgN/PxJl6N13+WYAvzc00j/WByxAmWgonorA==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.9.0 - - '@atomrigslab/dekey-web-wallet-provider@1.2.1': - resolution: {integrity: sha512-GMEGjARgle9lIRopvxm4uis+sRr/ih26HzBgFbnLsk8+G94Z5dE87EclAIGFQUSAxYj7SmSk6xpx7//qUJDW/A==} - engines: {node: '>=12.0.0'} - - '@atomrigslab/providers@1.1.0': - resolution: {integrity: sha512-QLYxSCVrxwlN1oZ7vLnZbKZxkbZ6QG77Bj4pmTEowIpTcq7qZdBtU9pn+vqJAso1nnA3+AkmPuE9Jnx7+Jo1zQ==} - engines: {node: '>=12.0.0'} - - '@babel/code-frame@7.12.11': - resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} - - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.26.8': - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.26.8': - resolution: {integrity: sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.26.8': - resolution: {integrity: sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-annotate-as-pure@7.25.9': - resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.26.5': - resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-create-class-features-plugin@7.25.9': - resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-optimise-call-expression@7.25.9': - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.26.5': - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-replace-supers@7.26.5': - resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.26.7': - resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.25.9': - resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.26.8': - resolution: {integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-proposal-decorators@7.25.9': - resolution: {integrity: sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-decorators@7.25.9': - resolution: {integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typescript@7.26.8': - resolution: {integrity: sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime@7.26.7': - resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==} - engines: {node: '>=6.9.0'} - - '@babel/standalone@7.26.8': - resolution: {integrity: sha512-WS5Cw/8gWP9qBJ+qPUVr5Le4bCeXTMoVHF9TofgEqAUpEgvVzNXCPf97SNLuDpSRNHNWcH2lFixGUGjaM6VVCg==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.26.8': - resolution: {integrity: sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.26.8': - resolution: {integrity: sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.26.8': - resolution: {integrity: sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==} - engines: {node: '>=6.9.0'} - - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - - '@bitget-wallet/aptos-wallet-adapter@0.1.2': - resolution: {integrity: sha512-6dImtKlwdk0zuYKQpeZ/nOVyyBXqTxVin9ZLgdyPXsnBcpy0PnyGgffsfsOVHxk93eOdiRjNxoiCs1b4a+1ssg==} - peerDependencies: - '@aptos-labs/wallet-adapter-core': 3.5.0 - aptos: ^1.21.0 - - '@changesets/apply-release-plan@7.0.8': - resolution: {integrity: sha512-qjMUj4DYQ1Z6qHawsn7S71SujrExJ+nceyKKyI9iB+M5p9lCL55afuEd6uLBPRpLGWQwkwvWegDHtwHJb1UjpA==} - - '@changesets/assemble-release-plan@6.0.5': - resolution: {integrity: sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==} - - '@changesets/changelog-git@0.2.0': - resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} - - '@changesets/cli@2.27.12': - resolution: {integrity: sha512-9o3fOfHYOvBnyEn0mcahB7wzaA3P4bGJf8PNqGit5PKaMEFdsRixik+txkrJWd2VX+O6wRFXpxQL8j/1ANKE9g==} - hasBin: true - - '@changesets/config@3.0.5': - resolution: {integrity: sha512-QyXLSSd10GquX7hY0Mt4yQFMEeqnO5z/XLpbIr4PAkNNoQNKwDyiSrx4yd749WddusH1v3OSiA0NRAYmH/APpQ==} - - '@changesets/errors@0.2.0': - resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - - '@changesets/get-dependents-graph@2.1.2': - resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} - - '@changesets/get-release-plan@4.0.6': - resolution: {integrity: sha512-FHRwBkY7Eili04Y5YMOZb0ezQzKikTka4wL753vfUA5COSebt7KThqiuCN9BewE4/qFGgF/5t3AuzXx1/UAY4w==} - - '@changesets/get-version-range-type@0.4.0': - resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - - '@changesets/git@3.0.2': - resolution: {integrity: sha512-r1/Kju9Y8OxRRdvna+nxpQIsMsRQn9dhhAZt94FLDeu0Hij2hnOozW8iqnHBgvu+KdnJppCveQwK4odwfw/aWQ==} - - '@changesets/logger@0.1.1': - resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - - '@changesets/parse@0.4.0': - resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} - - '@changesets/pre@2.0.1': - resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} - - '@changesets/read@0.6.2': - resolution: {integrity: sha512-wjfQpJvryY3zD61p8jR87mJdyx2FIhEcdXhKUqkja87toMrP/3jtg/Yg29upN+N4Ckf525/uvV7a4tzBlpk6gg==} - - '@changesets/should-skip-package@0.1.1': - resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} - - '@changesets/types@4.1.0': - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - - '@changesets/types@6.0.0': - resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} - - '@changesets/write@0.3.2': - resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} - - '@cloudflare/kv-asset-handler@0.3.4': - resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} - engines: {node: '>=16.13'} - - '@csstools/selector-resolve-nested@3.0.0': - resolution: {integrity: sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==} - engines: {node: '>=18'} - peerDependencies: - postcss-selector-parser: ^7.0.0 - - '@csstools/selector-specificity@5.0.0': - resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} - engines: {node: '>=18'} - peerDependencies: - postcss-selector-parser: ^7.0.0 - - '@emotion/babel-plugin@11.13.5': - resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} - - '@emotion/cache@11.14.0': - resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} - - '@emotion/hash@0.8.0': - resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - - '@emotion/hash@0.9.2': - resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - - '@emotion/is-prop-valid@1.3.1': - resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} - - '@emotion/memoize@0.9.0': - resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} - - '@emotion/react@11.14.0': - resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} - peerDependencies: - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true - - '@emotion/serialize@1.3.3': - resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} - - '@emotion/sheet@1.4.0': - resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} - - '@emotion/styled@11.14.0': - resolution: {integrity: sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==} - peerDependencies: - '@emotion/react': ^11.0.0-rc.0 - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true - - '@emotion/unitless@0.10.0': - resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} - - '@emotion/unitless@0.7.5': - resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} - - '@emotion/use-insertion-effect-with-fallbacks@1.2.0': - resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} - peerDependencies: - react: '>=16.8.0' - - '@emotion/utils@1.4.2': - resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} - - '@emotion/weak-memoize@0.4.0': - resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} - - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.14.54': - resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.24.2': - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.24.2': - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.24.2': - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.24.2': - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@0.4.3': - resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} - engines: {node: ^10.12.0 || >=12.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@fewcha/web3@0.1.38': - resolution: {integrity: sha512-t39g9V5zAiYZPGSahp4a0B4WM5IqxQJxr5ednv0f0l5amJZMPyOinFeZDgkLqTIzhe7yq6yIndKbqzPfdu1rng==} - - '@floating-ui/core@1.6.9': - resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} - - '@floating-ui/dom@1.6.13': - resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} - - '@floating-ui/react-dom@2.1.2': - resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/utils@0.2.9': - resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} - - '@floating-ui/vue@1.1.6': - resolution: {integrity: sha512-XFlUzGHGv12zbgHNk5FN2mUB7ROul3oG2ENdTpWdE+qMFxyNxWSRmsoyhiEnpmabNm6WnUvR1OvJfUfN4ojC1A==} - - '@graphql-typed-document-node/core@3.2.0': - resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/config-array@0.5.0': - resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@1.2.1': - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - deprecated: Use @eslint/object-schema instead - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - - '@identity-connect/api@0.7.0': - resolution: {integrity: sha512-mn/LZGeb3xgBD644p67tYOjvYSSdZpwxiO4/ZjwjsJZ8eYvGha5FiZg+pqVH73lg1S36qikwbkA3HUQOAE5GKA==} - - '@identity-connect/crypto@0.2.5': - resolution: {integrity: sha512-YHJbIXpraEanwE4LsDZE3iWOPlM0Xl//WDKerBpJ0R4halEeJoGp1S7GuIAeutqNjU0gL39ly+Jsti02/Nrewg==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.33.1 - - '@identity-connect/dapp-sdk@0.10.3': - resolution: {integrity: sha512-EunHxy8emZEOurpANL/rrB7n5iALGStpkCL01ir6VPVB/Hj6GnEn0WXvXr7ZWTTYPQ/8w4FXUUHclRNSTRcg9A==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.33.1 - '@aptos-labs/wallet-standard': ^0.2.0 - - '@identity-connect/dapp-sdk@0.10.4': - resolution: {integrity: sha512-wC1yh0K2EbmIG6oCN7+KRaVXHBUKasuBsm2z/Lq1x5zGJNtFtg6pXQl087ngHixpSCPINx5QqZXd9uXI/oqSmQ==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.33.1 - '@aptos-labs/wallet-standard': ^0.3.0 - - '@identity-connect/wallet-api@0.1.2': - resolution: {integrity: sha512-8wyC0rWYb4+L0/K9Kf+LV9U8k5ZUkbauyf4lVVdUatCw1trsBVXObACKzgEidfpfgx23S9w7hctLpegb/QkwSg==} - peerDependencies: - '@aptos-labs/ts-sdk': ^1.33.1 - aptos: ^1.20.0 - - '@internationalized/date@3.7.0': - resolution: {integrity: sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==} - - '@internationalized/number@3.6.0': - resolution: {integrity: sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==} - - '@ioredis/commands@1.2.0': - resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@isaacs/fs-minipass@4.0.1': - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} - engines: {node: '>=18.0.0'} - - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@koa/router@12.0.2': - resolution: {integrity: sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==} - engines: {node: '>= 12'} - - '@kwsites/file-exists@1.1.1': - resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} - - '@kwsites/promise-deferred@1.1.1': - resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} - - '@manypkg/find-root@1.1.0': - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} - - '@manypkg/get-packages@1.1.3': - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - - '@mapbox/node-pre-gyp@2.0.0': - resolution: {integrity: sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==} - engines: {node: '>=18'} - hasBin: true - - '@martianwallet/aptos-wallet-adapter@0.0.5': - resolution: {integrity: sha512-x6Q3bM7HSltCAD8Zl0AeU1AFhu0M+Ho22QP+oOXWhdb4TledVVLNfGIAx1jP4slqfcpDGOjnibPtPt8Bm32wmg==} - - '@metamask/object-multiplex@1.3.0': - resolution: {integrity: sha512-czcQeVYdSNtabd+NcYQnrM69MciiJyd1qvKH8WM2Id3C0ZiUUX5Xa/MK+/VUk633DBhVOwdNzAKIQ33lGyA+eQ==} - engines: {node: '>=12.0.0'} - - '@metamask/safe-event-emitter@2.0.0': - resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==} - - '@microsoft/api-extractor-model@7.28.13': - resolution: {integrity: sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw==} - - '@microsoft/api-extractor@7.43.0': - resolution: {integrity: sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w==} - hasBin: true - - '@microsoft/fetch-event-source@2.0.1': - resolution: {integrity: sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==} - - '@microsoft/tsdoc-config@0.16.2': - resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} - - '@microsoft/tsdoc@0.14.2': - resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} - - '@mizuwallet-sdk/aptos-wallet-adapter@0.3.2': - resolution: {integrity: sha512-YljOzWoaTTp+dGZ6p0vTQwVBYe9AQeCLNfLcmKzSWU14ktEflIeDk85xVD0WRgQUbfyW707/18JcmKA+7V12rg==} - peerDependencies: - '@mizuwallet-sdk/core': '>=1.4.0' - '@mizuwallet-sdk/protocol': 0.0.6 - - '@mizuwallet-sdk/core@1.4.0': - resolution: {integrity: sha512-03jKqKr+P4kCgcNQT2YNXmFBRVmeZ88vpEFKpQ9SaorCY4L9lF56kJS4Y+e/+A4Gb1bnqA7xuFmnEz13LjsZyg==} - peerDependencies: - '@aptos-labs/ts-sdk': '>=1.14.0' - '@mizuwallet-sdk/protocol': 0.0.2 - graphql-request: '>=7.0.1' - - '@mizuwallet-sdk/protocol@0.0.6': - resolution: {integrity: sha512-I6ibbdPmPqsqc4JfCfI9qplZ2RcqeUxawyYBNb3TNhibMqQhoVUUaczt9kLuML20ODTvvZW/ja+5S6PXSzWPiw==} - - '@msafe/aptos-wallet-adapter@1.1.3': - resolution: {integrity: sha512-/5ftbNac9j2Vc6YOqET4IdkhiJnMzuy9LcnGP8ptLWHVuye5P/pAjIpv0A07gOM4/siUJQzlXkBxXdLYF9p8wQ==} - - '@msafe/aptos-wallet@6.1.1': - resolution: {integrity: sha512-g/2TPRqyChciaw/S69EBr7CgzYJBT1LJulU0nMNnkehJc+ZX/fNN+5JXEuea+a0rXsk/flcbCSfvT2JtS0+/mQ==} - - '@mui/core-downloads-tracker@5.16.14': - resolution: {integrity: sha512-sbjXW+BBSvmzn61XyTMun899E7nGPTXwqD9drm1jBUAvWEhJpPFIRxwQQiATWZnd9rvdxtnhhdsDxEGWI0jxqA==} - - '@mui/icons-material@5.16.14': - resolution: {integrity: sha512-heL4S+EawrP61xMXBm59QH6HODsu0gxtZi5JtnXF2r+rghzyU/3Uftlt1ij8rmJh+cFdKTQug1L9KkZB5JgpMQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@mui/material': ^5.0.0 - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@mui/material@5.16.14': - resolution: {integrity: sha512-eSXQVCMKU2xc7EcTxe/X/rC9QsV2jUe8eLM3MUCPYbo6V52eCE436akRIvELq/AqZpxx2bwkq7HC0cRhLB+yaw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true - - '@mui/private-theming@5.16.14': - resolution: {integrity: sha512-12t7NKzvYi819IO5IapW2BcR33wP/KAVrU8d7gLhGHoAmhDxyXlRoKiRij3TOD8+uzk0B6R9wHUNKi4baJcRNg==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@mui/styled-engine@5.16.14': - resolution: {integrity: sha512-UAiMPZABZ7p8mUW4akDV6O7N3+4DatStpXMZwPlt+H/dA0lt67qawN021MNND+4QTpjaiMYxbhKZeQcyWCbuKw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.4.1 - '@emotion/styled': ^11.3.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - - '@mui/system@5.16.14': - resolution: {integrity: sha512-KBxMwCb8mSIABnKvoGbvM33XHyT+sN0BzEBG+rsSc0lLQGzs7127KWkCA6/H8h6LZ00XpBEME5MAj8mZLiQ1tw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true - - '@mui/types@7.2.21': - resolution: {integrity: sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww==} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@mui/utils@5.16.14': - resolution: {integrity: sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@mysten/bcs@0.3.0': - resolution: {integrity: sha512-Me6OkrS+idPq+ZUM1MEcKP9YOTacZKLwo0gf8rfeImQ+G25tqPRhjpccZGOUJGOKh+gojH2vjkWi2TYJv9kNCg==} - - '@mysten/sui.js@0.13.0': - resolution: {integrity: sha512-8s4IYN6GH95Begjuy0Xr45vQyyVZZHx83g5hJOpT9o98kQgdjaO218UdqQRVoFt/TODpNsTaI5OlymlKCgFVTQ==} - engines: {node: '>=16'} - deprecated: This package has been renamed to @mysten/sui, please update to use the renamed package. - - '@netlify/functions@2.8.2': - resolution: {integrity: sha512-DeoAQh8LuNPvBE4qsKlezjKj0PyXDryOFJfJKo3Z1qZLKzQ21sT314KQKPVjfvw6knqijj+IO+0kHXy/TJiqNA==} - engines: {node: '>=14.0.0'} - - '@netlify/node-cookies@0.1.0': - resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} - engines: {node: ^14.16.0 || >=16.0.0} - - '@netlify/serverless-functions-api@1.26.1': - resolution: {integrity: sha512-q3L9i3HoNfz0SGpTIS4zTcKBbRkxzCRpd169eyiTuk3IwcPC3/85mzLHranlKo2b+HYT0gu37YxGB45aD8A3Tw==} - engines: {node: '>=18.0.0'} - - '@next/env@14.2.24': - resolution: {integrity: sha512-LAm0Is2KHTNT6IT16lxT+suD0u+VVfYNQqM+EJTKuFRRuY2z+zj01kueWXPCxbMBDt0B5vONYzabHGUNbZYAhA==} - - '@next/eslint-plugin-next@13.0.0': - resolution: {integrity: sha512-z+gnX4Zizatqatc6f4CQrcC9oN8Us3Vrq/OLyc98h7K/eWctrnV91zFZodmJHUjx0cITY8uYM7LXD7IdYkg3kg==} - - '@next/eslint-plugin-next@14.2.3': - resolution: {integrity: sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==} - - '@next/swc-darwin-arm64@14.2.24': - resolution: {integrity: sha512-7Tdi13aojnAZGpapVU6meVSpNzgrFwZ8joDcNS8cJVNuP3zqqrLqeory9Xec5TJZR/stsGJdfwo8KeyloT3+rQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@next/swc-darwin-x64@14.2.24': - resolution: {integrity: sha512-lXR2WQqUtu69l5JMdTwSvQUkdqAhEWOqJEYUQ21QczQsAlNOW2kWZCucA6b3EXmPbcvmHB1kSZDua/713d52xg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@next/swc-linux-arm64-gnu@14.2.24': - resolution: {integrity: sha512-nxvJgWOpSNmzidYvvGDfXwxkijb6hL9+cjZx1PVG6urr2h2jUqBALkKjT7kpfurRWicK6hFOvarmaWsINT1hnA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-musl@14.2.24': - resolution: {integrity: sha512-PaBgOPhqa4Abxa3y/P92F3kklNPsiFjcjldQGT7kFmiY5nuFn8ClBEoX8GIpqU1ODP2y8P6hio6vTomx2Vy0UQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-x64-gnu@14.2.24': - resolution: {integrity: sha512-vEbyadiRI7GOr94hd2AB15LFVgcJZQWu7Cdi9cWjCMeCiUsHWA0U5BkGPuoYRnTxTn0HacuMb9NeAmStfBCLoQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-musl@14.2.24': - resolution: {integrity: sha512-df0FC9ptaYsd8nQCINCzFtDWtko8PNRTAU0/+d7hy47E0oC17tI54U/0NdGk7l/76jz1J377dvRjmt6IUdkpzQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-win32-arm64-msvc@14.2.24': - resolution: {integrity: sha512-ZEntbLjeYAJ286eAqbxpZHhDFYpYjArotQ+/TW9j7UROh0DUmX7wYDGtsTPpfCV8V+UoqHBPU7q9D4nDNH014Q==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@next/swc-win32-ia32-msvc@14.2.24': - resolution: {integrity: sha512-9KuS+XUXM3T6v7leeWU0erpJ6NsFIwiTFD5nzNg8J5uo/DMIPvCp3L1Ao5HjbHX0gkWPB1VrKoo/Il4F0cGK2Q==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - - '@next/swc-win32-x64-msvc@14.2.24': - resolution: {integrity: sha512-cXcJ2+x0fXQ2CntaE00d7uUH+u1Bfp/E0HsNQH79YiLaZE5Rbm7dZzyAYccn3uICM7mw+DxoMqEfGXZtF4Fgaw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@noble/curves@1.8.1': - resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==} - engines: {node: ^14.21.3 || >=16} - - '@noble/hashes@1.3.3': - resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} - engines: {node: '>= 16'} - - '@noble/hashes@1.7.1': - resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==} - engines: {node: ^14.21.3 || >=16} - - '@noble/secp256k1@1.7.1': - resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@nolyfill/is-core-module@1.0.39': - resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} - engines: {node: '>=12.4.0'} - - '@nuxt/cli@3.21.1': - resolution: {integrity: sha512-GFFHSEtNtf1s4anMKWFfKSbKiNvEwOKxfP3uls7anZ8GCVYrKthMMxeou4fZBcRhTAFbiLC7DytsKnjfmY2t9w==} - engines: {node: ^16.10.0 || >=18.0.0} - hasBin: true - - '@nuxt/devalue@2.0.2': - resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} - - '@nuxt/devtools-kit@1.7.0': - resolution: {integrity: sha512-+NgZ2uP5BuneqvQbe7EdOEaFEDy8762c99pLABtn7/Ur0ExEsQJMP7pYjjoTfKubhBqecr5Vo9yHkPBj1eHulQ==} - peerDependencies: - vite: '*' - - '@nuxt/devtools-wizard@1.7.0': - resolution: {integrity: sha512-86Gd92uEw0Dh2ErIYT9TMIrMOISE96fCRN4rxeryTvyiowQOsyrbkCeMNYrEehoRL+lohoyK6iDmFajadPNwWQ==} - hasBin: true - - '@nuxt/devtools@1.7.0': - resolution: {integrity: sha512-uvnjt5Zowkz7tZmnks2cGreg1XZIiSyVzQ2MYiRXACodlXcwJ0dpUS3WTxu8BR562K+772oRdvKie9AQlyZUgg==} - hasBin: true - peerDependencies: - vite: '*' - - '@nuxt/kit@3.15.4': - resolution: {integrity: sha512-dr7I7eZOoRLl4uxdxeL2dQsH0OrbEiVPIyBHnBpA4co24CBnoJoF+JINuP9l3PAM3IhUzc5JIVq3/YY3lEc3Hw==} - engines: {node: '>=18.12.0'} - - '@nuxt/schema@3.15.4': - resolution: {integrity: sha512-pAYZb/3ocSC/db1EFd5y+otmgHqUkvfxfhd9EknDB5DygnJuOIQNuGJ7LMJM6S2c0DYgBIHOdEelLxKHOjwbgQ==} - engines: {node: ^14.18.0 || >=16.10.0} - - '@nuxt/telemetry@2.6.4': - resolution: {integrity: sha512-2Lgdn07Suraly5dSfVQ4ttBQBMtmjvCTGKGUHpc1UyH87HT9xCm3KLFO0UcVQ8+LNYCgoOaK7lq9qDJOfBfZ5A==} - engines: {node: '>=18.20.5'} - hasBin: true - - '@nuxt/vite-builder@3.15.4': - resolution: {integrity: sha512-yBK6tWT973+ExKC3ciTWymZpjJ+enToOtYz574kXCyGO0PbSnuXdoJKTvrwXw1lK97PajCKxExlmwI/3oLOmMQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0.0} - peerDependencies: - vue: ^3.3.4 - - '@nuxtjs/color-mode@3.5.2': - resolution: {integrity: sha512-cC6RfgZh3guHBMLLjrBB2Uti5eUoGM9KyauOaYS9ETmxNWBMTvpgjvSiSJp1OFljIXPIqVTJ3xtJpSNZiO3ZaA==} - - '@nuxtjs/eslint-config-typescript@12.1.0': - resolution: {integrity: sha512-l2fLouDYwdAvCZEEw7wGxOBj+i8TQcHFu3zMPTLqKuv1qu6WcZIr0uztkbaa8ND1uKZ9YPqKx6UlSOjM4Le69Q==} - peerDependencies: - eslint: ^8.48.0 - - '@nuxtjs/eslint-config@12.0.0': - resolution: {integrity: sha512-ewenelo75x0eYEUK+9EBXjc/OopQCvdkmYmlZuoHq5kub/vtiRpyZ/autppwokpHUq8tiVyl2ejMakoiHiDTrg==} - peerDependencies: - eslint: ^8.23.0 - - '@nuxtjs/eslint-module@4.1.0': - resolution: {integrity: sha512-lW9ozEjOrnU8Uot3GOAZ/0ThNAds0d6UAp9n46TNxcTvH/MOcAggGbMNs16c0HYT2HlyPQvXORCHQ5+9p87mmw==} - peerDependencies: - eslint: '>=7' - - '@nuxtjs/google-fonts@3.2.0': - resolution: {integrity: sha512-cGAjDJoeQ2jm6VJCo4AtSmKO6KjsbO9RSLj8q261fD0lMVNMZCxkCxBkg8L0/2Vfgp+5QBHWVXL71p1tiybJFw==} - - '@nuxtjs/tailwindcss@6.13.1': - resolution: {integrity: sha512-atL2SaPsxLfMTlXUQvr1UpDYdz6ocNOhH35H+t7M++g4r79QiQScJ7XuyyMR9AyBN19lkPA3nw7NXxazXmYxlA==} - - '@okwallet/aptos-wallet-adapter@0.0.3': - resolution: {integrity: sha512-6/wH9A3/FswcnHEy4H6c4DXH7nEzUo7Ez8Try5B/HoTnKBvIRaYH/btWhKADzwf0dGtSDC6YdysYoQrGx4lhmA==} - - '@oxc-parser/wasm@0.1.0': - resolution: {integrity: sha512-oA7XhTbg9rRBJhIzxCNhJwYmON/9LFAH4GBQxl7HWmGSS6HTrb2t6Peq82nxY0W7knguH52neh9T7zs27FVvsQ==} - - '@parcel/watcher-android-arm64@2.5.1': - resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - - '@parcel/watcher-darwin-arm64@2.5.1': - resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - - '@parcel/watcher-darwin-x64@2.5.1': - resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - - '@parcel/watcher-freebsd-x64@2.5.1': - resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.5.1': - resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm-musl@2.5.1': - resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-arm64-musl@2.5.1': - resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-x64-glibc@2.5.1': - resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-linux-x64-musl@2.5.1': - resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-wasm@2.5.1': - resolution: {integrity: sha512-RJxlQQLkaMMIuWRozy+z2vEqbaQlCuaCgVZIUCzQLYggY22LZbP5Y1+ia+FD724Ids9e+XIyOLXLrLgQSHIthw==} - engines: {node: '>= 10.0.0'} - bundledDependencies: - - napi-wasm - - '@parcel/watcher-win32-arm64@2.5.1': - resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - - '@parcel/watcher-win32-ia32@2.5.1': - resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.5.1': - resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher@2.5.1': - resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} - engines: {node: '>= 10.0.0'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@polka/url@1.0.0-next.28': - resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} - - '@pontem/wallet-adapter-plugin@0.2.1': - resolution: {integrity: sha512-mrhCT+mFsDtjFHZj9LBksY++ciQiAlr+gkHhvEzkuQkYuHkCf6HwKOkIlDL42cl7y8/15NrfZomEQ5Uxudhc3g==} - - '@popperjs/core@2.11.8': - resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - - '@radix-ui/primitive@1.1.1': - resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} - - '@radix-ui/react-arrow@1.1.2': - resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-collapsible@1.1.3': - resolution: {integrity: sha512-jFSerheto1X03MUC0g6R7LedNW9EEGWdg9W1+MlpkMLwGkgkbUXLPBH/KIuWKXUoeYRVY11llqbTBDzuLg7qrw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-collection@1.1.2': - resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-compose-refs@1.1.1': - resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-context@1.1.1': - resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-dialog@1.1.6': - resolution: {integrity: sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-direction@1.1.0': - resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-dismissable-layer@1.1.5': - resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-dropdown-menu@2.1.6': - resolution: {integrity: sha512-no3X7V5fD487wab/ZYSHXq3H37u4NVeLDKI/Ks724X/eEFSSEFYZxWgsIlr1UBeEyDaM29HM5x9p1Nv8DuTYPA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-focus-guards@1.1.1': - resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-focus-scope@1.1.2': - resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-id@1.1.0': - resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-label@2.1.2': - resolution: {integrity: sha512-zo1uGMTaNlHehDyFQcDZXRJhUPDuukcnHz0/jnrup0JA6qL+AFpAnty+7VKa9esuU5xTblAZzTGYJKSKaBxBhw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-menu@2.1.6': - resolution: {integrity: sha512-tBBb5CXDJW3t2mo9WlO7r6GTmWV0F0uzHZVFmlRmYpiSK1CDU5IKojP1pm7oknpBOrFZx/YgBRW9oorPO2S/Lg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-popper@1.2.2': - resolution: {integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-portal@1.1.4': - resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-presence@1.1.2': - resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-primitive@2.0.2': - resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-radio-group@1.2.3': - resolution: {integrity: sha512-xtCsqt8Rp09FK50ItqEqTJ7Sxanz8EM8dnkVIhJrc/wkMMomSmXHvYbhv3E7Zx4oXh98aaLt9W679SUYXg4IDA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-roving-focus@1.1.2': - resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-slot@1.1.2': - resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-switch@1.1.3': - resolution: {integrity: sha512-1nc+vjEOQkJVsJtWPSiISGT6OKm4SiOdjMo+/icLxo2G4vxz1GntC5MzfL4v8ey9OEfw787QCD1y3mUv0NiFEQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-toast@1.2.6': - resolution: {integrity: sha512-gN4dpuIVKEgpLn1z5FhzT9mYRUitbfZq9XqN/7kkBMUgFTzTG8x/KszWJugJXHcwxckY8xcKDZPz7kG3o6DsUA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-use-callback-ref@1.1.0': - resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-controllable-state@1.1.0': - resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-escape-keydown@1.1.0': - resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-layout-effect@1.1.0': - resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-previous@1.1.0': - resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-rect@1.1.0': - resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-size@1.1.0': - resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-visually-hidden@1.1.2': - resolution: {integrity: sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/rect@1.1.0': - resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} - - '@rc-component/async-validator@5.0.4': - resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} - engines: {node: '>=14.x'} - - '@rc-component/color-picker@2.0.1': - resolution: {integrity: sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/context@1.4.0': - resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/mini-decimal@1.1.0': - resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} - engines: {node: '>=8.x'} - - '@rc-component/mutate-observer@1.1.0': - resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/portal@1.1.2': - resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/qrcode@1.0.0': - resolution: {integrity: sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/tour@1.15.1': - resolution: {integrity: sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@rc-component/trigger@2.2.6': - resolution: {integrity: sha512-/9zuTnWwhQ3S3WT1T8BubuFTT46kvnXgaERR9f4BTKyn61/wpf/BvbImzYBubzJibU707FxwbKszLlHjcLiv1Q==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - '@redocly/ajv@8.11.2': - resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} - - '@redocly/config@0.20.3': - resolution: {integrity: sha512-Nyyv1Bj7GgYwj/l46O0nkH1GTKWbO3Ixe7KFcn021aZipkZd+z8Vlu1BwkhqtVgivcKaClaExtWU/lDHkjBzag==} - - '@redocly/openapi-core@1.28.5': - resolution: {integrity: sha512-eAuL+x1oBbodJksPm4UpFU57A6z1n1rx9JNpD87CObwtbRf5EzW29Ofd0t057bPGcHc8cYZtZzJ69dcRQ9xGdg==} - engines: {node: '>=18.17.0', npm: '>=9.5.0'} - - '@remix-run/router@1.22.0': - resolution: {integrity: sha512-MBOl8MeOzpK0HQQQshKB7pABXbmyHizdTpqnrIseTbsv0nAepwC2ENZa1aaBExNQcpLoXmWthhak8SABLzvGPw==} - engines: {node: '>=14.0.0'} - - '@rollup/plugin-alias@5.1.1': - resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-commonjs@28.0.2': - resolution: {integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-inject@5.0.5': - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-json@6.1.0': - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-node-resolve@15.3.1': - resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-replace@6.0.2': - resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-terser@0.4.4': - resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/pluginutils@4.2.1': - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/rollup-android-arm-eabi@4.34.6': - resolution: {integrity: sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.34.6': - resolution: {integrity: sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.34.6': - resolution: {integrity: sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.34.6': - resolution: {integrity: sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.34.6': - resolution: {integrity: sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.34.6': - resolution: {integrity: sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.34.6': - resolution: {integrity: sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.34.6': - resolution: {integrity: sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.34.6': - resolution: {integrity: sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.34.6': - resolution: {integrity: sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.34.6': - resolution: {integrity: sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.34.6': - resolution: {integrity: sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.34.6': - resolution: {integrity: sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.34.6': - resolution: {integrity: sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.34.6': - resolution: {integrity: sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.34.6': - resolution: {integrity: sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.34.6': - resolution: {integrity: sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.34.6': - resolution: {integrity: sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.34.6': - resolution: {integrity: sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==} - cpu: [x64] - os: [win32] - - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - - '@rushstack/eslint-patch@1.10.5': - resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==} - - '@rushstack/node-core-library@4.0.2': - resolution: {integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/rig-package@0.5.2': - resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==} - - '@rushstack/terminal@0.10.0': - resolution: {integrity: sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/ts-command-line@4.19.1': - resolution: {integrity: sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==} - - '@scure/base@1.1.9': - resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} - - '@scure/base@1.2.4': - resolution: {integrity: sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==} - - '@scure/bip32@1.6.2': - resolution: {integrity: sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==} - - '@scure/bip39@1.2.1': - resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} - - '@scure/bip39@1.5.4': - resolution: {integrity: sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - - '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - - '@swc/helpers@0.5.15': - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - - '@swc/helpers@0.5.5': - resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} - - '@szmarczak/http-timer@4.0.6': - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} - - '@tanstack/query-core@5.66.0': - resolution: {integrity: sha512-J+JeBtthiKxrpzUu7rfIPDzhscXF2p5zE/hVdrqkACBP8Yu0M96mwJ5m/8cPPYQE9aRNvXztXHlNwIh4FEeMZw==} - - '@tanstack/react-query@5.66.0': - resolution: {integrity: sha512-z3sYixFQJe8hndFnXgWu7C79ctL+pI0KAelYyW+khaNJ1m22lWrhJU2QrsTcRKMuVPtoZvfBYrTStIdKo+x0Xw==} - peerDependencies: - react: ^18 || ^19 - - '@tanstack/virtual-core@3.13.0': - resolution: {integrity: sha512-NBKJP3OIdmZY3COJdWkSonr50FMVIi+aj5ZJ7hI/DTpEKg2RMfo/KvP8A3B/zOSpMgIe52B5E2yn7rryULzA6g==} - - '@tanstack/vue-virtual@3.13.0': - resolution: {integrity: sha512-EPgcTc41KGJAK2N2Ux2PeUnG3cPpdkldTib05nwq+0zdS2Ihpbq8BsWXz/eXPyNc5noDBh1GBgAe36yMYiW6WA==} - peerDependencies: - vue: ^2.7.0 || ^3.0.0 - - '@telegram-apps/bridge@1.9.2': - resolution: {integrity: sha512-SJLcNWLXhbbZr9MiqFH/g2ceuitSJKMxUIZysK4zUNyTUNuonrQG80Q/yrO+XiNbKUj8WdDNM86NBARhuyyinQ==} - - '@telegram-apps/navigation@1.0.13': - resolution: {integrity: sha512-TsUueB5LQp77GQHoMa93nq26Uw7GJjrFCPbyseMVU7aBBxAc+8CV2IYytRwcVp5sv/q7ThK5X4JaKn2V1yBHDQ==} - - '@telegram-apps/sdk@2.11.3': - resolution: {integrity: sha512-KdULzgRe1gcR8B3Z/t3hQrEaDmLGrfsL2IePtPP6ehtMn5tT0uPfnjtDLjDNQMyI7D4Tv2ZOzvDx45wOhhreXg==} - - '@telegram-apps/signals@1.1.1': - resolution: {integrity: sha512-vz37r8lemGpPzDiBRfqpXYBynzmy3SFnY6zfHsTZABTYYt0b0WQZyU5mFDqqqugGhka78Gy11xmr9csgy4YgGA==} - - '@telegram-apps/toolkit@1.1.1': - resolution: {integrity: sha512-+vhKx6ngfvjyTE6Xagl3z1TPVbfx5s7xAkcYzCdHYUo6T60jLIqLgyZMcI1UPoIAMuMu1pHoO+p8QNCj/+tFmw==} - - '@telegram-apps/transformers@1.2.2': - resolution: {integrity: sha512-vvMwXckd1D7Ozc0h66PSUwF5QLrRV9HlGJFFeBuUex8QEk5mSPtsJkLiqB8aBbwuFDa91+TUSM/CxqPZO/e9YQ==} - - '@telegram-apps/types@1.2.1': - resolution: {integrity: sha512-so4HLh7clur0YyMthi9KVIgWoGpZdXlFOuQjk3+Q5NAvJZ11nAheBSwPlGw/Ko92+zwvrSBE/lQyN2+p17RP+w==} - - '@trustwallet/aptos-wallet-adapter@0.1.6': - resolution: {integrity: sha512-vlu5JuxqMpGMLanayNKQpTC87zn4NMRo3k96iVI+IdwEeyIgiJbbFq+XqUAezzQG/U88u4jv3vK2x7cbPnNFIw==} - - '@trysound/sax@0.2.0': - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - - '@types/argparse@1.0.38': - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - - '@types/cacheable-request@6.0.3': - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - - '@types/chrome@0.0.136': - resolution: {integrity: sha512-XDEiRhLkMd+SB7Iw3ZUIj/fov3wLd4HyTdLltVszkgl1dBfc3Rb7oPMVZ2Mz2TLqnF7Ow+StbR8E7r9lqpb4DA==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@8.56.12': - resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} - - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - - '@types/filesystem@0.0.36': - resolution: {integrity: sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==} - - '@types/filewriter@0.0.33': - resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==} - - '@types/gensync@1.0.4': - resolution: {integrity: sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==} - - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - - '@types/har-format@1.2.16': - resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==} - - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - - '@types/http-proxy@1.17.16': - resolution: {integrity: sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/jest@29.5.14': - resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - - '@types/keyv@3.1.4': - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - - '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - - '@types/node@20.17.17': - resolution: {integrity: sha512-/WndGO4kIfMicEQLTi/mDANUu/iVUhT7KboZPdEqqHQ4aTS+3qT3U5gIqWDFV+XouorjfgGqvKILJeHhuQgFYg==} - - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - - '@types/parse-path@7.0.3': - resolution: {integrity: sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==} - - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - - '@types/react-dom@18.3.5': - resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} - peerDependencies: - '@types/react': ^18.0.0 - - '@types/react-transition-group@4.4.12': - resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==} - peerDependencies: - '@types/react': '*' - - '@types/react@18.3.18': - resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} - - '@types/resolve@1.20.2': - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - - '@types/responselike@1.0.3': - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - - '@types/web-bluetooth@0.0.20': - resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - - '@types/ws@7.4.7': - resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.33': - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - - '@typescript-eslint/eslint-plugin@6.21.0': - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@5.62.0': - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.2.0': - resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@5.62.0': - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/scope-manager@7.2.0': - resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/type-utils@6.21.0': - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/types@7.2.0': - resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@7.2.0': - resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@6.21.0': - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - - '@typescript-eslint/visitor-keys@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/visitor-keys@7.2.0': - resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - - '@unhead/dom@1.11.18': - resolution: {integrity: sha512-zQuJUw/et9zYEV0SZWTDX23IgurwMaXycAuxt4L6OgNL0T4TWP3a0J/Vm3Q02hmdNo/cPKeVBrwBdnFUXjGU4w==} - - '@unhead/schema@1.11.18': - resolution: {integrity: sha512-a3TA/OJCRdfbFhcA3Hq24k1ZU1o9szicESrw8DZcGyQFacHnh84mVgnyqSkMnwgCmfN4kvjSiTBlLEHS6+wATw==} - - '@unhead/shared@1.11.18': - resolution: {integrity: sha512-OsupRQRxJqqnuKiL1Guqipjbl7MndD5DofvmGa3PFGu2qNPmOmH2mxGFjRBBgq2XxY1KalIHl/2I9HV6gbK8cw==} - - '@unhead/ssr@1.11.18': - resolution: {integrity: sha512-uaHPz0RRAb18yKeCmHyHk5QKWRk/uHpOrqSbhRXTOhbrd3Ur3gGTVaAoyUoRYKGPU5B5/pyHh3TfLw0LkfrH1A==} - - '@unhead/vue@1.11.18': - resolution: {integrity: sha512-Jfi7t/XNBnlcauP9UTH3VHBcS69G70ikFd2e5zdgULLDRWpOlLs1sSTH1V2juNptc93DOk9RQfC5jLWbLcivFw==} - peerDependencies: - vue: '>=2.7 || >=3' - - '@vercel/nft@0.27.10': - resolution: {integrity: sha512-zbaF9Wp/NsZtKLE4uVmL3FyfFwlpDyuymQM1kPbeT0mVOHKDQQNjnnfslB3REg3oZprmNFJuh3pkHBk2qAaizg==} - engines: {node: '>=16'} - hasBin: true - - '@vitejs/plugin-vue-jsx@4.1.1': - resolution: {integrity: sha512-uMJqv/7u1zz/9NbWAD3XdjaY20tKTf17XVfQ9zq4wY1BjsB/PjpJPMe2xiG39QpP4ZdhYNhm4Hvo66uJrykNLA==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - vite: ^5.0.0 || ^6.0.0 - vue: ^3.0.0 - - '@vitejs/plugin-vue@5.0.5': - resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - vite: ^5.0.0 - vue: ^3.2.25 - - '@vitejs/plugin-vue@5.2.1': - resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - vite: ^5.0.0 || ^6.0.0 - vue: ^3.2.25 - - '@volar/language-core@1.11.1': - resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} - - '@volar/language-core@2.4.11': - resolution: {integrity: sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==} - - '@volar/source-map@1.11.1': - resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} - - '@volar/source-map@2.4.11': - resolution: {integrity: sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==} - - '@volar/typescript@1.11.1': - resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} - - '@volar/typescript@2.4.11': - resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==} - - '@vue-macros/common@1.16.1': - resolution: {integrity: sha512-Pn/AWMTjoMYuquepLZP813BIcq8DTZiNCoaceuNlvaYuOTd8DqBZWc5u0uOMQZMInwME1mdSmmBAcTluiV9Jtg==} - engines: {node: '>=16.14.0'} - peerDependencies: - vue: ^2.7.0 || ^3.2.25 - peerDependenciesMeta: - vue: - optional: true - - '@vue/babel-helper-vue-transform-on@1.2.5': - resolution: {integrity: sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==} - - '@vue/babel-plugin-jsx@1.2.5': - resolution: {integrity: sha512-zTrNmOd4939H9KsRIGmmzn3q2zvv1mjxkYZHgqHZgDrXz5B1Q3WyGEjO2f+JrmKghvl1JIRcvo63LgM1kH5zFg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - peerDependenciesMeta: - '@babel/core': - optional: true - - '@vue/babel-plugin-resolve-type@1.2.5': - resolution: {integrity: sha512-U/ibkQrf5sx0XXRnUZD1mo5F7PkpKyTbfXM3a3rC4YnUz6crHEz9Jg09jzzL6QYlXNto/9CePdOg/c87O4Nlfg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@vue/compiler-core@3.5.13': - resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - - '@vue/compiler-dom@3.5.13': - resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - - '@vue/compiler-sfc@3.5.13': - resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} - - '@vue/compiler-ssr@3.5.13': - resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} - - '@vue/compiler-vue2@2.7.16': - resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} - - '@vue/devtools-api@6.6.4': - resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} - - '@vue/devtools-core@7.6.8': - resolution: {integrity: sha512-8X4roysTwzQ94o7IobjVcOd1aZF5iunikrMrHPI2uUdigZCi2kFTQc7ffYiFiTNaLElCpjOhCnM7bo7aK1yU7A==} - peerDependencies: - vue: ^3.0.0 - - '@vue/devtools-kit@7.6.8': - resolution: {integrity: sha512-JhJ8M3sPU+v0P2iZBF2DkdmR9L0dnT5RXJabJqX6o8KtFs3tebdvfoXV2Dm3BFuqeECuMJIfF1aCzSt+WQ4wrw==} - - '@vue/devtools-shared@7.7.1': - resolution: {integrity: sha512-BtgF7kHq4BHG23Lezc/3W2UhK2ga7a8ohAIAGJMBr4BkxUFzhqntQtCiuL1ijo2ztWnmusymkirgqUrXoQKumA==} - - '@vue/language-core@1.8.27': - resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@vue/language-core@2.2.0': - resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@vue/reactivity@3.5.13': - resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} - - '@vue/runtime-core@3.5.13': - resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} - - '@vue/runtime-dom@3.5.13': - resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} - - '@vue/server-renderer@3.5.13': - resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} - peerDependencies: - vue: 3.5.13 - - '@vue/shared@3.5.13': - resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - - '@vueuse/core@10.11.1': - resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==} - - '@vueuse/metadata@10.11.1': - resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==} - - '@vueuse/shared@10.11.1': - resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==} - - '@wallet-standard/app@1.1.0': - resolution: {integrity: sha512-3CijvrO9utx598kjr45hTbbeeykQrQfKmSnxeWOgU25TOEpvcipD/bYDQWIqUv1Oc6KK4YStokSMu/FBNecGUQ==} - engines: {node: '>=16'} - - '@wallet-standard/base@1.1.0': - resolution: {integrity: sha512-DJDQhjKmSNVLKWItoKThJS+CsJQjR9AOBOirBVT1F9YpRyC9oYHE+ZnSf8y8bxUphtKqdQMPVQ2mHohYdRvDVQ==} - engines: {node: '>=16'} - - '@wallet-standard/core@1.0.3': - resolution: {integrity: sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==} - engines: {node: '>=16'} - - '@wallet-standard/core@1.1.0': - resolution: {integrity: sha512-v2W5q/NlX1qkn2q/JOXQT//pOAdrhz7+nOcO2uiH9+a0uvreL+sdWWqkhFmMcX+HEBjaibdOQMUoIfDhOGX4XA==} - engines: {node: '>=16'} - - '@wallet-standard/errors@0.1.0': - resolution: {integrity: sha512-ag0eq5ixy7rz8M5YUWGi/EoIJ69KJ+KILFNunoufgmXVkiISC7+NIZXJYTJrapni4f9twE1hfT+8+IV2CYCvmg==} - engines: {node: '>=16'} - hasBin: true - - '@wallet-standard/features@1.1.0': - resolution: {integrity: sha512-hiEivWNztx73s+7iLxsuD1sOJ28xtRix58W7Xnz4XzzA/pF0+aicnWgjOdA10doVDEDZdUuZCIIqG96SFNlDUg==} - engines: {node: '>=16'} - - '@wallet-standard/wallet@1.1.0': - resolution: {integrity: sha512-Gt8TnSlDZpAl+RWOOAB/kuvC7RpcdWAlFbHNoi4gsXsfaWa1QCT6LBcfIYTPdOZC9OVZUDwqGuGAcqZejDmHjg==} - engines: {node: '>=16'} - - '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - - '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - - '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - - '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - - '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - - '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - - '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - - '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - - '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - - '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - - '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - - '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - - '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - - '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - - JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - - abbrev@3.0.0: - resolution: {integrity: sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA==} - engines: {node: ^18.17.0 || >=20.5.0} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} - engines: {node: '>=0.4.0'} - hasBin: true - - agent-base@7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} - engines: {node: '>= 14'} - - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - - alien-signals@0.4.14: - resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} - - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - antd@5.23.4: - resolution: {integrity: sha512-8H3icWQRi4lu7pkOpc2IhCh+UgmtTZHaTusgfieihv5nm8lNsCxCrxMqEgMxrZTumxsBKHThACkNdejSE3IeuA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - aptos@1.21.0: - resolution: {integrity: sha512-PRKjoFgL8tVEc9+oS7eJUv8GNxx8n3+0byH2+m7CP3raYOD6yFKOecuwjVMIJmgfpjp6xH0P0HDMGZAXmSyU0Q==} - engines: {node: '>=11.0.0'} - deprecated: Package aptos is no longer supported, please migrate to https://www.npmjs.com/package/@aptos-labs/ts-sdk - - archiver-utils@5.0.2: - resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} - engines: {node: '>= 14'} - - archiver@7.0.1: - resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} - engines: {node: '>= 14'} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - aria-hidden@1.2.4: - resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} - engines: {node: '>=10'} - - aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} - - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - - array-union@1.0.2: - resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} - engines: {node: '>=0.10.0'} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array-uniq@1.0.3: - resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} - engines: {node: '>=0.10.0'} - - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - - ast-kit@1.4.0: - resolution: {integrity: sha512-BlGeOw73FDsX7z0eZE/wuuafxYoek2yzNJ6l6A1nsb4+z/p87TOPbHaWuN53kFKNuUXiCQa2M+xLF71IqQmRSw==} - engines: {node: '>=16.14.0'} - - ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - - ast-walker-scope@0.6.2: - resolution: {integrity: sha512-1UWOyC50xI3QZkRuDj6PqDtpm1oHWtYs+NQGwqL/2R11eN3Q81PHAHPM0SWW3BNQm53UDwS//Jv8L4CCVLM1bQ==} - engines: {node: '>=16.14.0'} - - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - - async-sema@3.1.1: - resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - - async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} - - async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - - autoprefixer@10.4.20: - resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - axe-core@4.10.2: - resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} - engines: {node: '>=4'} - - axios@1.7.4: - resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} - - axios@1.7.9: - resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} - - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - - b4a@1.6.7: - resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} - - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} - - babel-preset-current-node-syntax@1.1.0: - resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - bare-events@2.5.4: - resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - - birpc@0.2.19: - resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} - - bn.js@5.2.1: - resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - - buffer-crc32@1.0.0: - resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} - engines: {node: '>=8.0.0'} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - bufferutil@4.0.9: - resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} - engines: {node: '>=6.14.2'} - - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - builtins@5.1.0: - resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} - - bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} - - bundle-require@3.1.2: - resolution: {integrity: sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.13' - - busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - - c12@2.0.1: - resolution: {integrity: sha512-Z4JgsKXHG37C6PYUtIxCfLJZvo6FyhHJoClwwb9ftUkLpPSkuYqn6Tr+vnaN8hymm0kIbcg6Ey3kv/Q71k5w/A==} - peerDependencies: - magicast: ^0.3.5 - peerDependenciesMeta: - magicast: - optional: true - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - cache-content-type@1.0.1: - resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} - engines: {node: '>= 6.0.0'} - - cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} - - cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} - - call-bind-apply-helpers@1.0.1: - resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.3: - resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - - caniuse-lite@1.0.30001699: - resolution: {integrity: sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.4.1: - resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - change-case@5.4.4: - resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} - - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - - chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} - - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - - cjs-module-lexer@1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - - class-variance-authority@0.7.1: - resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} - - classnames@2.5.1: - resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - - clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} - - client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - - clipboardy@4.0.0: - resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} - engines: {node: '>=18'} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} - - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - - colorette@1.4.0: - resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - commander@6.2.1: - resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} - engines: {node: '>= 6'} - - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - compatx@0.1.8: - resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==} - - compress-commons@6.0.2: - resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} - engines: {node: '>= 14'} - - compute-scroll-into-view@3.1.1: - resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} - - computeds@0.0.1: - resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - - consola@3.4.0: - resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} - engines: {node: ^14.18.0 || >=16.10.0} - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie-es@1.2.2: - resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} - - cookies@0.9.1: - resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} - engines: {node: '>= 0.8'} - - copy-anything@3.0.5: - resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} - engines: {node: '>=12.13'} - - copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - - crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true - - crc32-stream@6.0.0: - resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} - engines: {node: '>= 14'} - - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - - croner@9.0.0: - resolution: {integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==} - engines: {node: '>=18.0'} - - cronstrue@2.54.0: - resolution: {integrity: sha512-vyp5NklDxA5MjPfQgkn0bA+0vRQe7Q9keX7RPdV6rMgd7LtDvbuKgnT+3T5ZAX16anSP5HmahcRp8mziXsLfaw==} - hasBin: true - - cross-fetch@3.2.0: - resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - crossws@0.3.3: - resolution: {integrity: sha512-/71DJT3xJlqSnBr83uGJesmVHSzZEvgxHt/fIKxBAAngqMHmnBWQNxCphVxxJ2XL3xleu5+hJD6IQ3TglBedcw==} - - css-declaration-sorter@7.2.0: - resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.0.9 - - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - - css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - cssnano-preset-default@7.0.6: - resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - cssnano-utils@5.0.0: - resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - cssnano@7.0.6: - resolution: {integrity: sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - - dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - - db0@0.2.3: - resolution: {integrity: sha512-PunuHESDNefmwVy1LDpY663uWwKt2ogLGoB6NOz2sflGREWqDreMwDgF8gfkXxgNXW+dqviyiJGm924H1BaGiw==} - peerDependencies: - '@electric-sql/pglite': '*' - '@libsql/client': '*' - better-sqlite3: '*' - drizzle-orm: '*' - mysql2: '*' - sqlite3: '*' - peerDependenciesMeta: - '@electric-sql/pglite': - optional: true - '@libsql/client': - optional: true - better-sqlite3: - optional: true - drizzle-orm: - optional: true - mysql2: - optional: true - sqlite3: - optional: true - - de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - - deep-equal@1.0.1: - resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} - engines: {node: '>=18'} - - default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} - engines: {node: '>=18'} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - - delay@5.0.0: - resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} - engines: {node: '>=10'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - - denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} - - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - destr@2.0.3: - resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detect-browser@5.3.0: - resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} - - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - - detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - - devalue@5.1.1: - resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} - - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - diff@7.0.0: - resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} - engines: {node: '>=0.3.1'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - dom-helpers@5.2.1: - resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - - dot-prop@9.0.0: - resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} - engines: {node: '>=18'} - - dotenv@16.0.3: - resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} - engines: {node: '>=12'} - - dotenv@16.4.7: - resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} - engines: {node: '>=12'} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - ed2curve@0.3.0: - resolution: {integrity: sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true - - electron-to-chromium@1.5.96: - resolution: {integrity: sha512-8AJUW6dh75Fm/ny8+kZKJzI1pgoE8bKLZlzDU2W1ENd+DXKJrx7I7l9hb8UWR4ojlnb5OlixMt00QWiYJoVw1w==} - - email-addresses@5.0.0: - resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==} - - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - - enhanced-resolve@5.18.1: - resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} - engines: {node: '>=10.13.0'} - - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - error-stack-parser-es@0.1.5: - resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==} - - errx@0.1.0: - resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==} - - es-abstract@1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} - engines: {node: '>= 0.4'} - - es-module-lexer@1.6.0: - resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} - - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - - es6-promise@4.2.8: - resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - - es6-promisify@5.0.0: - resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} - - esbuild-android-64@0.14.54: - resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - esbuild-android-arm64@0.14.54: - resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - esbuild-darwin-64@0.14.54: - resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - esbuild-darwin-arm64@0.14.54: - resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - esbuild-freebsd-64@0.14.54: - resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - esbuild-freebsd-arm64@0.14.54: - resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - esbuild-linux-32@0.14.54: - resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - esbuild-linux-64@0.14.54: - resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - esbuild-linux-arm64@0.14.54: - resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - esbuild-linux-arm@0.14.54: - resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - esbuild-linux-mips64le@0.14.54: - resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - esbuild-linux-ppc64le@0.14.54: - resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - esbuild-linux-riscv64@0.14.54: - resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - esbuild-linux-s390x@0.14.54: - resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - esbuild-netbsd-64@0.14.54: - resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - esbuild-openbsd-64@0.14.54: - resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - esbuild-sunos-64@0.14.54: - resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - esbuild-windows-32@0.14.54: - resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - esbuild-windows-64@0.14.54: - resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - esbuild-windows-arm64@0.14.54: - resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - esbuild@0.14.54: - resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} - engines: {node: '>=18'} - hasBin: true - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - eslint-config-next@13.0.0: - resolution: {integrity: sha512-y2nqWS2tycWySdVhb+rhp6CuDmDazGySqkzzQZf3UTyfHyC7og1m5m/AtMFwCo5mtvDqvw1BENin52kV9733lg==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - - eslint-config-next@14.2.3: - resolution: {integrity: sha512-ZkNztm3Q7hjqvB1rRlOX8P9E/cXRL9ajRcs8jufEtwMfTVYRqnmtnaSu57QqHyBlovMuiB8LEzfLBkh5RYV6Fg==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - - eslint-config-prettier@8.10.0: - resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-config-standard@17.1.0: - resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - - eslint-config-turbo@2.4.0: - resolution: {integrity: sha512-AiRdy83iwyG4+iMSxXQGUbEClxkGxSlXYH8E2a+0972ao75OWnlDBiiuLMOzDpJubR+QVGC4zonn29AIFCSbFw==} - peerDependencies: - eslint: '>6.6.0' - turbo: '>2.0.0' - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-import-resolver-typescript@2.7.1: - resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} - engines: {node: '>=4'} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - - eslint-import-resolver-typescript@3.7.0: - resolution: {integrity: sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true - - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-es@3.0.1: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-es@4.1.0: - resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-jsx-a11y@6.10.2: - resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - - eslint-plugin-n@15.7.0: - resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} - engines: {node: '>=12.22.0'} - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-node@11.1.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=5.16.0' - - eslint-plugin-promise@6.6.0: - resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - - eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705: - resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - - eslint-plugin-react@7.31.8: - resolution: {integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - - eslint-plugin-react@7.37.4: - resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-plugin-turbo@2.4.0: - resolution: {integrity: sha512-qCgoRi/OTc1VMxab7+sdKiV1xlkY4qjK9sM+kS7+WogrB1DxLguJSQXvk4HA13SD5VmJsq+8FYOw5q4EUk6Ixg==} - peerDependencies: - eslint: '>6.6.0' - turbo: '>2.0.0' - - eslint-plugin-unicorn@44.0.2: - resolution: {integrity: sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==} - engines: {node: '>=14.18'} - peerDependencies: - eslint: '>=8.23.1' - - eslint-plugin-vue@9.32.0: - resolution: {integrity: sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - - eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - - eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-webpack-plugin@4.2.0: - resolution: {integrity: sha512-rsfpFQ01AWQbqtjgPRr2usVRxhWDuG0YDYcG8DJOteD3EFnpeuYuOwk0PQiN7PRBTqS6ElNdtPZPggj8If9WnA==} - engines: {node: '>= 14.15.0'} - peerDependencies: - eslint: ^8.0.0 || ^9.0.0 - webpack: ^5.0.0 - - eslint@7.32.0: - resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} - engines: {node: ^10.12.0 || >=12.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - - espree@7.3.1: - resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} - engines: {node: ^10.12.0 || >=12.0.0} - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - eth-rpc-errors@4.0.3: - resolution: {integrity: sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - - extension-port-stream@2.1.1: - resolution: {integrity: sha512-qknp5o5rj2J9CRKfVB8KJr+uXQlrojNZzdESUPhKYLXf97TPcGf6qWWKmpsNNtUyOdzFhab1ON0jzouNxHHvow==} - engines: {node: '>=12.0.0'} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - - externality@1.0.2: - resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} - - eyes@0.1.8: - resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} - engines: {node: '> 0.1.90'} - - fast-deep-equal@2.0.1: - resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fast-npm-meta@0.2.2: - resolution: {integrity: sha512-E+fdxeaOQGo/CMWc9f4uHFfgUPJRAu7N3uB8GBvB3SDPAIWJK4GKyYhkAGFq+GYrcbKNfQIz5VVQyJnDuPPCrg==} - - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - - fast-uri@3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - - fastq@1.19.0: - resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} - - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - - fdir@6.4.3: - resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - fewcha-plugin-wallet-adapter@0.1.3: - resolution: {integrity: sha512-Ek59XhrkjVN+Yj1eBNI/SLGLgo9Sn1LVh8uDKgBaNix7nNAAJrgo2CoPCk/L595TSoO5FJtkBFdlnvRPAGJlAQ==} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - - filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - - filename-reserved-regex@2.0.0: - resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} - engines: {node: '>=4'} - - filenamify@4.3.0: - resolution: {integrity: sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==} - engines: {node: '>=8'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - - find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} - - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - for-each@0.3.4: - resolution: {integrity: sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==} - engines: {node: '>= 0.4'} - - foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} - engines: {node: '>=14'} - - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - - form-data@4.0.1: - resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} - engines: {node: '>= 6'} - - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - - fs-extra@11.3.0: - resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} - engines: {node: '>=14.14'} - - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - - fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} - - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - - functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - fuse.js@7.1.0: - resolution: {integrity: sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==} - engines: {node: '>=10'} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-intrinsic@1.2.7: - resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} - engines: {node: '>= 0.4'} - - get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} - - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - - get-port-please@3.1.2: - resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - - get-tsconfig@4.10.0: - resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} - - gh-pages@5.0.0: - resolution: {integrity: sha512-Nqp1SjkPIB94Xw/3yYNTUL+G2dxlhjvv1zeN/4kMC1jfViTEqhtVz/Ba1zSXHuvXCN9ADNS1dN4r5/J/nZWEQQ==} - engines: {node: '>=10'} - hasBin: true - - giget@1.2.4: - resolution: {integrity: sha512-Wv+daGyispVoA31TrWAVR+aAdP7roubTPEM/8JzRnqXhLbdJH0T9eQyXVFF8fjk3WKTsctII6QcyxILYgNp2DA==} - hasBin: true - - git-config-path@2.0.0: - resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==} - engines: {node: '>=4'} - - git-up@8.0.0: - resolution: {integrity: sha512-uBI8Zdt1OZlrYfGcSVroLJKgyNNXlgusYFzHk614lTasz35yg2PVpL1RMy0LOO2dcvF9msYW3pRfUSmafZNrjg==} - - git-url-parse@16.0.0: - resolution: {integrity: sha512-Y8iAF0AmCaqXc6a5GYgPQW9ESbncNLOL+CeQAJRhmWUOmnPkKpBYeWYp4mFd3LA5j53CdGDdslzX12yEBVHQQg==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - - glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - - glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - deprecated: Glob versions prior to v9 are no longer supported - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - globby@14.1.0: - resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} - engines: {node: '>=18'} - - globby@6.1.0: - resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} - engines: {node: '>=0.10.0'} - - google-fonts-helper@3.6.0: - resolution: {integrity: sha512-ReantWd/l8dedKqTYjvqaQ55rAl/rbRqWL5VXHNXtGwIhMX4N8VNA7V19drr7xiv5G3pzlYID0K4FauvGqnWEg==} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - graphql-request@7.1.2: - resolution: {integrity: sha512-+XE3iuC55C2di5ZUrB4pjgwe+nIQBuXVIK9J98wrVwojzDW3GMdSBZfxUk8l4j9TieIpjpggclxhNEU9ebGF8w==} - peerDependencies: - graphql: 14 - 16 - - graphql@16.10.0: - resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - - gzip-size@7.0.0: - resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - h3@1.15.0: - resolution: {integrity: sha512-OsjX4JW8J4XGgCgEcad20pepFQWnuKH+OwkCJjogF3C+9AZ1iYdtB4hX6vAb5DskBiu5ljEXqApINjR8CqoCMQ==} - - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - - hookable@5.5.3: - resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - - http-assert@1.5.0: - resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} - engines: {node: '>= 0.8'} - - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - - http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} - - http-errors@1.8.1: - resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} - engines: {node: '>= 0.6'} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - - http-shutdown@1.2.2: - resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} - - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - - httpxy@0.1.7: - resolution: {integrity: sha512-pXNx8gnANKAndgga5ahefxc++tJvNL87CXoRwxn1cJE2ZkWEojF3tNfQIEhZX/vfpt+wzeAzpUI4qkediX1MLQ==} - - human-id@1.0.2: - resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - ignore@4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - ignore@7.0.3: - resolution: {integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==} - engines: {node: '>= 4'} - - image-meta@0.2.1: - resolution: {integrity: sha512-K6acvFaelNxx8wc2VjbIzXKDVB0Khs0QT35U6NkGfTdCmjLNcO2945m7RFNR9/RPVFm48hq7QPzK8uGH18HCGw==} - - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - - import-local@3.2.0: - resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} - engines: {node: '>=8'} - hasBin: true - - impound@0.2.0: - resolution: {integrity: sha512-gXgeSyp9Hf7qG2/PLKmywHXyQf2xFrw+mJGpoj9DsAB9L7/MIKn+DeEx98UryWXdmbv8wUUPdcQof6qXnZoCGg==} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - index-to-position@0.1.2: - resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} - engines: {node: '>=18'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - - ioredis@5.5.0: - resolution: {integrity: sha512-7CutT89g23FfSa8MDoIFs2GYYa0PaNiW/OrT+nRyjRXHDZd17HmIgy+reOQ/yhh72NznNjGuS8kbCAcA4Ro4mw==} - engines: {node: '>=12.22.0'} - - iron-webcrypto@1.2.1: - resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} - - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - - is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} - - is-bun-module@1.3.0: - resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - - is-installed-globally@1.0.0: - resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} - engines: {node: '>=18'} - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-path-inside@4.0.0: - resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} - engines: {node: '>=12'} - - is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - - is-ssh@1.4.0: - resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - - is-what@4.1.16: - resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} - engines: {node: '>=12.13'} - - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - - is64bit@2.0.0: - resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} - engines: {node: '>=18'} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isomorphic-ws@4.0.1: - resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} - peerDependencies: - ws: '*' - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} - engines: {node: '>=10'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - - iterator.prototype@1.1.5: - resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} - engines: {node: '>= 0.4'} - - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - jake@10.9.2: - resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} - engines: {node: '>=10'} - hasBin: true - - jayson@3.7.0: - resolution: {integrity: sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==} - engines: {node: '>=8'} - hasBin: true - - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} - hasBin: true - - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} - hasBin: true - - jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - - js-base64@3.7.7: - resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} - - js-levenshtein@1.1.6: - resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} - engines: {node: '>=0.10.0'} - - js-sha3@0.8.0: - resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-rpc-engine@6.1.0: - resolution: {integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==} - engines: {node: '>=10.0.0'} - - json-rpc-middleware-stream@3.0.0: - resolution: {integrity: sha512-JmZmlehE0xF3swwORpLHny/GvW3MZxCsb2uFNBrn8TOqMqivzCfz232NSDLLOtIQlrPlgyEjiYpyzyOPFOzClw==} - - json-rpc-protocol@0.13.2: - resolution: {integrity: sha512-2InSi+c7wGESmvYcEVS0clctpJCodV7gLqLN1BIIPNK07wokXIwhOL8RQWU4O7oX5adChn6HJGtIU6JaUQ1P/A==} - engines: {node: '>=4'} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - - json2mq@0.2.0: - resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} - - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - - jwt-decode@4.0.0: - resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} - engines: {node: '>=18'} - - keygrip@1.1.0: - resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} - engines: {node: '>= 0.6'} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - - knitwork@1.2.0: - resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==} - - koa-compose@4.1.0: - resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} - - koa-convert@2.0.0: - resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==} - engines: {node: '>= 10'} - - koa-send@5.0.1: - resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==} - engines: {node: '>= 8'} - - koa-static@5.0.0: - resolution: {integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==} - engines: {node: '>= 7.6.0'} - - koa@2.15.3: - resolution: {integrity: sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==} - engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} - - kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - - language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - - language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - - launch-editor@2.9.1: - resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} - - lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - listhen@1.9.0: - resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} - hasBin: true - - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - - local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} - engines: {node: '>=14'} - - local-pkg@0.5.1: - resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} - engines: {node: '>=14'} - - local-pkg@1.0.0: - resolution: {integrity: sha512-bbgPw/wmroJsil/GgL4qjDzs5YLTBMQ99weRsok1XCDccQeehbHA/I1oRvk2NPtr7KGZgT/Y5tPRnAtMqeG2Kg==} - engines: {node: '>=14'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - - lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. - - lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} - - lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. - - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - - lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - lossless-json@1.0.5: - resolution: {integrity: sha512-RicKUuLwZVNZ6ZdJHgIZnSeA05p8qWc5NW0uR96mpPIjN9WDLUg9+kj1esQU1GkPn9iLZVKatSQK5gyiaFHgJA==} - - lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - lucide-react@0.383.0: - resolution: {integrity: sha512-13xlG0CQCJtzjSQYwwJ3WRqMHtRj3EXmLlorrARt7y+IHnxUCp3XyFNL1DfaGySWxHObDvnu1u1dV+0VMKHUSg==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 - - lucide-vue-next@0.396.0: - resolution: {integrity: sha512-fY2FbKWVlAH6KyGHLWQvjPmDAbAh5UH6eqakDYB815UG5wPLtDQmhSYQlZvDLvhkahLdUZt5f+IWKwSANaS0Zw==} - peerDependencies: - vue: '>=3.0.1' - - magic-string-ast@0.7.0: - resolution: {integrity: sha512-686fgAHaJY7wLTFEq7nnKqeQrhqmXB19d1HnqT35Ci7BN6hbAYLZUezTQ062uUHM7ggZEQlqJ94Ftls+KDXU8Q==} - engines: {node: '>=16.14.0'} - - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - - magicast@0.3.5: - resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} - - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - - mime@4.0.6: - resolution: {integrity: sha512-4rGt7rvQHBbaSOF9POGkk1ocRP16Md1x36Xma8sz8h8/vfCUI2OtEIeCqe4Ofes853x4xDoPiFLIT47J5fI/7A==} - engines: {node: '>=16'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - - minizlib@3.0.1: - resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} - engines: {node: '>= 18'} - - mitt@3.0.1: - resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - - mlly@1.7.4: - resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - muggle-string@0.3.1: - resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} - - muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanoid@5.0.9: - resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} - engines: {node: ^18 || >=20} - hasBin: true - - nanotar@0.2.0: - resolution: {integrity: sha512-9ca1h0Xjvo9bEkE4UOxgAzLV0jHKe6LMaxo37ND2DAhhAtd0j8pR1Wxz+/goMrZO8AEZTWCmyaOsFI/W5AdpCQ==} - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - next-themes@0.3.0: - resolution: {integrity: sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==} - peerDependencies: - react: ^16.8 || ^17 || ^18 - react-dom: ^16.8 || ^17 || ^18 - - next@14.2.24: - resolution: {integrity: sha512-En8VEexSJ0Py2FfVnRRh8gtERwDRaJGNvsvad47ShkC2Yi8AXQPXEA2vKoDJlGFSj5WE5SyF21zNi4M5gyi+SQ==} - engines: {node: '>=18.17.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - '@playwright/test': - optional: true - sass: - optional: true - - nitropack@2.10.4: - resolution: {integrity: sha512-sJiG/MIQlZCVSw2cQrFG1H6mLeSqHlYfFerRjLKz69vUfdu0EL2l0WdOxlQbzJr3mMv/l4cOlCCLzVRzjzzF/g==} - engines: {node: ^16.11.0 || >=17.0.0} - hasBin: true - peerDependencies: - xml2js: ^0.6.2 - peerDependenciesMeta: - xml2js: - optional: true - - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - - node-fetch-native@1.6.6: - resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true - - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - node-mock-http@1.0.0: - resolution: {integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==} - - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - - nopt@8.1.0: - resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - - normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - nuxt@3.15.4: - resolution: {integrity: sha512-hSbZO4mR0uAMJtZPNTnCfiAtgleoOu28gvJcBNU7KQHgWnNXPjlWgwMczko2O4Tmnv9zIe/CQged+2HsPwl2ZA==} - engines: {node: ^18.20.5 || ^20.9.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@parcel/watcher': ^2.1.0 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - peerDependenciesMeta: - '@parcel/watcher': - optional: true - '@types/node': - optional: true - - nypm@0.4.1: - resolution: {integrity: sha512-1b9mihliBh8UCcKtcGRu//G50iHpjxIQVUqkdhPT/SDVE7KdJKoHXLS0heuYTQCx95dFqiyUbXZB9r8ikn+93g==} - engines: {node: ^14.16.0 || >=16.10.0} - hasBin: true - - nypm@0.5.2: - resolution: {integrity: sha512-AHzvnyUJYSrrphPhRWWZNcoZfArGNp3Vrc4pm/ZurO74tYNTgAPrEyBQEKy+qioqmWlPXwvMZCG2wOaHlPG0Pw==} - engines: {node: ^14.16.0 || >=16.10.0} - hasBin: true - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - - object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - - ofetch@1.4.1: - resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} - - ohash@1.1.4: - resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - only@0.0.2: - resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} - - open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} - engines: {node: '>=18'} - - open@7.4.2: - resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} - engines: {node: '>=8'} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - openapi-typescript@7.6.1: - resolution: {integrity: sha512-F7RXEeo/heF3O9lOXo2bNjCOtfp7u+D6W3a3VNEH2xE6v+fxLtn5nq0uvUcA1F5aT+CMhNeC5Uqtg5tlXFX/ag==} - hasBin: true - peerDependencies: - typescript: ^5.x - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - - outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - - p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} - - p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - package-manager-detector@0.2.9: - resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==} - - packrup@0.1.2: - resolution: {integrity: sha512-ZcKU7zrr5GlonoS9cxxrb5HVswGnyj6jQvwFBa6p5VFw7G71VAHcUKL5wyZSU/ECtPM/9gacWxy2KFQKt1gMNA==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-git-config@3.0.0: - resolution: {integrity: sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA==} - engines: {node: '>=8'} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-json@8.1.0: - resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} - engines: {node: '>=18'} - - parse-path@7.0.0: - resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} - - parse-url@9.2.0: - resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==} - engines: {node: '>=14.13.0'} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - path-type@6.0.0: - resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} - engines: {node: '>=18'} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - - pathe@2.0.2: - resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==} - - perfect-debounce@1.0.0: - resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - - pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - - pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - - portfinder@1.0.32: - resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} - engines: {node: '>= 0.12.0'} - - poseidon-lite@0.2.1: - resolution: {integrity: sha512-xIr+G6HeYfOhCuswdqcFpSX47SPhm0EpisWJ6h7fHlWwaVIvH3dLnejpatrtw6Xc6HaLrpq05y7VRfvDmDGIog==} - - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - - postcss-calc@10.1.1: - resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} - engines: {node: ^18.12 || ^20.9 || >=22.0} - peerDependencies: - postcss: ^8.4.38 - - postcss-colormin@7.0.2: - resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-convert-values@7.0.4: - resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-comments@7.0.3: - resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-duplicates@7.0.1: - resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-empty@7.0.0: - resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-overridden@7.0.0: - resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@3.1.4: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-merge-longhand@7.0.4: - resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-merge-rules@7.0.4: - resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-font-values@7.0.0: - resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-gradients@7.0.0: - resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-params@7.0.2: - resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-selectors@7.0.4: - resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-nesting@13.0.1: - resolution: {integrity: sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-normalize-charset@7.0.0: - resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-display-values@7.0.0: - resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-positions@7.0.0: - resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-repeat-style@7.0.0: - resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-string@7.0.0: - resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-timing-functions@7.0.0: - resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-unicode@7.0.2: - resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-url@7.0.0: - resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-whitespace@7.0.0: - resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-ordered-values@7.0.1: - resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-reduce-initial@7.0.2: - resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-reduce-transforms@7.0.0: - resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - - postcss-selector-parser@7.1.0: - resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} - engines: {node: '>=4'} - - postcss-svgo@7.0.1: - resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==} - engines: {node: ^18.12.0 || ^20.9.0 || >= 18} - peerDependencies: - postcss: ^8.4.31 - - postcss-unique-selectors@7.0.3: - resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.5.1: - resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - - prettier@3.5.0: - resolution: {integrity: sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA==} - engines: {node: '>=14'} - hasBin: true - - pretty-bytes@6.1.1: - resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} - engines: {node: ^14.13.1 || >=16.0.0} - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - - progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - protocols@2.0.1: - resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} - - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - - pump@3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - - radix-vue@1.9.13: - resolution: {integrity: sha512-wk0G69vRDU5TDmhYHZv5Y4j905CLfnvcsFB+CXAbXRuQIl5fUCmOWSOukKhj0MT9YRsW5ujZUjtDF0Ou/hg+8Q==} - peerDependencies: - vue: '>= 3.2.0' - - radix3@1.1.2: - resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - rc-cascader@3.33.0: - resolution: {integrity: sha512-JvZrMbKBXIbEDmpIORxqvedY/bck6hGbs3hxdWT8eS9wSQ1P7//lGxbyKjOSyQiVBbgzNWriSe6HoMcZO/+0rQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-checkbox@3.5.0: - resolution: {integrity: sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-collapse@3.9.0: - resolution: {integrity: sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-dialog@9.6.0: - resolution: {integrity: sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-drawer@7.2.0: - resolution: {integrity: sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-dropdown@4.2.1: - resolution: {integrity: sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==} - peerDependencies: - react: '>=16.11.0' - react-dom: '>=16.11.0' - - rc-field-form@2.7.0: - resolution: {integrity: sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-image@7.11.0: - resolution: {integrity: sha512-aZkTEZXqeqfPZtnSdNUnKQA0N/3MbgR7nUnZ+/4MfSFWPFHZau4p5r5ShaI0KPEMnNjv4kijSCFq/9wtJpwykw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-input-number@9.4.0: - resolution: {integrity: sha512-Tiy4DcXcFXAf9wDhN8aUAyMeCLHJUHA/VA/t7Hj8ZEx5ETvxG7MArDOSE6psbiSCo+vJPm4E3fGN710ITVn6GA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-input@1.7.2: - resolution: {integrity: sha512-g3nYONnl4edWj2FfVoxsU3Ec4XTE+Hb39Kfh2MFxMZjp/0gGyPUgy/v7ZhS27ZxUFNkuIDYXm9PJsLyJbtg86A==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - rc-mentions@2.19.1: - resolution: {integrity: sha512-KK3bAc/bPFI993J3necmaMXD2reZTzytZdlTvkeBbp50IGH1BDPDvxLdHDUrpQx2b2TGaVJsn+86BvYa03kGqA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-menu@9.16.0: - resolution: {integrity: sha512-vAL0yqPkmXWk3+YKRkmIR8TYj3RVdEt3ptG2jCJXWNAvQbT0VJJdRyHZ7kG/l1JsZlB+VJq/VcYOo69VR4oD+w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-motion@2.9.5: - resolution: {integrity: sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-notification@5.6.3: - resolution: {integrity: sha512-42szwnn8VYQoT6GnjO00i1iwqV9D1TTMvxObWsuLwgl0TsOokzhkYiufdtQBsJMFjJravS1hfDKVMHLKLcPE4g==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-overflow@1.4.1: - resolution: {integrity: sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-pagination@5.1.0: - resolution: {integrity: sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-picker@4.9.2: - resolution: {integrity: sha512-SLW4PRudODOomipKI0dvykxW4P8LOqtMr17MOaLU6NQJhkh9SZeh44a/8BMxwv5T6e3kiIeYc9k5jFg2Mv35Pg==} - engines: {node: '>=8.x'} - peerDependencies: - date-fns: '>= 2.x' - dayjs: '>= 1.x' - luxon: '>= 3.x' - moment: '>= 2.x' - react: '>=16.9.0' - react-dom: '>=16.9.0' - peerDependenciesMeta: - date-fns: - optional: true - dayjs: - optional: true - luxon: - optional: true - moment: - optional: true - - rc-progress@4.0.0: - resolution: {integrity: sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-rate@2.13.0: - resolution: {integrity: sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-resize-observer@1.4.3: - resolution: {integrity: sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-segmented@2.7.0: - resolution: {integrity: sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - - rc-select@14.16.6: - resolution: {integrity: sha512-YPMtRPqfZWOm2XGTbx5/YVr1HT0vn//8QS77At0Gjb3Lv+Lbut0IORJPKLWu1hQ3u4GsA0SrDzs7nI8JG7Zmyg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' - - rc-slider@11.1.8: - resolution: {integrity: sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-steps@6.0.1: - resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-switch@4.1.0: - resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-table@7.50.2: - resolution: {integrity: sha512-+nJbzxzstBriLb5sr9U7Vjs7+4dO8cWlouQbMwBVYghk2vr508bBdkHJeP/z9HVjAIKmAgMQKxmtbgDd3gc5wA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-tabs@15.5.1: - resolution: {integrity: sha512-yiWivLAjEo5d1v2xlseB2dQocsOhkoVSfo1krS8v8r+02K+TBUjSjXIf7dgyVSxp6wRIPv5pMi5hanNUlQMgUA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-textarea@1.9.0: - resolution: {integrity: sha512-dQW/Bc/MriPBTugj2Kx9PMS5eXCCGn2cxoIaichjbNvOiARlaHdI99j4DTxLl/V8+PIfW06uFy7kjfUIDDKyxQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-tooltip@6.3.2: - resolution: {integrity: sha512-oA4HZIiZJbUQ5ojigM0y4XtWxaH/aQlJSzknjICRWNpqyemy1sL3X3iEQV2eSPBWEq+bqU3+aSs81z+28j9luA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-tree-select@5.27.0: - resolution: {integrity: sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==} - peerDependencies: - react: '*' - react-dom: '*' - - rc-tree@5.13.0: - resolution: {integrity: sha512-2+lFvoVRnvHQ1trlpXMOWtF8BUgF+3TiipG72uOfhpL5CUdXCk931kvDdUkTL/IZVtNEDQKwEEmJbAYJSA5NnA==} - engines: {node: '>=10.x'} - peerDependencies: - react: '*' - react-dom: '*' - - rc-upload@4.8.1: - resolution: {integrity: sha512-toEAhwl4hjLAI1u8/CgKWt30BR06ulPa4iGQSMvSXoHzO88gPCslxqV/mnn4gJU7PDoltGIC9Eh+wkeudqgHyw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-util@5.44.4: - resolution: {integrity: sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc-virtual-list@3.18.1: - resolution: {integrity: sha512-ARSsD/dey/I4yNQHFYYUaKLUkD1wnD4lRZIvb3rCLMbTMmoFQJRVrWuSfbNt5P5MzMNooEBDvqrUPM4QN7BMNA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - - rc9@2.1.2: - resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} - - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - react-is@19.0.0: - resolution: {integrity: sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==} - - react-remove-scroll-bar@2.3.8: - resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - react-remove-scroll@2.6.3: - resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - react-router-dom@6.29.0: - resolution: {integrity: sha512-pkEbJPATRJ2iotK+wUwHfy0xs2T59YPEN8BQxVCPeBZvK7kfPESRc/nyxzdcxR17hXgUPYx2whMwl+eo9cUdnQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - - react-router@6.29.0: - resolution: {integrity: sha512-DXZJoE0q+KyeVw75Ck6GkPxFak63C4fGqZGNijnWgzB/HzSP1ZfTlBj5COaGWwhrMQ/R8bXiq5Ooy4KG+ReyjQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - - react-style-singleton@2.2.3: - resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - react-transition-group@4.4.5: - resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} - peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@4.7.0: - resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - readdirp@4.1.1: - resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} - engines: {node: '>= 14.18.0'} - - redis-errors@1.2.0: - resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} - engines: {node: '>=4'} - - redis-parser@3.0.0: - resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} - engines: {node: '>=4'} - - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - - regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - - replace-in-file@6.3.5: - resolution: {integrity: sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg==} - engines: {node: '>=10'} - hasBin: true - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve-path@1.4.0: - resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} - engines: {node: '>= 0.8'} - - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - resolve.exports@2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} - engines: {node: '>=10'} - - resolve@1.19.0: - resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} - - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - - responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rimraf@5.0.10: - resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} - hasBin: true - - rollup-plugin-typescript2@0.36.0: - resolution: {integrity: sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw==} - peerDependencies: - rollup: '>=1.26.3' - typescript: '>=2.4.0' - - rollup-plugin-visualizer@5.14.0: - resolution: {integrity: sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - rolldown: 1.x - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rolldown: - optional: true - rollup: - optional: true - - rollup@2.79.2: - resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} - engines: {node: '>=10.0.0'} - hasBin: true - - rollup@4.34.6: - resolution: {integrity: sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rpc-websockets@7.11.2: - resolution: {integrity: sha512-pL9r5N6AVHlMN/vT98+fcO+5+/UcPLf/4tq+WUaid/PPUGS/ttJ3y8e9IqmaWKtShNAysMSjkczuEA49NuV7UQ==} - - run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} - engines: {node: '>=18'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - - safe-regex@2.1.1: - resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - schema-utils@4.3.0: - resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} - engines: {node: '>= 10.13.0'} - - scroll-into-view-if-needed@3.1.0: - resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} - - scule@1.3.0: - resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} - engines: {node: '>=10'} - hasBin: true - - send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} - engines: {node: '>= 0.8.0'} - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - serve-placeholder@2.0.2: - resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} - - serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} - engines: {node: '>= 0.8.0'} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - - setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - shadcn-nuxt@0.10.4: - resolution: {integrity: sha512-WhSGzjaSMi1D2xb9Aflpwl8G8Qvlb0g4OuJLPO4YyRhduQDuscU6Pr1HdF7T4700foLLglgFnz7m8E2DDLLHJA==} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shell-quote@1.8.2: - resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} - engines: {node: '>= 0.4'} - - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - simple-git@3.27.0: - resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} - - sirv@3.0.0: - resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} - engines: {node: '>=18'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - - slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - - smob@1.5.0: - resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - - spawndamnit@3.0.1: - resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.21: - resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} - - speakingurl@14.0.1: - resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} - engines: {node: '>=0.10.0'} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - stable-hash@0.0.4: - resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} - - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - standard-as-callback@2.1.0: - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - std-env@3.8.0: - resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} - - streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - - streamx@2.22.0: - resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} - - string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - - string-convert@0.2.1: - resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} - - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string.prototype.includes@2.0.1: - resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} - engines: {node: '>= 0.4'} - - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} - - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strip-literal@2.1.1: - resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==} - - strip-literal@3.0.0: - resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} - - strip-outer@1.0.1: - resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} - engines: {node: '>=0.10.0'} - - styled-jsx@5.1.1: - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true - - stylehacks@7.0.4: - resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - stylis@4.2.0: - resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - - stylis@4.3.6: - resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} - - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - superjson@2.2.2: - resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} - engines: {node: '>=16'} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-color@9.4.0: - resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} - engines: {node: '>=12'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svg-tags@1.0.0: - resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - - svgo@3.3.2: - resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} - engines: {node: '>=14.0.0'} - hasBin: true - - system-architecture@0.1.0: - resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} - engines: {node: '>=18'} - - table@6.9.0: - resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} - engines: {node: '>=10.0.0'} - - tailwind-config-viewer@2.0.4: - resolution: {integrity: sha512-icvcmdMmt9dphvas8wL40qttrHwAnW3QEN4ExJ2zICjwRsPj7gowd1cOceaWG3IfTuM/cTNGQcx+bsjMtmV+cw==} - engines: {node: '>=13'} - hasBin: true - peerDependencies: - tailwindcss: 1 || 2 || 2.0.1-compat || 3 - - tailwind-merge@2.6.0: - resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} - - tailwindcss-animate@1.0.7: - resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} - peerDependencies: - tailwindcss: '>=3.0.0 || insiders' - - tailwindcss@3.4.17: - resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} - engines: {node: '>=14.0.0'} - hasBin: true - - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - - tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - - tar@7.4.3: - resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} - engines: {node: '>=18'} - - term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} - - terser-webpack-plugin@5.3.11: - resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - - terser@5.38.1: - resolution: {integrity: sha512-GWANVlPM/ZfYzuPHjq0nxT+EbOEDDN3Jwhwdg1D8TU8oSkktp8w64Uq4auuGLxFSoNTRDncTq2hQHX1Ld9KHkA==} - engines: {node: '>=10'} - hasBin: true - - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - text-decoder@1.2.3: - resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - throttle-debounce@5.0.2: - resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} - engines: {node: '>=12.22'} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - - tinyglobby@0.2.10: - resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} - engines: {node: '>=12.0.0'} - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - - trim-repeated@1.0.0: - resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} - engines: {node: '>=0.10.0'} - - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - ts-jest@29.2.5: - resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==} - engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/transform': ^29.0.0 - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/transform': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - tsscmp@1.0.6: - resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} - engines: {node: '>=0.6.x'} - - tsup@5.12.9: - resolution: {integrity: sha512-dUpuouWZYe40lLufo64qEhDpIDsWhRbr2expv5dHEMjwqeKJS2aXA/FPqs1dxO4T6mBojo7rvo3jP9NNzaKyDg==} - hasBin: true - peerDependencies: - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: ^4.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - - turbo-darwin-64@2.4.0: - resolution: {integrity: sha512-kVMScnPUa3R4n7woNmkR15kOY0aUwCLJcUyH5UC59ggKqr5HIHwweKYK8N1pwBQso0LQF4I9i93hIzfJguCcwQ==} - cpu: [x64] - os: [darwin] - - turbo-darwin-64@2.4.2: - resolution: {integrity: sha512-HFfemyWB60CJtEvVQj9yby5rkkWw9fLAdLtAPGtPQoU3tKh8t/uzCAZKso2aPVbib9vGUuGbPGoGpaRXdVhj5g==} - cpu: [x64] - os: [darwin] - - turbo-darwin-arm64@2.4.0: - resolution: {integrity: sha512-8JObIpfun1guA7UlFR5jC/SOVm49lRscxMxfg5jZ5ABft79rhFC+ygN9AwAhGKv6W2DUhIh2xENkSgu4EDmUyg==} - cpu: [arm64] - os: [darwin] - - turbo-darwin-arm64@2.4.2: - resolution: {integrity: sha512-uwSx1dsBSSFeEC0nxyx2O219FEsS/haiESaWwE9JI8mHkQK61s6w6fN2G586krKxyNam4AIxRltleL+O2Em94g==} - cpu: [arm64] - os: [darwin] - - turbo-linux-64@2.4.0: - resolution: {integrity: sha512-xWDGGcRlBuGV7HXWAVuTY6vsQi4aZxGMAnuiuNDg8Ij1aHGohOM0RUsWMXjxz4vuJmjk9+/D6NQqHH3AJEXezg==} - cpu: [x64] - os: [linux] - - turbo-linux-64@2.4.2: - resolution: {integrity: sha512-Fy/uL8z/LAYcPbm7a1LwFnTY9pIi5FAi12iuHsgB7zHjdh4eeIKS2NIg4nroAmTcUTUZ0/cVTo4bDOCUcS3aKw==} - cpu: [x64] - os: [linux] - - turbo-linux-arm64@2.4.0: - resolution: {integrity: sha512-c3En99xMguc/Pdtk/rZP53LnDdw0W6lgUc04he8r8F+UHYSNvgzHh0WGXXmCC6lGbBH72kPhhGx4bAwyvi7dug==} - cpu: [arm64] - os: [linux] - - turbo-linux-arm64@2.4.2: - resolution: {integrity: sha512-AEA0d8h5W/K6iiXfEgiNwWt0yqRL1NpBs8zQCLdc4/L7WeYeJW3sORWX8zt7xhutF/KW9gTm8ehKpiK6cCIsAA==} - cpu: [arm64] - os: [linux] - - turbo-windows-64@2.4.0: - resolution: {integrity: sha512-/gOORuOlyA8JDPzyA16CD3wvyRcuBFePa1URAnFUof9hXQmKxK0VvSDO79cYZFsJSchCKNJpckUS0gYxGsWwoA==} - cpu: [x64] - os: [win32] - - turbo-windows-64@2.4.2: - resolution: {integrity: sha512-CybtIZ9wRgnnNFVN9En9G+rxsO+mwU81fvW4RpE8BWyNEkhQ8J28qYf4PaimueMxGHHp/28i/G7Kcdn2GAWG0g==} - cpu: [x64] - os: [win32] - - turbo-windows-arm64@2.4.0: - resolution: {integrity: sha512-/DJIdTFijEMM5LSiEpSfarDOMOlYqJV+EzmppqWtHqDsOLF4hbbIBH9sJR6OOp5dURAu5eURBYdmvBRz9Lo6TA==} - cpu: [arm64] - os: [win32] - - turbo-windows-arm64@2.4.2: - resolution: {integrity: sha512-7V0yneVPL8Y3TgrkUIjw7Odmwu1tHnyIiPHFM7eFcA7U+H6hPXyCxge7nC3wOKfjhKCQqUm+Vf/k6kjmLz5G4g==} - cpu: [arm64] - os: [win32] - - turbo@2.4.0: - resolution: {integrity: sha512-ah/yQp2oMif1X0u7fBJ4MLMygnkbKnW5O8SG6pJvloPCpHfFoZctkSVQiJ3VnvNTq71V2JJIdwmOeu1i34OQyg==} - hasBin: true - - turbo@2.4.2: - resolution: {integrity: sha512-Qxi0ioQCxMRUCcHKHZkTnYH8e7XCpNfg9QiJcyfWIc+ZXeaCjzV5rCGlbQlTXMAtI8qgfP8fZADv3CFtPwqdPQ==} - hasBin: true - - tweetnacl-util@0.15.1: - resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} - - tweetnacl@1.0.3: - resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - type-fest@4.34.1: - resolution: {integrity: sha512-6kSc32kT0rbwxD6QL1CYe8IqdzN/J/ILMrNK+HMQCKH3insCDRY/3ITb0vcBss0a3t72fzh2YSzj8ko1HgwT3g==} - engines: {node: '>=16'} - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - - typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} - hasBin: true - - typescript@5.4.2: - resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} - engines: {node: '>=14.17'} - hasBin: true - - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} - engines: {node: '>=14.17'} - hasBin: true - - ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - - ufo@1.5.4: - resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - - ultrahtml@1.5.3: - resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} - - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - - uncrypto@0.1.3: - resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - - unctx@2.4.1: - resolution: {integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==} - - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - - unenv@1.10.0: - resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} - - unhead@1.11.18: - resolution: {integrity: sha512-TWgGUoZMpYe2yJwY6jZ0/9kpQT18ygr2h5lI6cUXdfD9UzDc0ytM9jGaleSYkj9guJWXkk7izYBnzJvxl8mRvQ==} - - unicorn-magic@0.3.0: - resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} - engines: {node: '>=18'} - - unimport@3.14.6: - resolution: {integrity: sha512-CYvbDaTT04Rh8bmD8jz3WPmHYZRG/NnvYVzwD6V1YAlvvKROlAeNDUBhkBGzNav2RKaeuXvlWYaa1V4Lfi/O0g==} - - unimport@4.1.0: - resolution: {integrity: sha512-y5ZYDG+j7IB45+Y6CIkWIKou4E1JFigCUw6vI+h15HdYAKmT0oQWcawnxXuwJG8srJyXhIZuWz5uXB1MQ/ARZw==} - engines: {node: '>=18.20.6'} - - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - unplugin-utils@0.2.3: - resolution: {integrity: sha512-unB2e2ogZwEoMw/X0Gq1vj2jaRKLmTh9wcSEJggESPllcrZI68uO7B8ykixbXqsSwG8r9T7qaHZudXIC/3qvhw==} - engines: {node: '>=18.12.0'} - - unplugin-vue-router@0.11.2: - resolution: {integrity: sha512-X8BbQ3BNnMqaCYeMj80jtz5jC4AB0jcpdmECIYey9qKm6jy/upaPZ/WzfuT+iTGRiQAY4WemHueXxuzH127oOg==} - peerDependencies: - vue-router: ^4.4.0 - peerDependenciesMeta: - vue-router: - optional: true - - unplugin@1.16.1: - resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} - engines: {node: '>=14.0.0'} - - unplugin@2.1.2: - resolution: {integrity: sha512-Q3LU0e4zxKfRko1wMV2HmP8lB9KWislY7hxXpxd+lGx0PRInE4vhMBVEZwpdVYHvtqzhSrzuIfErsob6bQfCzw==} - engines: {node: '>=18.12.0'} - - unstorage@1.14.4: - resolution: {integrity: sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==} - peerDependencies: - '@azure/app-configuration': ^1.8.0 - '@azure/cosmos': ^4.2.0 - '@azure/data-tables': ^13.3.0 - '@azure/identity': ^4.5.0 - '@azure/keyvault-secrets': ^4.9.0 - '@azure/storage-blob': ^12.26.0 - '@capacitor/preferences': ^6.0.3 - '@deno/kv': '>=0.8.4' - '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 - '@planetscale/database': ^1.19.0 - '@upstash/redis': ^1.34.3 - '@vercel/blob': '>=0.27.0' - '@vercel/kv': ^1.0.1 - aws4fetch: ^1.0.20 - db0: '>=0.2.1' - idb-keyval: ^6.2.1 - ioredis: ^5.4.2 - uploadthing: ^7.4.1 - peerDependenciesMeta: - '@azure/app-configuration': - optional: true - '@azure/cosmos': - optional: true - '@azure/data-tables': - optional: true - '@azure/identity': - optional: true - '@azure/keyvault-secrets': - optional: true - '@azure/storage-blob': - optional: true - '@capacitor/preferences': - optional: true - '@deno/kv': - optional: true - '@netlify/blobs': - optional: true - '@planetscale/database': - optional: true - '@upstash/redis': - optional: true - '@vercel/blob': - optional: true - '@vercel/kv': - optional: true - aws4fetch: - optional: true - db0: - optional: true - idb-keyval: - optional: true - ioredis: - optional: true - uploadthing: - optional: true - - untun@0.1.3: - resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} - hasBin: true - - untyped@1.5.2: - resolution: {integrity: sha512-eL/8PlhLcMmlMDtNPKhyyz9kEBDS3Uk4yMu/ewlkT2WFbtzScjHWPJLdQLmaGPUKjXzwe9MumOtOgc4Fro96Kg==} - hasBin: true - - unwasm@0.3.9: - resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==} - - update-browserslist-db@1.1.2: - resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uqr@0.1.2: - resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} - - uri-js-replace@1.0.1: - resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - urlpattern-polyfill@8.0.2: - resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} - - use-callback-ref@1.3.3: - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - use-sidecar@1.1.3: - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - utf-8-validate@5.0.10: - resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} - engines: {node: '>=6.14.2'} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - v8-compile-cache@2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} - - v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - validator@13.12.0: - resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} - engines: {node: '>= 0.10'} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - vite-hot-client@0.2.4: - resolution: {integrity: sha512-a1nzURqO7DDmnXqabFOliz908FRmIppkBKsJthS8rbe8hBEXwEwe4C3Pp33Z1JoFCYfVL4kTOMLKk0ZZxREIeA==} - peerDependencies: - vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 - - vite-node@3.0.5: - resolution: {integrity: sha512-02JEJl7SbtwSDJdYS537nU6l+ktdvcREfLksk/NDAqtdKWGqHl+joXzEubHROmS3E6pip+Xgu2tFezMu75jH7A==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - - vite-plugin-checker@0.8.0: - resolution: {integrity: sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==} - engines: {node: '>=14.16'} - peerDependencies: - '@biomejs/biome': '>=1.7' - eslint: '>=7' - meow: ^9.0.0 - optionator: ^0.9.1 - stylelint: '>=13' - typescript: '*' - vite: '>=2.0.0' - vls: '*' - vti: '*' - vue-tsc: ~2.1.6 - peerDependenciesMeta: - '@biomejs/biome': - optional: true - eslint: - optional: true - meow: - optional: true - optionator: - optional: true - stylelint: - optional: true - typescript: - optional: true - vls: - optional: true - vti: - optional: true - vue-tsc: - optional: true - - vite-plugin-compression@0.5.1: - resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} - peerDependencies: - vite: '>=2.0.0' - - vite-plugin-css-injected-by-js@3.5.2: - resolution: {integrity: sha512-2MpU/Y+SCZyWUB6ua3HbJCrgnF0KACAsmzOQt1UvRVJCGF6S8xdA3ZUhWcWdM9ivG4I5az8PnQmwwrkC2CAQrQ==} - peerDependencies: - vite: '>2.0.0-0' - - vite-plugin-dts@3.9.1: - resolution: {integrity: sha512-rVp2KM9Ue22NGWB8dNtWEr+KekN3rIgz1tWD050QnRGlriUCmaDwa7qA5zDEjbXg5lAXhYMSBJtx3q3hQIJZSg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - typescript: '*' - vite: '*' - peerDependenciesMeta: - vite: - optional: true - - vite-plugin-eslint@1.8.1: - resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} - peerDependencies: - eslint: '>=7' - vite: '>=2' - - vite-plugin-inspect@0.8.9: - resolution: {integrity: sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==} - engines: {node: '>=14'} - peerDependencies: - '@nuxt/kit': '*' - vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1 - peerDependenciesMeta: - '@nuxt/kit': - optional: true - - vite-plugin-vue-inspector@5.3.1: - resolution: {integrity: sha512-cBk172kZKTdvGpJuzCCLg8lJ909wopwsu3Ve9FsL1XsnLBiRT9U3MePcqrgGHgCX2ZgkqZmAGR8taxw+TV6s7A==} - peerDependencies: - vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 - - vite@5.3.6: - resolution: {integrity: sha512-es78AlrylO8mTVBygC0gTC0FENv0C6T496vvd33ydbjF/mIi9q3XQ9A3NWo5qLGFKywvz10J26813OkLvcQleA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vite@6.1.0: - resolution: {integrity: sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vscode-jsonrpc@6.0.0: - resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} - engines: {node: '>=8.0.0 || >=10.0.0'} - - vscode-languageclient@7.0.0: - resolution: {integrity: sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==} - engines: {vscode: ^1.52.0} - - vscode-languageserver-protocol@3.16.0: - resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} - - vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} - - vscode-languageserver-types@3.16.0: - resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} - - vscode-languageserver@7.0.0: - resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} - hasBin: true - - vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - - vue-bundle-renderer@2.1.1: - resolution: {integrity: sha512-+qALLI5cQncuetYOXp4yScwYvqh8c6SMXee3B+M7oTZxOgtESP0l4j/fXdEJoZ+EdMxkGWIj+aSEyjXkOdmd7g==} - - vue-demi@0.14.10: - resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} - engines: {node: '>=12'} - hasBin: true - peerDependencies: - '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - - vue-devtools-stub@0.1.0: - resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} - - vue-eslint-parser@9.4.3: - resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' - - vue-router@4.5.0: - resolution: {integrity: sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==} - peerDependencies: - vue: ^3.2.0 - - vue-template-compiler@2.7.16: - resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} - - vue-tsc@1.8.27: - resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} - hasBin: true - peerDependencies: - typescript: '*' - - vue-tsc@2.2.0: - resolution: {integrity: sha512-gtmM1sUuJ8aSb0KoAFmK9yMxb8TxjewmxqTJ1aKphD5Cbu0rULFY6+UQT51zW7SpUcenfPUuflKyVwyx9Qdnxg==} - hasBin: true - peerDependencies: - typescript: '>=5.0.0' - - vue@3.5.13: - resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - - watchpack@2.4.2: - resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} - engines: {node: '>=10.13.0'} - - webextension-polyfill-ts@0.25.0: - resolution: {integrity: sha512-ikQhwwHYkpBu00pFaUzIKY26I6L87DeRI+Q6jBT1daZUNuu8dSrg5U9l/ZbqdaQ1M/TTSPKeAa3kolP5liuedw==} - deprecated: This project has moved to @types/webextension-polyfill - - webextension-polyfill@0.12.0: - resolution: {integrity: sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q==} - - webextension-polyfill@0.7.0: - resolution: {integrity: sha512-su48BkMLxqzTTvPSE1eWxKToPS2Tv5DLGxKexLEVpwFd6Po6N8hhSLIvG6acPAg7qERoEaDL+Y5HQJeJeml5Aw==} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - - webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - - webpack@5.97.1: - resolution: {integrity: sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-typed-array@1.1.18: - resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} - engines: {node: '>= 0.4'} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - which@3.0.1: - resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} - - yaml-ast-parser@0.0.43: - resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} - - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - - yaml@2.7.0: - resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} - engines: {node: '>= 14'} - hasBin: true - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - ylru@1.4.0: - resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} - engines: {node: '>= 4.0.0'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - z-schema@5.0.5: - resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} - engines: {node: '>=8.0.0'} - hasBin: true - - zhead@2.2.4: - resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} - - zip-stream@6.0.1: - resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} - engines: {node: '>= 14'} - -snapshots: - - '@alloc/quick-lru@5.2.0': {} - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@ant-design/colors@7.2.0': - dependencies: - '@ant-design/fast-color': 2.0.6 - - '@ant-design/cssinjs-utils@1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@ant-design/cssinjs': 1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.26.7 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@ant-design/cssinjs@1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@emotion/hash': 0.8.0 - '@emotion/unitless': 0.7.5 - classnames: 2.5.1 - csstype: 3.1.3 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - stylis: 4.3.6 - - '@ant-design/fast-color@2.0.6': - dependencies: - '@babel/runtime': 7.26.7 - - '@ant-design/icons-svg@4.4.2': {} - - '@ant-design/icons@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@ant-design/colors': 7.2.0 - '@ant-design/icons-svg': 4.4.2 - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@ant-design/react-slick@1.1.2(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - json2mq: 0.2.0 - react: 18.3.1 - resize-observer-polyfill: 1.5.1 - throttle-debounce: 5.0.2 - - '@antfu/utils@0.7.10': {} - - '@aptos-connect/wallet-adapter-plugin@2.3.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)': - dependencies: - '@aptos-connect/wallet-api': 0.1.6(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(aptos@1.21.0) - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@identity-connect/crypto': 0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@identity-connect/dapp-sdk': 0.10.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0) - transitivePeerDependencies: - - '@telegram-apps/bridge' - - '@wallet-standard/core' - - aptos - - debug - - '@aptos-connect/wallet-adapter-plugin@2.4.1(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@wallet-standard/core@1.1.0)(aptos@1.21.0)': - dependencies: - '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@identity-connect/crypto': 0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@identity-connect/dapp-sdk': 0.10.4(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - transitivePeerDependencies: - - '@telegram-apps/bridge' - - '@wallet-standard/core' - - aptos - - debug - - '@aptos-connect/wallet-adapter-plugin@2.4.1(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)': - dependencies: - '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@identity-connect/crypto': 0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@identity-connect/dapp-sdk': 0.10.4(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0) - transitivePeerDependencies: - - '@telegram-apps/bridge' - - '@wallet-standard/core' - - aptos - - debug - - '@aptos-connect/wallet-api@0.1.6(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(aptos@1.21.0)': - dependencies: - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@identity-connect/api': 0.7.0 - aptos: 1.21.0 - - '@aptos-connect/wallet-api@0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0)': - dependencies: - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@identity-connect/api': 0.7.0 - aptos: 1.21.0 - transitivePeerDependencies: - - '@wallet-standard/core' - - '@aptos-connect/web-transport@0.1.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)': - dependencies: - '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@telegram-apps/bridge': 1.9.2 - aptos: 1.21.0 - uuid: 9.0.1 - transitivePeerDependencies: - - '@wallet-standard/core' - - '@aptos-connect/web-transport@0.1.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@wallet-standard/core@1.1.0)(aptos@1.21.0)': - dependencies: - '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - aptos: 1.21.0 - uuid: 9.0.1 - transitivePeerDependencies: - - '@wallet-standard/core' - - '@aptos-connect/web-transport@0.1.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)': - dependencies: - '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@telegram-apps/bridge': 1.9.2 - aptos: 1.21.0 - uuid: 9.0.1 - transitivePeerDependencies: - - '@wallet-standard/core' - - '@aptos-labs/aptos-cli@1.0.2': - dependencies: - commander: 12.1.0 - - '@aptos-labs/aptos-client@0.1.1': - dependencies: - axios: 1.7.4 - got: 11.8.6 - transitivePeerDependencies: - - debug - - '@aptos-labs/aptos-client@1.0.0(axios@1.7.9)(got@11.8.6)': - dependencies: - axios: 1.7.9 - got: 11.8.6 - - '@aptos-labs/aptos-dynamic-transaction-composer@0.1.3': {} - - '@aptos-labs/script-composer-pack@0.0.9': - dependencies: - '@aptos-labs/aptos-dynamic-transaction-composer': 0.1.3 - - '@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6)': - dependencies: - '@aptos-labs/aptos-cli': 1.0.2 - '@aptos-labs/aptos-client': 1.0.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/script-composer-pack': 0.0.9 - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 - '@scure/bip32': 1.6.2 - '@scure/bip39': 1.5.4 - eventemitter3: 5.0.1 - form-data: 4.0.1 - js-base64: 3.7.7 - jwt-decode: 4.0.0 - poseidon-lite: 0.2.1 - transitivePeerDependencies: - - axios - - got - - '@aptos-labs/wallet-adapter-core@0.1.7': - dependencies: - aptos: 1.21.0 - eventemitter3: 4.0.7 - transitivePeerDependencies: - - debug - - '@aptos-labs/wallet-adapter-core@2.1.0': - dependencies: - aptos: 1.21.0 - buffer: 6.0.3 - eventemitter3: 4.0.7 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - debug - - '@aptos-labs/wallet-adapter-core@2.2.0': - dependencies: - aptos: 1.21.0 - buffer: 6.0.3 - eventemitter3: 4.0.7 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - debug - - '@aptos-labs/wallet-adapter-core@4.25.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(aptos@1.21.0)(axios@1.7.9)(got@11.8.6)': - dependencies: - '@aptos-connect/wallet-adapter-plugin': 2.4.1(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@atomrigslab/aptos-wallet-adapter': 0.1.21(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(axios@1.7.9)(got@11.8.6) - '@mizuwallet-sdk/aptos-wallet-adapter': 0.3.2(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(axios@1.7.9)(got@11.8.6) - aptos: 1.21.0 - buffer: 6.0.3 - eventemitter3: 4.0.7 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - '@mizuwallet-sdk/core' - - '@mizuwallet-sdk/protocol' - - '@telegram-apps/bridge' - - '@wallet-standard/core' - - axios - - debug - - got - - '@aptos-labs/wallet-adapter-core@5.0.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)(axios@1.7.9)(got@11.8.6)': - dependencies: - '@aptos-connect/wallet-adapter-plugin': 2.3.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@atomrigslab/aptos-wallet-adapter': 0.1.21(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(axios@1.7.9)(got@11.8.6) - '@mizuwallet-sdk/aptos-wallet-adapter': 0.3.2(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(axios@1.7.9)(got@11.8.6) - buffer: 6.0.3 - eventemitter3: 4.0.7 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - '@mizuwallet-sdk/core' - - '@mizuwallet-sdk/protocol' - - '@telegram-apps/bridge' - - '@wallet-standard/core' - - aptos - - axios - - debug - - got - - '@aptos-labs/wallet-standard@0.0.11(axios@1.7.9)(got@11.8.6)': - dependencies: - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@wallet-standard/core': 1.0.3 - transitivePeerDependencies: - - axios - - got - - '@aptos-labs/wallet-standard@0.1.0-ms.1(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)': - dependencies: - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@wallet-standard/core': 1.1.0 - - '@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)': - dependencies: - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@wallet-standard/core': 1.1.0 - - '@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)': - dependencies: - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@wallet-standard/core': 1.1.0 - - '@atomrigslab/aptos-wallet-adapter@0.1.21(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(axios@1.7.9)(got@11.8.6)': - dependencies: - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.0.11(axios@1.7.9)(got@11.8.6) - '@atomrigslab/dekey-web-wallet-provider': 1.2.1 - transitivePeerDependencies: - - axios - - got - - '@atomrigslab/dekey-web-wallet-provider@1.2.1': - dependencies: - '@atomrigslab/providers': 1.1.0 - - '@atomrigslab/providers@1.1.0': - dependencies: - '@metamask/object-multiplex': 1.3.0 - '@metamask/safe-event-emitter': 2.0.0 - '@types/chrome': 0.0.136 - detect-browser: 5.3.0 - eth-rpc-errors: 4.0.3 - extension-port-stream: 2.1.1 - fast-deep-equal: 2.0.1 - is-stream: 2.0.1 - json-rpc-engine: 6.1.0 - json-rpc-middleware-stream: 3.0.0 - pump: 3.0.2 - webextension-polyfill-ts: 0.25.0 - - '@babel/code-frame@7.12.11': - dependencies: - '@babel/highlight': 7.25.9 - - '@babel/code-frame@7.26.2': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.26.8': {} - - '@babel/core@7.26.8': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.8 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.8) - '@babel/helpers': 7.26.7 - '@babel/parser': 7.26.8 - '@babel/template': 7.26.8 - '@babel/traverse': 7.26.8 - '@babel/types': 7.26.8 - '@types/gensync': 1.0.4 - convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@9.4.0) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.26.8': - dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 - - '@babel/helper-annotate-as-pure@7.25.9': - dependencies: - '@babel/types': 7.26.8 - - '@babel/helper-compilation-targets@7.26.5': - dependencies: - '@babel/compat-data': 7.26.8 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.8) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.8 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-member-expression-to-functions@7.25.9': - dependencies: - '@babel/traverse': 7.26.8 - '@babel/types': 7.26.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.25.9': - dependencies: - '@babel/traverse': 7.26.8 - '@babel/types': 7.26.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-optimise-call-expression@7.25.9': - dependencies: - '@babel/types': 7.26.8 - - '@babel/helper-plugin-utils@7.26.5': {} - - '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - dependencies: - '@babel/traverse': 7.26.8 - '@babel/types': 7.26.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.25.9': {} - - '@babel/helper-validator-identifier@7.25.9': {} - - '@babel/helper-validator-option@7.25.9': {} - - '@babel/helpers@7.26.7': - dependencies: - '@babel/template': 7.26.8 - '@babel/types': 7.26.8 - - '@babel/highlight@7.25.9': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/parser@7.26.8': - dependencies: - '@babel/types': 7.26.8 - - '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.8) - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.8) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-typescript@7.26.8(@babel/core@7.26.8)': - dependencies: - '@babel/core': 7.26.8 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.8) - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.8) - transitivePeerDependencies: - - supports-color - - '@babel/runtime@7.26.7': - dependencies: - regenerator-runtime: 0.14.1 - - '@babel/standalone@7.26.8': {} - - '@babel/template@7.26.8': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 - - '@babel/traverse@7.26.8': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.8 - '@babel/parser': 7.26.8 - '@babel/template': 7.26.8 - '@babel/types': 7.26.8 - debug: 4.4.0(supports-color@9.4.0) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.26.8': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - '@bcoe/v8-coverage@0.2.3': {} - - '@bitget-wallet/aptos-wallet-adapter@0.1.2(@aptos-labs/wallet-adapter-core@packages+wallet-adapter-core)(aptos@1.21.0)': - dependencies: - '@aptos-labs/wallet-adapter-core': link:packages/wallet-adapter-core - aptos: 1.21.0 - - '@changesets/apply-release-plan@7.0.8': - dependencies: - '@changesets/config': 3.0.5 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.2 - '@changesets/should-skip-package': 0.1.1 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - detect-indent: 6.1.0 - fs-extra: 7.0.1 - lodash.startcase: 4.4.0 - outdent: 0.5.0 - prettier: 2.8.8 - resolve-from: 5.0.0 - semver: 7.7.1 - - '@changesets/assemble-release-plan@6.0.5': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.2 - '@changesets/should-skip-package': 0.1.1 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - semver: 7.7.1 - - '@changesets/changelog-git@0.2.0': - dependencies: - '@changesets/types': 6.0.0 - - '@changesets/cli@2.27.12': - dependencies: - '@changesets/apply-release-plan': 7.0.8 - '@changesets/assemble-release-plan': 6.0.5 - '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.5 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.2 - '@changesets/get-release-plan': 4.0.6 - '@changesets/git': 3.0.2 - '@changesets/logger': 0.1.1 - '@changesets/pre': 2.0.1 - '@changesets/read': 0.6.2 - '@changesets/should-skip-package': 0.1.1 - '@changesets/types': 6.0.0 - '@changesets/write': 0.3.2 - '@manypkg/get-packages': 1.1.3 - ansi-colors: 4.1.3 - ci-info: 3.9.0 - enquirer: 2.4.1 - external-editor: 3.1.0 - fs-extra: 7.0.1 - mri: 1.2.0 - p-limit: 2.3.0 - package-manager-detector: 0.2.9 - picocolors: 1.1.1 - resolve-from: 5.0.0 - semver: 7.7.1 - spawndamnit: 3.0.1 - term-size: 2.2.1 - - '@changesets/config@3.0.5': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.2 - '@changesets/logger': 0.1.1 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - micromatch: 4.0.8 - - '@changesets/errors@0.2.0': - dependencies: - extendable-error: 0.1.7 - - '@changesets/get-dependents-graph@2.1.2': - dependencies: - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.1 - semver: 7.7.1 - - '@changesets/get-release-plan@4.0.6': - dependencies: - '@changesets/assemble-release-plan': 6.0.5 - '@changesets/config': 3.0.5 - '@changesets/pre': 2.0.1 - '@changesets/read': 0.6.2 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/get-version-range-type@0.4.0': {} - - '@changesets/git@3.0.2': - dependencies: - '@changesets/errors': 0.2.0 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - micromatch: 4.0.8 - spawndamnit: 3.0.1 - - '@changesets/logger@0.1.1': - dependencies: - picocolors: 1.1.1 - - '@changesets/parse@0.4.0': - dependencies: - '@changesets/types': 6.0.0 - js-yaml: 3.14.1 - - '@changesets/pre@2.0.1': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - - '@changesets/read@0.6.2': - dependencies: - '@changesets/git': 3.0.2 - '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.0 - '@changesets/types': 6.0.0 - fs-extra: 7.0.1 - p-filter: 2.1.0 - picocolors: 1.1.1 - - '@changesets/should-skip-package@0.1.1': - dependencies: - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/types@4.1.0': {} - - '@changesets/types@6.0.0': {} - - '@changesets/write@0.3.2': - dependencies: - '@changesets/types': 6.0.0 - fs-extra: 7.0.1 - human-id: 1.0.2 - prettier: 2.8.8 - - '@cloudflare/kv-asset-handler@0.3.4': - dependencies: - mime: 3.0.0 - - '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.1.0)': - dependencies: - postcss-selector-parser: 7.1.0 - - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': - dependencies: - postcss-selector-parser: 7.1.0 - - '@emotion/babel-plugin@11.13.5': - dependencies: - '@babel/helper-module-imports': 7.25.9 - '@babel/runtime': 7.26.7 - '@emotion/hash': 0.9.2 - '@emotion/memoize': 0.9.0 - '@emotion/serialize': 1.3.3 - babel-plugin-macros: 3.1.0 - convert-source-map: 1.9.0 - escape-string-regexp: 4.0.0 - find-root: 1.1.0 - source-map: 0.5.7 - stylis: 4.2.0 - transitivePeerDependencies: - - supports-color - - '@emotion/cache@11.14.0': - dependencies: - '@emotion/memoize': 0.9.0 - '@emotion/sheet': 1.4.0 - '@emotion/utils': 1.4.2 - '@emotion/weak-memoize': 0.4.0 - stylis: 4.2.0 - - '@emotion/hash@0.8.0': {} - - '@emotion/hash@0.9.2': {} - - '@emotion/is-prop-valid@1.3.1': - dependencies: - '@emotion/memoize': 0.9.0 - - '@emotion/memoize@0.9.0': {} - - '@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@emotion/babel-plugin': 11.13.5 - '@emotion/cache': 11.14.0 - '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) - '@emotion/utils': 1.4.2 - '@emotion/weak-memoize': 0.4.0 - hoist-non-react-statics: 3.3.2 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - transitivePeerDependencies: - - supports-color - - '@emotion/serialize@1.3.3': - dependencies: - '@emotion/hash': 0.9.2 - '@emotion/memoize': 0.9.0 - '@emotion/unitless': 0.10.0 - '@emotion/utils': 1.4.2 - csstype: 3.1.3 - - '@emotion/sheet@1.4.0': {} - - '@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@emotion/babel-plugin': 11.13.5 - '@emotion/is-prop-valid': 1.3.1 - '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) - '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) - '@emotion/utils': 1.4.2 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - transitivePeerDependencies: - - supports-color - - '@emotion/unitless@0.10.0': {} - - '@emotion/unitless@0.7.5': {} - - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': - dependencies: - react: 18.3.1 - - '@emotion/utils@1.4.2': {} - - '@emotion/weak-memoize@0.4.0': {} - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/aix-ppc64@0.24.2': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.24.2': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-arm@0.24.2': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/android-x64@0.24.2': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.24.2': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.24.2': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.24.2': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.24.2': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.24.2': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-arm@0.24.2': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.24.2': - optional: true - - '@esbuild/linux-loong64@0.14.54': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.24.2': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.24.2': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.24.2': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.24.2': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.24.2': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - - '@esbuild/linux-x64@0.24.2': - optional: true - - '@esbuild/netbsd-arm64@0.24.2': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - - '@esbuild/netbsd-x64@0.24.2': - optional: true - - '@esbuild/openbsd-arm64@0.24.2': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.24.2': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - - '@esbuild/sunos-x64@0.24.2': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.24.2': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - - '@esbuild/win32-ia32@0.24.2': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - - '@esbuild/win32-x64@0.24.2': - optional: true - - '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.1': {} - - '@eslint/eslintrc@0.4.3': - dependencies: - ajv: 6.12.6 - debug: 4.4.0(supports-color@9.4.0) - espree: 7.3.1 - globals: 13.24.0 - ignore: 4.0.6 - import-fresh: 3.3.1 - js-yaml: 3.14.1 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.4.0(supports-color@9.4.0) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.57.1': {} - - '@fewcha/web3@0.1.38(bufferutil@4.0.9)(utf-8-validate@5.0.10)': - dependencies: - '@mysten/sui.js': 0.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - aptos: 1.21.0 - buffer: 6.0.3 - transitivePeerDependencies: - - bufferutil - - debug - - encoding - - utf-8-validate - - '@floating-ui/core@1.6.9': - dependencies: - '@floating-ui/utils': 0.2.9 - - '@floating-ui/dom@1.6.13': - dependencies: - '@floating-ui/core': 1.6.9 - '@floating-ui/utils': 0.2.9 - - '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/dom': 1.6.13 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@floating-ui/utils@0.2.9': {} - - '@floating-ui/vue@1.1.6(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@floating-ui/dom': 1.6.13 - '@floating-ui/utils': 0.2.9 - vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3)) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - - '@graphql-typed-document-node/core@3.2.0(graphql@16.10.0)': - dependencies: - graphql: 16.10.0 - - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0(supports-color@9.4.0) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/config-array@0.5.0': - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.4.0(supports-color@9.4.0) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@1.2.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - - '@identity-connect/api@0.7.0': {} - - '@identity-connect/crypto@0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0)': - dependencies: - '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@noble/hashes': 1.7.1 - ed2curve: 0.3.0 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - '@wallet-standard/core' - - aptos - - '@identity-connect/dapp-sdk@0.10.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)': - dependencies: - '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-connect/web-transport': 0.1.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@identity-connect/api': 0.7.0 - '@identity-connect/crypto': 0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@identity-connect/wallet-api': 0.1.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(aptos@1.21.0) - axios: 1.7.9 - uuid: 9.0.1 - transitivePeerDependencies: - - '@telegram-apps/bridge' - - '@wallet-standard/core' - - aptos - - debug - - '@identity-connect/dapp-sdk@0.10.4(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@wallet-standard/core@1.1.0)(aptos@1.21.0)': - dependencies: - '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-connect/web-transport': 0.1.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@identity-connect/api': 0.7.0 - '@identity-connect/crypto': 0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@identity-connect/wallet-api': 0.1.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(aptos@1.21.0) - axios: 1.7.9 - uuid: 9.0.1 - transitivePeerDependencies: - - '@telegram-apps/bridge' - - '@wallet-standard/core' - - aptos - - debug - - '@identity-connect/dapp-sdk@0.10.4(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)': - dependencies: - '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-connect/web-transport': 0.1.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@identity-connect/api': 0.7.0 - '@identity-connect/crypto': 0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) - '@identity-connect/wallet-api': 0.1.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(aptos@1.21.0) - axios: 1.7.9 - uuid: 9.0.1 - transitivePeerDependencies: - - '@telegram-apps/bridge' - - '@wallet-standard/core' - - aptos - - debug - - '@identity-connect/wallet-api@0.1.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(aptos@1.21.0)': - dependencies: - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - aptos: 1.21.0 - - '@internationalized/date@3.7.0': - dependencies: - '@swc/helpers': 0.5.15 - - '@internationalized/number@3.6.0': - dependencies: - '@swc/helpers': 0.5.15 - - '@ioredis/commands@1.2.0': {} - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@isaacs/fs-minipass@4.0.1': - dependencies: - minipass: 7.1.2 - - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - - '@istanbuljs/schema@0.1.3': {} - - '@jest/console@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.17.17 - chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.17.17 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - - '@jest/environment@29.7.0': - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.17.17 - jest-mock: 29.7.0 - - '@jest/expect-utils@29.7.0': - dependencies: - jest-get-type: 29.6.3 - - '@jest/expect@29.7.0': - dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/fake-timers@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.17.17 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - '@jest/globals@29.7.0': - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/reporters@29.7.0': - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.17.17 - chalk: 4.1.2 - collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.3.0 - transitivePeerDependencies: - - supports-color - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jest/source-map@29.6.3': - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - callsites: 3.1.0 - graceful-fs: 4.2.11 - - '@jest/test-result@29.7.0': - dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 - - '@jest/test-sequencer@29.7.0': - dependencies: - '@jest/test-result': 29.7.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - slash: 3.0.0 - - '@jest/transform@29.7.0': - dependencies: - '@babel/core': 7.26.8 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.8 - pirates: 4.0.6 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.17.17 - '@types/yargs': 17.0.33 - chalk: 4.1.2 - - '@jridgewell/gen-mapping@0.3.8': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/source-map@0.3.6': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@koa/router@12.0.2': - dependencies: - debug: 4.4.0(supports-color@9.4.0) - http-errors: 2.0.0 - koa-compose: 4.1.0 - methods: 1.1.2 - path-to-regexp: 6.3.0 - transitivePeerDependencies: - - supports-color - - '@kwsites/file-exists@1.1.1': - dependencies: - debug: 4.4.0(supports-color@9.4.0) - transitivePeerDependencies: - - supports-color - - '@kwsites/promise-deferred@1.1.1': {} - - '@manypkg/find-root@1.1.0': - dependencies: - '@babel/runtime': 7.26.7 - '@types/node': 12.20.55 - find-up: 4.1.0 - fs-extra: 8.1.0 - - '@manypkg/get-packages@1.1.3': - dependencies: - '@babel/runtime': 7.26.7 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 - fs-extra: 8.1.0 - globby: 11.1.0 - read-yaml-file: 1.1.0 - - '@mapbox/node-pre-gyp@2.0.0': - dependencies: - consola: 3.4.0 - detect-libc: 2.0.3 - https-proxy-agent: 7.0.6(supports-color@9.4.0) - node-fetch: 2.7.0 - nopt: 8.1.0 - semver: 7.7.1 - tar: 7.4.3 - transitivePeerDependencies: - - encoding - - supports-color - - '@martianwallet/aptos-wallet-adapter@0.0.5': - dependencies: - '@aptos-labs/wallet-adapter-core': 2.1.0 - aptos: 1.21.0 - transitivePeerDependencies: - - debug - - '@metamask/object-multiplex@1.3.0': - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - readable-stream: 2.3.8 - - '@metamask/safe-event-emitter@2.0.0': {} - - '@microsoft/api-extractor-model@7.28.13(@types/node@20.17.17)': - dependencies: - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 4.0.2(@types/node@20.17.17) - transitivePeerDependencies: - - '@types/node' - - '@microsoft/api-extractor@7.43.0(@types/node@20.17.17)': - dependencies: - '@microsoft/api-extractor-model': 7.28.13(@types/node@20.17.17) - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 4.0.2(@types/node@20.17.17) - '@rushstack/rig-package': 0.5.2 - '@rushstack/terminal': 0.10.0(@types/node@20.17.17) - '@rushstack/ts-command-line': 4.19.1(@types/node@20.17.17) - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.10 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.4.2 - transitivePeerDependencies: - - '@types/node' - - '@microsoft/fetch-event-source@2.0.1': {} - - '@microsoft/tsdoc-config@0.16.2': - dependencies: - '@microsoft/tsdoc': 0.14.2 - ajv: 6.12.6 - jju: 1.4.0 - resolve: 1.19.0 - - '@microsoft/tsdoc@0.14.2': {} - - '@mizuwallet-sdk/aptos-wallet-adapter@0.3.2(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(axios@1.7.9)(got@11.8.6)': - dependencies: - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@aptos-labs/wallet-standard': 0.1.0-ms.1(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) - '@mizuwallet-sdk/core': 1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)) - '@mizuwallet-sdk/protocol': 0.0.6 - buffer: 6.0.3 - transitivePeerDependencies: - - '@wallet-standard/core' - - axios - - got - - '@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0))': - dependencies: - '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) - '@mizuwallet-sdk/protocol': 0.0.6 - buffer: 6.0.3 - graphql-request: 7.1.2(graphql@16.10.0) - jwt-decode: 4.0.0 - - '@mizuwallet-sdk/protocol@0.0.6': - dependencies: - '@microsoft/fetch-event-source': 2.0.1 - tweetnacl: 1.0.3 - tweetnacl-util: 0.15.1 - - '@msafe/aptos-wallet-adapter@1.1.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(axios@1.7.9)(got@11.8.6)': - dependencies: - '@aptos-labs/wallet-adapter-core': 4.25.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(aptos@1.21.0)(axios@1.7.9)(got@11.8.6) - '@msafe/aptos-wallet': 6.1.1 - aptos: 1.21.0 - transitivePeerDependencies: - - '@aptos-labs/ts-sdk' - - '@mizuwallet-sdk/core' - - '@mizuwallet-sdk/protocol' - - '@telegram-apps/bridge' - - '@wallet-standard/core' - - axios - - debug - - got - - '@msafe/aptos-wallet@6.1.1': - dependencies: - buffer: 6.0.3 - json-rpc-protocol: 0.13.2 - - '@mui/core-downloads-tracker@5.16.14': {} - - '@mui/icons-material@5.16.14(@mui/material@5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@mui/material': 5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@mui/material@5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@mui/core-downloads-tracker': 5.16.14 - '@mui/system': 5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) - '@mui/types': 7.2.21(@types/react@18.3.18) - '@mui/utils': 5.16.14(@types/react@18.3.18)(react@18.3.1) - '@popperjs/core': 2.11.8 - '@types/react-transition-group': 4.4.12(@types/react@18.3.18) - clsx: 2.1.1 - csstype: 3.1.3 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 19.0.0 - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) - '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) - '@types/react': 18.3.18 - - '@mui/private-theming@5.16.14(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@mui/utils': 5.16.14(@types/react@18.3.18)(react@18.3.1) - prop-types: 15.8.1 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@mui/styled-engine@5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@emotion/cache': 11.14.0 - csstype: 3.1.3 - prop-types: 15.8.1 - react: 18.3.1 - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) - '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) - - '@mui/system@5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@mui/private-theming': 5.16.14(@types/react@18.3.18)(react@18.3.1) - '@mui/styled-engine': 5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@mui/types': 7.2.21(@types/react@18.3.18) - '@mui/utils': 5.16.14(@types/react@18.3.18)(react@18.3.1) - clsx: 2.1.1 - csstype: 3.1.3 - prop-types: 15.8.1 - react: 18.3.1 - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) - '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) - '@types/react': 18.3.18 - - '@mui/types@7.2.21(@types/react@18.3.18)': - optionalDependencies: - '@types/react': 18.3.18 - - '@mui/utils@5.16.14(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@mui/types': 7.2.21(@types/react@18.3.18) - '@types/prop-types': 15.7.14 - clsx: 2.1.1 - prop-types: 15.8.1 - react: 18.3.1 - react-is: 19.0.0 - optionalDependencies: - '@types/react': 18.3.18 - - '@mysten/bcs@0.3.0': - dependencies: - bn.js: 5.2.1 - - '@mysten/sui.js@0.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': - dependencies: - '@mysten/bcs': 0.3.0 - '@noble/hashes': 1.7.1 - '@noble/secp256k1': 1.7.1 - '@scure/bip32': 1.6.2 - '@scure/bip39': 1.5.4 - bn.js: 5.2.1 - buffer: 6.0.3 - cross-fetch: 3.2.0 - jayson: 3.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - js-sha3: 0.8.0 - lossless-json: 1.0.5 - rpc-websockets: 7.11.2 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - - '@netlify/functions@2.8.2': - dependencies: - '@netlify/serverless-functions-api': 1.26.1 - - '@netlify/node-cookies@0.1.0': {} - - '@netlify/serverless-functions-api@1.26.1': - dependencies: - '@netlify/node-cookies': 0.1.0 - urlpattern-polyfill: 8.0.2 - - '@next/env@14.2.24': {} - - '@next/eslint-plugin-next@13.0.0': - dependencies: - glob: 7.1.7 - - '@next/eslint-plugin-next@14.2.3': - dependencies: - glob: 10.3.10 - - '@next/swc-darwin-arm64@14.2.24': - optional: true - - '@next/swc-darwin-x64@14.2.24': - optional: true - - '@next/swc-linux-arm64-gnu@14.2.24': - optional: true - - '@next/swc-linux-arm64-musl@14.2.24': - optional: true - - '@next/swc-linux-x64-gnu@14.2.24': - optional: true - - '@next/swc-linux-x64-musl@14.2.24': - optional: true - - '@next/swc-win32-arm64-msvc@14.2.24': - optional: true - - '@next/swc-win32-ia32-msvc@14.2.24': - optional: true - - '@next/swc-win32-x64-msvc@14.2.24': - optional: true - - '@noble/curves@1.8.1': - dependencies: - '@noble/hashes': 1.7.1 - - '@noble/hashes@1.3.3': {} - - '@noble/hashes@1.7.1': {} - - '@noble/secp256k1@1.7.1': {} - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.0 - - '@nolyfill/is-core-module@1.0.39': {} - - '@nuxt/cli@3.21.1(magicast@0.3.5)': - dependencies: - c12: 2.0.1(magicast@0.3.5) - chokidar: 4.0.3 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.4.0 - defu: 6.1.4 - fuse.js: 7.1.0 - giget: 1.2.4 - h3: 1.15.0 - httpxy: 0.1.7 - jiti: 2.4.2 - listhen: 1.9.0 - nypm: 0.5.2 - ofetch: 1.4.1 - ohash: 1.1.4 - pathe: 2.0.2 - perfect-debounce: 1.0.0 - pkg-types: 1.3.1 - scule: 1.3.0 - semver: 7.7.1 - std-env: 3.8.0 - tinyexec: 0.3.2 - ufo: 1.5.4 - transitivePeerDependencies: - - magicast - - '@nuxt/devalue@2.0.2': {} - - '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))': - dependencies: - '@nuxt/kit': 3.15.4(magicast@0.3.5) - '@nuxt/schema': 3.15.4 - execa: 7.2.0 - vite: 6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) - transitivePeerDependencies: - - magicast - - supports-color - - '@nuxt/devtools-wizard@1.7.0': - dependencies: - consola: 3.4.0 - diff: 7.0.0 - execa: 7.2.0 - global-directory: 4.0.1 - magicast: 0.3.5 - pathe: 1.1.2 - pkg-types: 1.3.1 - prompts: 2.4.2 - rc9: 2.1.2 - semver: 7.7.1 - - '@nuxt/devtools@1.7.0(bufferutil@4.0.9)(rollup@4.34.6)(utf-8-validate@5.0.10)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@antfu/utils': 0.7.10 - '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)) - '@nuxt/devtools-wizard': 1.7.0 - '@nuxt/kit': 3.15.4(magicast@0.3.5) - '@vue/devtools-core': 7.6.8(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) - '@vue/devtools-kit': 7.6.8 - birpc: 0.2.19 - consola: 3.4.0 - cronstrue: 2.54.0 - destr: 2.0.3 - error-stack-parser-es: 0.1.5 - execa: 7.2.0 - fast-npm-meta: 0.2.2 - flatted: 3.3.2 - get-port-please: 3.1.2 - hookable: 5.5.3 - image-meta: 0.2.1 - is-installed-globally: 1.0.0 - launch-editor: 2.9.1 - local-pkg: 0.5.1 - magicast: 0.3.5 - nypm: 0.4.1 - ohash: 1.1.4 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.3.1 - rc9: 2.1.2 - scule: 1.3.0 - semver: 7.7.1 - simple-git: 3.27.0 - sirv: 3.0.0 - tinyglobby: 0.2.10 - unimport: 3.14.6(rollup@4.34.6) - vite: 6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) - vite-plugin-inspect: 0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.34.6)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)) - vite-plugin-vue-inspector: 5.3.1(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)) - which: 3.0.1 - ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - rollup - - supports-color - - utf-8-validate - - vue - - '@nuxt/kit@3.15.4(magicast@0.3.5)': - dependencies: - c12: 2.0.1(magicast@0.3.5) - consola: 3.4.0 - defu: 6.1.4 - destr: 2.0.3 - globby: 14.1.0 - ignore: 7.0.3 - jiti: 2.4.2 - klona: 2.0.6 - knitwork: 1.2.0 - mlly: 1.7.4 - ohash: 1.1.4 - pathe: 2.0.2 - pkg-types: 1.3.1 - scule: 1.3.0 - semver: 7.7.1 - std-env: 3.8.0 - ufo: 1.5.4 - unctx: 2.4.1 - unimport: 4.1.0 - untyped: 1.5.2 - transitivePeerDependencies: - - magicast - - supports-color - - '@nuxt/schema@3.15.4': - dependencies: - consola: 3.4.0 - defu: 6.1.4 - pathe: 2.0.2 - std-env: 3.8.0 - - '@nuxt/telemetry@2.6.4(magicast@0.3.5)': - dependencies: - '@nuxt/kit': 3.15.4(magicast@0.3.5) - citty: 0.1.6 - consola: 3.4.0 - destr: 2.0.3 - dotenv: 16.4.7 - git-url-parse: 16.0.0 - is-docker: 3.0.0 - ofetch: 1.4.1 - package-manager-detector: 0.2.9 - parse-git-config: 3.0.0 - pathe: 2.0.2 - rc9: 2.1.2 - std-env: 3.8.0 - transitivePeerDependencies: - - magicast - - supports-color - - '@nuxt/vite-builder@3.15.4(@types/node@20.17.17)(eslint@8.57.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.6)(terser@5.38.1)(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))(yaml@2.7.0)': - dependencies: - '@nuxt/kit': 3.15.4(magicast@0.3.5) - '@rollup/plugin-replace': 6.0.2(rollup@4.34.6) - '@vitejs/plugin-vue': 5.2.1(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) - '@vitejs/plugin-vue-jsx': 4.1.1(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) - autoprefixer: 10.4.20(postcss@8.5.1) - consola: 3.4.0 - cssnano: 7.0.6(postcss@8.5.1) - defu: 6.1.4 - esbuild: 0.24.2 - escape-string-regexp: 5.0.0 - externality: 1.0.2 - get-port-please: 3.1.2 - h3: 1.15.0 - jiti: 2.4.2 - knitwork: 1.2.0 - magic-string: 0.30.17 - mlly: 1.7.4 - ohash: 1.1.4 - pathe: 2.0.2 - perfect-debounce: 1.0.0 - pkg-types: 1.3.1 - postcss: 8.5.1 - rollup-plugin-visualizer: 5.14.0(rollup@4.34.6) - std-env: 3.8.0 - ufo: 1.5.4 - unenv: 1.10.0 - unplugin: 2.1.2 - vite: 6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) - vite-node: 3.0.5(@types/node@20.17.17)(terser@5.38.1) - vite-plugin-checker: 0.8.0(eslint@8.57.1)(optionator@0.9.4)(typescript@5.7.3)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)) - vue: 3.5.13(typescript@5.7.3) - vue-bundle-renderer: 2.1.1 - transitivePeerDependencies: - - '@biomejs/biome' - - '@types/node' - - eslint - - less - - lightningcss - - magicast - - meow - - optionator - - rolldown - - rollup - - sass - - sass-embedded - - stylelint - - stylus - - sugarss - - supports-color - - terser - - tsx - - typescript - - vls - - vti - - vue-tsc - - yaml - - '@nuxtjs/color-mode@3.5.2(magicast@0.3.5)': - dependencies: - '@nuxt/kit': 3.15.4(magicast@0.3.5) - pathe: 1.1.2 - pkg-types: 1.3.1 - semver: 7.7.1 - transitivePeerDependencies: - - magicast - - supports-color - - '@nuxtjs/eslint-config-typescript@12.1.0(eslint@8.57.1)(typescript@5.7.3)': - dependencies: - '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3) - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.3) - eslint: 8.57.1 - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) - eslint-plugin-vue: 9.32.0(eslint@8.57.1) - transitivePeerDependencies: - - eslint-import-resolver-webpack - - eslint-plugin-import-x - - supports-color - - typescript - - '@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)': - dependencies: - eslint: 8.57.1 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0)(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) - eslint-plugin-n: 15.7.0(eslint@8.57.1) - eslint-plugin-node: 11.1.0(eslint@8.57.1) - eslint-plugin-promise: 6.6.0(eslint@8.57.1) - eslint-plugin-unicorn: 44.0.2(eslint@8.57.1) - eslint-plugin-vue: 9.32.0(eslint@8.57.1) - local-pkg: 0.4.3 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(magicast@0.3.5)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(webpack@5.97.1)': - dependencies: - '@nuxt/kit': 3.15.4(magicast@0.3.5) - chokidar: 3.6.0 - eslint: 8.57.1 - eslint-webpack-plugin: 4.2.0(eslint@8.57.1)(webpack@5.97.1) - pathe: 1.1.2 - vite-plugin-eslint: 1.8.1(eslint@8.57.1)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)) - transitivePeerDependencies: - - magicast - - supports-color - - vite - - webpack - - '@nuxtjs/google-fonts@3.2.0(magicast@0.3.5)': - dependencies: - '@nuxt/kit': 3.15.4(magicast@0.3.5) - google-fonts-helper: 3.6.0 - pathe: 1.1.2 - transitivePeerDependencies: - - magicast - - supports-color - - '@nuxtjs/tailwindcss@6.13.1(magicast@0.3.5)': - dependencies: - '@nuxt/kit': 3.15.4(magicast@0.3.5) - autoprefixer: 10.4.20(postcss@8.5.1) - c12: 2.0.1(magicast@0.3.5) - consola: 3.4.0 - defu: 6.1.4 - h3: 1.15.0 - klona: 2.0.6 - pathe: 2.0.2 - postcss: 8.5.1 - postcss-nesting: 13.0.1(postcss@8.5.1) - tailwind-config-viewer: 2.0.4(tailwindcss@3.4.17) - tailwindcss: 3.4.17 - ufo: 1.5.4 - unctx: 2.4.1 - transitivePeerDependencies: - - magicast - - supports-color - - ts-node - - '@okwallet/aptos-wallet-adapter@0.0.3': - dependencies: - '@aptos-labs/wallet-adapter-core': 2.1.0 - aptos: 1.21.0 - transitivePeerDependencies: - - debug - - '@oxc-parser/wasm@0.1.0': {} - - '@parcel/watcher-android-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-x64@2.5.1': - optional: true - - '@parcel/watcher-freebsd-x64@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-musl@2.5.1': - optional: true - - '@parcel/watcher-wasm@2.5.1': - dependencies: - is-glob: 4.0.3 - micromatch: 4.0.8 - - '@parcel/watcher-win32-arm64@2.5.1': - optional: true - - '@parcel/watcher-win32-ia32@2.5.1': - optional: true - - '@parcel/watcher-win32-x64@2.5.1': - optional: true - - '@parcel/watcher@2.5.1': - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.8 - node-addon-api: 7.1.1 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@polka/url@1.0.0-next.28': {} - - '@pontem/wallet-adapter-plugin@0.2.1': - dependencies: - '@aptos-labs/wallet-adapter-core': 2.2.0 - aptos: 1.21.0 - transitivePeerDependencies: - - debug - - '@popperjs/core@2.11.8': {} - - '@radix-ui/primitive@1.1.1': {} - - '@radix-ui/react-arrow@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-collapsible@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-collection@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-dialog@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-dropdown-menu@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-menu': 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-label@2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-menu@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-popper@1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/rect': 1.1.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-portal@1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-presence@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-primitive@2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-radio-group@1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-switch@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-toast@1.2.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/rect': 1.1.0 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-size@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/rect@1.1.0': {} - - '@rc-component/async-validator@5.0.4': - dependencies: - '@babel/runtime': 7.26.7 - - '@rc-component/color-picker@2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@ant-design/fast-color': 2.0.6 - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@rc-component/context@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@rc-component/mini-decimal@1.1.0': - dependencies: - '@babel/runtime': 7.26.7 - - '@rc-component/mutate-observer@1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@rc-component/portal@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@rc-component/qrcode@1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@rc-component/tour@1.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@rc-component/trigger@2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@redocly/ajv@8.11.2': - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js-replace: 1.0.1 - - '@redocly/config@0.20.3': {} - - '@redocly/openapi-core@1.28.5(supports-color@9.4.0)': - dependencies: - '@redocly/ajv': 8.11.2 - '@redocly/config': 0.20.3 - colorette: 1.4.0 - https-proxy-agent: 7.0.6(supports-color@9.4.0) - js-levenshtein: 1.1.6 - js-yaml: 4.1.0 - minimatch: 5.1.6 - pluralize: 8.0.0 - yaml-ast-parser: 0.0.43 - transitivePeerDependencies: - - supports-color - - '@remix-run/router@1.22.0': {} - - '@rollup/plugin-alias@5.1.1(rollup@4.34.6)': - optionalDependencies: - rollup: 4.34.6 - - '@rollup/plugin-commonjs@28.0.2(rollup@4.34.6)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.6) - commondir: 1.0.1 - estree-walker: 2.0.2 - fdir: 6.4.3(picomatch@4.0.2) - is-reference: 1.2.1 - magic-string: 0.30.17 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.34.6 - - '@rollup/plugin-inject@5.0.5(rollup@4.34.6)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.6) - estree-walker: 2.0.2 - magic-string: 0.30.17 - optionalDependencies: - rollup: 4.34.6 - - '@rollup/plugin-json@6.1.0(rollup@4.34.6)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.6) - optionalDependencies: - rollup: 4.34.6 - - '@rollup/plugin-node-resolve@15.3.1(rollup@4.34.6)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.6) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.10 - optionalDependencies: - rollup: 4.34.6 - - '@rollup/plugin-replace@6.0.2(rollup@4.34.6)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.6) - magic-string: 0.30.17 - optionalDependencies: - rollup: 4.34.6 - - '@rollup/plugin-terser@0.4.4(rollup@4.34.6)': - dependencies: - serialize-javascript: 6.0.2 - smob: 1.5.0 - terser: 5.38.1 - optionalDependencies: - rollup: 4.34.6 - - '@rollup/pluginutils@4.2.1': - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - - '@rollup/pluginutils@5.1.4(rollup@4.34.6)': - dependencies: - '@types/estree': 1.0.6 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.34.6 - - '@rollup/rollup-android-arm-eabi@4.34.6': - optional: true - - '@rollup/rollup-android-arm64@4.34.6': - optional: true - - '@rollup/rollup-darwin-arm64@4.34.6': - optional: true - - '@rollup/rollup-darwin-x64@4.34.6': - optional: true - - '@rollup/rollup-freebsd-arm64@4.34.6': - optional: true - - '@rollup/rollup-freebsd-x64@4.34.6': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.34.6': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.34.6': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.34.6': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.34.6': - optional: true - - '@rollup/rollup-linux-loongarch64-gnu@4.34.6': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.34.6': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.34.6': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.34.6': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.34.6': - optional: true - - '@rollup/rollup-linux-x64-musl@4.34.6': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.34.6': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.34.6': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.34.6': - optional: true - - '@rtsao/scc@1.1.0': {} - - '@rushstack/eslint-patch@1.10.5': {} - - '@rushstack/node-core-library@4.0.2(@types/node@20.17.17)': - dependencies: - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.10 - semver: 7.5.4 - z-schema: 5.0.5 - optionalDependencies: - '@types/node': 20.17.17 - - '@rushstack/rig-package@0.5.2': - dependencies: - resolve: 1.22.10 - strip-json-comments: 3.1.1 - - '@rushstack/terminal@0.10.0(@types/node@20.17.17)': - dependencies: - '@rushstack/node-core-library': 4.0.2(@types/node@20.17.17) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 20.17.17 - - '@rushstack/ts-command-line@4.19.1(@types/node@20.17.17)': - dependencies: - '@rushstack/terminal': 0.10.0(@types/node@20.17.17) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - - '@scure/base@1.1.9': {} - - '@scure/base@1.2.4': {} - - '@scure/bip32@1.6.2': - dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 - '@scure/base': 1.2.4 - - '@scure/bip39@1.2.1': - dependencies: - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.9 - - '@scure/bip39@1.5.4': - dependencies: - '@noble/hashes': 1.7.1 - '@scure/base': 1.2.4 - - '@sinclair/typebox@0.27.8': {} - - '@sindresorhus/is@4.6.0': {} - - '@sindresorhus/merge-streams@2.3.0': {} - - '@sinonjs/commons@3.0.1': - dependencies: - type-detect: 4.0.8 - - '@sinonjs/fake-timers@10.3.0': - dependencies: - '@sinonjs/commons': 3.0.1 - - '@swc/counter@0.1.3': {} - - '@swc/helpers@0.5.15': - dependencies: - tslib: 2.8.1 - - '@swc/helpers@0.5.5': - dependencies: - '@swc/counter': 0.1.3 - tslib: 2.8.1 - - '@szmarczak/http-timer@4.0.6': - dependencies: - defer-to-connect: 2.0.1 - - '@tanstack/query-core@5.66.0': {} - - '@tanstack/react-query@5.66.0(react@18.3.1)': - dependencies: - '@tanstack/query-core': 5.66.0 - react: 18.3.1 - - '@tanstack/virtual-core@3.13.0': {} - - '@tanstack/vue-virtual@3.13.0(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@tanstack/virtual-core': 3.13.0 - vue: 3.5.13(typescript@5.7.3) - - '@telegram-apps/bridge@1.9.2': - dependencies: - '@telegram-apps/signals': 1.1.1 - '@telegram-apps/toolkit': 1.1.1 - '@telegram-apps/transformers': 1.2.2 - '@telegram-apps/types': 1.2.1 - - '@telegram-apps/navigation@1.0.13': - dependencies: - '@telegram-apps/bridge': 1.9.2 - '@telegram-apps/signals': 1.1.1 - '@telegram-apps/toolkit': 1.1.1 - - '@telegram-apps/sdk@2.11.3': - dependencies: - '@telegram-apps/bridge': 1.9.2 - '@telegram-apps/navigation': 1.0.13 - '@telegram-apps/signals': 1.1.1 - '@telegram-apps/toolkit': 1.1.1 - '@telegram-apps/transformers': 1.2.2 - - '@telegram-apps/signals@1.1.1': {} - - '@telegram-apps/toolkit@1.1.1': {} - - '@telegram-apps/transformers@1.2.2': - dependencies: - '@telegram-apps/toolkit': 1.1.1 - '@telegram-apps/types': 1.2.1 - - '@telegram-apps/types@1.2.1': {} - - '@trustwallet/aptos-wallet-adapter@0.1.6': - dependencies: - '@aptos-labs/wallet-adapter-core': 0.1.7 - aptos: 1.21.0 - transitivePeerDependencies: - - debug - - '@trysound/sax@0.2.0': {} - - '@types/argparse@1.0.38': {} - - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 - - '@types/babel__generator@7.6.8': - dependencies: - '@babel/types': 7.26.8 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 - - '@types/babel__traverse@7.20.6': - dependencies: - '@babel/types': 7.26.8 - - '@types/cacheable-request@6.0.3': - dependencies: - '@types/http-cache-semantics': 4.0.4 - '@types/keyv': 3.1.4 - '@types/node': 20.17.17 - '@types/responselike': 1.0.3 - - '@types/chrome@0.0.136': - dependencies: - '@types/filesystem': 0.0.36 - '@types/har-format': 1.2.16 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 20.17.17 - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.1 - '@types/estree': 1.0.6 - - '@types/eslint@8.56.12': - dependencies: - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - - '@types/estree@1.0.6': {} - - '@types/filesystem@0.0.36': - dependencies: - '@types/filewriter': 0.0.33 - - '@types/filewriter@0.0.33': {} - - '@types/gensync@1.0.4': {} - - '@types/graceful-fs@4.1.9': - dependencies: - '@types/node': 20.17.17 - - '@types/har-format@1.2.16': {} - - '@types/http-cache-semantics@4.0.4': {} - - '@types/http-proxy@1.17.16': - dependencies: - '@types/node': 20.17.17 - - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - '@types/jest@29.5.14': - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - - '@types/json-schema@7.0.15': {} - - '@types/json5@0.0.29': {} - - '@types/keyv@3.1.4': - dependencies: - '@types/node': 20.17.17 - - '@types/node@12.20.55': {} - - '@types/node@20.17.17': - dependencies: - undici-types: 6.19.8 - - '@types/normalize-package-data@2.4.4': {} - - '@types/parse-json@4.0.2': {} - - '@types/parse-path@7.0.3': {} - - '@types/prop-types@15.7.14': {} - - '@types/react-dom@18.3.5(@types/react@18.3.18)': - dependencies: - '@types/react': 18.3.18 - - '@types/react-transition-group@4.4.12(@types/react@18.3.18)': - dependencies: - '@types/react': 18.3.18 - - '@types/react@18.3.18': - dependencies: - '@types/prop-types': 15.7.14 - csstype: 3.1.3 - - '@types/resolve@1.20.2': {} - - '@types/responselike@1.0.3': - dependencies: - '@types/node': 20.17.17 - - '@types/semver@7.5.8': {} - - '@types/stack-utils@2.0.3': {} - - '@types/web-bluetooth@0.0.20': {} - - '@types/ws@7.4.7': - dependencies: - '@types/node': 20.17.17 - - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@17.0.33': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.3) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.7.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0(supports-color@9.4.0) - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - semver: 7.7.1 - ts-api-utils: 1.4.3(typescript@5.7.3) - optionalDependencies: - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5)': - dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) - debug: 4.4.0(supports-color@9.4.0) - eslint: 7.32.0 - optionalDependencies: - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3)': - dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0(supports-color@9.4.0) - eslint: 8.57.1 - optionalDependencies: - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.7.3)': - dependencies: - '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.4.0(supports-color@9.4.0) - eslint: 8.57.1 - optionalDependencies: - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - - '@typescript-eslint/scope-manager@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - - '@typescript-eslint/scope-manager@7.2.0': - dependencies: - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/visitor-keys': 7.2.0 - - '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.7.3)': - dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.7.3) - debug: 4.4.0(supports-color@9.4.0) - eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.7.3) - optionalDependencies: - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@5.62.0': {} - - '@typescript-eslint/types@6.21.0': {} - - '@typescript-eslint/types@7.2.0': {} - - '@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5)': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.4.0(supports-color@9.4.0) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.7.1 - tsutils: 3.21.0(typescript@4.9.5) - optionalDependencies: - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.7.3)': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0(supports-color@9.4.0) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.7.1 - ts-api-utils: 1.4.3(typescript@5.7.3) - optionalDependencies: - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@7.2.0(typescript@5.7.3)': - dependencies: - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.4.0(supports-color@9.4.0) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.7.1 - ts-api-utils: 1.4.3(typescript@5.7.3) - optionalDependencies: - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.7.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.3) - eslint: 8.57.1 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@7.2.0': - dependencies: - '@typescript-eslint/types': 7.2.0 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.3.0': {} - - '@unhead/dom@1.11.18': - dependencies: - '@unhead/schema': 1.11.18 - '@unhead/shared': 1.11.18 - - '@unhead/schema@1.11.18': - dependencies: - hookable: 5.5.3 - zhead: 2.2.4 - - '@unhead/shared@1.11.18': - dependencies: - '@unhead/schema': 1.11.18 - packrup: 0.1.2 - - '@unhead/ssr@1.11.18': - dependencies: - '@unhead/schema': 1.11.18 - '@unhead/shared': 1.11.18 - - '@unhead/vue@1.11.18(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@unhead/schema': 1.11.18 - '@unhead/shared': 1.11.18 - hookable: 5.5.3 - unhead: 1.11.18 - vue: 3.5.13(typescript@5.7.3) - - '@vercel/nft@0.27.10(rollup@4.34.6)': - dependencies: - '@mapbox/node-pre-gyp': 2.0.0 - '@rollup/pluginutils': 5.1.4(rollup@4.34.6) - acorn: 8.14.0 - acorn-import-attributes: 1.9.5(acorn@8.14.0) - async-sema: 3.1.1 - bindings: 1.5.0 - estree-walker: 2.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - node-gyp-build: 4.8.4 - picomatch: 4.0.2 - resolve-from: 5.0.0 - transitivePeerDependencies: - - encoding - - rollup - - supports-color - - '@vitejs/plugin-vue-jsx@4.1.1(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@babel/core': 7.26.8 - '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.8) - '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.8) - vite: 6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) - vue: 3.5.13(typescript@5.7.3) - transitivePeerDependencies: - - supports-color - - '@vitejs/plugin-vue@5.0.5(vite@5.3.6(@types/node@20.17.17)(terser@5.38.1))(vue@3.5.13(typescript@4.9.5))': - dependencies: - vite: 5.3.6(@types/node@20.17.17)(terser@5.38.1) - vue: 3.5.13(typescript@4.9.5) - - '@vitejs/plugin-vue@5.2.1(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': - dependencies: - vite: 6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) - vue: 3.5.13(typescript@5.7.3) - - '@volar/language-core@1.11.1': - dependencies: - '@volar/source-map': 1.11.1 - - '@volar/language-core@2.4.11': - dependencies: - '@volar/source-map': 2.4.11 - - '@volar/source-map@1.11.1': - dependencies: - muggle-string: 0.3.1 - - '@volar/source-map@2.4.11': {} - - '@volar/typescript@1.11.1': - dependencies: - '@volar/language-core': 1.11.1 - path-browserify: 1.0.1 - - '@volar/typescript@2.4.11': - dependencies: - '@volar/language-core': 2.4.11 - path-browserify: 1.0.1 - vscode-uri: 3.1.0 - - '@vue-macros/common@1.16.1(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@vue/compiler-sfc': 3.5.13 - ast-kit: 1.4.0 - local-pkg: 1.0.0 - magic-string-ast: 0.7.0 - pathe: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - vue: 3.5.13(typescript@5.7.3) - - '@vue/babel-helper-vue-transform-on@1.2.5': {} - - '@vue/babel-plugin-jsx@1.2.5(@babel/core@7.26.8)': - dependencies: - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.8) - '@babel/template': 7.26.8 - '@babel/traverse': 7.26.8 - '@babel/types': 7.26.8 - '@vue/babel-helper-vue-transform-on': 1.2.5 - '@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.26.8) - html-tags: 3.3.1 - svg-tags: 1.0.0 - optionalDependencies: - '@babel/core': 7.26.8 - transitivePeerDependencies: - - supports-color - - '@vue/babel-plugin-resolve-type@1.2.5(@babel/core@7.26.8)': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/core': 7.26.8 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/parser': 7.26.8 - '@vue/compiler-sfc': 3.5.13 - transitivePeerDependencies: - - supports-color - - '@vue/compiler-core@3.5.13': - dependencies: - '@babel/parser': 7.26.8 - '@vue/shared': 3.5.13 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - - '@vue/compiler-dom@3.5.13': - dependencies: - '@vue/compiler-core': 3.5.13 - '@vue/shared': 3.5.13 - - '@vue/compiler-sfc@3.5.13': - dependencies: - '@babel/parser': 7.26.8 - '@vue/compiler-core': 3.5.13 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - estree-walker: 2.0.2 - magic-string: 0.30.17 - postcss: 8.5.1 - source-map-js: 1.2.1 - - '@vue/compiler-ssr@3.5.13': - dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/shared': 3.5.13 - - '@vue/compiler-vue2@2.7.16': - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - - '@vue/devtools-api@6.6.4': {} - - '@vue/devtools-core@7.6.8(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@vue/devtools-kit': 7.6.8 - '@vue/devtools-shared': 7.7.1 - mitt: 3.0.1 - nanoid: 5.0.9 - pathe: 1.1.2 - vite-hot-client: 0.2.4(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)) - vue: 3.5.13(typescript@5.7.3) - transitivePeerDependencies: - - vite - - '@vue/devtools-kit@7.6.8': - dependencies: - '@vue/devtools-shared': 7.7.1 - birpc: 0.2.19 - hookable: 5.5.3 - mitt: 3.0.1 - perfect-debounce: 1.0.0 - speakingurl: 14.0.1 - superjson: 2.2.2 - - '@vue/devtools-shared@7.7.1': - dependencies: - rfdc: 1.4.1 - - '@vue/language-core@1.8.27(typescript@4.9.5)': - dependencies: - '@volar/language-core': 1.11.1 - '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.5.13 - '@vue/shared': 3.5.13 - computeds: 0.0.1 - minimatch: 9.0.5 - muggle-string: 0.3.1 - path-browserify: 1.0.1 - vue-template-compiler: 2.7.16 - optionalDependencies: - typescript: 4.9.5 - - '@vue/language-core@2.2.0(typescript@4.9.5)': - dependencies: - '@volar/language-core': 2.4.11 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.13 - alien-signals: 0.4.14 - minimatch: 9.0.5 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 4.9.5 - - '@vue/reactivity@3.5.13': - dependencies: - '@vue/shared': 3.5.13 - - '@vue/runtime-core@3.5.13': - dependencies: - '@vue/reactivity': 3.5.13 - '@vue/shared': 3.5.13 - - '@vue/runtime-dom@3.5.13': - dependencies: - '@vue/reactivity': 3.5.13 - '@vue/runtime-core': 3.5.13 - '@vue/shared': 3.5.13 - csstype: 3.1.3 - - '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@4.9.5))': - dependencies: - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - vue: 3.5.13(typescript@4.9.5) - - '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - vue: 3.5.13(typescript@5.7.3) - - '@vue/shared@3.5.13': {} - - '@vueuse/core@10.11.1(vue@3.5.13(typescript@5.7.3))': - dependencies: - '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 10.11.1 - '@vueuse/shared': 10.11.1(vue@3.5.13(typescript@5.7.3)) - vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3)) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - - '@vueuse/metadata@10.11.1': {} - - '@vueuse/shared@10.11.1(vue@3.5.13(typescript@5.7.3))': - dependencies: - vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3)) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - - '@wallet-standard/app@1.1.0': - dependencies: - '@wallet-standard/base': 1.1.0 - - '@wallet-standard/base@1.1.0': {} - - '@wallet-standard/core@1.0.3': - dependencies: - '@wallet-standard/app': 1.1.0 - '@wallet-standard/base': 1.1.0 - '@wallet-standard/features': 1.1.0 - '@wallet-standard/wallet': 1.1.0 - - '@wallet-standard/core@1.1.0': - dependencies: - '@wallet-standard/app': 1.1.0 - '@wallet-standard/base': 1.1.0 - '@wallet-standard/errors': 0.1.0 - '@wallet-standard/features': 1.1.0 - '@wallet-standard/wallet': 1.1.0 - - '@wallet-standard/errors@0.1.0': - dependencies: - chalk: 5.4.1 - commander: 12.1.0 - - '@wallet-standard/features@1.1.0': - dependencies: - '@wallet-standard/base': 1.1.0 - - '@wallet-standard/wallet@1.1.0': - dependencies: - '@wallet-standard/base': 1.1.0 - - '@webassemblyjs/ast@1.14.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - - '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - - '@webassemblyjs/helper-api-error@1.13.2': {} - - '@webassemblyjs/helper-buffer@1.14.1': {} - - '@webassemblyjs/helper-numbers@1.13.2': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.13.2 - '@webassemblyjs/helper-api-error': 1.13.2 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - - '@webassemblyjs/helper-wasm-section@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/wasm-gen': 1.14.1 - - '@webassemblyjs/ieee754@1.13.2': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.13.2': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.13.2': {} - - '@webassemblyjs/wasm-edit@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/helper-wasm-section': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-opt': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wast-printer': 1.14.1 - - '@webassemblyjs/wasm-gen@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wasm-opt@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - - '@webassemblyjs/wasm-parser@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-api-error': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wast-printer@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@xtuc/long': 4.2.2 - - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - - JSONStream@1.3.5: - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - - abbrev@3.0.0: {} - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - acorn-import-attributes@1.9.5(acorn@8.14.0): - dependencies: - acorn: 8.14.0 - - acorn-jsx@5.3.2(acorn@7.4.1): - dependencies: - acorn: 7.4.1 - - acorn-jsx@5.3.2(acorn@8.14.0): - dependencies: - acorn: 8.14.0 - - acorn@7.4.1: {} - - acorn@8.14.0: {} - - agent-base@7.1.3: {} - - ajv-formats@2.1.1(ajv@8.17.1): - optionalDependencies: - ajv: 8.17.1 - - ajv-keywords@3.5.2(ajv@6.12.6): - dependencies: - ajv: 6.12.6 - - ajv-keywords@5.1.0(ajv@8.17.1): - dependencies: - ajv: 8.17.1 - fast-deep-equal: 3.1.3 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ajv@8.17.1: - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.0.6 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - - alien-signals@0.4.14: {} - - ansi-colors@4.1.3: {} - - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - - ansi-regex@5.0.1: {} - - ansi-regex@6.1.0: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@5.2.0: {} - - ansi-styles@6.2.1: {} - - antd@5.23.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@ant-design/colors': 7.2.0 - '@ant-design/cssinjs': 1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@ant-design/cssinjs-utils': 1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@ant-design/fast-color': 2.0.6 - '@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@ant-design/react-slick': 1.1.2(react@18.3.1) - '@babel/runtime': 7.26.7 - '@rc-component/color-picker': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/mutate-observer': 1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/qrcode': 1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/tour': 1.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - copy-to-clipboard: 3.3.3 - dayjs: 1.11.13 - rc-cascader: 3.33.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-checkbox: 3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-collapse: 3.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-dialog: 9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-drawer: 7.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-dropdown: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-field-form: 2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-image: 7.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-input: 1.7.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-input-number: 9.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-mentions: 2.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-menu: 9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-notification: 5.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-pagination: 5.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-picker: 4.9.2(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-progress: 4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-rate: 2.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-segmented: 2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-select: 14.16.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-slider: 11.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-steps: 6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-switch: 4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-table: 7.50.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tabs: 15.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-textarea: 1.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tooltip: 6.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tree: 5.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tree-select: 5.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-upload: 4.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - scroll-into-view-if-needed: 3.1.0 - throttle-debounce: 5.0.2 - transitivePeerDependencies: - - date-fns - - luxon - - moment - - any-promise@1.3.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - aptos@1.21.0: - dependencies: - '@aptos-labs/aptos-client': 0.1.1 - '@noble/hashes': 1.3.3 - '@scure/bip39': 1.2.1 - eventemitter3: 5.0.1 - form-data: 4.0.0 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - debug - - archiver-utils@5.0.2: - dependencies: - glob: 10.4.5 - graceful-fs: 4.2.11 - is-stream: 2.0.1 - lazystream: 1.0.1 - lodash: 4.17.21 - normalize-path: 3.0.0 - readable-stream: 4.7.0 - - archiver@7.0.1: - dependencies: - archiver-utils: 5.0.2 - async: 3.2.6 - buffer-crc32: 1.0.0 - readable-stream: 4.7.0 - readdir-glob: 1.1.3 - tar-stream: 3.1.7 - zip-stream: 6.0.1 - - arg@5.0.2: {} - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - aria-hidden@1.2.4: - dependencies: - tslib: 2.8.1 - - aria-query@5.3.2: {} - - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.3 - is-array-buffer: 3.0.5 - - array-includes@3.1.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 - is-string: 1.1.1 - - array-union@1.0.2: - dependencies: - array-uniq: 1.0.3 - - array-union@2.1.0: {} - - array-uniq@1.0.3: {} - - array.prototype.findlast@1.2.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.0.2 - - array.prototype.findlastindex@1.2.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.0.2 - - array.prototype.flat@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.0.2 - - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.0.2 - - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - is-array-buffer: 3.0.5 - - ast-kit@1.4.0: - dependencies: - '@babel/parser': 7.26.8 - pathe: 2.0.2 - - ast-types-flow@0.0.8: {} - - ast-walker-scope@0.6.2: - dependencies: - '@babel/parser': 7.26.8 - ast-kit: 1.4.0 - - astral-regex@2.0.0: {} - - async-function@1.0.0: {} - - async-sema@3.1.1: {} - - async@2.6.4: - dependencies: - lodash: 4.17.21 - - async@3.2.6: {} - - asynckit@0.4.0: {} - - at-least-node@1.0.0: {} - - autoprefixer@10.4.20(postcss@8.5.1): - dependencies: - browserslist: 4.24.4 - caniuse-lite: 1.0.30001699 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - - axe-core@4.10.2: {} - - axios@1.7.4: - dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.1 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - axios@1.7.9: - dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.1 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - axobject-query@4.1.0: {} - - b4a@1.6.7: {} - - babel-jest@29.7.0(@babel/core@7.26.8): - dependencies: - '@babel/core': 7.26.8 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.26.8) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-istanbul@6.1.1: - dependencies: - '@babel/helper-plugin-utils': 7.26.5 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-jest-hoist@29.6.3: - dependencies: - '@babel/template': 7.26.8 - '@babel/types': 7.26.8 - '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 - - babel-plugin-macros@3.1.0: - dependencies: - '@babel/runtime': 7.26.7 - cosmiconfig: 7.1.0 - resolve: 1.22.10 - - babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.8): - dependencies: - '@babel/core': 7.26.8 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.8) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.8) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.8) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.8) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.8) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.8) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.8) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.8) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.8) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.8) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.8) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.8) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.8) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.8) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.8) - - babel-preset-jest@29.6.3(@babel/core@7.26.8): - dependencies: - '@babel/core': 7.26.8 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.8) - - balanced-match@1.0.2: {} - - bare-events@2.5.4: - optional: true - - base64-js@1.5.1: {} - - better-path-resolve@1.0.0: - dependencies: - is-windows: 1.0.2 - - binary-extensions@2.3.0: {} - - bindings@1.5.0: - dependencies: - file-uri-to-path: 1.0.0 - - birpc@0.2.19: {} - - bn.js@5.2.1: {} - - boolbase@1.0.0: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.24.4: - dependencies: - caniuse-lite: 1.0.30001699 - electron-to-chromium: 1.5.96 - node-releases: 2.0.19 - update-browserslist-db: 1.1.2(browserslist@4.24.4) - - bs-logger@0.2.6: - dependencies: - fast-json-stable-stringify: 2.1.0 - - bser@2.1.1: - dependencies: - node-int64: 0.4.0 - - buffer-crc32@1.0.0: {} - - buffer-from@1.1.2: {} - - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - bufferutil@4.0.9: - dependencies: - node-gyp-build: 4.8.4 - optional: true - - builtin-modules@3.3.0: {} - - builtins@5.1.0: - dependencies: - semver: 7.7.1 - - bundle-name@4.1.0: - dependencies: - run-applescript: 7.0.0 - - bundle-require@3.1.2(esbuild@0.14.54): - dependencies: - esbuild: 0.14.54 - load-tsconfig: 0.2.5 - - busboy@1.6.0: - dependencies: - streamsearch: 1.1.0 - - c12@2.0.1(magicast@0.3.5): - dependencies: - chokidar: 4.0.3 - confbox: 0.1.8 - defu: 6.1.4 - dotenv: 16.4.7 - giget: 1.2.4 - jiti: 2.4.2 - mlly: 1.7.4 - ohash: 1.1.4 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.3.1 - rc9: 2.1.2 - optionalDependencies: - magicast: 0.3.5 - - cac@6.7.14: {} - - cache-content-type@1.0.1: - dependencies: - mime-types: 2.1.35 - ylru: 1.4.0 - - cacheable-lookup@5.0.4: {} - - cacheable-request@7.0.4: - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 4.5.4 - lowercase-keys: 2.0.0 - normalize-url: 6.1.0 - responselike: 2.0.1 - - call-bind-apply-helpers@1.0.1: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-define-property: 1.0.1 - get-intrinsic: 1.2.7 - set-function-length: 1.2.2 - - call-bound@1.0.3: - dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.7 - - callsites@3.1.0: {} - - camelcase-css@2.0.1: {} - - camelcase@5.3.1: {} - - camelcase@6.3.0: {} - - caniuse-api@3.0.0: - dependencies: - browserslist: 4.24.4 - caniuse-lite: 1.0.30001699 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - - caniuse-lite@1.0.30001699: {} - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@5.4.1: {} - - change-case@5.4.4: {} - - char-regex@1.0.2: {} - - chardet@0.7.0: {} - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chokidar@4.0.3: - dependencies: - readdirp: 4.1.1 - - chownr@2.0.0: {} - - chownr@3.0.0: {} - - chrome-trace-event@1.0.4: {} - - ci-info@3.9.0: {} - - citty@0.1.6: - dependencies: - consola: 3.4.0 - - cjs-module-lexer@1.4.3: {} - - class-variance-authority@0.7.1: - dependencies: - clsx: 2.1.1 - - classnames@2.5.1: {} - - clean-regexp@1.0.0: - dependencies: - escape-string-regexp: 1.0.5 - - client-only@0.0.1: {} - - clipboardy@4.0.0: - dependencies: - execa: 8.0.1 - is-wsl: 3.1.0 - is64bit: 2.0.0 - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - clone-response@1.0.3: - dependencies: - mimic-response: 1.0.1 - - clsx@2.1.1: {} - - cluster-key-slot@1.1.2: {} - - co@4.6.0: {} - - collect-v8-coverage@1.0.2: {} - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.3: {} - - color-name@1.1.4: {} - - colord@2.9.3: {} - - colorette@1.4.0: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - commander@12.1.0: {} - - commander@2.20.3: {} - - commander@4.1.1: {} - - commander@6.2.1: {} - - commander@7.2.0: {} - - commander@8.3.0: {} - - commander@9.5.0: - optional: true - - commondir@1.0.1: {} - - compatx@0.1.8: {} - - compress-commons@6.0.2: - dependencies: - crc-32: 1.2.2 - crc32-stream: 6.0.0 - is-stream: 2.0.1 - normalize-path: 3.0.0 - readable-stream: 4.7.0 - - compute-scroll-into-view@3.1.1: {} - - computeds@0.0.1: {} - - concat-map@0.0.1: {} - - confbox@0.1.8: {} - - consola@3.4.0: {} - - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - - convert-source-map@1.9.0: {} - - convert-source-map@2.0.0: {} - - cookie-es@1.2.2: {} - - cookies@0.9.1: - dependencies: - depd: 2.0.0 - keygrip: 1.1.0 - - copy-anything@3.0.5: - dependencies: - is-what: 4.1.16 - - copy-to-clipboard@3.3.3: - dependencies: - toggle-selection: 1.0.6 - - core-util-is@1.0.3: {} - - cosmiconfig@7.1.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.1 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - - crc-32@1.2.2: {} - - crc32-stream@6.0.0: - dependencies: - crc-32: 1.2.2 - readable-stream: 4.7.0 - - create-jest@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - croner@9.0.0: {} - - cronstrue@2.54.0: {} - - cross-fetch@3.2.0: - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - crossws@0.3.3: - dependencies: - uncrypto: 0.1.3 - - css-declaration-sorter@7.2.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - - css-select@5.1.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 5.0.3 - domutils: 3.2.2 - nth-check: 2.1.1 - - css-tree@2.2.1: - dependencies: - mdn-data: 2.0.28 - source-map-js: 1.2.1 - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.1 - - css-what@6.1.0: {} - - cssesc@3.0.0: {} - - cssnano-preset-default@7.0.6(postcss@8.5.1): - dependencies: - browserslist: 4.24.4 - css-declaration-sorter: 7.2.0(postcss@8.5.1) - cssnano-utils: 5.0.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-calc: 10.1.1(postcss@8.5.1) - postcss-colormin: 7.0.2(postcss@8.5.1) - postcss-convert-values: 7.0.4(postcss@8.5.1) - postcss-discard-comments: 7.0.3(postcss@8.5.1) - postcss-discard-duplicates: 7.0.1(postcss@8.5.1) - postcss-discard-empty: 7.0.0(postcss@8.5.1) - postcss-discard-overridden: 7.0.0(postcss@8.5.1) - postcss-merge-longhand: 7.0.4(postcss@8.5.1) - postcss-merge-rules: 7.0.4(postcss@8.5.1) - postcss-minify-font-values: 7.0.0(postcss@8.5.1) - postcss-minify-gradients: 7.0.0(postcss@8.5.1) - postcss-minify-params: 7.0.2(postcss@8.5.1) - postcss-minify-selectors: 7.0.4(postcss@8.5.1) - postcss-normalize-charset: 7.0.0(postcss@8.5.1) - postcss-normalize-display-values: 7.0.0(postcss@8.5.1) - postcss-normalize-positions: 7.0.0(postcss@8.5.1) - postcss-normalize-repeat-style: 7.0.0(postcss@8.5.1) - postcss-normalize-string: 7.0.0(postcss@8.5.1) - postcss-normalize-timing-functions: 7.0.0(postcss@8.5.1) - postcss-normalize-unicode: 7.0.2(postcss@8.5.1) - postcss-normalize-url: 7.0.0(postcss@8.5.1) - postcss-normalize-whitespace: 7.0.0(postcss@8.5.1) - postcss-ordered-values: 7.0.1(postcss@8.5.1) - postcss-reduce-initial: 7.0.2(postcss@8.5.1) - postcss-reduce-transforms: 7.0.0(postcss@8.5.1) - postcss-svgo: 7.0.1(postcss@8.5.1) - postcss-unique-selectors: 7.0.3(postcss@8.5.1) - - cssnano-utils@5.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - - cssnano@7.0.6(postcss@8.5.1): - dependencies: - cssnano-preset-default: 7.0.6(postcss@8.5.1) - lilconfig: 3.1.3 - postcss: 8.5.1 - - csso@5.0.5: - dependencies: - css-tree: 2.2.1 - - csstype@3.1.3: {} - - damerau-levenshtein@1.0.8: {} - - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - dayjs@1.11.13: {} - - db0@0.2.3: {} - - de-indent@1.0.2: {} - - debug@2.6.9: - dependencies: - ms: 2.0.0 - - debug@3.2.7: - dependencies: - ms: 2.1.3 - - debug@4.4.0(supports-color@9.4.0): - dependencies: - ms: 2.1.3 - optionalDependencies: - supports-color: 9.4.0 - - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 - - dedent@1.5.3(babel-plugin-macros@3.1.0): - optionalDependencies: - babel-plugin-macros: 3.1.0 - - deep-equal@1.0.1: {} - - deep-is@0.1.4: {} - - deepmerge@4.3.1: {} - - default-browser-id@5.0.0: {} - - default-browser@5.2.1: - dependencies: - bundle-name: 4.1.0 - default-browser-id: 5.0.0 - - defer-to-connect@2.0.1: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-lazy-prop@2.0.0: {} - - define-lazy-prop@3.0.0: {} - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - - defu@6.1.4: {} - - delay@5.0.0: {} - - delayed-stream@1.0.0: {} - - delegates@1.0.0: {} - - denque@2.1.0: {} - - depd@1.1.2: {} - - depd@2.0.0: {} - - destr@2.0.3: {} - - destroy@1.2.0: {} - - detect-browser@5.3.0: {} - - detect-indent@6.1.0: {} - - detect-libc@1.0.3: {} - - detect-libc@2.0.3: {} - - detect-newline@3.1.0: {} - - detect-node-es@1.1.0: {} - - devalue@5.1.1: {} - - didyoumean@1.2.2: {} - - diff-sequences@29.6.3: {} - - diff@7.0.0: {} - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - dlv@1.1.3: {} - - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - - dom-helpers@5.2.1: - dependencies: - '@babel/runtime': 7.26.7 - csstype: 3.1.3 - - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - - domelementtype@2.3.0: {} - - domhandler@5.0.3: - dependencies: - domelementtype: 2.3.0 - - domutils@3.2.2: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - - dot-prop@9.0.0: - dependencies: - type-fest: 4.34.1 - - dotenv@16.0.3: {} - - dotenv@16.4.7: {} - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - duplexer@0.1.2: {} - - eastasianwidth@0.2.0: {} - - ed2curve@0.3.0: - dependencies: - tweetnacl: 1.0.3 - - ee-first@1.1.1: {} - - ejs@3.1.10: - dependencies: - jake: 10.9.2 - - electron-to-chromium@1.5.96: {} - - email-addresses@5.0.0: {} - - emittery@0.13.1: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - encodeurl@1.0.2: {} - - encodeurl@2.0.0: {} - - end-of-stream@1.4.4: - dependencies: - once: 1.4.0 - - enhanced-resolve@5.18.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - - enquirer@2.4.1: - dependencies: - ansi-colors: 4.1.3 - strip-ansi: 6.0.1 - - entities@4.5.0: {} - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - - error-stack-parser-es@0.1.5: {} - - errx@0.1.0: {} - - es-abstract@1.23.9: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.3 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.2.7 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-regex: 1.2.1 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.18 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-iterator-helpers@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-set-tostringtag: 2.1.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.7 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - iterator.prototype: 1.1.5 - safe-array-concat: 1.1.3 - - es-module-lexer@1.6.0: {} - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-shim-unscopables@1.0.2: - dependencies: - hasown: 2.0.2 - - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - - es6-promise@4.2.8: {} - - es6-promisify@5.0.0: - dependencies: - es6-promise: 4.2.8 - - esbuild-android-64@0.14.54: - optional: true - - esbuild-android-arm64@0.14.54: - optional: true - - esbuild-darwin-64@0.14.54: - optional: true - - esbuild-darwin-arm64@0.14.54: - optional: true - - esbuild-freebsd-64@0.14.54: - optional: true - - esbuild-freebsd-arm64@0.14.54: - optional: true - - esbuild-linux-32@0.14.54: - optional: true - - esbuild-linux-64@0.14.54: - optional: true - - esbuild-linux-arm64@0.14.54: - optional: true - - esbuild-linux-arm@0.14.54: - optional: true - - esbuild-linux-mips64le@0.14.54: - optional: true - - esbuild-linux-ppc64le@0.14.54: - optional: true - - esbuild-linux-riscv64@0.14.54: - optional: true - - esbuild-linux-s390x@0.14.54: - optional: true - - esbuild-netbsd-64@0.14.54: - optional: true - - esbuild-openbsd-64@0.14.54: - optional: true - - esbuild-sunos-64@0.14.54: - optional: true - - esbuild-windows-32@0.14.54: - optional: true - - esbuild-windows-64@0.14.54: - optional: true - - esbuild-windows-arm64@0.14.54: - optional: true - - esbuild@0.14.54: - optionalDependencies: - '@esbuild/linux-loong64': 0.14.54 - esbuild-android-64: 0.14.54 - esbuild-android-arm64: 0.14.54 - esbuild-darwin-64: 0.14.54 - esbuild-darwin-arm64: 0.14.54 - esbuild-freebsd-64: 0.14.54 - esbuild-freebsd-arm64: 0.14.54 - esbuild-linux-32: 0.14.54 - esbuild-linux-64: 0.14.54 - esbuild-linux-arm: 0.14.54 - esbuild-linux-arm64: 0.14.54 - esbuild-linux-mips64le: 0.14.54 - esbuild-linux-ppc64le: 0.14.54 - esbuild-linux-riscv64: 0.14.54 - esbuild-linux-s390x: 0.14.54 - esbuild-netbsd-64: 0.14.54 - esbuild-openbsd-64: 0.14.54 - esbuild-sunos-64: 0.14.54 - esbuild-windows-32: 0.14.54 - esbuild-windows-64: 0.14.54 - esbuild-windows-arm64: 0.14.54 - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - esbuild@0.24.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 - - escalade@3.2.0: {} - - escape-html@1.0.3: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@2.0.0: {} - - escape-string-regexp@4.0.0: {} - - escape-string-regexp@5.0.0: {} - - eslint-config-next@13.0.0(eslint@7.32.0)(typescript@4.9.5): - dependencies: - '@next/eslint-plugin-next': 13.0.0 - '@rushstack/eslint-patch': 1.10.5 - '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@4.9.5) - eslint: 7.32.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.31.0(eslint@7.32.0))(eslint@7.32.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5))(eslint-import-resolver-typescript@2.7.1)(eslint@7.32.0) - eslint-plugin-jsx-a11y: 6.10.2(eslint@7.32.0) - eslint-plugin-react: 7.31.8(eslint@7.32.0) - eslint-plugin-react-hooks: 4.6.2(eslint@7.32.0) - optionalDependencies: - typescript: 4.9.5 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - supports-color - - eslint-config-next@14.2.3(eslint@8.57.1)(typescript@5.7.3): - dependencies: - '@next/eslint-plugin-next': 14.2.3 - '@rushstack/eslint-patch': 1.10.5 - '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.7.3) - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) - eslint-plugin-react: 7.37.4(eslint@8.57.1) - eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1) - optionalDependencies: - typescript: 5.7.3 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - eslint-plugin-import-x - - supports-color - - eslint-config-prettier@8.10.0(eslint@7.32.0): - dependencies: - eslint: 7.32.0 - - eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0)(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) - eslint-plugin-n: 15.7.0(eslint@8.57.1) - eslint-plugin-promise: 6.6.0(eslint@8.57.1) - - eslint-config-turbo@2.4.0(eslint@7.32.0)(turbo@2.4.2): - dependencies: - eslint: 7.32.0 - eslint-plugin-turbo: 2.4.0(eslint@7.32.0)(turbo@2.4.2) - turbo: 2.4.2 - - eslint-import-resolver-node@0.3.9: - dependencies: - debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color - - eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.31.0(eslint@7.32.0))(eslint@7.32.0): - dependencies: - debug: 4.4.0(supports-color@9.4.0) - eslint: 7.32.0 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5))(eslint-import-resolver-typescript@2.7.1)(eslint@7.32.0) - glob: 7.2.3 - is-glob: 4.0.3 - resolve: 1.22.10 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - supports-color - - eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1): - dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.0(supports-color@9.4.0) - enhanced-resolve: 5.18.1 - eslint: 8.57.1 - fast-glob: 3.3.3 - get-tsconfig: 4.10.0 - is-bun-module: 1.3.0 - is-glob: 4.0.3 - stable-hash: 0.0.4 - optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) - transitivePeerDependencies: - - supports-color - - eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1): - dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.0(supports-color@9.4.0) - enhanced-resolve: 5.18.1 - eslint: 8.57.1 - fast-glob: 3.3.3 - get-tsconfig: 4.10.0 - is-bun-module: 1.3.0 - is-glob: 4.0.3 - stable-hash: 0.0.4 - optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.31.0(eslint@7.32.0))(eslint@7.32.0))(eslint@7.32.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@4.9.5) - eslint: 7.32.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.31.0(eslint@7.32.0))(eslint@7.32.0) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.3) - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.7.3) - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1) - transitivePeerDependencies: - - supports-color - - eslint-plugin-es@3.0.1(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-utils: 2.1.0 - regexpp: 3.2.0 - - eslint-plugin-es@4.1.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-utils: 2.1.0 - regexpp: 3.2.0 - - eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5))(eslint-import-resolver-typescript@2.7.1)(eslint@7.32.0): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 7.32.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.31.0(eslint@7.32.0))(eslint@7.32.0))(eslint@7.32.0) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@4.9.5) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.7.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-jsx-a11y@6.10.2(eslint@7.32.0): - dependencies: - aria-query: 5.3.2 - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.3 - ast-types-flow: 0.0.8 - axe-core: 4.10.2 - axobject-query: 4.1.0 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 7.32.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - safe-regex-test: 1.1.0 - string.prototype.includes: 2.0.1 - - eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): - dependencies: - aria-query: 5.3.2 - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.3 - ast-types-flow: 0.0.8 - axe-core: 4.10.2 - axobject-query: 4.1.0 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 8.57.1 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - safe-regex-test: 1.1.0 - string.prototype.includes: 2.0.1 - - eslint-plugin-n@15.7.0(eslint@8.57.1): - dependencies: - builtins: 5.1.0 - eslint: 8.57.1 - eslint-plugin-es: 4.1.0(eslint@8.57.1) - eslint-utils: 3.0.0(eslint@8.57.1) - ignore: 5.3.2 - is-core-module: 2.16.1 - minimatch: 3.1.2 - resolve: 1.22.10 - semver: 7.7.1 - - eslint-plugin-node@11.1.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-plugin-es: 3.0.1(eslint@8.57.1) - eslint-utils: 2.1.0 - ignore: 5.3.2 - minimatch: 3.1.2 - resolve: 1.22.10 - semver: 6.3.1 - - eslint-plugin-promise@6.6.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-plugin-react-hooks@4.6.2(eslint@7.32.0): - dependencies: - eslint: 7.32.0 - - eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-plugin-react@7.31.8(eslint@7.32.0): - dependencies: - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.3 - doctrine: 2.1.0 - eslint: 7.32.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.8 - object.fromentries: 2.0.8 - object.hasown: 1.1.4 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - - eslint-plugin-react@7.37.4(eslint@8.57.1): - dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.1 - eslint: 8.57.1 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.8 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 - - eslint-plugin-turbo@2.4.0(eslint@7.32.0)(turbo@2.4.2): - dependencies: - dotenv: 16.0.3 - eslint: 7.32.0 - turbo: 2.4.2 - - eslint-plugin-unicorn@44.0.2(eslint@8.57.1): - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - ci-info: 3.9.0 - clean-regexp: 1.0.0 - eslint: 8.57.1 - eslint-utils: 3.0.0(eslint@8.57.1) - esquery: 1.6.0 - indent-string: 4.0.0 - is-builtin-module: 3.2.1 - lodash: 4.17.21 - pluralize: 8.0.0 - read-pkg-up: 7.0.1 - regexp-tree: 0.1.27 - safe-regex: 2.1.1 - semver: 7.7.1 - strip-indent: 3.0.0 - - eslint-plugin-vue@9.32.0(eslint@8.57.1): - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - eslint: 8.57.1 - globals: 13.24.0 - natural-compare: 1.4.0 - nth-check: 2.1.1 - postcss-selector-parser: 6.1.2 - semver: 7.7.1 - vue-eslint-parser: 9.4.3(eslint@8.57.1) - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - supports-color - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-utils@2.1.0: - dependencies: - eslint-visitor-keys: 1.3.0 - - eslint-utils@3.0.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 2.1.0 - - eslint-visitor-keys@1.3.0: {} - - eslint-visitor-keys@2.1.0: {} - - eslint-visitor-keys@3.4.3: {} - - eslint-webpack-plugin@4.2.0(eslint@8.57.1)(webpack@5.97.1): - dependencies: - '@types/eslint': 8.56.12 - eslint: 8.57.1 - jest-worker: 29.7.0 - micromatch: 4.0.8 - normalize-path: 3.0.0 - schema-utils: 4.3.0 - webpack: 5.97.1 - - eslint@7.32.0: - dependencies: - '@babel/code-frame': 7.12.11 - '@eslint/eslintrc': 0.4.3 - '@humanwhocodes/config-array': 0.5.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0(supports-color@9.4.0) - doctrine: 3.0.0 - enquirer: 2.4.1 - escape-string-regexp: 4.0.0 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - eslint-visitor-keys: 2.1.0 - espree: 7.3.1 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 5.1.2 - globals: 13.24.0 - ignore: 4.0.6 - import-fresh: 3.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - js-yaml: 3.14.1 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - progress: 2.0.3 - regexpp: 3.2.0 - semver: 7.7.1 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - table: 6.9.0 - text-table: 0.2.0 - v8-compile-cache: 2.4.0 - transitivePeerDependencies: - - supports-color - - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0(supports-color@9.4.0) - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - espree@7.3.1: - dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.2(acorn@7.4.1) - eslint-visitor-keys: 1.3.0 - - espree@9.6.1: - dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 3.4.3 - - esprima@4.0.1: {} - - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@4.3.0: {} - - estraverse@5.3.0: {} - - estree-walker@2.0.2: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.6 - - esutils@2.0.3: {} - - etag@1.8.1: {} - - eth-rpc-errors@4.0.3: - dependencies: - fast-safe-stringify: 2.1.1 - - event-target-shim@5.0.1: {} - - eventemitter3@4.0.7: {} - - eventemitter3@5.0.1: {} - - events@3.3.0: {} - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - execa@7.2.0: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - - execa@8.0.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - - exit@0.1.2: {} - - expect@29.7.0: - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - - extendable-error@0.1.7: {} - - extension-port-stream@2.1.1: - dependencies: - webextension-polyfill: 0.12.0 - - external-editor@3.1.0: - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - - externality@1.0.2: - dependencies: - enhanced-resolve: 5.18.1 - mlly: 1.7.4 - pathe: 1.1.2 - ufo: 1.5.3 - - eyes@0.1.8: {} - - fast-deep-equal@2.0.1: {} - - fast-deep-equal@3.1.3: {} - - fast-fifo@1.3.2: {} - - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fast-npm-meta@0.2.2: {} - - fast-safe-stringify@2.1.1: {} - - fast-uri@3.0.6: {} - - fastq@1.19.0: - dependencies: - reusify: 1.0.4 - - fb-watchman@2.0.2: - dependencies: - bser: 2.1.1 - - fdir@6.4.3(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - - fewcha-plugin-wallet-adapter@0.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): - dependencies: - '@aptos-labs/wallet-adapter-core': 2.2.0 - '@fewcha/web3': 0.1.38(bufferutil@4.0.9)(utf-8-validate@5.0.10) - aptos: 1.21.0 - transitivePeerDependencies: - - bufferutil - - debug - - encoding - - utf-8-validate - - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - - file-uri-to-path@1.0.0: {} - - filelist@1.0.4: - dependencies: - minimatch: 5.1.6 - - filename-reserved-regex@2.0.0: {} - - filenamify@4.3.0: - dependencies: - filename-reserved-regex: 2.0.0 - strip-outer: 1.0.1 - trim-repeated: 1.0.0 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-cache-dir@3.3.2: - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - - find-root@1.1.0: {} - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@3.2.0: - dependencies: - flatted: 3.3.2 - keyv: 4.5.4 - rimraf: 3.0.2 - - flatted@3.3.2: {} - - follow-redirects@1.15.9: {} - - for-each@0.3.4: - dependencies: - is-callable: 1.2.7 - - foreground-child@3.3.0: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - form-data@4.0.0: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - form-data@4.0.1: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - fraction.js@4.3.7: {} - - fresh@0.5.2: {} - - fs-extra@10.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-extra@11.3.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-extra@7.0.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fs-extra@8.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fs-extra@9.1.0: - dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - - fs.realpath@1.0.0: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - functional-red-black-tree@1.0.1: {} - - functions-have-names@1.2.3: {} - - fuse.js@7.1.0: {} - - gensync@1.0.0-beta.2: {} - - get-caller-file@2.0.5: {} - - get-intrinsic@1.2.7: - dependencies: - call-bind-apply-helpers: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-nonce@1.0.1: {} - - get-package-type@0.1.0: {} - - get-port-please@3.1.2: {} - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - get-stream@5.2.0: - dependencies: - pump: 3.0.2 - - get-stream@6.0.1: {} - - get-stream@8.0.1: {} - - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - - get-tsconfig@4.10.0: - dependencies: - resolve-pkg-maps: 1.0.0 - - gh-pages@5.0.0: - dependencies: - async: 3.2.6 - commander: 2.20.3 - email-addresses: 5.0.0 - filenamify: 4.3.0 - find-cache-dir: 3.3.2 - fs-extra: 8.1.0 - globby: 6.1.0 - - giget@1.2.4: - dependencies: - citty: 0.1.6 - consola: 3.4.0 - defu: 6.1.4 - node-fetch-native: 1.6.6 - nypm: 0.5.2 - ohash: 1.1.4 - pathe: 2.0.2 - tar: 6.2.1 - - git-config-path@2.0.0: {} - - git-up@8.0.0: - dependencies: - is-ssh: 1.4.0 - parse-url: 9.2.0 - - git-url-parse@16.0.0: - dependencies: - git-up: 8.0.0 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob-to-regexp@0.4.1: {} - - glob@10.3.10: - dependencies: - foreground-child: 3.3.0 - jackspeak: 2.3.6 - minimatch: 9.0.5 - minipass: 7.1.2 - path-scurry: 1.11.1 - - glob@10.4.5: - dependencies: - foreground-child: 3.3.0 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - glob@7.1.7: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - global-directory@4.0.1: - dependencies: - ini: 4.1.1 - - globals@11.12.0: {} - - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - - globby@14.1.0: - dependencies: - '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.3 - ignore: 7.0.3 - path-type: 6.0.0 - slash: 5.1.0 - unicorn-magic: 0.3.0 - - globby@6.1.0: - dependencies: - array-union: 1.0.2 - glob: 7.2.3 - object-assign: 4.1.1 - pify: 2.3.0 - pinkie-promise: 2.0.1 - - google-fonts-helper@3.6.0: - dependencies: - deepmerge: 4.3.1 - hookable: 5.5.3 - ofetch: 1.4.1 - ufo: 1.5.3 - - gopd@1.2.0: {} - - got@11.8.6: - dependencies: - '@sindresorhus/is': 4.6.0 - '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.3 - '@types/responselike': 1.0.3 - cacheable-lookup: 5.0.4 - cacheable-request: 7.0.4 - decompress-response: 6.0.0 - http2-wrapper: 1.0.3 - lowercase-keys: 2.0.0 - p-cancelable: 2.1.1 - responselike: 2.0.1 - - graceful-fs@4.2.11: {} - - graphemer@1.4.0: {} - - graphql-request@7.1.2(graphql@16.10.0): - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) - graphql: 16.10.0 - - graphql@16.10.0: {} - - gzip-size@7.0.0: - dependencies: - duplexer: 0.1.2 - - h3@1.15.0: - dependencies: - cookie-es: 1.2.2 - crossws: 0.3.3 - defu: 6.1.4 - destr: 2.0.3 - iron-webcrypto: 1.2.1 - node-mock-http: 1.0.0 - ohash: 1.1.4 - radix3: 1.1.2 - ufo: 1.5.4 - uncrypto: 0.1.3 - - has-bigints@1.1.0: {} - - has-flag@3.0.0: {} - - has-flag@4.0.0: {} - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - he@1.2.0: {} - - hoist-non-react-statics@3.3.2: - dependencies: - react-is: 16.13.1 - - hookable@5.5.3: {} - - hosted-git-info@2.8.9: {} - - html-escaper@2.0.2: {} - - html-tags@3.3.1: {} - - http-assert@1.5.0: - dependencies: - deep-equal: 1.0.1 - http-errors: 1.8.1 - - http-cache-semantics@4.1.1: {} - - http-errors@1.6.3: - dependencies: - depd: 1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: 1.5.0 - - http-errors@1.8.1: - dependencies: - depd: 1.1.2 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 1.5.0 - toidentifier: 1.0.1 - - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - - http-shutdown@1.2.2: {} - - http2-wrapper@1.0.3: - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - - https-proxy-agent@7.0.6(supports-color@9.4.0): - dependencies: - agent-base: 7.1.3 - debug: 4.4.0(supports-color@9.4.0) - transitivePeerDependencies: - - supports-color - - httpxy@0.1.7: {} - - human-id@1.0.2: {} - - human-signals@2.1.0: {} - - human-signals@4.3.1: {} - - human-signals@5.0.0: {} - - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - - ieee754@1.2.1: {} - - ignore@4.0.6: {} - - ignore@5.3.2: {} - - ignore@7.0.3: {} - - image-meta@0.2.1: {} - - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-lazy@4.0.0: {} - - import-local@3.2.0: - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - - impound@0.2.0(rollup@4.34.6): - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.6) - mlly: 1.7.4 - pathe: 1.1.2 - unenv: 1.10.0 - unplugin: 1.16.1 - transitivePeerDependencies: - - rollup - - imurmurhash@0.1.4: {} - - indent-string@4.0.0: {} - - index-to-position@0.1.2: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.3: {} - - inherits@2.0.4: {} - - ini@1.3.8: {} - - ini@4.1.1: {} - - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - - ioredis@5.5.0: - dependencies: - '@ioredis/commands': 1.2.0 - cluster-key-slot: 1.1.2 - debug: 4.4.0(supports-color@9.4.0) - denque: 2.1.0 - lodash.defaults: 4.2.0 - lodash.isarguments: 3.1.0 - redis-errors: 1.2.0 - redis-parser: 3.0.0 - standard-as-callback: 2.1.0 - transitivePeerDependencies: - - supports-color - - iron-webcrypto@1.2.1: {} - - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - - is-arrayish@0.2.1: {} - - is-async-function@2.1.1: - dependencies: - async-function: 1.0.0 - call-bound: 1.0.3 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-builtin-module@3.2.1: - dependencies: - builtin-modules: 3.3.0 - - is-bun-module@1.3.0: - dependencies: - semver: 7.7.1 - - is-callable@1.2.7: {} - - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-docker@2.2.1: {} - - is-docker@3.0.0: {} - - is-extglob@2.1.1: {} - - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.3 - - is-fullwidth-code-point@3.0.0: {} - - is-generator-fn@2.1.0: {} - - is-generator-function@1.1.0: - dependencies: - call-bound: 1.0.3 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-inside-container@1.0.0: - dependencies: - is-docker: 3.0.0 - - is-installed-globally@1.0.0: - dependencies: - global-directory: 4.0.1 - is-path-inside: 4.0.0 - - is-map@2.0.3: {} - - is-module@1.0.0: {} - - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-number@7.0.0: {} - - is-path-inside@3.0.3: {} - - is-path-inside@4.0.0: {} - - is-reference@1.2.1: - dependencies: - '@types/estree': 1.0.6 - - is-regex@1.2.1: - dependencies: - call-bound: 1.0.3 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.3 - - is-ssh@1.4.0: - dependencies: - protocols: 2.0.1 - - is-stream@2.0.1: {} - - is-stream@3.0.0: {} - - is-string@1.1.1: - dependencies: - call-bound: 1.0.3 - has-tostringtag: 1.0.2 - - is-subdir@1.2.0: - dependencies: - better-path-resolve: 1.0.0 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.3 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.18 - - is-weakmap@2.0.2: {} - - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.3 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - - is-what@4.1.16: {} - - is-windows@1.0.2: {} - - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - - is-wsl@3.1.0: - dependencies: - is-inside-container: 1.0.0 - - is64bit@2.0.0: - dependencies: - system-architecture: 0.1.0 - - isarray@1.0.0: {} - - isarray@2.0.5: {} - - isexe@2.0.0: {} - - isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)): - dependencies: - ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) - - istanbul-lib-coverage@3.2.2: {} - - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.26.8 - '@babel/parser': 7.26.8 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - istanbul-lib-instrument@6.0.3: - dependencies: - '@babel/core': 7.26.8 - '@babel/parser': 7.26.8 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - istanbul-lib-report@3.0.1: - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - - istanbul-lib-source-maps@4.0.1: - dependencies: - debug: 4.4.0(supports-color@9.4.0) - istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - - istanbul-reports@3.1.7: - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - - iterator.prototype@1.1.5: - dependencies: - define-data-property: 1.1.4 - es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 - get-proto: 1.0.1 - has-symbols: 1.1.0 - set-function-name: 2.0.2 - - jackspeak@2.3.6: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jake@10.9.2: - dependencies: - async: 3.2.6 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - - jayson@3.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): - dependencies: - '@types/connect': 3.4.38 - '@types/node': 12.20.55 - '@types/ws': 7.4.7 - JSONStream: 1.3.5 - commander: 2.20.3 - delay: 5.0.0 - es6-promisify: 5.0.0 - eyes: 0.1.8 - isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - json-stringify-safe: 5.0.1 - lodash: 4.17.21 - uuid: 8.3.2 - ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - jest-changed-files@29.7.0: - dependencies: - execa: 5.1.1 - jest-util: 29.7.0 - p-limit: 3.1.0 - - jest-circus@29.7.0(babel-plugin-macros@3.1.0): - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.17.17 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.5.3(babel-plugin-macros@3.1.0) - is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.1.0 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-cli@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jest-config@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0): - dependencies: - '@babel/core': 7.26.8 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.8) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 20.17.17 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-diff@29.7.0: - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-docblock@29.7.0: - dependencies: - detect-newline: 3.1.0 - - jest-each@29.7.0: - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 - - jest-environment-node@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.17.17 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - jest-get-type@29.6.3: {} - - jest-haste-map@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 20.17.17 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.8 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - - jest-leak-detector@29.7.0: - dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-matcher-utils@29.7.0: - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-message-util@29.7.0: - dependencies: - '@babel/code-frame': 7.26.2 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 - - jest-mock@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.17.17 - jest-util: 29.7.0 - - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - optionalDependencies: - jest-resolve: 29.7.0 - - jest-regex-util@29.6.3: {} - - jest-resolve-dependencies@29.7.0: - dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - jest-resolve@29.7.0: - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.10 - resolve.exports: 2.0.3 - slash: 3.0.0 - - jest-runner@29.7.0: - dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.17.17 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - - jest-runtime@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.17.17 - chalk: 4.1.2 - cjs-module-lexer: 1.4.3 - collect-v8-coverage: 1.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - - jest-snapshot@29.7.0: - dependencies: - '@babel/core': 7.26.8 - '@babel/generator': 7.26.8 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.8) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.8) - '@babel/types': 7.26.8 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.8) - chalk: 4.1.2 - expect: 29.7.0 - graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - jest-util@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.17.17 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - jest-validate@29.7.0: - dependencies: - '@jest/types': 29.6.3 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.6.3 - leven: 3.1.0 - pretty-format: 29.7.0 - - jest-watcher@29.7.0: - dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.17.17 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.7.0 - string-length: 4.0.2 - - jest-worker@27.5.1: - dependencies: - '@types/node': 20.17.17 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest-worker@29.7.0: - dependencies: - '@types/node': 20.17.17 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jiti@1.21.7: {} - - jiti@2.4.2: {} - - jju@1.4.0: {} - - joycon@3.1.1: {} - - js-base64@3.7.7: {} - - js-levenshtein@1.1.6: {} - - js-sha3@0.8.0: {} - - js-tokens@4.0.0: {} - - js-tokens@9.0.1: {} - - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsesc@3.1.0: {} - - json-buffer@3.0.1: {} - - json-parse-even-better-errors@2.3.1: {} - - json-rpc-engine@6.1.0: - dependencies: - '@metamask/safe-event-emitter': 2.0.0 - eth-rpc-errors: 4.0.3 - - json-rpc-middleware-stream@3.0.0: - dependencies: - '@metamask/safe-event-emitter': 2.0.0 - readable-stream: 2.3.8 - - json-rpc-protocol@0.13.2: - dependencies: - make-error: 1.3.6 - - json-schema-traverse@0.4.1: {} - - json-schema-traverse@1.0.0: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - json-stringify-safe@5.0.1: {} - - json2mq@0.2.0: - dependencies: - string-convert: 0.2.1 - - json5@1.0.2: - dependencies: - minimist: 1.2.8 - - json5@2.2.3: {} - - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - jsonparse@1.3.1: {} - - jsx-ast-utils@3.3.5: - dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.3 - object.assign: 4.1.7 - object.values: 1.2.1 - - jwt-decode@4.0.0: {} - - keygrip@1.1.0: - dependencies: - tsscmp: 1.0.6 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - kleur@3.0.3: {} - - klona@2.0.6: {} - - knitwork@1.2.0: {} - - koa-compose@4.1.0: {} - - koa-convert@2.0.0: - dependencies: - co: 4.6.0 - koa-compose: 4.1.0 - - koa-send@5.0.1: - dependencies: - debug: 4.4.0(supports-color@9.4.0) - http-errors: 1.8.1 - resolve-path: 1.4.0 - transitivePeerDependencies: - - supports-color - - koa-static@5.0.0: - dependencies: - debug: 3.2.7 - koa-send: 5.0.1 - transitivePeerDependencies: - - supports-color - - koa@2.15.3: - dependencies: - accepts: 1.3.8 - cache-content-type: 1.0.1 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookies: 0.9.1 - debug: 4.4.0(supports-color@9.4.0) - delegates: 1.0.0 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - fresh: 0.5.2 - http-assert: 1.5.0 - http-errors: 1.8.1 - is-generator-function: 1.1.0 - koa-compose: 4.1.0 - koa-convert: 2.0.0 - on-finished: 2.4.1 - only: 0.0.2 - parseurl: 1.3.3 - statuses: 1.5.0 - type-is: 1.6.18 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - kolorist@1.8.0: {} - - language-subtag-registry@0.3.23: {} - - language-tags@1.0.9: - dependencies: - language-subtag-registry: 0.3.23 - - launch-editor@2.9.1: - dependencies: - picocolors: 1.1.1 - shell-quote: 1.8.2 - - lazystream@1.0.1: - dependencies: - readable-stream: 2.3.8 - - leven@3.1.0: {} - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lilconfig@2.1.0: {} - - lilconfig@3.1.3: {} - - lines-and-columns@1.2.4: {} - - listhen@1.9.0: - dependencies: - '@parcel/watcher': 2.5.1 - '@parcel/watcher-wasm': 2.5.1 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.4.0 - crossws: 0.3.3 - defu: 6.1.4 - get-port-please: 3.1.2 - h3: 1.15.0 - http-shutdown: 1.2.2 - jiti: 2.4.2 - mlly: 1.7.4 - node-forge: 1.3.1 - pathe: 1.1.2 - std-env: 3.8.0 - ufo: 1.5.4 - untun: 0.1.3 - uqr: 0.1.2 - - load-tsconfig@0.2.5: {} - - loader-runner@4.3.0: {} - - local-pkg@0.4.3: {} - - local-pkg@0.5.1: - dependencies: - mlly: 1.7.4 - pkg-types: 1.3.1 - - local-pkg@1.0.0: - dependencies: - mlly: 1.7.4 - pkg-types: 1.3.1 - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash.defaults@4.2.0: {} - - lodash.get@4.4.2: {} - - lodash.isarguments@3.1.0: {} - - lodash.isequal@4.5.0: {} - - lodash.memoize@4.1.2: {} - - lodash.merge@4.6.2: {} - - lodash.sortby@4.7.0: {} - - lodash.startcase@4.4.0: {} - - lodash.truncate@4.4.2: {} - - lodash.uniq@4.5.0: {} - - lodash@4.17.21: {} - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - lossless-json@1.0.5: {} - - lowercase-keys@2.0.0: {} - - lru-cache@10.4.3: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - lucide-react@0.383.0(react@18.3.1): - dependencies: - react: 18.3.1 - - lucide-vue-next@0.396.0(vue@3.5.13(typescript@5.7.3)): - dependencies: - vue: 3.5.13(typescript@5.7.3) - - magic-string-ast@0.7.0: - dependencies: - magic-string: 0.30.17 - - magic-string@0.30.17: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - magicast@0.3.5: - dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 - source-map-js: 1.2.1 - - make-dir@3.1.0: - dependencies: - semver: 6.3.1 - - make-dir@4.0.0: - dependencies: - semver: 7.7.1 - - make-error@1.3.6: {} - - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 - - math-intrinsics@1.1.0: {} - - mdn-data@2.0.28: {} - - mdn-data@2.0.30: {} - - media-typer@0.3.0: {} - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - methods@1.1.2: {} - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mime@1.6.0: {} - - mime@3.0.0: {} - - mime@4.0.6: {} - - mimic-fn@2.1.0: {} - - mimic-fn@4.0.0: {} - - mimic-response@1.0.1: {} - - mimic-response@3.1.0: {} - - min-indent@1.0.1: {} - - minimatch@3.0.8: - dependencies: - brace-expansion: 1.1.11 - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.1 - - minimatch@9.0.3: - dependencies: - brace-expansion: 2.0.1 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.1 - - minimist@1.2.8: {} - - minipass@3.3.6: - dependencies: - yallist: 4.0.0 - - minipass@5.0.0: {} - - minipass@7.1.2: {} - - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - - minizlib@3.0.1: - dependencies: - minipass: 7.1.2 - rimraf: 5.0.10 - - mitt@3.0.1: {} - - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - - mkdirp@1.0.4: {} - - mkdirp@3.0.1: {} - - mlly@1.7.4: - dependencies: - acorn: 8.14.0 - pathe: 2.0.2 - pkg-types: 1.3.1 - ufo: 1.5.4 - - mri@1.2.0: {} - - mrmime@2.0.0: {} - - ms@2.0.0: {} - - ms@2.1.3: {} - - muggle-string@0.3.1: {} - - muggle-string@0.4.1: {} - - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - - nanoid@3.3.8: {} - - nanoid@5.0.9: {} - - nanotar@0.2.0: {} - - natural-compare@1.4.0: {} - - negotiator@0.6.3: {} - - neo-async@2.6.2: {} - - next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - next@14.2.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@next/env': 14.2.24 - '@swc/helpers': 0.5.5 - busboy: 1.6.0 - caniuse-lite: 1.0.30001699 - graceful-fs: 4.2.11 - postcss: 8.4.31 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.1(react@18.3.1) - optionalDependencies: - '@next/swc-darwin-arm64': 14.2.24 - '@next/swc-darwin-x64': 14.2.24 - '@next/swc-linux-arm64-gnu': 14.2.24 - '@next/swc-linux-arm64-musl': 14.2.24 - '@next/swc-linux-x64-gnu': 14.2.24 - '@next/swc-linux-x64-musl': 14.2.24 - '@next/swc-win32-arm64-msvc': 14.2.24 - '@next/swc-win32-ia32-msvc': 14.2.24 - '@next/swc-win32-x64-msvc': 14.2.24 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - - nitropack@2.10.4(typescript@5.7.3): - dependencies: - '@cloudflare/kv-asset-handler': 0.3.4 - '@netlify/functions': 2.8.2 - '@rollup/plugin-alias': 5.1.1(rollup@4.34.6) - '@rollup/plugin-commonjs': 28.0.2(rollup@4.34.6) - '@rollup/plugin-inject': 5.0.5(rollup@4.34.6) - '@rollup/plugin-json': 6.1.0(rollup@4.34.6) - '@rollup/plugin-node-resolve': 15.3.1(rollup@4.34.6) - '@rollup/plugin-replace': 6.0.2(rollup@4.34.6) - '@rollup/plugin-terser': 0.4.4(rollup@4.34.6) - '@rollup/pluginutils': 5.1.4(rollup@4.34.6) - '@types/http-proxy': 1.17.16 - '@vercel/nft': 0.27.10(rollup@4.34.6) - archiver: 7.0.1 - c12: 2.0.1(magicast@0.3.5) - chokidar: 3.6.0 - citty: 0.1.6 - compatx: 0.1.8 - confbox: 0.1.8 - consola: 3.4.0 - cookie-es: 1.2.2 - croner: 9.0.0 - crossws: 0.3.3 - db0: 0.2.3 - defu: 6.1.4 - destr: 2.0.3 - dot-prop: 9.0.0 - esbuild: 0.24.2 - escape-string-regexp: 5.0.0 - etag: 1.8.1 - fs-extra: 11.3.0 - globby: 14.1.0 - gzip-size: 7.0.0 - h3: 1.15.0 - hookable: 5.5.3 - httpxy: 0.1.7 - ioredis: 5.5.0 - jiti: 2.4.2 - klona: 2.0.6 - knitwork: 1.2.0 - listhen: 1.9.0 - magic-string: 0.30.17 - magicast: 0.3.5 - mime: 4.0.6 - mlly: 1.7.4 - node-fetch-native: 1.6.6 - ofetch: 1.4.1 - ohash: 1.1.4 - openapi-typescript: 7.6.1(typescript@5.7.3) - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.3.1 - pretty-bytes: 6.1.1 - radix3: 1.1.2 - rollup: 4.34.6 - rollup-plugin-visualizer: 5.14.0(rollup@4.34.6) - scule: 1.3.0 - semver: 7.7.1 - serve-placeholder: 2.0.2 - serve-static: 1.16.2 - std-env: 3.8.0 - ufo: 1.5.4 - uncrypto: 0.1.3 - unctx: 2.4.1 - unenv: 1.10.0 - unimport: 3.14.6(rollup@4.34.6) - unstorage: 1.14.4(db0@0.2.3)(ioredis@5.5.0) - untyped: 1.5.2 - unwasm: 0.3.9 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/kv' - - aws4fetch - - better-sqlite3 - - drizzle-orm - - encoding - - idb-keyval - - mysql2 - - rolldown - - sqlite3 - - supports-color - - typescript - - uploadthing - - node-addon-api@7.1.1: {} - - node-fetch-native@1.6.6: {} - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - - node-forge@1.3.1: {} - - node-gyp-build@4.8.4: {} - - node-int64@0.4.0: {} - - node-mock-http@1.0.0: {} - - node-releases@2.0.19: {} - - nopt@8.1.0: - dependencies: - abbrev: 3.0.0 - - normalize-package-data@2.5.0: - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.10 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - - normalize-path@3.0.0: {} - - normalize-range@0.1.2: {} - - normalize-url@6.1.0: {} - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - - nuxt@3.15.4(@parcel/watcher@2.5.1)(@types/node@20.17.17)(bufferutil@4.0.9)(db0@0.2.3)(eslint@8.57.1)(ioredis@5.5.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.6)(terser@5.38.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0): - dependencies: - '@nuxt/cli': 3.21.1(magicast@0.3.5) - '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.7.0(bufferutil@4.0.9)(rollup@4.34.6)(utf-8-validate@5.0.10)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) - '@nuxt/kit': 3.15.4(magicast@0.3.5) - '@nuxt/schema': 3.15.4 - '@nuxt/telemetry': 2.6.4(magicast@0.3.5) - '@nuxt/vite-builder': 3.15.4(@types/node@20.17.17)(eslint@8.57.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.6)(terser@5.38.1)(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))(yaml@2.7.0) - '@unhead/dom': 1.11.18 - '@unhead/shared': 1.11.18 - '@unhead/ssr': 1.11.18 - '@unhead/vue': 1.11.18(vue@3.5.13(typescript@5.7.3)) - '@vue/shared': 3.5.13 - acorn: 8.14.0 - c12: 2.0.1(magicast@0.3.5) - chokidar: 4.0.3 - compatx: 0.1.8 - consola: 3.4.0 - cookie-es: 1.2.2 - defu: 6.1.4 - destr: 2.0.3 - devalue: 5.1.1 - errx: 0.1.0 - esbuild: 0.24.2 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - globby: 14.1.0 - h3: 1.15.0 - hookable: 5.5.3 - ignore: 7.0.3 - impound: 0.2.0(rollup@4.34.6) - jiti: 2.4.2 - klona: 2.0.6 - knitwork: 1.2.0 - magic-string: 0.30.17 - mlly: 1.7.4 - nanotar: 0.2.0 - nitropack: 2.10.4(typescript@5.7.3) - nypm: 0.5.2 - ofetch: 1.4.1 - ohash: 1.1.4 - pathe: 2.0.2 - perfect-debounce: 1.0.0 - pkg-types: 1.3.1 - radix3: 1.1.2 - scule: 1.3.0 - semver: 7.7.1 - std-env: 3.8.0 - strip-literal: 3.0.0 - tinyglobby: 0.2.10 - ufo: 1.5.4 - ultrahtml: 1.5.3 - uncrypto: 0.1.3 - unctx: 2.4.1 - unenv: 1.10.0 - unhead: 1.11.18 - unimport: 4.1.0 - unplugin: 2.1.2 - unplugin-vue-router: 0.11.2(rollup@4.34.6)(vue-router@4.5.0(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3)) - unstorage: 1.14.4(db0@0.2.3)(ioredis@5.5.0) - untyped: 1.5.2 - vue: 3.5.13(typescript@5.7.3) - vue-bundle-renderer: 2.1.1 - vue-devtools-stub: 0.1.0 - vue-router: 4.5.0(vue@3.5.13(typescript@5.7.3)) - optionalDependencies: - '@parcel/watcher': 2.5.1 - '@types/node': 20.17.17 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@biomejs/biome' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/kv' - - aws4fetch - - better-sqlite3 - - bufferutil - - db0 - - drizzle-orm - - encoding - - eslint - - idb-keyval - - ioredis - - less - - lightningcss - - magicast - - meow - - mysql2 - - optionator - - rolldown - - rollup - - sass - - sass-embedded - - sqlite3 - - stylelint - - stylus - - sugarss - - supports-color - - terser - - tsx - - typescript - - uploadthing - - utf-8-validate - - vite - - vls - - vti - - vue-tsc - - xml2js - - yaml - - nypm@0.4.1: - dependencies: - citty: 0.1.6 - consola: 3.4.0 - pathe: 1.1.2 - pkg-types: 1.3.1 - tinyexec: 0.3.2 - ufo: 1.5.4 - - nypm@0.5.2: - dependencies: - citty: 0.1.6 - consola: 3.4.0 - pathe: 2.0.2 - pkg-types: 1.3.1 - tinyexec: 0.3.2 - ufo: 1.5.4 - - object-assign@4.1.1: {} - - object-hash@3.0.0: {} - - object-inspect@1.13.4: {} - - object-keys@1.1.1: {} - - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - object.entries@1.1.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - - object.groupby@1.0.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - - object.hasown@1.1.4: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - ofetch@1.4.1: - dependencies: - destr: 2.0.3 - node-fetch-native: 1.6.6 - ufo: 1.5.4 - - ohash@1.1.4: {} - - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - - only@0.0.2: {} - - open@10.1.0: - dependencies: - default-browser: 5.2.1 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 3.1.0 - - open@7.4.2: - dependencies: - is-docker: 2.2.1 - is-wsl: 2.2.0 - - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - - openapi-typescript@7.6.1(typescript@5.7.3): - dependencies: - '@redocly/openapi-core': 1.28.5(supports-color@9.4.0) - ansi-colors: 4.1.3 - change-case: 5.4.4 - parse-json: 8.1.0 - supports-color: 9.4.0 - typescript: 5.7.3 - yargs-parser: 21.1.1 - - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - os-tmpdir@1.0.2: {} - - outdent@0.5.0: {} - - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.2.7 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - - p-cancelable@2.1.1: {} - - p-filter@2.1.0: - dependencies: - p-map: 2.1.0 - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - p-map@2.1.0: {} - - p-try@2.2.0: {} - - package-json-from-dist@1.0.1: {} - - package-manager-detector@0.2.9: {} - - packrup@0.1.2: {} - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-git-config@3.0.0: - dependencies: - git-config-path: 2.0.0 - ini: 1.3.8 - - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.26.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - parse-json@8.1.0: - dependencies: - '@babel/code-frame': 7.26.2 - index-to-position: 0.1.2 - type-fest: 4.34.1 - - parse-path@7.0.0: - dependencies: - protocols: 2.0.1 - - parse-url@9.2.0: - dependencies: - '@types/parse-path': 7.0.3 - parse-path: 7.0.0 - - parseurl@1.3.3: {} - - path-browserify@1.0.1: {} - - path-exists@4.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@3.1.1: {} - - path-key@4.0.0: {} - - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - - path-to-regexp@6.3.0: {} - - path-type@4.0.0: {} - - path-type@6.0.0: {} - - pathe@1.1.2: {} - - pathe@2.0.2: {} - - perfect-debounce@1.0.0: {} - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.2: {} - - pify@2.3.0: {} - - pify@4.0.1: {} - - pinkie-promise@2.0.1: - dependencies: - pinkie: 2.0.4 - - pinkie@2.0.4: {} - - pirates@4.0.6: {} - - pkg-dir@4.2.0: - dependencies: - find-up: 4.1.0 - - pkg-types@1.3.1: - dependencies: - confbox: 0.1.8 - mlly: 1.7.4 - pathe: 2.0.2 - - pluralize@8.0.0: {} - - portfinder@1.0.32: - dependencies: - async: 2.6.4 - debug: 3.2.7 - mkdirp: 0.5.6 - transitivePeerDependencies: - - supports-color - - poseidon-lite@0.2.1: {} - - possible-typed-array-names@1.1.0: {} - - postcss-calc@10.1.1(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.1.0 - postcss-value-parser: 4.2.0 - - postcss-colormin@7.0.2(postcss@8.5.1): - dependencies: - browserslist: 4.24.4 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-convert-values@7.0.4(postcss@8.5.1): - dependencies: - browserslist: 4.24.4 - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-discard-comments@7.0.3(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-selector-parser: 6.1.2 - - postcss-discard-duplicates@7.0.1(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - - postcss-discard-empty@7.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - - postcss-discard-overridden@7.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - - postcss-import@15.1.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.10 - - postcss-js@4.0.1(postcss@8.5.1): - dependencies: - camelcase-css: 2.0.1 - postcss: 8.5.1 - - postcss-load-config@3.1.4(postcss@8.5.1): - dependencies: - lilconfig: 2.1.0 - yaml: 1.10.2 - optionalDependencies: - postcss: 8.5.1 - - postcss-load-config@4.0.2(postcss@8.5.1): - dependencies: - lilconfig: 3.1.3 - yaml: 2.7.0 - optionalDependencies: - postcss: 8.5.1 - - postcss-merge-longhand@7.0.4(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - stylehacks: 7.0.4(postcss@8.5.1) - - postcss-merge-rules@7.0.4(postcss@8.5.1): - dependencies: - browserslist: 4.24.4 - caniuse-api: 3.0.0 - cssnano-utils: 5.0.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-selector-parser: 6.1.2 - - postcss-minify-font-values@7.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-minify-gradients@7.0.0(postcss@8.5.1): - dependencies: - colord: 2.9.3 - cssnano-utils: 5.0.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-minify-params@7.0.2(postcss@8.5.1): - dependencies: - browserslist: 4.24.4 - cssnano-utils: 5.0.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-minify-selectors@7.0.4(postcss@8.5.1): - dependencies: - cssesc: 3.0.0 - postcss: 8.5.1 - postcss-selector-parser: 6.1.2 - - postcss-nested@6.2.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-selector-parser: 6.1.2 - - postcss-nesting@13.0.1(postcss@8.5.1): - dependencies: - '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.1.0) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.1 - postcss-selector-parser: 7.1.0 - - postcss-normalize-charset@7.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - - postcss-normalize-display-values@7.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-normalize-positions@7.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-normalize-repeat-style@7.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-normalize-string@7.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-normalize-timing-functions@7.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-normalize-unicode@7.0.2(postcss@8.5.1): - dependencies: - browserslist: 4.24.4 - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-normalize-url@7.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-normalize-whitespace@7.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-ordered-values@7.0.1(postcss@8.5.1): - dependencies: - cssnano-utils: 5.0.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-reduce-initial@7.0.2(postcss@8.5.1): - dependencies: - browserslist: 4.24.4 - caniuse-api: 3.0.0 - postcss: 8.5.1 - - postcss-reduce-transforms@7.0.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-selector-parser@7.1.0: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-svgo@7.0.1(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-value-parser: 4.2.0 - svgo: 3.3.2 - - postcss-unique-selectors@7.0.3(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-selector-parser: 6.1.2 - - postcss-value-parser@4.2.0: {} - - postcss@8.4.31: - dependencies: - nanoid: 3.3.8 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - postcss@8.5.1: - dependencies: - nanoid: 3.3.8 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - prelude-ls@1.2.1: {} - - prettier@2.8.8: {} - - prettier@3.5.0: {} - - pretty-bytes@6.1.1: {} - - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 - - process-nextick-args@2.0.1: {} - - process@0.11.10: {} - - progress@2.0.3: {} - - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - - prop-types@15.8.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - protocols@2.0.1: {} - - proxy-from-env@1.1.0: {} - - pump@3.0.2: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - - punycode@2.3.1: {} - - pure-rand@6.1.0: {} - - queue-microtask@1.2.3: {} - - quick-lru@5.1.1: {} - - radix-vue@1.9.13(vue@3.5.13(typescript@5.7.3)): - dependencies: - '@floating-ui/dom': 1.6.13 - '@floating-ui/vue': 1.1.6(vue@3.5.13(typescript@5.7.3)) - '@internationalized/date': 3.7.0 - '@internationalized/number': 3.6.0 - '@tanstack/vue-virtual': 3.13.0(vue@3.5.13(typescript@5.7.3)) - '@vueuse/core': 10.11.1(vue@3.5.13(typescript@5.7.3)) - '@vueuse/shared': 10.11.1(vue@3.5.13(typescript@5.7.3)) - aria-hidden: 1.2.4 - defu: 6.1.4 - fast-deep-equal: 3.1.3 - nanoid: 5.0.9 - vue: 3.5.13(typescript@5.7.3) - transitivePeerDependencies: - - '@vue/composition-api' - - radix3@1.1.2: {} - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - range-parser@1.2.1: {} - - rc-cascader@3.33.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-select: 14.16.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tree: 5.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-checkbox@3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-collapse@3.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-dialog@9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-drawer@7.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-dropdown@4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/async-validator': 5.0.4 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-image@7.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-dialog: 9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-input-number@9.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/mini-decimal': 1.1.0 - classnames: 2.5.1 - rc-input: 1.7.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-input@1.7.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-mentions@2.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-input: 1.7.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-menu: 9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-textarea: 1.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-menu@9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-overflow: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-motion@2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-notification@5.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-overflow@1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-pagination@5.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-picker@4.9.2(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-overflow: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - dayjs: 1.11.13 - - rc-progress@4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-rate@2.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-resize-observer@1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - resize-observer-polyfill: 1.5.1 - - rc-segmented@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-select@14.16.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-overflow: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-virtual-list: 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-slider@11.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-steps@6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-switch@4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-table@7.50.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/context': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-virtual-list: 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-tabs@15.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-dropdown: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-menu: 9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-textarea@1.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-input: 1.7.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-tooltip@6.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-tree-select@5.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-select: 14.16.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-tree: 5.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-tree@5.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-virtual-list: 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-upload@4.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc-util@5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 18.3.1 - - rc-virtual-list@3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - classnames: 2.5.1 - rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - rc9@2.1.2: - dependencies: - defu: 6.1.4 - destr: 2.0.3 - - react-dom@18.3.1(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - - react-is@16.13.1: {} - - react-is@18.3.1: {} - - react-is@19.0.0: {} - - react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): - dependencies: - react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - react-remove-scroll@2.6.3(@types/react@18.3.18)(react@18.3.1): - dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - - react-router-dom@6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@remix-run/router': 1.22.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 6.29.0(react@18.3.1) - - react-router@6.29.0(react@18.3.1): - dependencies: - '@remix-run/router': 1.22.0 - react: 18.3.1 - - react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): - dependencies: - get-nonce: 1.0.1 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.7 - dom-helpers: 5.2.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - react@18.3.1: - dependencies: - loose-envify: 1.4.0 - - read-cache@1.0.0: - dependencies: - pify: 2.3.0 - - read-pkg-up@7.0.1: - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - - read-pkg@5.2.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - - read-yaml-file@1.1.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - - readable-stream@4.7.0: - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 - - readdir-glob@1.1.3: - dependencies: - minimatch: 5.1.6 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - readdirp@4.1.1: {} - - redis-errors@1.2.0: {} - - redis-parser@3.0.0: - dependencies: - redis-errors: 1.2.0 - - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - - regenerator-runtime@0.14.1: {} - - regexp-tree@0.1.27: {} - - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - - regexpp@3.2.0: {} - - replace-in-file@6.3.5: - dependencies: - chalk: 4.1.2 - glob: 7.2.3 - yargs: 17.7.2 - - require-directory@2.1.1: {} - - require-from-string@2.0.2: {} - - resize-observer-polyfill@1.5.1: {} - - resolve-alpn@1.2.1: {} - - resolve-cwd@3.0.0: - dependencies: - resolve-from: 5.0.0 - - resolve-from@4.0.0: {} - - resolve-from@5.0.0: {} - - resolve-path@1.4.0: - dependencies: - http-errors: 1.6.3 - path-is-absolute: 1.0.1 - - resolve-pkg-maps@1.0.0: {} - - resolve.exports@2.0.3: {} - - resolve@1.19.0: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - - resolve@1.22.10: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - resolve@2.0.0-next.5: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - responselike@2.0.1: - dependencies: - lowercase-keys: 2.0.0 - - reusify@1.0.4: {} - - rfdc@1.4.1: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rimraf@5.0.10: - dependencies: - glob: 10.4.5 - - rollup-plugin-typescript2@0.36.0(rollup@4.34.6)(typescript@4.9.5): - dependencies: - '@rollup/pluginutils': 4.2.1 - find-cache-dir: 3.3.2 - fs-extra: 10.1.0 - rollup: 4.34.6 - semver: 7.7.1 - tslib: 2.8.1 - typescript: 4.9.5 - - rollup-plugin-visualizer@5.14.0(rollup@4.34.6): - dependencies: - open: 8.4.2 - picomatch: 4.0.2 - source-map: 0.7.4 - yargs: 17.7.2 - optionalDependencies: - rollup: 4.34.6 - - rollup@2.79.2: - optionalDependencies: - fsevents: 2.3.3 - - rollup@4.34.6: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.34.6 - '@rollup/rollup-android-arm64': 4.34.6 - '@rollup/rollup-darwin-arm64': 4.34.6 - '@rollup/rollup-darwin-x64': 4.34.6 - '@rollup/rollup-freebsd-arm64': 4.34.6 - '@rollup/rollup-freebsd-x64': 4.34.6 - '@rollup/rollup-linux-arm-gnueabihf': 4.34.6 - '@rollup/rollup-linux-arm-musleabihf': 4.34.6 - '@rollup/rollup-linux-arm64-gnu': 4.34.6 - '@rollup/rollup-linux-arm64-musl': 4.34.6 - '@rollup/rollup-linux-loongarch64-gnu': 4.34.6 - '@rollup/rollup-linux-powerpc64le-gnu': 4.34.6 - '@rollup/rollup-linux-riscv64-gnu': 4.34.6 - '@rollup/rollup-linux-s390x-gnu': 4.34.6 - '@rollup/rollup-linux-x64-gnu': 4.34.6 - '@rollup/rollup-linux-x64-musl': 4.34.6 - '@rollup/rollup-win32-arm64-msvc': 4.34.6 - '@rollup/rollup-win32-ia32-msvc': 4.34.6 - '@rollup/rollup-win32-x64-msvc': 4.34.6 - fsevents: 2.3.3 - - rpc-websockets@7.11.2: - dependencies: - eventemitter3: 4.0.7 - uuid: 8.3.2 - ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - optionalDependencies: - bufferutil: 4.0.9 - utf-8-validate: 5.0.10 - - run-applescript@7.0.0: {} - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - safe-array-concat@1.1.3: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 - has-symbols: 1.1.0 - isarray: 2.0.5 - - safe-buffer@5.1.2: {} - - safe-buffer@5.2.1: {} - - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-regex: 1.2.1 - - safe-regex@2.1.1: - dependencies: - regexp-tree: 0.1.27 - - safer-buffer@2.1.2: {} - - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 - - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - - schema-utils@4.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) - - scroll-into-view-if-needed@3.1.0: - dependencies: - compute-scroll-into-view: 3.1.1 - - scule@1.3.0: {} - - semver@5.7.2: {} - - semver@6.3.1: {} - - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 - - semver@7.7.1: {} - - send@0.19.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - - serve-placeholder@2.0.2: - dependencies: - defu: 6.1.4 - - serve-static@1.16.2: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.0 - transitivePeerDependencies: - - supports-color - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.7 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - - setprototypeof@1.1.0: {} - - setprototypeof@1.2.0: {} - - shadcn-nuxt@0.10.4(magicast@0.3.5): - dependencies: - '@nuxt/kit': 3.15.4(magicast@0.3.5) - '@oxc-parser/wasm': 0.1.0 - transitivePeerDependencies: - - magicast - - supports-color - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - shell-quote@1.8.2: {} - - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: {} - - simple-git@3.27.0: - dependencies: - '@kwsites/file-exists': 1.1.1 - '@kwsites/promise-deferred': 1.1.1 - debug: 4.4.0(supports-color@9.4.0) - transitivePeerDependencies: - - supports-color - - sirv@3.0.0: - dependencies: - '@polka/url': 1.0.0-next.28 - mrmime: 2.0.0 - totalist: 3.0.1 - - sisteransi@1.0.5: {} - - slash@3.0.0: {} - - slash@5.1.0: {} - - slice-ansi@4.0.0: - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - - smob@1.5.0: {} - - source-map-js@1.2.1: {} - - source-map-support@0.5.13: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map@0.5.7: {} - - source-map@0.6.1: {} - - source-map@0.7.4: {} - - source-map@0.8.0-beta.0: - dependencies: - whatwg-url: 7.1.0 - - spawndamnit@3.0.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.21 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.21 - - spdx-license-ids@3.0.21: {} - - speakingurl@14.0.1: {} - - sprintf-js@1.0.3: {} - - stable-hash@0.0.4: {} - - stack-utils@2.0.6: - dependencies: - escape-string-regexp: 2.0.0 - - standard-as-callback@2.1.0: {} - - statuses@1.5.0: {} - - statuses@2.0.1: {} - - std-env@3.8.0: {} - - streamsearch@1.1.0: {} - - streamx@2.22.0: - dependencies: - fast-fifo: 1.3.2 - text-decoder: 1.2.3 - optionalDependencies: - bare-events: 2.5.4 - - string-argv@0.3.2: {} - - string-convert@0.2.1: {} - - string-length@4.0.2: - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - string.prototype.includes@2.0.1: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.23.9 - - string.prototype.matchall@4.0.12: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 - gopd: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.4 - set-function-name: 2.0.2 - side-channel: 1.1.0 - - string.prototype.repeat@1.0.0: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.9 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.3 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 - - strip-bom@3.0.0: {} - - strip-bom@4.0.0: {} - - strip-final-newline@2.0.0: {} - - strip-final-newline@3.0.0: {} - - strip-indent@3.0.0: - dependencies: - min-indent: 1.0.1 - - strip-json-comments@3.1.1: {} - - strip-literal@2.1.1: - dependencies: - js-tokens: 9.0.1 - - strip-literal@3.0.0: - dependencies: - js-tokens: 9.0.1 - - strip-outer@1.0.1: - dependencies: - escape-string-regexp: 1.0.5 - - styled-jsx@5.1.1(react@18.3.1): - dependencies: - client-only: 0.0.1 - react: 18.3.1 - - stylehacks@7.0.4(postcss@8.5.1): - dependencies: - browserslist: 4.24.4 - postcss: 8.5.1 - postcss-selector-parser: 6.1.2 - - stylis@4.2.0: {} - - stylis@4.3.6: {} - - sucrase@3.35.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - commander: 4.1.1 - glob: 10.4.5 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - - superjson@2.2.2: - dependencies: - copy-anything: 3.0.5 - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - supports-color@9.4.0: {} - - supports-preserve-symlinks-flag@1.0.0: {} - - svg-tags@1.0.0: {} - - svgo@3.3.2: - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 5.1.0 - css-tree: 2.3.1 - css-what: 6.1.0 - csso: 5.0.5 - picocolors: 1.1.1 - - system-architecture@0.1.0: {} - - table@6.9.0: - dependencies: - ajv: 8.17.1 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - tailwind-config-viewer@2.0.4(tailwindcss@3.4.17): - dependencies: - '@koa/router': 12.0.2 - commander: 6.2.1 - fs-extra: 9.1.0 - koa: 2.15.3 - koa-static: 5.0.0 - open: 7.4.2 - portfinder: 1.0.32 - replace-in-file: 6.3.5 - tailwindcss: 3.4.17 - transitivePeerDependencies: - - supports-color - - tailwind-merge@2.6.0: {} - - tailwindcss-animate@1.0.7(tailwindcss@3.4.17): - dependencies: - tailwindcss: 3.4.17 - - tailwindcss@3.4.17: - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.3 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.7 - lilconfig: 3.1.3 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.1 - postcss: 8.5.1 - postcss-import: 15.1.0(postcss@8.5.1) - postcss-js: 4.0.1(postcss@8.5.1) - postcss-load-config: 4.0.2(postcss@8.5.1) - postcss-nested: 6.2.0(postcss@8.5.1) - postcss-selector-parser: 6.1.2 - resolve: 1.22.10 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node - - tapable@2.2.1: {} - - tar-stream@3.1.7: - dependencies: - b4a: 1.6.7 - fast-fifo: 1.3.2 - streamx: 2.22.0 - - tar@6.2.1: - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - - tar@7.4.3: - dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.2 - minizlib: 3.0.1 - mkdirp: 3.0.1 - yallist: 5.0.0 - - term-size@2.2.1: {} - - terser-webpack-plugin@5.3.11(webpack@5.97.1): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 4.3.0 - serialize-javascript: 6.0.2 - terser: 5.38.1 - webpack: 5.97.1 - - terser@5.38.1: - dependencies: - '@jridgewell/source-map': 0.3.6 - acorn: 8.14.0 - commander: 2.20.3 - source-map-support: 0.5.21 - - test-exclude@6.0.0: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - - text-decoder@1.2.3: - dependencies: - b4a: 1.6.7 - - text-table@0.2.0: {} - - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - - throttle-debounce@5.0.2: {} - - through@2.3.8: {} - - tiny-invariant@1.3.3: {} - - tinyexec@0.3.2: {} - - tinyglobby@0.2.10: - dependencies: - fdir: 6.4.3(picomatch@4.0.2) - picomatch: 4.0.2 - - tmp@0.0.33: - dependencies: - os-tmpdir: 1.0.2 - - tmpl@1.0.5: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - toggle-selection@1.0.6: {} - - toidentifier@1.0.1: {} - - totalist@3.0.1: {} - - tr46@0.0.3: {} - - tr46@1.0.1: - dependencies: - punycode: 2.3.1 - - tree-kill@1.2.2: {} - - trim-repeated@1.0.0: - dependencies: - escape-string-regexp: 1.0.5 - - ts-api-utils@1.4.3(typescript@5.7.3): - dependencies: - typescript: 5.7.3 - - ts-interface-checker@0.1.13: {} - - ts-jest@29.2.5(@babel/core@7.26.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.8))(jest@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0))(typescript@4.9.5): - dependencies: - bs-logger: 0.2.6 - ejs: 3.1.10 - fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) - jest-util: 29.7.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.7.1 - typescript: 4.9.5 - yargs-parser: 21.1.1 - optionalDependencies: - '@babel/core': 7.26.8 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.8) - - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - - tslib@1.14.1: {} - - tslib@2.8.1: {} - - tsscmp@1.0.6: {} - - tsup@5.12.9(postcss@8.5.1)(typescript@4.9.5): - dependencies: - bundle-require: 3.1.2(esbuild@0.14.54) - cac: 6.7.14 - chokidar: 3.6.0 - debug: 4.4.0(supports-color@9.4.0) - esbuild: 0.14.54 - execa: 5.1.1 - globby: 11.1.0 - joycon: 3.1.1 - postcss-load-config: 3.1.4(postcss@8.5.1) - resolve-from: 5.0.0 - rollup: 2.79.2 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 - tree-kill: 1.2.2 - optionalDependencies: - postcss: 8.5.1 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - - ts-node - - tsutils@3.21.0(typescript@4.9.5): - dependencies: - tslib: 1.14.1 - typescript: 4.9.5 - - turbo-darwin-64@2.4.0: - optional: true - - turbo-darwin-64@2.4.2: - optional: true - - turbo-darwin-arm64@2.4.0: - optional: true - - turbo-darwin-arm64@2.4.2: - optional: true - - turbo-linux-64@2.4.0: - optional: true - - turbo-linux-64@2.4.2: - optional: true - - turbo-linux-arm64@2.4.0: - optional: true - - turbo-linux-arm64@2.4.2: - optional: true - - turbo-windows-64@2.4.0: - optional: true - - turbo-windows-64@2.4.2: - optional: true - - turbo-windows-arm64@2.4.0: - optional: true - - turbo-windows-arm64@2.4.2: - optional: true - - turbo@2.4.0: - optionalDependencies: - turbo-darwin-64: 2.4.0 - turbo-darwin-arm64: 2.4.0 - turbo-linux-64: 2.4.0 - turbo-linux-arm64: 2.4.0 - turbo-windows-64: 2.4.0 - turbo-windows-arm64: 2.4.0 - - turbo@2.4.2: - optionalDependencies: - turbo-darwin-64: 2.4.2 - turbo-darwin-arm64: 2.4.2 - turbo-linux-64: 2.4.2 - turbo-linux-arm64: 2.4.2 - turbo-windows-64: 2.4.2 - turbo-windows-arm64: 2.4.2 - - tweetnacl-util@0.15.1: {} - - tweetnacl@1.0.3: {} - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-detect@4.0.8: {} - - type-fest@0.20.2: {} - - type-fest@0.21.3: {} - - type-fest@0.6.0: {} - - type-fest@0.8.1: {} - - type-fest@4.34.1: {} - - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.3 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.4 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.4 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.4 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - - typescript@4.9.5: {} - - typescript@5.4.2: {} - - typescript@5.7.3: {} - - ufo@1.5.3: {} - - ufo@1.5.4: {} - - ultrahtml@1.5.3: {} - - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.3 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - - uncrypto@0.1.3: {} - - unctx@2.4.1: - dependencies: - acorn: 8.14.0 - estree-walker: 3.0.3 - magic-string: 0.30.17 - unplugin: 2.1.2 - - undici-types@6.19.8: {} - - unenv@1.10.0: - dependencies: - consola: 3.4.0 - defu: 6.1.4 - mime: 3.0.0 - node-fetch-native: 1.6.6 - pathe: 1.1.2 - - unhead@1.11.18: - dependencies: - '@unhead/dom': 1.11.18 - '@unhead/schema': 1.11.18 - '@unhead/shared': 1.11.18 - hookable: 5.5.3 - - unicorn-magic@0.3.0: {} - - unimport@3.14.6(rollup@4.34.6): - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.6) - acorn: 8.14.0 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - fast-glob: 3.3.3 - local-pkg: 1.0.0 - magic-string: 0.30.17 - mlly: 1.7.4 - pathe: 2.0.2 - picomatch: 4.0.2 - pkg-types: 1.3.1 - scule: 1.3.0 - strip-literal: 2.1.1 - unplugin: 1.16.1 - transitivePeerDependencies: - - rollup - - unimport@4.1.0: - dependencies: - acorn: 8.14.0 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - fast-glob: 3.3.3 - local-pkg: 1.0.0 - magic-string: 0.30.17 - mlly: 1.7.4 - pathe: 2.0.2 - picomatch: 4.0.2 - pkg-types: 1.3.1 - scule: 1.3.0 - strip-literal: 3.0.0 - unplugin: 2.1.2 - unplugin-utils: 0.2.3 - - universalify@0.1.2: {} - - universalify@2.0.1: {} - - unplugin-utils@0.2.3: - dependencies: - pathe: 2.0.2 - picomatch: 4.0.2 - - unplugin-vue-router@0.11.2(rollup@4.34.6)(vue-router@4.5.0(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3)): - dependencies: - '@babel/types': 7.26.8 - '@rollup/pluginutils': 5.1.4(rollup@4.34.6) - '@vue-macros/common': 1.16.1(vue@3.5.13(typescript@5.7.3)) - ast-walker-scope: 0.6.2 - chokidar: 3.6.0 - fast-glob: 3.3.3 - json5: 2.2.3 - local-pkg: 1.0.0 - magic-string: 0.30.17 - mlly: 1.7.4 - pathe: 2.0.2 - scule: 1.3.0 - unplugin: 2.1.2 - yaml: 2.7.0 - optionalDependencies: - vue-router: 4.5.0(vue@3.5.13(typescript@5.7.3)) - transitivePeerDependencies: - - rollup - - vue - - unplugin@1.16.1: - dependencies: - acorn: 8.14.0 - webpack-virtual-modules: 0.6.2 - - unplugin@2.1.2: - dependencies: - acorn: 8.14.0 - webpack-virtual-modules: 0.6.2 - - unstorage@1.14.4(db0@0.2.3)(ioredis@5.5.0): - dependencies: - anymatch: 3.1.3 - chokidar: 3.6.0 - destr: 2.0.3 - h3: 1.15.0 - lru-cache: 10.4.3 - node-fetch-native: 1.6.6 - ofetch: 1.4.1 - ufo: 1.5.4 - optionalDependencies: - db0: 0.2.3 - ioredis: 5.5.0 - - untun@0.1.3: - dependencies: - citty: 0.1.6 - consola: 3.4.0 - pathe: 1.1.2 - - untyped@1.5.2: - dependencies: - '@babel/core': 7.26.8 - '@babel/standalone': 7.26.8 - '@babel/types': 7.26.8 - citty: 0.1.6 - defu: 6.1.4 - jiti: 2.4.2 - knitwork: 1.2.0 - scule: 1.3.0 - transitivePeerDependencies: - - supports-color - - unwasm@0.3.9: - dependencies: - knitwork: 1.2.0 - magic-string: 0.30.17 - mlly: 1.7.4 - pathe: 1.1.2 - pkg-types: 1.3.1 - unplugin: 1.16.1 - - update-browserslist-db@1.1.2(browserslist@4.24.4): - dependencies: - browserslist: 4.24.4 - escalade: 3.2.0 - picocolors: 1.1.1 - - uqr@0.1.2: {} - - uri-js-replace@1.0.1: {} - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - urlpattern-polyfill@8.0.2: {} - - use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1): - dependencies: - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): - dependencies: - detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - utf-8-validate@5.0.10: - dependencies: - node-gyp-build: 4.8.4 - optional: true - - util-deprecate@1.0.2: {} - - uuid@8.3.2: {} - - uuid@9.0.1: {} - - v8-compile-cache@2.4.0: {} - - v8-to-istanbul@9.3.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - - validator@13.12.0: {} - - vary@1.1.2: {} - - vite-hot-client@0.2.4(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)): - dependencies: - vite: 6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) - - vite-node@3.0.5(@types/node@20.17.17)(terser@5.38.1): - dependencies: - cac: 6.7.14 - debug: 4.4.0(supports-color@9.4.0) - es-module-lexer: 1.6.0 - pathe: 2.0.2 - vite: 5.3.6(@types/node@20.17.17)(terser@5.38.1) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite-plugin-checker@0.8.0(eslint@8.57.1)(optionator@0.9.4)(typescript@5.7.3)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)): - dependencies: - '@babel/code-frame': 7.26.2 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - chokidar: 3.6.0 - commander: 8.3.0 - fast-glob: 3.3.3 - fs-extra: 11.3.0 - npm-run-path: 4.0.1 - strip-ansi: 6.0.1 - tiny-invariant: 1.3.3 - vite: 6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) - vscode-languageclient: 7.0.0 - vscode-languageserver: 7.0.0 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - optionalDependencies: - eslint: 8.57.1 - optionator: 0.9.4 - typescript: 5.7.3 - - vite-plugin-compression@0.5.1(vite@5.3.6(@types/node@20.17.17)(terser@5.38.1)): - dependencies: - chalk: 4.1.2 - debug: 4.4.0(supports-color@9.4.0) - fs-extra: 10.1.0 - vite: 5.3.6(@types/node@20.17.17)(terser@5.38.1) - transitivePeerDependencies: - - supports-color - - vite-plugin-css-injected-by-js@3.5.2(vite@5.3.6(@types/node@20.17.17)(terser@5.38.1)): - dependencies: - vite: 5.3.6(@types/node@20.17.17)(terser@5.38.1) - - vite-plugin-dts@3.9.1(@types/node@20.17.17)(rollup@4.34.6)(typescript@4.9.5)(vite@5.3.6(@types/node@20.17.17)(terser@5.38.1)): - dependencies: - '@microsoft/api-extractor': 7.43.0(@types/node@20.17.17) - '@rollup/pluginutils': 5.1.4(rollup@4.34.6) - '@vue/language-core': 1.8.27(typescript@4.9.5) - debug: 4.4.0(supports-color@9.4.0) - kolorist: 1.8.0 - magic-string: 0.30.17 - typescript: 4.9.5 - vue-tsc: 1.8.27(typescript@4.9.5) - optionalDependencies: - vite: 5.3.6(@types/node@20.17.17)(terser@5.38.1) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - - vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)): - dependencies: - '@rollup/pluginutils': 4.2.1 - '@types/eslint': 8.56.12 - eslint: 8.57.1 - rollup: 2.79.2 - vite: 6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) - - vite-plugin-inspect@0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.34.6)(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)): - dependencies: - '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.1.4(rollup@4.34.6) - debug: 4.4.0(supports-color@9.4.0) - error-stack-parser-es: 0.1.5 - fs-extra: 11.3.0 - open: 10.1.0 - perfect-debounce: 1.0.0 - picocolors: 1.1.1 - sirv: 3.0.0 - vite: 6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) - optionalDependencies: - '@nuxt/kit': 3.15.4(magicast@0.3.5) - transitivePeerDependencies: - - rollup - - supports-color - - vite-plugin-vue-inspector@5.3.1(vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)): - dependencies: - '@babel/core': 7.26.8 - '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.8) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.8) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.8) - '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.8) - '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.8) - '@vue/compiler-dom': 3.5.13 - kolorist: 1.8.0 - magic-string: 0.30.17 - vite: 6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - - vite@5.3.6(@types/node@20.17.17)(terser@5.38.1): - dependencies: - esbuild: 0.21.5 - postcss: 8.5.1 - rollup: 4.34.6 - optionalDependencies: - '@types/node': 20.17.17 - fsevents: 2.3.3 - terser: 5.38.1 - - vite@6.1.0(@types/node@20.17.17)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0): - dependencies: - esbuild: 0.24.2 - postcss: 8.5.1 - rollup: 4.34.6 - optionalDependencies: - '@types/node': 20.17.17 - fsevents: 2.3.3 - jiti: 2.4.2 - terser: 5.38.1 - yaml: 2.7.0 - - vscode-jsonrpc@6.0.0: {} - - vscode-languageclient@7.0.0: - dependencies: - minimatch: 3.1.2 - semver: 7.7.1 - vscode-languageserver-protocol: 3.16.0 - - vscode-languageserver-protocol@3.16.0: - dependencies: - vscode-jsonrpc: 6.0.0 - vscode-languageserver-types: 3.16.0 - - vscode-languageserver-textdocument@1.0.12: {} - - vscode-languageserver-types@3.16.0: {} - - vscode-languageserver@7.0.0: - dependencies: - vscode-languageserver-protocol: 3.16.0 - - vscode-uri@3.1.0: {} - - vue-bundle-renderer@2.1.1: - dependencies: - ufo: 1.5.4 - - vue-demi@0.14.10(vue@3.5.13(typescript@5.7.3)): - dependencies: - vue: 3.5.13(typescript@5.7.3) - - vue-devtools-stub@0.1.0: {} - - vue-eslint-parser@9.4.3(eslint@8.57.1): - dependencies: - debug: 4.4.0(supports-color@9.4.0) - eslint: 8.57.1 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - lodash: 4.17.21 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - vue-router@4.5.0(vue@3.5.13(typescript@5.7.3)): - dependencies: - '@vue/devtools-api': 6.6.4 - vue: 3.5.13(typescript@5.7.3) - - vue-template-compiler@2.7.16: - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - - vue-tsc@1.8.27(typescript@4.9.5): - dependencies: - '@volar/typescript': 1.11.1 - '@vue/language-core': 1.8.27(typescript@4.9.5) - semver: 7.7.1 - typescript: 4.9.5 - - vue-tsc@2.2.0(typescript@4.9.5): - dependencies: - '@volar/typescript': 2.4.11 - '@vue/language-core': 2.2.0(typescript@4.9.5) - typescript: 4.9.5 - - vue@3.5.13(typescript@4.9.5): - dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-sfc': 3.5.13 - '@vue/runtime-dom': 3.5.13 - '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@4.9.5)) - '@vue/shared': 3.5.13 - optionalDependencies: - typescript: 4.9.5 - - vue@3.5.13(typescript@5.7.3): - dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-sfc': 3.5.13 - '@vue/runtime-dom': 3.5.13 - '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.3)) - '@vue/shared': 3.5.13 - optionalDependencies: - typescript: 5.7.3 - - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - - watchpack@2.4.2: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - - webextension-polyfill-ts@0.25.0: - dependencies: - webextension-polyfill: 0.7.0 - - webextension-polyfill@0.12.0: {} - - webextension-polyfill@0.7.0: {} - - webidl-conversions@3.0.1: {} - - webidl-conversions@4.0.2: {} - - webpack-sources@3.2.3: {} - - webpack-virtual-modules@0.6.2: {} - - webpack@5.97.1: - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.6 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.0 - browserslist: 4.24.4 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.1 - es-module-lexer: 1.6.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(webpack@5.97.1) - watchpack: 2.4.2 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - whatwg-url@7.1.0: - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.3 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.18 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - - which-typed-array@1.1.18: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.3 - for-each: 0.3.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - which@3.0.1: - dependencies: - isexe: 2.0.0 - - word-wrap@1.2.5: {} - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - - wrappy@1.0.2: {} - - write-file-atomic@4.0.2: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - - ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10): - optionalDependencies: - bufferutil: 4.0.9 - utf-8-validate: 5.0.10 - - ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): - optionalDependencies: - bufferutil: 4.0.9 - utf-8-validate: 5.0.10 - - xml-name-validator@4.0.0: {} - - y18n@5.0.8: {} - - yallist@3.1.1: {} - - yallist@4.0.0: {} - - yallist@5.0.0: {} - - yaml-ast-parser@0.0.43: {} - - yaml@1.10.2: {} - - yaml@2.7.0: {} - - yargs-parser@21.1.1: {} - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - ylru@1.4.0: {} - - yocto-queue@0.1.0: {} - - z-schema@5.0.5: - dependencies: - lodash.get: 4.4.2 - lodash.isequal: 4.5.0 - validator: 13.12.0 - optionalDependencies: - commander: 9.5.0 - - zhead@2.2.4: {} - - zip-stream@6.0.1: - dependencies: - archiver-utils: 5.0.2 - compress-commons: 6.0.2 - readable-stream: 4.7.0 From 21bbbfe86a8c03e8ec4d23638b7157fe39cd98e4 Mon Sep 17 00:00:00 2001 From: Blake Zimmerman Date: Wed, 5 Feb 2025 13:06:55 -0500 Subject: [PATCH 3/7] Change postcss to CommonJS --- apps/nextjs-example/src/app/swap/page.tsx | 4 + packages/wallet-adapter-swap/.env | 0 packages/wallet-adapter-swap/package.json | 14 +- .../wallet-adapter-swap/postcss.config.js | 3 + .../wallet-adapter-swap/postcss.config.mjs | 9 - .../wallet-adapter-swap/src/MultiChain.tsx | 464 ++++++++++++++---- .../src/{ => components}/ChainSelect.tsx | 46 +- .../src/components/Spinner.tsx | 0 .../walletSelector/aptos}/WalletSelector.tsx | 22 +- .../ethereum}/EthereumWalletItem.tsx | 0 .../ethereum}/EthereumWalletSelector.tsx | 23 +- .../solana}/SolanaWalletItem.tsx | 0 .../solana}/SolanaWalletSelector.tsx | 24 +- packages/wallet-adapter-swap/src/config.json | 0 .../wallet-adapter-swap/src/icons/Aptos.tsx | 14 + .../src/icons/Ethereum.tsx | 60 ++- .../src/{ => signer}/AptosSigner.ts | 64 ++- .../src/{ => signer}/EthereumSigner.ts | 3 +- .../src/{ => signer}/Signer.ts | 8 +- .../src/{ => signer}/SolanaSigner.ts | 0 packages/wallet-adapter-swap/src/utils.tsx | 201 -------- .../src/utils/chains/mainnet/index.ts | 45 ++ .../src/utils/chains/testnet/index.ts | 66 +++ .../wallet-adapter-swap/src/utils/index.ts | 4 + .../wallet-adapter-swap/src/utils/logger.ts | 17 + .../src/utils/tokens/mainnet.ts | 43 ++ .../src/utils/tokens/testnet.ts | 40 ++ packages/wallet-adapter-swap/tsconfig.json | 3 +- 28 files changed, 764 insertions(+), 413 deletions(-) create mode 100644 packages/wallet-adapter-swap/.env create mode 100644 packages/wallet-adapter-swap/postcss.config.js delete mode 100644 packages/wallet-adapter-swap/postcss.config.mjs rename packages/wallet-adapter-swap/src/{ => components}/ChainSelect.tsx (66%) create mode 100644 packages/wallet-adapter-swap/src/components/Spinner.tsx rename packages/wallet-adapter-swap/src/{ => components/walletSelector/aptos}/WalletSelector.tsx (95%) rename packages/wallet-adapter-swap/src/{ => components/walletSelector/ethereum}/EthereumWalletItem.tsx (100%) rename packages/wallet-adapter-swap/src/{ => components/walletSelector/ethereum}/EthereumWalletSelector.tsx (89%) rename packages/wallet-adapter-swap/src/{ => components/walletSelector/solana}/SolanaWalletItem.tsx (100%) rename packages/wallet-adapter-swap/src/{ => components/walletSelector/solana}/SolanaWalletSelector.tsx (88%) create mode 100644 packages/wallet-adapter-swap/src/config.json create mode 100644 packages/wallet-adapter-swap/src/icons/Aptos.tsx rename packages/wallet-adapter-swap/src/{ => signer}/AptosSigner.ts (63%) rename packages/wallet-adapter-swap/src/{ => signer}/EthereumSigner.ts (92%) rename packages/wallet-adapter-swap/src/{ => signer}/Signer.ts (92%) rename packages/wallet-adapter-swap/src/{ => signer}/SolanaSigner.ts (100%) delete mode 100644 packages/wallet-adapter-swap/src/utils.tsx create mode 100644 packages/wallet-adapter-swap/src/utils/chains/mainnet/index.ts create mode 100644 packages/wallet-adapter-swap/src/utils/chains/testnet/index.ts create mode 100644 packages/wallet-adapter-swap/src/utils/index.ts create mode 100644 packages/wallet-adapter-swap/src/utils/logger.ts create mode 100644 packages/wallet-adapter-swap/src/utils/tokens/mainnet.ts create mode 100644 packages/wallet-adapter-swap/src/utils/tokens/testnet.ts diff --git a/apps/nextjs-example/src/app/swap/page.tsx b/apps/nextjs-example/src/app/swap/page.tsx index 0fab48c0..ecaeba8f 100644 --- a/apps/nextjs-example/src/app/swap/page.tsx +++ b/apps/nextjs-example/src/app/swap/page.tsx @@ -2,6 +2,10 @@ import { MultiChain } from "@aptos-labs/wallet-adapter-swap"; import "@aptos-labs/wallet-adapter-swap/dist/index.css"; +import { Ed25519PrivateKey, Account } from "@aptos-labs/ts-sdk"; + +const privateKey = new Ed25519PrivateKey(""); +const sponsorAccount = Account.fromPrivateKey({ privateKey }); export default function Swap() { return ; diff --git a/packages/wallet-adapter-swap/.env b/packages/wallet-adapter-swap/.env new file mode 100644 index 00000000..e69de29b diff --git a/packages/wallet-adapter-swap/package.json b/packages/wallet-adapter-swap/package.json index 9928684a..bb5aa08d 100644 --- a/packages/wallet-adapter-swap/package.json +++ b/packages/wallet-adapter-swap/package.json @@ -53,9 +53,13 @@ "tsup": "^5.10.1", "typescript": "^4.5.3" }, - "dependencies": { - "@aptos-labs/ts-sdk": "^1.33.2", + "peerDependencies": { + "@aptos-labs/ts-sdk": "^1.33.1", "@aptos-labs/wallet-adapter-core": "workspace:*", + "@aptos-labs/wallet-adapter-react": "workspace:*", + "react": "^18" + }, + "dependencies": { "@radix-ui/react-collapsible": "^1.0.3", "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-dropdown-menu": "^2.0.6", @@ -75,19 +79,13 @@ "@xlabs-libs/wallet-aggregator-core": "^0.0.1-alpha.22", "@xlabs-libs/wallet-aggregator-evm": "0.0.2-alpha.5", "@xlabs-libs/wallet-aggregator-solana": "0.0.1-alpha.15", - "aptos": "link:@wormhole-foundation/sdk/aptos", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "ethers": "^6.4.2", "lucide-react": "^0.383.0", - "solana": "link:@wormhole-foundation/sdk/solana", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7" }, - "peerDependencies": { - "@aptos-labs/wallet-adapter-react": "workspace:*", - "react": "^18" - }, "files": [ "dist", "src", diff --git a/packages/wallet-adapter-swap/postcss.config.js b/packages/wallet-adapter-swap/postcss.config.js new file mode 100644 index 00000000..dd07c71e --- /dev/null +++ b/packages/wallet-adapter-swap/postcss.config.js @@ -0,0 +1,3 @@ +module.exports = { + plugins: [require("tailwindcss")(), require("autoprefixer")()], +}; diff --git a/packages/wallet-adapter-swap/postcss.config.mjs b/packages/wallet-adapter-swap/postcss.config.mjs deleted file mode 100644 index 2ef30fcf..00000000 --- a/packages/wallet-adapter-swap/postcss.config.mjs +++ /dev/null @@ -1,9 +0,0 @@ -/** @type {import('postcss-load-config').Config} */ -const config = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; - -export default config; diff --git a/packages/wallet-adapter-swap/src/MultiChain.tsx b/packages/wallet-adapter-swap/src/MultiChain.tsx index 4cb71311..a984573e 100644 --- a/packages/wallet-adapter-swap/src/MultiChain.tsx +++ b/packages/wallet-adapter-swap/src/MultiChain.tsx @@ -1,8 +1,8 @@ import "./global.css"; -import { Card, CardContent } from "./ui/card"; -import { WalletSelector } from "./WalletSelector"; -import { Button } from "./ui/button"; -import { useEffect, useState } from "react"; +import { FC, useEffect, useState } from "react"; +import { useWallet } from "@aptos-labs/wallet-adapter-react"; +import { CircleAlert, Loader2, MoveDown } from "lucide-react"; +import { Ed25519Account, Network as AptosNetwork } from "@aptos-labs/ts-sdk"; import { chainToPlatform, routes, @@ -18,46 +18,55 @@ import { amount as amountUtils, } from "@wormhole-foundation/sdk"; import { chainToIcon } from "@wormhole-foundation/sdk-icons"; +import { Wallet } from "@xlabs-libs/wallet-aggregator-core"; import aptos from "@wormhole-foundation/sdk/aptos"; import solana from "@wormhole-foundation/sdk/solana"; import evm from "@wormhole-foundation/sdk/evm"; -import { SolanaWalletSelector } from "./SolanaWalletSelector"; -import { SolanaWallet } from "@xlabs-libs/wallet-aggregator-solana"; -import { AptosWallet } from "@xlabs-libs/wallet-aggregator-aptos"; +import { Card, CardContent } from "./ui/card"; +import { WalletSelector } from "./components/walletSelector/aptos/WalletSelector"; +import { Button } from "./ui/button"; +import { SolanaWalletSelector } from "./components/walletSelector/solana/SolanaWalletSelector"; import { AptosMainnetUSDCToken, AptosTestnetUSDCToken, mainnetChainTokens, testnetChainTokens, -} from "./utils"; -import { ChainSelect } from "./ChainSelect"; +} from "./utils/index"; +import { ChainSelect } from "./components/ChainSelect"; import { Input } from "./ui/input"; -import { Signer } from "./Signer"; -import { useWallet } from "@aptos-labs/wallet-adapter-react"; -import { AptosSigner } from "./AptosSigner"; -import { sleep } from "./SolanaSigner"; +import { Signer } from "./signer/Signer"; +import { AptosSigner } from "./signer/AptosSigner"; +import { sleep } from "./signer/SolanaSigner"; import { Progress } from "./ui/progress"; -import { EthereumWalletSelector } from "./EthereumWalletSelector"; -import { Wallet } from "@xlabs-libs/wallet-aggregator-core"; +import { EthereumWalletSelector } from "./components/walletSelector/ethereum/EthereumWalletSelector"; +import { AptosLogo } from "./icons/Aptos"; +import USDC from "./icons/USDC"; +import { logger } from "./utils/logger"; + +export interface MultiChainProps { + feePayerAccount?: Ed25519Account; + dappConfig: { network: AptosNetwork.MAINNET | AptosNetwork.TESTNET }; +} + +export const MultiChain: FC = ({ + feePayerAccount = undefined, + dappConfig, +}) => { + const isMainnet = dappConfig.network === AptosNetwork.MAINNET; + const chainToken = isMainnet ? mainnetChainTokens : testnetChainTokens; -export const MultiChain = () => { - const [sourceWalletAddress, setSourceWalletAddress] = useState( - null - ); + const aptosWalletContext = useWallet(); + const { wallet, account } = aptosWalletContext; const [sourceWallet, setSourceWallet] = useState(null); + const [selectedSourceChain, setSelectedSourceChain] = useState("Solana"); const [amount, setAmount] = useState("0"); - const [transactionReceipt, setTransactionReceipt] = - useState | null>(null); - - const [destinationWallet, setDestinationWallet] = - useState(null); - - const aptosWalletContext = useWallet(); - const { wallet, account, connected } = aptosWalletContext; + const [platform, setPlatform] = useState< + PlatformContext | undefined + >(undefined); const [cctpRequest, setCctpRequest] = useState< routes.RouteTransferRequest | undefined @@ -73,9 +82,17 @@ export const MultiChain = () => { | undefined >(undefined); - const [platform, setPlatform] = useState< - PlatformContext | undefined - >(undefined); + const [quote, setQuote] = useState, + any + > | null>(null); + + const [showQuote, setShowQuote] = useState(false); + const [quoteAmount, setQuoteAmount] = useState(null); + + const [transactionReceipt, setTransactionReceipt] = + useState | null>(null); const [wormholeContext, setWormholeContext] = useState< Wormhole | undefined @@ -89,49 +106,146 @@ export const MultiChain = () => { const [startTime, setStartTime] = useState(null); const [transactionInitiated, setTransactionInitiated] = useState(false); + const [transactionSubmitted, setTransactionSubmitted] = useState(false); + + const [countdown, setCountdown] = useState({ minutes: 0, seconds: 0 }); + + const [invalidAmount, setInvalidAmount] = useState(false); + + const [transactionReadyToClaim, setTransactionReadyToClaim] = useState(false); + + const [transactionClaimed, setTransactionClaimed] = useState(false); + + const [wormholeTransactionId, setWormholeTransactionId] = useState< + string | undefined + >(undefined); + + const [isCountdownComplete, setIsCountdownComplete] = useState(false); + + const onSetAmount = (amount: string) => { + if (!cctpRoute) { + throw new Error("Route is not initialized"); + } + if (!cctpRequest) { + throw new Error("Request is not initialized"); + } + setAmount(amount); + setQuoteAmount(null); + setTimeout(async () => { + setQuoteAmount(amount); + // TODO what is nativeGas for? + const transferParams = { amount, options: { nativeGas: 0 } }; + + const validated = await cctpRoute.validate(cctpRequest, transferParams); + if (!validated.valid) { + logger.log("invalid", validated.valid); + throw validated.error; + } + const quote = await cctpRoute.quote(cctpRequest, validated.params); + if (!quote.success) { + logger.log("quote failed", quote.success); + throw quote.error; + } + + logger.log("quote", quote); + setQuote(quote); + setTransactionETA(Math.ceil((quote.eta ?? 0) / 1000) * 1000); + setShowQuote(true); + }, 800); + }; + + const humanReadableETA = (milliseconds: number): string => { + if (milliseconds >= 60000) { + const minutes = Math.floor(milliseconds / 60000); + return `${minutes} minute${minutes > 1 ? "s" : ""}`; + } else { + const seconds = Math.floor(milliseconds / 1000); + return `${seconds} second${seconds > 1 ? "s" : ""}`; + } + }; useEffect(() => { if (!startTime || !transactionETA) return; - const interval = setInterval(() => { + const updateCountdown = () => { const elapsed = Date.now() - startTime; + const remainingTime = Math.max(transactionETA - elapsed, 0); // Ensure non-negative + const minutes = Math.floor(remainingTime / 60000); + const seconds = Math.floor((remainingTime % 60000) / 1000); + + setCountdown({ minutes, seconds }); + const progressPercent = Math.min((elapsed / transactionETA) * 100, 100); setProgress(progressPercent); + if (remainingTime === 0) { + setIsCountdownComplete(true); + clearInterval(interval); + } + if (progressPercent >= 100) { clearInterval(interval); } - }, 100); // Update every 100ms for smooth animation + }; + + updateCountdown(); // Initialize immediately + const interval = setInterval(updateCountdown, 1000); // Update every second return () => clearInterval(interval); }, [startTime, transactionETA]); + useEffect(() => { + if (!sourceWalletUSDCBalance || !amount) { + return; + } + + const parsedAmount = amountUtils.parse( + amount, + chainToken[selectedSourceChain].decimals + ); + + if ( + amountUtils.units(parsedAmount) > + amountUtils.units(sourceWalletUSDCBalance) + ) { + setInvalidAmount(true); + } else { + setInvalidAmount(false); + } + }, [sourceWalletUSDCBalance, amount]); + useEffect(() => { const initializeRoute = async () => { - const wh = await wormhole("Testnet", [solana, aptos, evm]); + const wh = await wormhole(isMainnet ? "Mainnet" : "Testnet", [ + solana, + aptos, + evm, + ]); setWormholeContext(wh); const platform = wh.getPlatform(chainToPlatform(selectedSourceChain)); setPlatform(platform); - console.log("selectedSourceChain", selectedSourceChain); const sourceToken: TokenId = Wormhole.tokenId( - testnetChainTokens[selectedSourceChain].tokenId.chain as Chain, - testnetChainTokens[selectedSourceChain].tokenId.address + chainToken[selectedSourceChain].tokenId.chain as Chain, + chainToken[selectedSourceChain].tokenId.address ); + const aptosChainToken = isMainnet + ? AptosMainnetUSDCToken + : AptosTestnetUSDCToken; const destToken: TokenId = Wormhole.tokenId( - AptosTestnetUSDCToken.USDCapt.tokenId.chain as Chain, - AptosTestnetUSDCToken.USDCapt.tokenId.address + aptosChainToken.tokenId.chain as Chain, + aptosChainToken.tokenId.address ); const sourceContext = wh .getPlatform(chainToPlatform(selectedSourceChain)) .getChain(selectedSourceChain); - console.log("sourceContext", sourceContext); + logger.log("sourceContext", sourceContext); const destContext = wh .getPlatform(chainToPlatform("Aptos")) .getChain("Aptos"); + logger.log("destContext", destContext); - // create request const req = await routes.RouteTransferRequest.create( wh, { @@ -141,16 +255,16 @@ export const MultiChain = () => { sourceContext, destContext ); - console.log("req", req); + setCctpRequest(req); - // create new resolver, passing the set of routes to consider + const resolver = wh.resolver([ routes.CCTPRoute, // manual CCTP ]); - console.log("resolver", resolver); + const route = await resolver.findRoutes(req); - console.log("route", route); const cctpRoute = route[0]; + logger.log("cctpRoute", cctpRoute); setCctpRoute(cctpRoute); }; @@ -162,6 +276,9 @@ export const MultiChain = () => { if (!wormholeContext) { return; } + if (!sourceWallet) { + return; + } try { const platform = wormholeContext.getPlatform( @@ -172,15 +289,15 @@ export const MultiChain = () => { const result = await platform .utils() .getBalances(selectedSourceChain, rpc, sourceWallet?.getAddress()!, [ - testnetChainTokens[selectedSourceChain].tokenId.address, + chainToken[selectedSourceChain].tokenId.address, ]); const currentAmount = - result[testnetChainTokens[selectedSourceChain].tokenId.address]; + result[chainToken[selectedSourceChain].tokenId.address]; const usdcBalance = amountUtils.fromBaseUnits( currentAmount ?? BigInt(0), - testnetChainTokens[selectedSourceChain].decimals + chainToken[selectedSourceChain].decimals ); return usdcBalance; @@ -221,42 +338,40 @@ export const MultiChain = () => { throw new Error("Request is not initialized"); } - // TODO what is nativeGas for? - const transferParams = { amount, options: { nativeGas: 0 } }; - - //const cctpRoute = route[0]; - const validated = await cctpRoute.validate(cctpRequest, transferParams); - if (!validated.valid) { - console.log("invalid", validated.valid); - throw validated.error; + if (!account?.address) { + throw new Error("Destination wallet is undefined"); } - const quote = await cctpRoute.quote(cctpRequest, validated.params); - if (!quote.success) { - console.log("quote failed", quote.success); - throw quote.error; + + if (!quote) { + throw new Error("Quote is not initialized"); } + const signer = new Signer( selectedSourceChain, sourceWallet.getAddress()!, {}, sourceWallet ); - console.log("quote", quote); - setProgress(0); // Reset progress - setTransactionETA(quote.eta ?? 0); - setStartTime(Date.now()); // Start the timer + // initiate transfer setTransactionInitiated(true); let receipt = await cctpRoute.initiate( cctpRequest, signer, quote, - Wormhole.chainAddress( - "Aptos", - "0x4bc9014919924c620b0b3cc370af637cb0aee3f73a0a525a28fe7e7a376338bc" - ) + Wormhole.chainAddress("Aptos", account?.address) ); - console.log("Initiated transfer with receipt: ", receipt); + logger.log("Initiated transfer with receipt: ", receipt); + + setTransactionSubmitted(true); + setStartTime(Date.now()); // Start the timer + + // The txn hash that shows up on solana and wormhole explorer + const txId = + "originTxs" in receipt + ? receipt.originTxs[receipt.originTxs.length - 1].txid + : undefined; + setWormholeTransactionId(txId); let retries = 0; const maxRetries = 5; @@ -267,7 +382,8 @@ export const MultiChain = () => { for await (receipt of cctpRoute.track(receipt, 120 * 1000)) { if (receipt.state >= TransferState.SourceInitiated) { setTransactionReceipt(receipt); - console.log("Receipt is on track ", receipt); + setTransactionReadyToClaim(true); + logger.log("Receipt is on track ", receipt); return; } } @@ -276,6 +392,7 @@ export const MultiChain = () => { `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`, e ); + // Error: Circle chain id not found for Testnet Ethereum const delay = baseDelay * Math.pow(2, retries); // Exponential backoff await sleep(delay); retries++; @@ -300,12 +417,14 @@ export const MultiChain = () => { "Aptos", account?.address!, {}, - aptosWalletContext + aptosWalletContext, + feePayerAccount ); if (routes.isManual(cctpRoute)) { const receipt = await cctpRoute.complete(signer, transactionReceipt); - console.log("Claim receipt: ", receipt); + logger.log("Claim receipt: ", receipt); + setTransactionClaimed(true); } else { // Should be unreachable return undefined; @@ -314,51 +433,56 @@ export const MultiChain = () => { return (
- - + + {/*From*/}
-
+

From:

- + {selectedSourceChain === "Solana" ? ( + + ) : ( + + )}

{/*To*/}
-
+

To:

- +

-
- setAmount(e.target.value)} /> + onSetAmount(e.target.value)} + />
{
- - {/* {transactionInitiated && } */} - - {transactionReceipt && } + {invalidAmount && ( +

+ Amount is greater than the balance of the source wallet +

+ )} + {showQuote && quoteAmount && !invalidAmount && ( + + +
+
+ +
+
+ {selectedSourceChain} +
+
+

-{quoteAmount} USDC

+
+
+
+ +
+
+
+ +
+
+ Aptos +
+
+

+{quoteAmount} USDC

+
+
+
+
+

via Wormhole

+
+

~{humanReadableETA(transactionETA)}

+
+
+ +
+

This transfer requires two transactions.

+

You will need to make two wallet approvals.

+
+
+
+
+ )} + + {!transactionInitiated && ( + + )} + + {transactionInitiated && !transactionSubmitted && ( +
+

Submitting transaction

+ +
+ )} + + {transactionInitiated && transactionSubmitted && ( +
+

Transaction submitted, begin transfer

+ {wormholeTransactionId && ( + +

View on Wormholescan

+
+ )} + {!isCountdownComplete && ( + <> +

+ ETA: {humanReadableETA(transactionETA)} +

+

+ {countdown.minutes}:{countdown.seconds} +

+ + + )} +
+ )} + + {transactionReadyToClaim && ( +
+

Ready to claim on Aptos

+ +
+ )}
diff --git a/packages/wallet-adapter-swap/src/ChainSelect.tsx b/packages/wallet-adapter-swap/src/components/ChainSelect.tsx similarity index 66% rename from packages/wallet-adapter-swap/src/ChainSelect.tsx rename to packages/wallet-adapter-swap/src/components/ChainSelect.tsx index 9f9785e6..78735efe 100644 --- a/packages/wallet-adapter-swap/src/ChainSelect.tsx +++ b/packages/wallet-adapter-swap/src/components/ChainSelect.tsx @@ -1,13 +1,18 @@ import * as React from "react"; import { ChevronDown, ExternalLink } from "lucide-react"; -import { Button } from "./ui/button"; +import { Button } from "../ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from "./ui/dropdown-menu"; -import { mainnetChains, mainnetChainTokens } from "./utils"; +} from "../ui/dropdown-menu"; +import { + mainnetChains, + mainnetChainTokens, + testnetChains, + testnetChainTokens, +} from "../utils/index"; import { chainToIcon } from "@wormhole-foundation/sdk-icons"; import { truncateAddress } from "@aptos-labs/wallet-adapter-react"; import { Chain } from "@wormhole-foundation/sdk/dist/cjs"; @@ -15,9 +20,11 @@ import { Chain } from "@wormhole-foundation/sdk/dist/cjs"; export function ChainSelect({ setSelectedSourceChain, selectedSourceChain, + isMainnet, }: { setSelectedSourceChain: (chain: Chain) => void; selectedSourceChain: Chain; + isMainnet: boolean; }) { const [selectedItem, setSelectedItem] = React.useState(selectedSourceChain); @@ -27,10 +34,14 @@ export function ChainSelect({ setSelectedSourceChain(chain as Chain); }; + const chains = isMainnet ? mainnetChains : testnetChains; + + const chainTokens = isMainnet ? mainnetChainTokens : testnetChainTokens; + return ( - - - {Object.values(mainnetChains).map((item, index) => ( + + {Object.values(chains).map((chain, index) => ( - onSelectedSourceChainChangeClicked(item.displayName) + onSelectedSourceChainChangeClicked(chain.displayName) } - className="flex items-center justify-between" > -
- {item.key} -
-
+ {chain.key} + diff --git a/packages/wallet-adapter-swap/src/components/Spinner.tsx b/packages/wallet-adapter-swap/src/components/Spinner.tsx new file mode 100644 index 00000000..e69de29b diff --git a/packages/wallet-adapter-swap/src/WalletSelector.tsx b/packages/wallet-adapter-swap/src/components/walletSelector/aptos/WalletSelector.tsx similarity index 95% rename from packages/wallet-adapter-swap/src/WalletSelector.tsx rename to packages/wallet-adapter-swap/src/components/walletSelector/aptos/WalletSelector.tsx index 8225fd48..006ad933 100644 --- a/packages/wallet-adapter-swap/src/WalletSelector.tsx +++ b/packages/wallet-adapter-swap/src/components/walletSelector/aptos/WalletSelector.tsx @@ -21,28 +21,34 @@ import { User, } from "lucide-react"; import { useCallback, useState } from "react"; -import { Button } from "./ui/button"; +import { Button } from "../../../ui/button"; import { Collapsible, CollapsibleContent, CollapsibleTrigger, -} from "./ui/collapsible"; +} from "../../../ui/collapsible"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger, -} from "./ui/dialog"; +} from "../../../ui/dialog"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from "./ui/dropdown-menu"; -import { useToast } from "./ui/use-toast"; +} from "../../../ui/dropdown-menu"; +import { useToast } from "../../../ui/use-toast"; -export function WalletSelector(walletSortingOptions: WalletSortingOptions) { +export function WalletSelector({ + walletSortingOptions, + transactionInProgress, +}: { + walletSortingOptions: WalletSortingOptions; + transactionInProgress: boolean; +}) { const { account, connected, disconnect, wallet } = useWallet(); const { toast } = useToast(); const [isDialogOpen, setIsDialogOpen] = useState(false); @@ -69,7 +75,7 @@ export function WalletSelector(walletSortingOptions: WalletSortingOptions) { return connected ? ( - @@ -97,7 +103,7 @@ export function WalletSelector(walletSortingOptions: WalletSortingOptions) { ) : ( - + diff --git a/packages/wallet-adapter-swap/src/EthereumWalletItem.tsx b/packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletItem.tsx similarity index 100% rename from packages/wallet-adapter-swap/src/EthereumWalletItem.tsx rename to packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletItem.tsx diff --git a/packages/wallet-adapter-swap/src/EthereumWalletSelector.tsx b/packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletSelector.tsx similarity index 89% rename from packages/wallet-adapter-swap/src/EthereumWalletSelector.tsx rename to packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletSelector.tsx index 5f90689e..688ac5f3 100644 --- a/packages/wallet-adapter-swap/src/EthereumWalletSelector.tsx +++ b/packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletSelector.tsx @@ -1,14 +1,14 @@ import { Copy, LogOut } from "lucide-react"; import { useCallback, useEffect, useState } from "react"; -import { Button } from "./ui/button"; -import { Dialog, DialogContent, DialogTrigger } from "./ui/dialog"; +import { Button } from "../../../ui/button"; +import { Dialog, DialogContent, DialogTrigger } from "../../../ui/dialog"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from "./ui/dropdown-menu"; -import { useToast } from "./ui/use-toast"; +} from "../../../ui/dropdown-menu"; +import { useToast } from "../../../ui/use-toast"; import { BinanceWallet, EVMWallet, @@ -28,11 +28,11 @@ const eip6963Wallets = Object.entries(Eip6963Wallets).reduce( ); export function EthereumWalletSelector({ - setSourceWalletAddress, setSourceWallet, + transactionInProgress, }: { - setSourceWalletAddress: (address: string | null) => void; setSourceWallet: (wallet: Wallet | null) => void; + transactionInProgress: boolean; }) { const [connected, setConnected] = useState(false); const [accountAddress, setAccountAddress] = useState( @@ -48,7 +48,6 @@ export function EthereumWalletSelector({ const onDisconnect = useCallback(async () => { await wallet?.disconnect(); setConnected(false); - setSourceWalletAddress(null); setSourceWallet(null); setAccountAddress(undefined); setWallet(undefined); @@ -74,7 +73,9 @@ export function EthereumWalletSelector({ return connected ? ( - + @@ -88,14 +89,13 @@ export function EthereumWalletSelector({ ) : ( - + @@ -107,7 +107,6 @@ interface ConnectWalletDialogProps { setAccountAddress: (address: string | undefined) => void; setConnected: (connected: boolean) => void; setWallet: (wallet: Eip6963Wallet | undefined) => void; - setSourceWalletAddress: (address: string | null) => void; setSourceWallet: (wallet: Eip6963Wallet | null) => void; } @@ -116,7 +115,6 @@ function ConnectWalletDialog({ setAccountAddress, setConnected, setWallet, - setSourceWalletAddress, setSourceWallet, }: ConnectWalletDialogProps) { const [wallets, setEthereumWallets] = useState([]); @@ -135,7 +133,6 @@ function ConnectWalletDialog({ setAccountAddress(wallet.getAddress()); setConnected(true); setWallet(wallet); - setSourceWalletAddress(wallet.getAddress() || null); setSourceWallet(wallet); close(); }, diff --git a/packages/wallet-adapter-swap/src/SolanaWalletItem.tsx b/packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletItem.tsx similarity index 100% rename from packages/wallet-adapter-swap/src/SolanaWalletItem.tsx rename to packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletItem.tsx diff --git a/packages/wallet-adapter-swap/src/SolanaWalletSelector.tsx b/packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletSelector.tsx similarity index 88% rename from packages/wallet-adapter-swap/src/SolanaWalletSelector.tsx rename to packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletSelector.tsx index 9358930a..0f3c23d4 100644 --- a/packages/wallet-adapter-swap/src/SolanaWalletSelector.tsx +++ b/packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletSelector.tsx @@ -1,14 +1,14 @@ import { Copy, LogOut } from "lucide-react"; import { useCallback, useEffect, useState } from "react"; -import { Button } from "./ui/button"; -import { Dialog, DialogContent, DialogTrigger } from "./ui/dialog"; +import { Button } from "../../../ui/button"; +import { Dialog, DialogContent, DialogTrigger } from "../../../ui/dialog"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from "./ui/dropdown-menu"; -import { useToast } from "./ui/use-toast"; +} from "../../../ui/dropdown-menu"; +import { useToast } from "../../../ui/use-toast"; import { getSolanaStandardWallets, SolanaWallet, @@ -19,11 +19,11 @@ import { SolanaWalletItem } from "./SolanaWalletItem"; import { truncateAddress } from "@aptos-labs/wallet-adapter-react"; export function SolanaWalletSelector({ - setSourceWalletAddress, setSourceWallet, + transactionInProgress, }: { - setSourceWalletAddress: (address: string | null) => void; setSourceWallet: (wallet: SolanaWallet | null) => void; + transactionInProgress: boolean; }) { const [connected, setConnected] = useState(false); const [accountAddress, setAccountAddress] = useState( @@ -39,7 +39,6 @@ export function SolanaWalletSelector({ const onDisconnect = useCallback(async () => { await wallet?.disconnect(); setConnected(false); - setSourceWalletAddress(null); setSourceWallet(null); setAccountAddress(undefined); setWallet(undefined); @@ -65,7 +64,9 @@ export function SolanaWalletSelector({ return connected ? ( - + @@ -79,14 +80,13 @@ export function SolanaWalletSelector({ ) : ( - + @@ -98,7 +98,6 @@ interface ConnectWalletDialogProps { setAccountAddress: (address: string | undefined) => void; setConnected: (connected: boolean) => void; setWallet: (wallet: SolanaWallet | undefined) => void; - setSourceWalletAddress: (address: string | null) => void; setSourceWallet: (wallet: SolanaWallet | null) => void; } @@ -107,7 +106,6 @@ function ConnectWalletDialog({ setAccountAddress, setConnected, setWallet, - setSourceWalletAddress, setSourceWallet, }: ConnectWalletDialogProps) { const [wallets, setSolanaWallets] = useState([]); @@ -123,7 +121,6 @@ function ConnectWalletDialog({ const wallets = await getSolanaStandardWallets( new Connection(connection) ); - console.log("solanaWallets wallets", wallets); setSolanaWallets(wallets); }; solanaWallets(); @@ -134,7 +131,6 @@ function ConnectWalletDialog({ setAccountAddress(wallet.getAddress()); setConnected(true); setWallet(wallet); - setSourceWalletAddress(wallet.getAddress() || null); setSourceWallet(wallet); close(); }, diff --git a/packages/wallet-adapter-swap/src/config.json b/packages/wallet-adapter-swap/src/config.json new file mode 100644 index 00000000..e69de29b diff --git a/packages/wallet-adapter-swap/src/icons/Aptos.tsx b/packages/wallet-adapter-swap/src/icons/Aptos.tsx new file mode 100644 index 00000000..4e2e3752 --- /dev/null +++ b/packages/wallet-adapter-swap/src/icons/Aptos.tsx @@ -0,0 +1,14 @@ +import { SVGProps } from "react"; + +export function AptosLogo(props: SVGProps) { + return ( + + + + ); +} diff --git a/packages/wallet-adapter-swap/src/icons/Ethereum.tsx b/packages/wallet-adapter-swap/src/icons/Ethereum.tsx index 9b2f96d2..e3a7b90c 100644 --- a/packages/wallet-adapter-swap/src/icons/Ethereum.tsx +++ b/packages/wallet-adapter-swap/src/icons/Ethereum.tsx @@ -5,20 +5,54 @@ export const EthereumIcon = forwardRef>( return ( - - - - - + + + + + + + + + + + + ); } diff --git a/packages/wallet-adapter-swap/src/AptosSigner.ts b/packages/wallet-adapter-swap/src/signer/AptosSigner.ts similarity index 63% rename from packages/wallet-adapter-swap/src/AptosSigner.ts rename to packages/wallet-adapter-swap/src/signer/AptosSigner.ts index f1adeb19..67d71988 100644 --- a/packages/wallet-adapter-swap/src/AptosSigner.ts +++ b/packages/wallet-adapter-swap/src/signer/AptosSigner.ts @@ -1,9 +1,13 @@ -import { Wallet } from "@xlabs-libs/wallet-aggregator-core"; import { AptosWallet } from "@xlabs-libs/wallet-aggregator-aptos"; import { + Account, + AccountAuthenticator, + AnyRawTransaction, Aptos, AptosConfig, Network as AptosNetwork, + Ed25519Account, + Ed25519PrivateKey, } from "@aptos-labs/ts-sdk"; import { @@ -26,17 +30,20 @@ export class AptosSigner _address: string; _options: any; _wallet: WalletContextState; + _feePayerAccount: Ed25519Account | undefined; constructor( chain: C, address: string, options: any, - wallet: WalletContextState + wallet: WalletContextState, + feePayerAccount: Ed25519Account | undefined ) { this._chain = chain; this._address = address; this._options = options; this._wallet = wallet; + this._feePayerAccount = feePayerAccount; } chain(): C { @@ -54,7 +61,8 @@ export class AptosSigner for (const tx of txs) { const txId = await signAndSendTransaction( tx as AptosUnsignedTransaction, - this._wallet + this._wallet, + this._feePayerAccount ); txHashes.push(txId); } @@ -63,11 +71,6 @@ export class AptosSigner } export function fetchOptions() { - // const aptosWalletConfig = { - // network: config.isMainnet - // ? ('mainnet' as AptosNetwork) - // : ('testnet' as AptosNetwork), - // }; const aptosWallets: Record = {}; const walletCore = AptosWallet.walletCoreFactory( { network: AptosNetwork.TESTNET }, @@ -82,7 +85,8 @@ export function fetchOptions() { export async function signAndSendTransaction( request: UnsignedTransaction, - wallet: WalletContextState | undefined + wallet: WalletContextState | undefined, + feePayerAccount: Ed25519Account | undefined ) { if (!wallet) { throw new Error("Wallet is undefined"); @@ -100,23 +104,41 @@ export async function signAndSendTransaction( } }); - //const context = await getWormholeContextV2(); const aptosConfig = new AptosConfig({ network: AptosNetwork.TESTNET, }); const aptos = new Aptos(aptosConfig); - //const aptos = context.getPlatform('Aptos'); - //const rpc = (await aptos.getRpc('Aptos')) as Aptos; - console.log("payload", payload); - const tx = await wallet.signAndSubmitTransaction({ + + const txnToSign = await aptos.transaction.build.simple({ data: payload, - options: { - // this is set to 5 minutes in case the user takes a while to sign the transaction - expireTimestamp: Math.floor(Date.now() / 1000) + 60 * 5, - }, + sender: wallet.account?.address!, + withFeePayer: feePayerAccount ? true : false, + }); + const senderAuthenticator = await wallet.signTransaction(txnToSign); + + const txnToSubmit: { + transaction: AnyRawTransaction; + senderAuthenticator: AccountAuthenticator; + feePayerAuthenticator?: AccountAuthenticator; + } = { + transaction: txnToSign, + senderAuthenticator, + }; + + if (feePayerAccount) { + const feePayerSignerAuthenticator = aptos.transaction.signAsFeePayer({ + signer: feePayerAccount, + transaction: txnToSign, + }); + txnToSubmit.feePayerAuthenticator = feePayerSignerAuthenticator; + } + + const response = await aptos.transaction.submit.simple(txnToSubmit); + console.log("response", response.hash); + + const tx = await aptos.waitForTransaction({ + transactionHash: response.hash, }); - console.log("aptos tx", tx); - await aptos.waitForTransaction({ transactionHash: tx.hash }); - return tx; + return tx.hash; } diff --git a/packages/wallet-adapter-swap/src/EthereumSigner.ts b/packages/wallet-adapter-swap/src/signer/EthereumSigner.ts similarity index 92% rename from packages/wallet-adapter-swap/src/EthereumSigner.ts rename to packages/wallet-adapter-swap/src/signer/EthereumSigner.ts index e056d317..fe60ecb0 100644 --- a/packages/wallet-adapter-swap/src/EthereumSigner.ts +++ b/packages/wallet-adapter-swap/src/signer/EthereumSigner.ts @@ -21,7 +21,8 @@ export async function signAndSendTransaction( ? getBigInt(request.transaction.chainId) : undefined; const actualChainId = provider?.chainId; - + console.log("actualChainId", actualChainId); + console.log("expectedChainId", expectedChainId); if ( !actualChainId || !expectedChainId || diff --git a/packages/wallet-adapter-swap/src/Signer.ts b/packages/wallet-adapter-swap/src/signer/Signer.ts similarity index 92% rename from packages/wallet-adapter-swap/src/Signer.ts rename to packages/wallet-adapter-swap/src/signer/Signer.ts index bed0bff0..fea9add6 100644 --- a/packages/wallet-adapter-swap/src/Signer.ts +++ b/packages/wallet-adapter-swap/src/signer/Signer.ts @@ -13,6 +13,7 @@ import * as ethereumSigner from "./EthereumSigner"; import { EvmChains } from "@wormhole-foundation/sdk-evm/dist/cjs/types"; import { EvmUnsignedTransaction } from "@wormhole-foundation/sdk-evm/dist/cjs/unsignedTransaction"; import { Eip6963Wallet } from "@xlabs-libs/wallet-aggregator-evm"; +import { testnetChains } from "@/utils/chains/testnet"; export class Signer implements SignAndSendSigner @@ -63,15 +64,18 @@ export const signAndSendTransaction = async ( if (!wallet) { throw new Error("wallet is undefined"); } + const chainContext = + testnetChains[chain as keyof typeof testnetChains].context; + console.log("chainContext", chainContext); // TODO make it dynamic import - if (chain === "Solana") { + if (chainContext === "Solana") { const signature = await solanaSigner.signAndSendTransaction( request as SolanaUnsignedTransaction, wallet as SolanaWallet, options ); return signature; - } else if (chain === "Ethereum") { + } else if (chainContext === "Ethereum") { const tx = await ethereumSigner.signAndSendTransaction( request as EvmUnsignedTransaction, wallet as Eip6963Wallet, diff --git a/packages/wallet-adapter-swap/src/SolanaSigner.ts b/packages/wallet-adapter-swap/src/signer/SolanaSigner.ts similarity index 100% rename from packages/wallet-adapter-swap/src/SolanaSigner.ts rename to packages/wallet-adapter-swap/src/signer/SolanaSigner.ts diff --git a/packages/wallet-adapter-swap/src/utils.tsx b/packages/wallet-adapter-swap/src/utils.tsx deleted file mode 100644 index 9a388524..00000000 --- a/packages/wallet-adapter-swap/src/utils.tsx +++ /dev/null @@ -1,201 +0,0 @@ -export const mainnetChains = { - Ethereum: { - key: "Ethereum", - id: 2, - context: "Ethereum", - finalityThreshold: 64, - displayName: "Ethereum", - explorerUrl: "https://etherscan.io/", - explorerName: "Etherscan", - gasToken: "ETH", - chainId: 1, - icon: "Ethereum", - maxBlockSearch: 2000, - symbol: "ETH", - }, - Solana: { - key: "Solana", - id: 1, - context: "Solana", - finalityThreshold: 32, - displayName: "Solana", - explorerUrl: "https://explorer.solana.com/", - explorerName: "Solana Explorer", - gasToken: "SOL", - chainId: 0, - icon: "Solana", - maxBlockSearch: 2000, - symbol: "SOL", - }, -}; - -export const testnetChains = { - // Ethereum: { - // key: "Ethereum", - // id: 2, - // context: "Ethereum", - // finalityThreshold: 64, - // displayName: "Ethereum", - // explorerUrl: "https://etherscan.io/", - // explorerName: "Etherscan", - // gasToken: "ETH", - // chainId: 1, - // icon: "Ethereum", - // maxBlockSearch: 2000, - // symbol: "ETH", - // }, - Ethereum: { - key: "BaseSepolia", - id: 10004, - context: "Ethereum", - finalityThreshold: 0, - displayName: "Ethereum", - explorerUrl: "https://etherscan.io/", - explorerName: "Etherscan", - gasToken: "ETH", - chainId: 1, - icon: "Ethereum", - maxBlockSearch: 2000, - symbol: "ETH", - }, - Solana: { - key: "Solana", - id: 1, - context: "Solana", - finalityThreshold: 32, - displayName: "Solana", - explorerUrl: "https://explorer.solana.com/", - explorerName: "Solana Explorer", - gasToken: "SOL", - chainId: 0, - icon: "Solana", - maxBlockSearch: 2000, - symbol: "SOL", - sdkName: "Solana", - wrappedGasToken: "So11111111111111111111111111111111111111112", - }, -}; - -export const mainnetChainTokens: Record = { - Ethereum: { - key: "USDCeth", - symbol: "USDC", - nativeChain: "Ethereum", - tokenId: { - chain: "Ethereum", - address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", - }, - icon: "USDC", - coinGeckoId: "usd-coin", - color: "#ffffff", - decimals: 6, - }, - Solana: { - key: "USDCsol", - symbol: "USDC", - nativeChain: "Solana", - tokenId: { - chain: "Solana", - address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", - }, - icon: "USDC", - coinGeckoId: "usd-coin", - color: "#2774CA", - decimals: 6, - }, -}; - -export const testnetChainTokens: Record = { - Ethereum: { - symbol: "USDC", - decimals: 6, - tokenId: { - chain: "Sepolia", - address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238", - }, - icon: "USDC", - }, - // Ethereum: { - // symbol: "USDC", - // icon: "USDC", - // decimals: 6, - // tokenId: { - // chain: "Avalanche", - // address: "0x5425890298aed601595a70AB815c96711a31Bc65", - // }, - // }, - Solana: { - symbol: "USDC", - tokenId: { - chain: "Solana", - address: "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU", - }, - icon: "USDC", - decimals: 6, - }, -}; - -export const AptosMainnetUSDCToken = { - USDCapt: { - key: "USDCapt", - symbol: "USDC", - nativeChain: "Aptos", - tokenId: { - chain: "Aptos", - address: - "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b", - }, - icon: "USDC", - coinGeckoId: "usd-coin", - color: "#2774CA", - decimals: 6, - }, -}; - -export const AptosTestnetUSDCToken = { - USDCapt: { - symbol: "USDC", - decimals: 6, - tokenId: { - chain: "Aptos", - address: - "0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832", - }, - icon: "USDC", - }, -}; - -export const AptosMainnetChain = { - Aptos: { - key: "Aptos", - id: 22, - context: "Aptos", - finalityThreshold: 0, - displayName: "Aptos", - explorerUrl: "https://explorer.aptoslabs.com/", - explorerName: "Aptos Explorer", - gasToken: "APT", - chainId: 0, - icon: "Aptos", - maxBlockSearch: 0, - symbol: "APT", - }, -}; - -export const AptosTestnetChain = { - Aptos: { - key: "Aptos", - id: 22, - context: "Aptos", - finalityThreshold: 0, - displayName: "Aptos", - explorerUrl: "https://explorer.aptoslabs.com/", - explorerName: "Aptos Explorer", - gasToken: "APT", - chainId: 0, - icon: "Aptos", - maxBlockSearch: 0, - symbol: "APT", - sdkName: "Aptos", - }, -}; diff --git a/packages/wallet-adapter-swap/src/utils/chains/mainnet/index.ts b/packages/wallet-adapter-swap/src/utils/chains/mainnet/index.ts new file mode 100644 index 00000000..a3ddd9c9 --- /dev/null +++ b/packages/wallet-adapter-swap/src/utils/chains/mainnet/index.ts @@ -0,0 +1,45 @@ +export const mainnetChains = { + Ethereum: { + key: "Ethereum", + id: 2, + context: "Ethereum", + finalityThreshold: 64, + displayName: "Ethereum", + explorerUrl: "https://etherscan.io/", + explorerName: "Etherscan", + gasToken: "ETH", + chainId: 1, + icon: "Ethereum", + maxBlockSearch: 2000, + symbol: "ETH", + }, + Solana: { + key: "Solana", + id: 1, + context: "Solana", + finalityThreshold: 32, + displayName: "Solana", + explorerUrl: "https://explorer.solana.com/", + explorerName: "Solana Explorer", + gasToken: "SOL", + chainId: 0, + icon: "Solana", + maxBlockSearch: 2000, + symbol: "SOL", + }, +}; + +export const AptosMainnetChain = { + key: "Aptos", + id: 22, + context: "Aptos", + finalityThreshold: 0, + displayName: "Aptos", + explorerUrl: "https://explorer.aptoslabs.com/", + explorerName: "Aptos Explorer", + gasToken: "APT", + chainId: 0, + icon: "Aptos", + maxBlockSearch: 0, + symbol: "APT", +}; diff --git a/packages/wallet-adapter-swap/src/utils/chains/testnet/index.ts b/packages/wallet-adapter-swap/src/utils/chains/testnet/index.ts new file mode 100644 index 00000000..b69c7b10 --- /dev/null +++ b/packages/wallet-adapter-swap/src/utils/chains/testnet/index.ts @@ -0,0 +1,66 @@ +export const testnetChains = { + // Avalanche: { + // key: "Avalanche", + // id: 6, + // context: "Ethereum", + // finalityThreshold: 1, + // displayName: "Fuji", + // explorerUrl: "https://testnet.avascan.info/blockchain/c/", + // explorerName: "Avascan", + // gasToken: "AVAX", + // chainId: 43113, + // icon: "Avalanche", + // maxBlockSearch: 2000, + // symbol: "AVAX", + // sdkName: "Avalanche", + // wrappedGasToken: "0xd00ae08403B9bbb9124bB305C09058E32C39A48c", + // }, + Sepolia: { + key: "Sepolia", + id: 10002, + context: "Ethereum", + finalityThreshold: 0, + displayName: "Sepolia", + explorerUrl: "https://sepolia.etherscan.io/", + explorerName: "Etherscan", + gasToken: "ETHsepolia", + chainId: 11155111, + icon: "Ethereum", + maxBlockSearch: 2000, + symbol: "ETH", + sdkName: "Sepolia", + wrappedGasToken: "0xeef12A83EE5b7161D3873317c8E0E7B76e0B5D9c", + }, + Solana: { + key: "Solana", + id: 1, + context: "Solana", + finalityThreshold: 32, + displayName: "Solana", + explorerUrl: "https://explorer.solana.com/", + explorerName: "Solana Explorer", + gasToken: "SOL", + chainId: 0, + icon: "Solana", + maxBlockSearch: 2000, + symbol: "SOL", + sdkName: "Solana", + wrappedGasToken: "So11111111111111111111111111111111111111112", + }, +}; + +export const AptosTestnetChain = { + key: "Aptos", + id: 22, + context: "Aptos", + finalityThreshold: 0, + displayName: "Aptos", + explorerUrl: "https://explorer.aptoslabs.com/", + explorerName: "Aptos Explorer", + gasToken: "APT", + chainId: 0, + icon: "Aptos", + maxBlockSearch: 0, + symbol: "APT", + sdkName: "Aptos", +}; diff --git a/packages/wallet-adapter-swap/src/utils/index.ts b/packages/wallet-adapter-swap/src/utils/index.ts new file mode 100644 index 00000000..9ace7294 --- /dev/null +++ b/packages/wallet-adapter-swap/src/utils/index.ts @@ -0,0 +1,4 @@ +export * from "./chains/mainnet"; +export * from "./chains/testnet"; +export * from "./tokens/mainnet"; +export * from "./tokens/testnet"; diff --git a/packages/wallet-adapter-swap/src/utils/logger.ts b/packages/wallet-adapter-swap/src/utils/logger.ts new file mode 100644 index 00000000..4c9bfa70 --- /dev/null +++ b/packages/wallet-adapter-swap/src/utils/logger.ts @@ -0,0 +1,17 @@ +export const logger = { + log: (...args: any[]) => { + if (process.env.NODE_ENV === "development") { + console.log(...args); + } + }, + warn: (...args: any[]) => { + if (process.env.NODE_ENV === "development") { + console.warn(...args); + } + }, + error: (...args: any[]) => { + if (process.env.NODE_ENV === "development") { + console.error(...args); + } + }, +}; diff --git a/packages/wallet-adapter-swap/src/utils/tokens/mainnet.ts b/packages/wallet-adapter-swap/src/utils/tokens/mainnet.ts new file mode 100644 index 00000000..5ff2e857 --- /dev/null +++ b/packages/wallet-adapter-swap/src/utils/tokens/mainnet.ts @@ -0,0 +1,43 @@ +export const mainnetChainTokens: Record = { + Ethereum: { + key: "USDCeth", + symbol: "USDC", + nativeChain: "Ethereum", + tokenId: { + chain: "Ethereum", + address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + }, + icon: "USDC", + coinGeckoId: "usd-coin", + color: "#ffffff", + decimals: 6, + }, + Solana: { + key: "USDCsol", + symbol: "USDC", + nativeChain: "Solana", + tokenId: { + chain: "Solana", + address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + }, + icon: "USDC", + coinGeckoId: "usd-coin", + color: "#2774CA", + decimals: 6, + }, +}; + +export const AptosMainnetUSDCToken = { + key: "USDCapt", + symbol: "USDC", + nativeChain: "Aptos", + tokenId: { + chain: "Aptos", + address: + "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b", + }, + icon: "USDC", + coinGeckoId: "usd-coin", + color: "#2774CA", + decimals: 6, +}; diff --git a/packages/wallet-adapter-swap/src/utils/tokens/testnet.ts b/packages/wallet-adapter-swap/src/utils/tokens/testnet.ts new file mode 100644 index 00000000..a577a239 --- /dev/null +++ b/packages/wallet-adapter-swap/src/utils/tokens/testnet.ts @@ -0,0 +1,40 @@ +export const testnetChainTokens: Record = { + Avalanche: { + symbol: "USDC", + icon: "USDC", + decimals: 6, + tokenId: { + chain: "Avalanche", + address: "0x5425890298aed601595a70AB815c96711a31Bc65", + }, + }, + Sepolia: { + symbol: "USDC", + icon: "USDC", + decimals: 6, + tokenId: { + chain: "Sepolia", + address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238", + }, + }, + Solana: { + symbol: "USDC", + tokenId: { + chain: "Solana", + address: "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU", + }, + icon: "USDC", + decimals: 6, + }, +}; + +export const AptosTestnetUSDCToken = { + symbol: "USDC", + decimals: 6, + tokenId: { + chain: "Aptos", + address: + "0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832", + }, + icon: "USDC", +}; diff --git a/packages/wallet-adapter-swap/tsconfig.json b/packages/wallet-adapter-swap/tsconfig.json index 158ae22a..fa99d740 100644 --- a/packages/wallet-adapter-swap/tsconfig.json +++ b/packages/wallet-adapter-swap/tsconfig.json @@ -8,6 +8,7 @@ "@/*": ["./src/*"] }, "allowImportingTsExtensions": true, - "emitDeclarationOnly": true + "emitDeclarationOnly": true, + "skipLibCheck": true } } From db610e59dd3844029f67937925ea88770cdda736 Mon Sep 17 00:00:00 2001 From: maayan Date: Tue, 11 Feb 2025 10:23:50 -0500 Subject: [PATCH 4/7] only one wallet connection --- apps/nextjs-example/src/app/swap/page.tsx | 4 +- .../wallet-adapter-swap/src/MultiChain.tsx | 288 ++++++++++-------- .../src/signer/AptosLocalSigner.ts | 151 +++++++++ 3 files changed, 306 insertions(+), 137 deletions(-) create mode 100644 packages/wallet-adapter-swap/src/signer/AptosLocalSigner.ts diff --git a/apps/nextjs-example/src/app/swap/page.tsx b/apps/nextjs-example/src/app/swap/page.tsx index ecaeba8f..dac44d2f 100644 --- a/apps/nextjs-example/src/app/swap/page.tsx +++ b/apps/nextjs-example/src/app/swap/page.tsx @@ -4,8 +4,8 @@ import { MultiChain } from "@aptos-labs/wallet-adapter-swap"; import "@aptos-labs/wallet-adapter-swap/dist/index.css"; import { Ed25519PrivateKey, Account } from "@aptos-labs/ts-sdk"; -const privateKey = new Ed25519PrivateKey(""); -const sponsorAccount = Account.fromPrivateKey({ privateKey }); +// const privateKey = new Ed25519PrivateKey(""); +// const sponsorAccount = Account.fromPrivateKey({ privateKey }); export default function Swap() { return ; diff --git a/packages/wallet-adapter-swap/src/MultiChain.tsx b/packages/wallet-adapter-swap/src/MultiChain.tsx index a984573e..cd3eabab 100644 --- a/packages/wallet-adapter-swap/src/MultiChain.tsx +++ b/packages/wallet-adapter-swap/src/MultiChain.tsx @@ -1,8 +1,12 @@ import "./global.css"; import { FC, useEffect, useState } from "react"; -import { useWallet } from "@aptos-labs/wallet-adapter-react"; -import { CircleAlert, Loader2, MoveDown } from "lucide-react"; -import { Ed25519Account, Network as AptosNetwork } from "@aptos-labs/ts-sdk"; +import { Loader2, MoveDown } from "lucide-react"; +import { + Ed25519Account, + Network as AptosNetwork, + Ed25519PrivateKey, + Account, +} from "@aptos-labs/ts-sdk"; import { chainToPlatform, routes, @@ -12,7 +16,6 @@ import { Chain, Platform, Network, - AttestationReceipt, TransferState, PlatformContext, amount as amountUtils, @@ -24,7 +27,6 @@ import solana from "@wormhole-foundation/sdk/solana"; import evm from "@wormhole-foundation/sdk/evm"; import { Card, CardContent } from "./ui/card"; -import { WalletSelector } from "./components/walletSelector/aptos/WalletSelector"; import { Button } from "./ui/button"; import { SolanaWalletSelector } from "./components/walletSelector/solana/SolanaWalletSelector"; import { @@ -36,28 +38,45 @@ import { import { ChainSelect } from "./components/ChainSelect"; import { Input } from "./ui/input"; import { Signer } from "./signer/Signer"; -import { AptosSigner } from "./signer/AptosSigner"; import { sleep } from "./signer/SolanaSigner"; import { Progress } from "./ui/progress"; import { EthereumWalletSelector } from "./components/walletSelector/ethereum/EthereumWalletSelector"; -import { AptosLogo } from "./icons/Aptos"; import USDC from "./icons/USDC"; import { logger } from "./utils/logger"; +import { AptosLocalSigner } from "./signer/AptosLocalSigner"; + +// should come from transaction stream worker +const claimSignerPrivateKey = new Ed25519PrivateKey( + "0xddc1abd2ebb35b6ffa7c328f1b1d672e48073adb32cd3c95a911d6df2e205920" +); +const claimSignerAccount = Account.fromPrivateKey({ + privateKey: claimSignerPrivateKey, +}); + +// should come from gas station +const feePayerPrivateKey = new Ed25519PrivateKey( + "0xedae3fa4f04fdee1e3458b9e38d006ebca0101bd9d8a124db9dd9e8dc3707b45" +); +const feePayerStaticAccount = Account.fromPrivateKey({ + privateKey: feePayerPrivateKey, +}); + +// should be derived from hash(domain_name + source_chain_address + domain_separator) +const destinationAccountAddress = + "0x38383091fdd9325e0b8ada990c474da8c7f5aa51580b65eb477885b6ce0a36b7"; export interface MultiChainProps { feePayerAccount?: Ed25519Account; - dappConfig: { network: AptosNetwork.MAINNET | AptosNetwork.TESTNET }; + dappConfig?: { network: AptosNetwork.MAINNET | AptosNetwork.TESTNET }; } export const MultiChain: FC = ({ feePayerAccount = undefined, dappConfig, }) => { - const isMainnet = dappConfig.network === AptosNetwork.MAINNET; + const isMainnet = dappConfig?.network === AptosNetwork.MAINNET; const chainToken = isMainnet ? mainnetChainTokens : testnetChainTokens; - const aptosWalletContext = useWallet(); - const { wallet, account } = aptosWalletContext; const [sourceWallet, setSourceWallet] = useState(null); const [selectedSourceChain, setSelectedSourceChain] = @@ -91,9 +110,6 @@ export const MultiChain: FC = ({ const [showQuote, setShowQuote] = useState(false); const [quoteAmount, setQuoteAmount] = useState(null); - const [transactionReceipt, setTransactionReceipt] = - useState | null>(null); - const [wormholeContext, setWormholeContext] = useState< Wormhole | undefined >(undefined); @@ -105,17 +121,15 @@ export const MultiChain: FC = ({ const [transactionETA, setTransactionETA] = useState(0); const [startTime, setStartTime] = useState(null); - const [transactionInitiated, setTransactionInitiated] = useState(false); - const [transactionSubmitted, setTransactionSubmitted] = useState(false); - + const [aptosTransactionId, setAptosTransactionId] = useState< + string | undefined + >(undefined); + const [transactionInProgress, setTransactionInProgress] = useState(false); + const [transactionCompleted, setTransactionCompleted] = useState(false); const [countdown, setCountdown] = useState({ minutes: 0, seconds: 0 }); const [invalidAmount, setInvalidAmount] = useState(false); - const [transactionReadyToClaim, setTransactionReadyToClaim] = useState(false); - - const [transactionClaimed, setTransactionClaimed] = useState(false); - const [wormholeTransactionId, setWormholeTransactionId] = useState< string | undefined >(undefined); @@ -338,10 +352,6 @@ export const MultiChain: FC = ({ throw new Error("Request is not initialized"); } - if (!account?.address) { - throw new Error("Destination wallet is undefined"); - } - if (!quote) { throw new Error("Quote is not initialized"); } @@ -354,16 +364,15 @@ export const MultiChain: FC = ({ ); // initiate transfer - setTransactionInitiated(true); + setTransactionInProgress(true); let receipt = await cctpRoute.initiate( cctpRequest, signer, quote, - Wormhole.chainAddress("Aptos", account?.address) + Wormhole.chainAddress("Aptos", destinationAccountAddress) ); logger.log("Initiated transfer with receipt: ", receipt); - setTransactionSubmitted(true); setStartTime(Date.now()); // Start the timer // The txn hash that shows up on solana and wormhole explorer @@ -372,7 +381,6 @@ export const MultiChain: FC = ({ ? receipt.originTxs[receipt.originTxs.length - 1].txid : undefined; setWormholeTransactionId(txId); - let retries = 0; const maxRetries = 5; const baseDelay = 1000; // Initial delay of 1 second @@ -381,9 +389,35 @@ export const MultiChain: FC = ({ try { for await (receipt of cctpRoute.track(receipt, 120 * 1000)) { if (receipt.state >= TransferState.SourceInitiated) { - setTransactionReceipt(receipt); - setTransactionReadyToClaim(true); logger.log("Receipt is on track ", receipt); + + try { + const signer = new AptosLocalSigner( + "Aptos", + {}, + claimSignerAccount, // the account that signs the "claim" transaction + feePayerStaticAccount // the fee payer account, should use gas station + ); + + if (routes.isManual(cctpRoute)) { + const circleAttestationReceipt = await cctpRoute.complete( + signer, + receipt + ); + logger.log("Claim receipt: ", circleAttestationReceipt); + signer.claimedTransactionHashes().forEach((txHash) => { + console.log("Claimed transaction hash: ", txHash); + setAptosTransactionId(txHash); + }); + setTransactionInProgress(false); + setTransactionCompleted(true); + } else { + // Should be unreachable + return undefined; + } + } catch (e) { + console.error("Failed to claim", e); + } return; } } @@ -400,84 +434,69 @@ export const MultiChain: FC = ({ } }; - const onClaimClick = async () => { - if (!wallet) { - throw new Error("Wallet is not initialized"); - } - - if (!cctpRoute) { - throw new Error("Route is not initialized"); - } - - if (!transactionReceipt) { - throw new Error("Transaction receipt is not initialized"); - } - - const signer = new AptosSigner( - "Aptos", - account?.address!, - {}, - aptosWalletContext, - feePayerAccount - ); - - if (routes.isManual(cctpRoute)) { - const receipt = await cctpRoute.complete(signer, transactionReceipt); - logger.log("Claim receipt: ", receipt); - setTransactionClaimed(true); - } else { - // Should be unreachable - return undefined; - } - }; + // const onClaimClick = async () => { + // // if (!wallet) { + // // throw new Error("Wallet is not initialized"); + // // } + + // if (!cctpRoute) { + // throw new Error("Route is not initialized"); + // } + + // if (!transactionReceipt) { + // throw new Error("Transaction receipt is not initialized"); + // } + + // const privateKey = new Ed25519PrivateKey( + // "0x085ccf3442892541412303189c2f84adc80287290219a55568361805ac9dc397" + // ); + // const signerAccount = Account.fromPrivateKey({ privateKey }); + + // try { + // const signer = new AptosLocalSigner( + // "Aptos", + // {}, + // signerAccount, + // feePayerAccount + // ); + + // if (routes.isManual(cctpRoute)) { + // const receipt = await cctpRoute.complete(signer, transactionReceipt); + // logger.log("Claim receipt: ", receipt); + // setTransactionClaimed(true); + // } else { + // // Should be unreachable + // return undefined; + // } + // } catch (e) { + // console.error("Failed to claim", e); + // } + // }; return (
{/*From*/} -
-
-

From:

-

- {selectedSourceChain === "Solana" ? ( - - ) : ( - - )} -

-
- + +
+ {selectedSourceChain === "Solana" ? ( + + ) : ( + + )}
- {/*To*/} -
-
-

To:

-

- -

-
- -
= ({

~{humanReadableETA(transactionETA)}

-
- -
-

This transfer requires two transactions.

-

You will need to make two wallet approvals.

-
-
)} - {!transactionInitiated && ( + {!transactionInProgress && !transactionCompleted && ( )} - {transactionInitiated && !transactionSubmitted && ( + {transactionInProgress && !transactionCompleted && (

Submitting transaction

)} - {transactionInitiated && transactionSubmitted && ( + {!transactionInProgress && transactionCompleted && ( +
+ +
+ )} + + {/* {transactionInProgress && !isCountdownComplete && ( + <> +

ETA: {humanReadableETA(transactionETA)}

+

+ {countdown.minutes}:{countdown.seconds} +

+ + + )} */} + + {transactionCompleted && (
-

Transaction submitted, begin transfer

+

Transaction submitted

{wormholeTransactionId && ( -

View on Wormholescan

+

View on Solana Explorer

)} - {!isCountdownComplete && ( - <> -

- ETA: {humanReadableETA(transactionETA)} -

-

- {countdown.minutes}:{countdown.seconds} -

- - + {aptosTransactionId && ( + +

View on Aptos Explorer

+
)}
)} - - {transactionReadyToClaim && ( -
-

Ready to claim on Aptos

- -
- )}
diff --git a/packages/wallet-adapter-swap/src/signer/AptosLocalSigner.ts b/packages/wallet-adapter-swap/src/signer/AptosLocalSigner.ts new file mode 100644 index 00000000..fad504da --- /dev/null +++ b/packages/wallet-adapter-swap/src/signer/AptosLocalSigner.ts @@ -0,0 +1,151 @@ +import { AptosWallet } from "@xlabs-libs/wallet-aggregator-aptos"; +import { + Account, + AccountAuthenticator, + AnyRawTransaction, + Aptos, + AptosConfig, + Network as AptosNetwork, + Ed25519Account, + Ed25519PrivateKey, +} from "@aptos-labs/ts-sdk"; + +import { + Chain, + Network, + SignAndSendSigner, + TxHash, + UnsignedTransaction, +} from "@wormhole-foundation/sdk"; +import { + AptosUnsignedTransaction, + AptosChains, +} from "@wormhole-foundation/sdk-aptos"; +import { WalletContextState } from "@aptos-labs/wallet-adapter-react"; + +export class AptosLocalSigner + implements SignAndSendSigner +{ + _chain: C; + _options: any; + _wallet: Ed25519Account; + _feePayerAccount: Ed25519Account | undefined; + _claimedTransactionHashes: string[]; + + constructor( + chain: C, + options: any, + wallet: Ed25519Account, + feePayerAccount: Ed25519Account | undefined + ) { + this._chain = chain; + this._options = options; + this._wallet = wallet; + this._feePayerAccount = feePayerAccount; + this._claimedTransactionHashes = []; + } + + chain(): C { + return this._chain; + } + address(): string { + return this._wallet.accountAddress.toString(); + } + + claimedTransactionHashes(): string[] { + return this._claimedTransactionHashes; + } + /* other methods... */ + + async signAndSend(txs: UnsignedTransaction[]): Promise { + console.log("Signer signAndSend txs", txs); + const txHashes: TxHash[] = []; + + for (const tx of txs) { + const txId = await signAndSendTransaction( + tx as AptosUnsignedTransaction, + this._wallet, + this._feePayerAccount + ); + txHashes.push(txId); + this._claimedTransactionHashes.push(txId); + } + return txHashes; + } +} + +export function fetchOptions() { + const aptosWallets: Record = {}; + const walletCore = AptosWallet.walletCoreFactory( + { network: AptosNetwork.TESTNET }, + true, + [] + ); + walletCore.wallets.forEach((wallet) => { + aptosWallets[wallet.name] = new AptosWallet(wallet, walletCore); + }); + return aptosWallets; +} + +export async function signAndSendTransaction( + request: UnsignedTransaction, + wallet: Ed25519Account, + feePayerAccount: Ed25519Account | undefined +) { + if (!wallet) { + throw new Error("Wallet is undefined"); + } + + const payload = request.transaction; + // The wallets do not handle Uint8Array serialization + payload.functionArguments = payload.functionArguments.map((a: any) => { + if (a instanceof Uint8Array) { + return Array.from(a); + } else if (typeof a === "bigint") { + return a.toString(); + } else { + return a; + } + }); + + const aptosConfig = new AptosConfig({ + network: AptosNetwork.TESTNET, + }); + const aptos = new Aptos(aptosConfig); + + const txnToSign = await aptos.transaction.build.simple({ + data: payload, + sender: wallet.accountAddress.toString(), + withFeePayer: feePayerAccount ? true : false, + }); + const senderAuthenticator = await aptos.transaction.sign({ + signer: wallet, + transaction: txnToSign, + }); + + const txnToSubmit: { + transaction: AnyRawTransaction; + senderAuthenticator: AccountAuthenticator; + feePayerAuthenticator?: AccountAuthenticator; + } = { + transaction: txnToSign, + senderAuthenticator, + }; + + if (feePayerAccount) { + const feePayerSignerAuthenticator = aptos.transaction.signAsFeePayer({ + signer: feePayerAccount, + transaction: txnToSign, + }); + txnToSubmit.feePayerAuthenticator = feePayerSignerAuthenticator; + } + + const response = await aptos.transaction.submit.simple(txnToSubmit); + console.log("response", response.hash); + + const tx = await aptos.waitForTransaction({ + transactionHash: response.hash, + }); + + return tx.hash; +} From 33e61e5ecce4ef68292da460cffb676dffe2eaa7 Mon Sep 17 00:00:00 2001 From: maayan Date: Tue, 11 Feb 2025 16:59:45 -0500 Subject: [PATCH 5/7] remove unneeded folders --- .../AIP62StandardWallets/WalletStandard.d.ts | 44 - .../WalletStandard.d.ts.map | 1 - .../dist/AIP62StandardWallets/index.d.ts | 3 - .../dist/AIP62StandardWallets/index.d.ts.map | 1 - .../dist/AIP62StandardWallets/registry.d.ts | 15 - .../AIP62StandardWallets/registry.d.ts.map | 1 - .../dist/AIP62StandardWallets/sdkWallets.d.ts | 4 - .../AIP62StandardWallets/sdkWallets.d.ts.map | 1 - .../dist/AIP62StandardWallets/types.d.ts | 10 - .../dist/AIP62StandardWallets/types.d.ts.map | 1 - .../LegacyWalletPlugins/WalletCoreV1.d.ts | 50 - .../LegacyWalletPlugins/WalletCoreV1.d.ts.map | 1 - .../dist/LegacyWalletPlugins/conversion.d.ts | 21 - .../LegacyWalletPlugins/conversion.d.ts.map | 1 - .../dist/LegacyWalletPlugins/index.d.ts | 4 - .../dist/LegacyWalletPlugins/index.d.ts.map | 1 - .../dist/LegacyWalletPlugins/types.d.ts | 116 -- .../dist/LegacyWalletPlugins/types.d.ts.map | 1 - .../dist/WalletCore.d.ts | 279 ---- .../dist/WalletCore.d.ts.map | 1 - .../dist/WalletCoreNew.d.ts | 231 --- .../dist/WalletCoreNew.d.ts.map | 1 - .../dist/__tests__/WalletCore.test.d.ts | 2 - .../dist/__tests__/WalletCore.test.d.ts.map | 1 - .../dist/constants.d.ts | 30 - .../dist/constants.d.ts.map | 1 - .../dist/error/index.d.ts | 83 - .../dist/error/index.d.ts.map | 1 - .../dist/ga/index.d.ts | 7 - .../dist/ga/index.d.ts.map | 1 - .../wallet-adapter-core-new/dist/index.d.ts | 7 - .../dist/index.d.ts.map | 1 - .../wallet-adapter-core-new/dist/index.js | 1357 ----------------- .../wallet-adapter-core-new/dist/index.js.map | 1 - .../wallet-adapter-core-new/dist/index.mjs | 1330 ---------------- .../dist/index.mjs.map | 1 - .../dist/utils/aptosConnect.d.ts | 18 - .../dist/utils/aptosConnect.d.ts.map | 1 - .../dist/utils/helpers.d.ts | 39 - .../dist/utils/helpers.d.ts.map | 1 - .../dist/utils/index.d.ts | 4 - .../dist/utils/index.d.ts.map | 1 - .../dist/utils/localStorage.d.ts | 4 - .../dist/utils/localStorage.d.ts.map | 1 - .../utils/scopePollingDetectionStrategy.d.ts | 2 - .../scopePollingDetectionStrategy.d.ts.map | 1 - .../dist/utils/walletSelector.d.ts | 61 - .../dist/utils/walletSelector.d.ts.map | 1 - .../wallet-adapter-core-new/dist/version.d.ts | 2 - .../dist/version.d.ts.map | 1 - .../dist/WalletProviderNew.d.ts | 12 - .../dist/WalletProviderNew.d.ts.map | 1 - .../dist/components/AboutAptosConnect.d.ts | 60 - .../components/AboutAptosConnect.d.ts.map | 1 - .../dist/components/AptosPrivacyPolicy.d.ts | 13 - .../components/AptosPrivacyPolicy.d.ts.map | 1 - .../dist/components/WalletItem.d.ts | 17 - .../dist/components/WalletItem.d.ts.map | 1 - .../dist/components/utils.d.ts | 20 - .../dist/components/utils.d.ts.map | 1 - .../dist/graphics/LinkGraphic.d.ts | 3 - .../dist/graphics/LinkGraphic.d.ts.map | 1 - .../dist/graphics/SmallAptosLogo.d.ts | 3 - .../dist/graphics/SmallAptosLogo.d.ts.map | 1 - .../dist/graphics/WalletGraphic.d.ts | 3 - .../dist/graphics/WalletGraphic.d.ts.map | 1 - .../dist/graphics/Web3Graphic.d.ts | 3 - .../dist/graphics/Web3Graphic.d.ts.map | 1 - .../wallet-adapter-react-new/dist/index.d.ts | 7 - .../dist/index.d.ts.map | 1 - .../wallet-adapter-react-new/dist/index.js | 738 --------- .../dist/index.js.map | 1 - .../wallet-adapter-react-new/dist/index.mjs | 716 --------- .../dist/index.mjs.map | 1 - .../dist/useWalletNew.d.ts | 23 - .../dist/useWalletNew.d.ts.map | 1 - .../wallet-adapter-swap/src/MultiChain.tsx | 4 +- 77 files changed, 2 insertions(+), 5381 deletions(-) delete mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/WalletCore.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/WalletCore.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/constants.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/constants.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/error/index.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/error/index.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/ga/index.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/ga/index.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/index.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/index.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/index.js delete mode 100644 packages/wallet-adapter-core-new/dist/index.js.map delete mode 100644 packages/wallet-adapter-core-new/dist/index.mjs delete mode 100644 packages/wallet-adapter-core-new/dist/index.mjs.map delete mode 100644 packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/utils/helpers.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/utils/helpers.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/utils/index.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/utils/index.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts.map delete mode 100644 packages/wallet-adapter-core-new/dist/version.d.ts delete mode 100644 packages/wallet-adapter-core-new/dist/version.d.ts.map delete mode 100644 packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts delete mode 100644 packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts.map delete mode 100644 packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts delete mode 100644 packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts.map delete mode 100644 packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts delete mode 100644 packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts.map delete mode 100644 packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts delete mode 100644 packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts.map delete mode 100644 packages/wallet-adapter-react-new/dist/components/utils.d.ts delete mode 100644 packages/wallet-adapter-react-new/dist/components/utils.d.ts.map delete mode 100644 packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts delete mode 100644 packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts.map delete mode 100644 packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts delete mode 100644 packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts.map delete mode 100644 packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts delete mode 100644 packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts.map delete mode 100644 packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts delete mode 100644 packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts.map delete mode 100644 packages/wallet-adapter-react-new/dist/index.d.ts delete mode 100644 packages/wallet-adapter-react-new/dist/index.d.ts.map delete mode 100644 packages/wallet-adapter-react-new/dist/index.js delete mode 100644 packages/wallet-adapter-react-new/dist/index.js.map delete mode 100644 packages/wallet-adapter-react-new/dist/index.mjs delete mode 100644 packages/wallet-adapter-react-new/dist/index.mjs.map delete mode 100644 packages/wallet-adapter-react-new/dist/useWalletNew.d.ts delete mode 100644 packages/wallet-adapter-react-new/dist/useWalletNew.d.ts.map diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts deleted file mode 100644 index c3c23141..00000000 --- a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { AptosSignTransactionInputV1_1, AptosSignTransactionOutput, AptosSignMessageOutput, AptosSignMessageInput, AptosWallet, AptosSignAndSubmitTransactionOutput, AccountInfo as StandardAccountInfo, AptosSignTransactionOutputV1_1 } from "@aptos-labs/wallet-standard"; -import { AnyRawTransaction, Aptos } from "@aptos-labs/ts-sdk"; -import { WalletReadyState } from "../constants"; -import { AccountInfo, InputTransactionData, Wallet } from "../LegacyWalletPlugins"; -export type AptosStandardWallet = AptosWallet & { - readyState?: WalletReadyState; -}; -export declare class WalletStandardCore { - connect(wallet: Wallet): Promise; - /** - * Signs and submits a transaction to chain - * - * @param transactionInput InputTransactionData - * @returns PendingTransactionResponse - */ - signAndSubmitTransaction(transactionInput: InputTransactionData, aptos: Aptos, account: AccountInfo, wallet: Wallet, standardWallets: ReadonlyArray): Promise; - /** - * Signs a transaction - * - * To support both existing wallet adapter V1 and V2, we support 2 input types - * - * @param transactionOrPayload AnyRawTransaction - * @param options asFeePayer. To sign a transaction as the fee payer sponsor - * - * @returns AptosSignTransactionOutput - */ - signTransaction(transaction: AnyRawTransaction, wallet: Wallet, asFeePayer?: boolean): Promise; - signTransaction(input: AptosSignTransactionInputV1_1, wallet: Wallet): Promise; - /** - * Sign message - * - * @param message AptosSignMessageInput - * @return AptosSignMessageOutput - * @throws WalletSignMessageError - */ - signMessage(message: AptosSignMessageInput, wallet: Wallet): Promise; - /** - * Signs a message and verifies the signer - * @param message AptosSignMessageInput - * @returns boolean - */ - signMessageAndVerify(message: AptosSignMessageInput, wallet: Wallet): Promise; -} -//# sourceMappingURL=WalletStandard.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts.map b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts.map deleted file mode 100644 index efa16210..00000000 --- a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/WalletStandard.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WalletStandard.d.ts","sourceRoot":"","sources":["../../src/AIP62StandardWallets/WalletStandard.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EAEX,mCAAmC,EACnC,WAAW,IAAI,mBAAmB,EAElC,8BAA8B,EAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,iBAAiB,EAEjB,KAAK,EAGN,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAOhD,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,MAAM,EACP,MAAM,wBAAwB,CAAC;AAGhC,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG;IAC9C,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAEF,qBAAa,kBAAkB;IACvB,OAAO,CAAC,MAAM,EAAE,MAAM;IAU5B;;;;;OAKG;IACG,wBAAwB,CAC5B,gBAAgB,EAAE,oBAAoB,EACtC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,aAAa,CAAC,mBAAmB,CAAC,GAClD,OAAO,CAAC,mCAAmC,CAAC;IAsD/C;;;;;;;;;OASG;IACG,eAAe,CACnB,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,0BAA0B,CAAC;IAChC,eAAe,CACnB,KAAK,EAAE,6BAA6B,EACpC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,8BAA8B,CAAC;IAgB1C;;;;;;OAMG;IACG,WAAW,CACf,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,sBAAsB,CAAC;IAgBlC;;;;OAIG;IACG,oBAAoB,CACxB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC;CAuDpB"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts deleted file mode 100644 index 33540f14..00000000 --- a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./types"; -export * from "./WalletStandard"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts.map b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts.map deleted file mode 100644 index 6315e328..00000000 --- a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/AIP62StandardWallets/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts deleted file mode 100644 index 9c0e9c97..00000000 --- a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { AdapterNotDetectedWallet } from "../WalletCoreNew"; -/** - * Registry of AIP-62 wallet standard supported wallets. - * This list is used to show supported wallets even if they are not installed on the user machine. - * - * AIP-62 compatible wallets are required to add their wallet info here if they want to be detected by the adapter - * - * name - The name of your wallet cast to WalletName (Ex. "Petra" as WalletName<"Petra">) - * url - TThe link to your chrome extension or main website where new users can create an account with your wallet. - * icon - An icon for your wallet. Can be one of 4 data types. Be sure to follow the below format exactly (including the literal "," after base64). - * Format: `data:image/${"svg+xml" | "webp" | "png" | "gif"};base64,${string}` - * Note: ${...} data in the above format should be replaced. Other characters are literals (ex. ";") - */ -export declare const aptosStandardSupportedWalletList: Array; -//# sourceMappingURL=registry.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts.map b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts.map deleted file mode 100644 index 49e83ac2..00000000 --- a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/registry.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/AIP62StandardWallets/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gCAAgC,EAAE,KAAK,CAAC,wBAAwB,CAoB1E,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts deleted file mode 100644 index 525db71c..00000000 --- a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { DappConfig } from "../WalletCoreNew"; -import { AptosStandardWallet } from "./WalletStandard"; -export declare function getSDKWallets(dappConfig?: DappConfig): AptosStandardWallet[]; -//# sourceMappingURL=sdkWallets.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts.map b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts.map deleted file mode 100644 index cb8d9ee6..00000000 --- a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/sdkWallets.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sdkWallets.d.ts","sourceRoot":"","sources":["../../src/AIP62StandardWallets/sdkWallets.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE,UAAU,yBA8CpD"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts deleted file mode 100644 index 4afaff4e..00000000 --- a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { WalletName } from "../LegacyWalletPlugins/types"; -import { WalletReadyState } from "../constants"; -export interface AptosStandardSupportedWallet { - name: WalletName; - url: string; - icon: `data:image/${"svg+xml" | "webp" | "png" | "gif"};base64,${string}`; - readyState: WalletReadyState.NotDetected; -} -export type AvailableWallets = "Nightly" | "Petra" | "T wallet" | "Pontem Wallet" | "Mizu Wallet" | "Continue with Google"; -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts.map b/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts.map deleted file mode 100644 index b9f722e8..00000000 --- a/packages/wallet-adapter-core-new/dist/AIP62StandardWallets/types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/AIP62StandardWallets/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,4BAA4B,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IAExE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAEvB,GAAG,EAAE,MAAM,CAAC;IAEZ,IAAI,EAAE,cAAc,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,WAAW,MAAM,EAAE,CAAC;IAG1E,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC;CAC1C;AAGD,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,OAAO,GACP,UAAU,GACV,eAAe,GACf,aAAa,GACb,sBAAsB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts deleted file mode 100644 index f776efa3..00000000 --- a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { TxnBuilderTypes, Types } from "aptos"; -import EventEmitter from "eventemitter3"; -import { InputGenerateTransactionPayloadData } from "@aptos-labs/ts-sdk"; -import { Wallet, WalletCoreEvents, TransactionOptions, NetworkInfo, InputTransactionData, AccountInfo, SignMessagePayload } from "./types"; -import { DappConfig } from "../WalletCoreNew"; -export declare class WalletCoreV1 extends EventEmitter { - connect(wallet: Wallet): Promise; - /** - * Resolve the transaction type (BCS arguments or Simple arguments) - * - * @param payloadData - * @param network - * @param wallet - * @param transactionInput - * - * @returns - */ - resolveSignAndSubmitTransaction(payloadData: InputGenerateTransactionPayloadData, network: NetworkInfo | null, wallet: Wallet, transactionInput: InputTransactionData, dappConfig?: DappConfig): Promise; - /** - Sign and submit an entry (not bcs serialized) transaction type to chain. - @param transaction a non-bcs serialized transaction - @param options max_gas_amount and gas_unit_limit - @return response from the wallet's signAndSubmitTransaction function - @throws WalletSignAndSubmitMessageError - */ - signAndSubmitTransaction(transaction: Types.TransactionPayload, wallet: Wallet, options?: TransactionOptions): Promise; - /** - Sign and submit a bsc serialized transaction type to chain. - @param transaction a bcs serialized transaction - @param options max_gas_amount and gas_unit_limit - @return response from the wallet's signAndSubmitBCSTransaction function - @throws WalletSignAndSubmitMessageError - */ - signAndSubmitBCSTransaction(transaction: TxnBuilderTypes.TransactionPayload, wallet: Wallet, options?: TransactionOptions): Promise; - /** - Sign transaction - @param transaction - @param options max_gas_amount and gas_unit_limit - @return response from the wallet's signTransaction function - @throws WalletSignTransactionError - */ - signTransaction(transaction: Types.TransactionPayload, wallet: Wallet, options?: TransactionOptions): Promise; - /** - * Signs a message and verifies the signer - * @param message SignMessagePayload - * @returns boolean - */ - signMessageAndVerify(message: SignMessagePayload, wallet: Wallet, account: AccountInfo): Promise; -} -//# sourceMappingURL=WalletCoreV1.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts.map b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts.map deleted file mode 100644 index 86f9d189..00000000 --- a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/WalletCoreV1.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WalletCoreV1.d.ts","sourceRoot":"","sources":["../../src/LegacyWalletPlugins/WalletCoreV1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,eAAe,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,EAEL,mCAAmC,EAEpC,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAWjB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBAAa,YAAa,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IACxD,OAAO,CAAC,MAAM,EAAE,MAAM;IAK5B;;;;;;;;;OASG;IACG,+BAA+B,CACnC,WAAW,EAAE,mCAAmC,EAChD,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,CAAC,EAAE,UAAU;IAuCzB;;;;;;MAME;IACI,wBAAwB,CAC5B,WAAW,EAAE,KAAK,CAAC,kBAAkB,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,GAAG,CAAC;IAcf;;;;;;OAMG;IACG,2BAA2B,CAC/B,WAAW,EAAE,eAAe,CAAC,kBAAkB,EAC/C,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,GAAG,CAAC;IAmBf;;;;;;OAMG;IACG,eAAe,CACnB,WAAW,EAAE,KAAK,CAAC,kBAAkB,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAc7B;;;;OAIG;IACG,oBAAoB,CACxB,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC;CAuEpB"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts deleted file mode 100644 index 938bf7cb..00000000 --- a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Network, TransactionPayload, InputGenerateTransactionPayloadData, AptosConfig, InputEntryFunctionData, TransactionPayloadEntryFunction } from "@aptos-labs/ts-sdk"; -import { NetworkInfo as StandardNetworkInfo } from "@aptos-labs/wallet-standard"; -import { TxnBuilderTypes, Types } from "aptos"; -import { NetworkInfo } from "./types"; -export declare function convertNetwork(networkInfo: NetworkInfo | StandardNetworkInfo | null): Network; -export declare function convertV2TransactionPayloadToV1BCSPayload(payload: TransactionPayload): TxnBuilderTypes.TransactionPayload; -export declare function convertV2PayloadToV1JSONPayload(payload: InputGenerateTransactionPayloadData): Types.TransactionPayload; -export declare function convertPayloadInputV1ToV2(inputV1: Types.TransactionPayload): InputEntryFunctionData; -export declare function generateTransactionPayloadFromV1Input(aptosConfig: AptosConfig, inputV1: Types.TransactionPayload): Promise; -export interface CompatibleTransactionOptions { - expireTimestamp?: number; - expirationSecondsFromNow?: number; - expirationTimestamp?: number; - gasUnitPrice?: number; - gas_unit_price?: number; - maxGasAmount?: number; - max_gas_amount?: number; - sender?: string; - sequenceNumber?: number; -} -//# sourceMappingURL=conversion.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts.map b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts.map deleted file mode 100644 index 2a1800a8..00000000 --- a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/conversion.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../../src/LegacyWalletPlugins/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,mCAAmC,EAEnC,WAAW,EACX,sBAAsB,EAItB,+BAA+B,EAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAO,eAAe,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,GAAG,mBAAmB,GAAG,IAAI,GACpD,OAAO,CAaT;AAGD,wBAAgB,yCAAyC,CACvD,OAAO,EAAE,kBAAkB,GAC1B,eAAe,CAAC,kBAAkB,CAGpC;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,mCAAmC,GAC3C,KAAK,CAAC,kBAAkB,CA0C1B;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,KAAK,CAAC,kBAAkB,0BAYlC;AAED,wBAAsB,qCAAqC,CACzD,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,KAAK,CAAC,kBAAkB,GAChC,OAAO,CAAC,+BAA+B,CAAC,CAO1C;AAED,MAAM,WAAW,4BAA4B;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts deleted file mode 100644 index 47f75872..00000000 --- a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./WalletCoreV1"; -export * from "./conversion"; -export * from "./types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts.map b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts.map deleted file mode 100644 index f15f4d89..00000000 --- a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/LegacyWalletPlugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts deleted file mode 100644 index 86b0fa22..00000000 --- a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { Types } from "aptos"; -import { Network, InputGenerateTransactionOptions, InputSubmitTransactionData, PendingTransactionResponse, AccountAddressInput, InputGenerateTransactionPayloadData, AnyRawTransaction, Signature } from "@aptos-labs/ts-sdk"; -import { WalletReadyState } from "../constants"; -import { AptosSignAndSubmitTransactionOutput, AptosSignMessageOutput, UserResponse, AccountInfo as StandardAccountInfo, NetworkInfo as StandardNetworkInfo, AptosChangeNetworkMethod, AptosSignAndSubmitTransactionInput } from "@aptos-labs/wallet-standard"; -import { AptosStandardSupportedWallet } from "../AIP62StandardWallets/types"; -export { TxnBuilderTypes, Types } from "aptos"; -export type { InputGenerateTransactionData, InputGenerateTransactionOptions, AnyRawTransaction, InputSubmitTransactionData, PendingTransactionResponse, AccountAuthenticator, Network, } from "@aptos-labs/ts-sdk"; -export type { NetworkInfo as StandardNetworkInfo, AptosChangeNetworkOutput, } from "@aptos-labs/wallet-standard"; -export type WalletName = T & { - __brand__: "WalletName"; -}; -export type NetworkInfo = { - name: Network; - chainId?: string; - url?: string; -}; -export type WalletInfo = { - name: WalletName; - icon: string; - url: string; -}; -export type AccountInfo = { - address: string; - publicKey: string | string[]; - minKeysRequired?: number; - ansName?: string | null; -}; -export interface AptosWalletErrorResult { - code: number; - name: string; - message: string; -} -export declare interface WalletCoreEvents { - connect(account: AccountInfo | null): void; - disconnect(): void; - readyStateChange(wallet: Wallet): void; - standardWalletsAdded(wallets: Wallet | AptosStandardSupportedWallet): void; - networkChange(network: NetworkInfo | null): void; - accountChange(account: AccountInfo | null): void; -} -export interface SignMessagePayload { - address?: boolean; - application?: boolean; - chainId?: boolean; - message: string; - nonce: string; -} -export interface SignMessageResponse { - address?: string; - application?: string; - chainId?: number; - fullMessage: string; - message: string; - nonce: string; - prefix: "APTOS"; - signature: string | string[] | Signature; - bitmap?: Uint8Array; -} -export type OnNetworkChange = (callBack: (networkInfo: NetworkInfo | StandardNetworkInfo) => Promise) => Promise; -export type OnAccountChange = (callBack: (accountInfo: AccountInfo | StandardAccountInfo) => Promise) => Promise; -export interface AdapterPluginEvents { - onNetworkChange: OnNetworkChange; - onAccountChange: OnAccountChange; -} -export interface AdapterPluginProps { - name: WalletName; - url: string; - icon: `data:image/${"svg+xml" | "webp" | "png" | "gif"};base64,${string}`; - providerName?: string; - provider: any; - deeplinkProvider?: (data: { - url: string; - }) => string; - openInMobileApp?: () => void; - connect(): Promise; - disconnect: () => Promise; - network: () => Promise; - signAndSubmitTransaction?(transaction: Types.TransactionPayload | InputTransactionData | AnyRawTransaction | AptosSignAndSubmitTransactionInput, options?: InputGenerateTransactionOptions): Promise<{ - hash: Types.HexEncodedBytes; - output?: any; - } | PendingTransactionResponse | UserResponse>; - submitTransaction?(transaction: InputSubmitTransactionData): Promise; - signMessage(message: T): Promise>; - signTransaction?(// `any` type for backwards compatibility, especially for identity connect - transactionOrPayload: any, optionsOrAsFeePayer?: any): Promise; - account?: () => Promise; - changeNetwork?: AptosChangeNetworkMethod; -} -export type AdapterPlugin = AdapterPluginProps & AdapterPluginEvents; -export type Wallet = AdapterPlugin & { - readyState?: WalletReadyState; - isAIP62Standard?: boolean; - isSignTransactionV1_1?: boolean; -}; -export interface TransactionOptions { - max_gas_amount?: bigint; - gas_unit_price?: bigint; -} -export type InputTransactionData = { - sender?: AccountAddressInput; - data: InputGenerateTransactionPayloadData; - options?: InputGenerateTransactionOptions; -}; -export interface PluginProvider { - connect: () => Promise; - account: () => Promise; - disconnect: () => Promise; - signAndSubmitTransaction: (transaction: any, options?: any) => Promise<{ - hash: Types.HexEncodedBytes; - } | AptosWalletErrorResult>; - signMessage: (message: SignMessagePayload) => Promise; - network: () => Promise; - onAccountChange: (listener: (newAddress: AccountInfo) => Promise) => Promise; - onNetworkChange: OnNetworkChange; -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts.map b/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts.map deleted file mode 100644 index 69e4f67f..00000000 --- a/packages/wallet-adapter-core-new/dist/LegacyWalletPlugins/types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/LegacyWalletPlugins/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/WalletCore.d.ts b/packages/wallet-adapter-core-new/dist/WalletCore.d.ts deleted file mode 100644 index 45689706..00000000 --- a/packages/wallet-adapter-core-new/dist/WalletCore.d.ts +++ /dev/null @@ -1,279 +0,0 @@ -import { Types } from "aptos"; -import { Network, AnyRawTransaction, AccountAuthenticator, InputGenerateTransactionOptions, InputSubmitTransactionData, PendingTransactionResponse } from "@aptos-labs/ts-sdk"; -import EventEmitter from "eventemitter3"; -import { AccountInfo as StandardAccountInfo, AptosChangeNetworkOutput, NetworkInfo as StandardNetworkInfo, UserResponse } from "@aptos-labs/wallet-standard"; -import { AccountInfo, InputTransactionData, NetworkInfo, SignMessagePayload, SignMessageResponse, Wallet, WalletCoreEvents, WalletInfo } from "./LegacyWalletPlugins"; -import { AptosStandardWallet, AptosStandardSupportedWallet, AvailableWallets } from "./AIP62StandardWallets"; -import type { AptosConnectWalletConfig } from "@aptos-connect/wallet-adapter-plugin"; -export type IAptosWallet = AptosStandardWallet & Wallet; -/** - * Interface for dapp configuration - * - * @network The network the dapp is working with - * @aptosApiKeys A map of Network<>Api Key generated with {@link https://developers.aptoslabs.com/docs/api-access} - * @aptosConnect Config used to initialize the AptosConnect wallet provider - * @mizuwallet Config used to initialize the Mizu wallet provider - */ -export interface DappConfig { - network: Network; - aptosApiKeys?: Partial>; - /** @deprecated */ - aptosApiKey?: string; - /** @deprecated */ - aptosConnectDappId?: string; - aptosConnect?: Omit; - mizuwallet?: { - manifestURL: string; - appId?: string; - }; -} -/** Any wallet that can be handled by `WalletCore`. - * This includes both wallets from legacy wallet adapter plugins and compatible AIP-62 standard wallets. - */ -export type AnyAptosWallet = Wallet | AptosStandardSupportedWallet; -export declare class WalletCore extends EventEmitter { - private _wallets; - private _optInWallets; - private _standard_wallets; - private _all_wallets; - private _wallet; - private _account; - private _network; - private readonly walletCoreV1; - private readonly walletStandardCore; - private _connecting; - private _connected; - private readonly ga4; - private _dappConfig; - private readonly _sdkWallets; - private _disableTelemetry; - /** - * Core functionality constructor. - * For legacy wallet adapter v1 support we expect the dapp to pass in wallet plugins, - * since AIP-62 standard support this is optional for dapps. - * - * @param plugins legacy wallet adapter v1 wallet plugins - */ - constructor(plugins: ReadonlyArray, optInWallets: ReadonlyArray, dappConfig?: DappConfig, disableTelemetry?: boolean); - private scopePollingDetectionStrategy; - private fetchExtensionAIP62AptosWallets; - private appendNotDetectedStandardSupportedWallets; - /** - * Set AIP-62 SDK wallets - */ - private fetchSDKAIP62AptosWallets; - /** - * Set AIP-62 extension wallets - * - * @param extensionwWallets - */ - private setExtensionAIP62Wallets; - /** - * A function that excludes an AIP-62 compatible wallet the dapp doesnt want to include - * - * @param walletName - * @returns - */ - excludeWallet(wallet: AptosStandardWallet): boolean; - /** - * Standardize AIP62 wallet - * - * 1) check it is Standard compatible - * 2) Update its readyState to Installed (for a future UI detection) - * 3) convert it to the Wallet Plugin type interface for legacy compatibility - * 4) push the wallet into a local standard wallets array - * - * @param wallet - * @returns - */ - private standardizeAIP62WalletType; - /** - * To maintain support for both plugins and AIP-62 standard wallets, - * without introducing dapps breaking changes, we convert - * AIP-62 standard compatible wallets to the legacy adapter wallet plugin type. - * - * @param standardWallet An AIP-62 standard compatible wallet - */ - private standardizeStandardWalletToPluginWalletType; - private recordEvent; - /** - * Helper function to ensure wallet exists - * - * @param wallet A wallet - */ - private ensureWalletExists; - /** - * Helper function to ensure account exists - * - * @param account An account - */ - private ensureAccountExists; - /** - * @deprecated use ensureWalletExists - */ - private doesWalletExist; - /** - * Function to cleat wallet adapter data. - * - * - Removes current connected wallet state - * - Removes current connected account state - * - Removes current connected network state - * - Removes autoconnect local storage value - */ - private clearData; - /** - * Queries and sets ANS name for the current connected wallet account - */ - private setAnsName; - /** - * Sets the connected wallet - * - * @param wallet A wallet - */ - setWallet(wallet: Wallet | null): void; - /** - * Sets the connected account - * - * `AccountInfo` type comes from a legacy wallet adapter plugin - * `StandardAccountInfo` type comes from AIP-62 standard compatible wallet when onAccountChange event is called - * `UserResponse` type comes from AIP-62 standard compatible wallet on wallet connect - * - * @param account An account - */ - setAccount(account: AccountInfo | StandardAccountInfo | UserResponse | null): void; - /** - * Sets the connected network - * - * `NetworkInfo` type comes from a legacy wallet adapter plugin - * `StandardNetworkInfo` type comes from AIP-62 standard compatible wallet - * - * @param network A network - */ - setNetwork(network: NetworkInfo | StandardNetworkInfo | null): void; - /** - * Helper function to detect whether a wallet is connected - * - * @returns boolean - */ - isConnected(): boolean; - /** - * Getter to fetch all detected wallets - */ - get wallets(): ReadonlyArray; - /** - * Getter to fetch all detected plugin wallets - */ - get pluginWallets(): ReadonlyArray; - /** - * Getter to fetch all detected AIP-62 standard compatible wallets - */ - get standardWallets(): ReadonlyArray; - /** - * Getter for the current connected wallet - * - * @return wallet info - * @throws WalletNotSelectedError - */ - get wallet(): WalletInfo | null; - /** - * Getter for the current connected account - * - * @return account info - * @throws WalletAccountError - */ - get account(): AccountInfo | null; - /** - * Getter for the current wallet network - * - * @return network info - * @throws WalletGetNetworkError - */ - get network(): NetworkInfo | null; - /** - * Helper function to run some checks before we connect with a wallet. - * - * @param walletName. The wallet name we want to connect with. - */ - connect(walletName: string): Promise; - /** - * Connects a wallet to the dapp. - * On connect success, we set the current account and the network, and keeping the selected wallet - * name in LocalStorage to support autoConnect function. - * - * @param selectedWallet. The wallet we want to connect. - * @emit emits "connect" event - * @throws WalletConnectionError - */ - connectWallet(selectedWallet: Wallet): Promise; - /** - * Disconnect the current connected wallet. On success, we clear the - * current account, current network and LocalStorage data. - * - * @emit emits "disconnect" event - * @throws WalletDisconnectionError - */ - disconnect(): Promise; - /** - * Signs and submits a transaction to chain - * - * @param transactionInput InputTransactionData - * @param options optional. A configuration object to generate a transaction by - * @returns The pending transaction hash (V1 output) | PendingTransactionResponse (V2 output) - */ - signAndSubmitTransaction(transactionInput: InputTransactionData): Promise<{ - hash: Types.HexEncodedBytes; - output?: any; - } | PendingTransactionResponse>; - /** - * Signs a transaction - * - * To support both existing wallet adapter V1 and V2, we support 2 input types - * - * @param transactionOrPayload AnyRawTransaction - V2 input | Types.TransactionPayload - V1 input - * @param options optional. V1 input - * - * @returns AccountAuthenticator - */ - signTransaction(transactionOrPayload: AnyRawTransaction | Types.TransactionPayload, asFeePayer?: boolean, options?: InputGenerateTransactionOptions): Promise; - /** - * Sign message (doesnt submit to chain). - * - * @param message - * @return response from the wallet's signMessage function - * @throws WalletSignMessageError - */ - signMessage(message: SignMessagePayload): Promise; - /** - * Submits transaction to chain - * - * @param transaction - * @returns PendingTransactionResponse - */ - submitTransaction(transaction: InputSubmitTransactionData): Promise; - /** - Event for when account has changed on the wallet - @return the new account info - @throws WalletAccountChangeError - */ - onAccountChange(): Promise; - /** - Event for when network has changed on the wallet - @return the new network info - @throws WalletNetworkChangeError - */ - onNetworkChange(): Promise; - /** - * Sends a change network request to the wallet to change the connected network - * - * @param network - * @returns AptosChangeNetworkOutput - */ - changeNetwork(network: Network): Promise; - /** - * Signs a message and verifies the signer - * @param message SignMessagePayload - * @returns boolean - */ - signMessageAndVerify(message: SignMessagePayload): Promise; -} -//# sourceMappingURL=WalletCore.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/WalletCore.d.ts.map b/packages/wallet-adapter-core-new/dist/WalletCore.d.ts.map deleted file mode 100644 index 80c0afa1..00000000 --- a/packages/wallet-adapter-core-new/dist/WalletCore.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WalletCore.d.ts","sourceRoot":"","sources":["../src/WalletCore.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts b/packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts deleted file mode 100644 index ba3ea409..00000000 --- a/packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts +++ /dev/null @@ -1,231 +0,0 @@ -import EventEmitter from "eventemitter3"; -import { AptosStandardWallet, AvailableWallets } from "./AIP62StandardWallets"; -import { WalletReadyState } from "./constants"; -import { AccountAuthenticator, AnyRawTransaction, InputGenerateTransactionOptions, InputSubmitTransactionData, Network, PendingTransactionResponse } from "@aptos-labs/ts-sdk"; -import { AptosWallet, AptosSignAndSubmitTransactionOutput, AptosSignTransactionOutputV1_1, NetworkInfo, AccountInfo, AptosSignMessageInput, AptosSignMessageOutput, AptosChangeNetworkOutput } from "@aptos-labs/wallet-standard"; -export type { NetworkInfo, AccountInfo } from "@aptos-labs/wallet-standard"; -import { InputTransactionData } from "./LegacyWalletPlugins/types"; -import { AptosConnectWalletConfig } from "@aptos-connect/wallet-adapter-plugin"; -export type AdapterWallet = AptosWallet & { - readyState?: WalletReadyState; -}; -export type AdapterNotDetectedWallet = Omit & { - readyState: WalletReadyState.NotDetected; -}; -export interface DappConfig { - network: Network; - aptosApiKeys?: Partial>; - aptosConnectDappId?: string; - aptosConnect?: Omit; - mizuwallet?: { - manifestURL: string; - appId?: string; - }; -} -export declare interface WalletCoreEvents { - connect(account: AccountInfo | null): void; - disconnect(): void; - standardWalletsAdded(wallets: AdapterWallet): void; - standardNotDetectedWalletAdded(wallets: AdapterNotDetectedWallet): void; - networkChange(network: NetworkInfo | null): void; - accountChange(account: AccountInfo | null): void; -} -export type AdapterAccountInfo = Omit & { - ansName?: string; -}; -export declare class WalletCoreNew extends EventEmitter { - private _wallet; - private readonly _sdkWallets; - private _standard_wallets; - private _standard_not_detected_wallets; - private _network; - private _connected; - private _connecting; - private _account; - private _dappConfig; - private _optInWallets; - private _disableTelemetry; - private readonly ga4; - constructor(optInWallets?: ReadonlyArray, dappConfig?: DappConfig, disableTelemetry?: boolean); - private fetchExtensionAIP62AptosWallets; - /** - * Set AIP-62 extension wallets - * - * @param extensionwWallets - */ - private setExtensionAIP62Wallets; - /** - * Set AIP-62 SDK wallets - */ - private fetchSDKAIP62AptosWallets; - private appendNotDetectedStandardSupportedWallets; - /** - * A function that excludes an AIP-62 compatible wallet the dapp doesnt want to include - * - * @param walletName - * @returns - */ - excludeWallet(wallet: AptosStandardWallet): boolean; - private recordEvent; - /** - * Helper function to ensure wallet exists - * - * @param wallet A wallet - */ - private ensureWalletExists; - /** - * Helper function to ensure account exists - * - * @param account An account - */ - private ensureAccountExists; - /** - * Queries and sets ANS name for the current connected wallet account - */ - private setAnsName; - /** - * Function to cleat wallet adapter data. - * - * - Removes current connected wallet state - * - Removes current connected account state - * - Removes current connected network state - * - Removes autoconnect local storage value - */ - private clearData; - /** - * Sets the connected wallet - * - * @param wallet A wallet - */ - setWallet(wallet: AptosWallet | null): void; - /** - * Sets the connected account - * - * @param account An account - */ - setAccount(account: AccountInfo | null): void; - /** - * Sets the connected network - * - * @param network A network - */ - setNetwork(network: NetworkInfo | null): void; - /** - * Helper function to detect whether a wallet is connected - * - * @returns boolean - */ - isConnected(): boolean; - /** - * Getter to fetch all detected wallets - */ - get wallets(): ReadonlyArray; - get notDetectedWallets(): ReadonlyArray; - /** - * Getter for the current connected wallet - * - * @return wallet info - * @throws WalletNotSelectedError - */ - get wallet(): AptosWallet | null; - /** - * Getter for the current connected account - * - * @return account info - * @throws WalletAccountError - */ - get account(): AccountInfo | null; - /** - * Getter for the current wallet network - * - * @return network info - * @throws WalletGetNetworkError - */ - get network(): NetworkInfo | null; - /** - * Helper function to run some checks before we connect with a wallet. - * - * @param walletName. The wallet name we want to connect with. - */ - connect(walletName: string): Promise; - /** - * Connects a wallet to the dapp. - * On connect success, we set the current account and the network, and keeping the selected wallet - * name in LocalStorage to support autoConnect function. - * - * @param selectedWallet. The wallet we want to connect. - * @emit emits "connect" event - * @throws WalletConnectionError - */ - connectWallet(selectedWallet: AdapterWallet): Promise; - /** - * Disconnect the current connected wallet. On success, we clear the - * current account, current network and LocalStorage data. - * - * @emit emits "disconnect" event - * @throws WalletDisconnectionError - */ - disconnect(): Promise; - /** - * Signs and submits a transaction to chain - * - * @param transactionInput InputTransactionData - * @returns PendingTransactionResponse - */ - signAndSubmitTransaction(transactionInput: InputTransactionData): Promise; - /** - * Signs a transaction - * - * To support both existing wallet adapter V1 and V2, we support 2 input types - * - * @param transactionOrPayload AnyRawTransaction - V2 input | Types.TransactionPayload - V1 input - * @param options optional. V1 input - * - * @returns AccountAuthenticator - */ - signTransaction(transactionOrPayload: AnyRawTransaction | InputTransactionData, asFeePayer?: boolean, options?: InputGenerateTransactionOptions & { - expirationSecondsFromNow?: number; - expirationTimestamp?: number; - }): Promise; - /** - * Sign message (doesnt submit to chain). - * - * @param message - * @return response from the wallet's signMessage function - * @throws WalletSignMessageError - */ - signMessage(message: AptosSignMessageInput): Promise; - /** - * Submits transaction to chain - * - * @param transaction - * @returns PendingTransactionResponse - */ - submitTransaction(transaction: InputSubmitTransactionData): Promise; - /** - Event for when account has changed on the wallet - @return the new account info - @throws WalletAccountChangeError - */ - onAccountChange(): Promise; - /** - Event for when network has changed on the wallet - @return the new network info - @throws WalletNetworkChangeError - */ - onNetworkChange(): Promise; - /** - * Sends a change network request to the wallet to change the connected network - * - * @param network - * @returns AptosChangeNetworkOutput - */ - changeNetwork(network: Network): Promise; - /** - * Signs a message and verifies the signer - * @param message SignMessagePayload - * @returns boolean - */ - signMessageAndVerify(message: AptosSignMessageInput): Promise; -} -//# sourceMappingURL=WalletCoreNew.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts.map b/packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts.map deleted file mode 100644 index a84a01f1..00000000 --- a/packages/wallet-adapter-core-new/dist/WalletCoreNew.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WalletCoreNew.d.ts","sourceRoot":"","sources":["../src/WalletCoreNew.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts b/packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts deleted file mode 100644 index d1b9b612..00000000 --- a/packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=WalletCore.test.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts.map b/packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts.map deleted file mode 100644 index 522a4c92..00000000 --- a/packages/wallet-adapter-core-new/dist/__tests__/WalletCore.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WalletCore.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/WalletCore.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/constants.d.ts b/packages/wallet-adapter-core-new/dist/constants.d.ts deleted file mode 100644 index 6d90eb6c..00000000 --- a/packages/wallet-adapter-core-new/dist/constants.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -export declare enum WalletReadyState { - /** - * User-installable wallets can typically be detected by scanning for an API - * that they've injected into the global context. If such an API is present, - * we consider the wallet to have been installed. - */ - Installed = "Installed", - NotDetected = "NotDetected", - /** - * Loadable wallets are always available to you. Since you can load them at - * any time, it's meaningless to say that they have been detected. - */ - Loadable = "Loadable", - /** - * If a wallet is not supported on a given platform (eg. server-rendering, or - * mobile) then it will stay in the `Unsupported` state. - */ - Unsupported = "Unsupported" -} -export declare enum NetworkName { - Mainnet = "mainnet", - Testnet = "testnet", - Devnet = "devnet" -} -export declare const ChainIdToAnsSupportedNetworkMap: Record; -/** The base URL for all Aptos Connect wallets. */ -export declare const APTOS_CONNECT_BASE_URL = "https://aptosconnect.app"; -/** The URL to the Aptos Connect account page if the user is signed in to Aptos Connect. */ -export declare const APTOS_CONNECT_ACCOUNT_URL = "https://aptosconnect.app/dashboard/main-account"; -//# sourceMappingURL=constants.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/constants.d.ts.map b/packages/wallet-adapter-core-new/dist/constants.d.ts.map deleted file mode 100644 index afa2b527..00000000 --- a/packages/wallet-adapter-core-new/dist/constants.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B;;;;OAIG;IACH,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B;;;OAGG;IACH,QAAQ,aAAa;IACrB;;;OAGG;IACH,WAAW,gBAAgB;CAC5B;AAED,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGlE,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAEjE,2FAA2F;AAC3F,eAAO,MAAM,yBAAyB,oDACa,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/error/index.d.ts b/packages/wallet-adapter-core-new/dist/error/index.d.ts deleted file mode 100644 index f93edb0d..00000000 --- a/packages/wallet-adapter-core-new/dist/error/index.d.ts +++ /dev/null @@ -1,83 +0,0 @@ -export declare class WalletError extends Error { - error: any; - constructor(message?: string, error?: any); -} -export declare class WalletNotSelectedError extends WalletError { - name: string; -} -export declare class WalletNotReadyError extends WalletError { - name: string; -} -export declare class WalletLoadError extends WalletError { - name: string; -} -export declare class WalletConfigError extends WalletError { - name: string; -} -export declare class WalletConnectionError extends WalletError { - name: string; -} -export declare class WalletDisconnectedError extends WalletError { - name: string; -} -export declare class WalletDisconnectionError extends WalletError { - name: string; -} -export declare class WalletAccountError extends WalletError { - name: string; -} -export declare class WalletGetNetworkError extends WalletError { - name: string; -} -export declare class WalletAccountChangeError extends WalletError { - name: string; -} -export declare class WalletNetworkChangeError extends WalletError { - name: string; -} -export declare class WalletPublicKeyError extends WalletError { - name: string; -} -export declare class WalletKeypairError extends WalletError { - name: string; -} -export declare class WalletNotConnectedError extends WalletError { - name: string; -} -export declare class WalletSendTransactionError extends WalletError { - name: string; -} -export declare class WalletSignMessageError extends WalletError { - name: string; -} -export declare class WalletSubmitTransactionError extends WalletError { - name: string; -} -export declare class WalletSignMessageAndVerifyError extends WalletError { - name: string; -} -export declare class WalletSignAndSubmitMessageError extends WalletError { - name: string; -} -export declare class WalletSignTransactionError extends WalletError { - name: string; -} -export declare class WalletTimeoutError extends WalletError { - name: string; -} -export declare class WalletWindowBlockedError extends WalletError { - name: string; -} -export declare class WalletWindowClosedError extends WalletError { - name: string; -} -export declare class WalletResponseError extends WalletError { - name: string; -} -export declare class WalletNotSupportedMethod extends WalletError { - name: string; -} -export declare class WalletChangeNetworkError extends WalletError { - name: string; -} -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/error/index.d.ts.map b/packages/wallet-adapter-core-new/dist/error/index.d.ts.map deleted file mode 100644 index 546469a3..00000000 --- a/packages/wallet-adapter-core-new/dist/error/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/error/index.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,KAAK;IAC7B,KAAK,EAAE,GAAG,CAAC;gBAEN,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;CAI1C;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACrD,IAAI,SAA4B;CACjC;AAED,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,IAAI,SAAyB;CAC9B;AAED,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,IAAI,SAAqB;CAC1B;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,IAAI,SAAuB;CAC5B;AAED,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,IAAI,SAA2B;CAChC;AAED,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,IAAI,SAA6B;CAClC;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,IAAI,SAA8B;CACnC;AAED,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,IAAI,SAAwB;CAC7B;AACD,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,IAAI,SAA2B;CAChC;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,IAAI,SAA8B;CACnC;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,IAAI,SAA8B;CACnC;AAED,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,IAAI,SAA0B;CAC/B;AAED,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,IAAI,SAAwB;CAC7B;AAED,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,IAAI,SAA6B;CAClC;AAED,qBAAa,0BAA2B,SAAQ,WAAW;IACzD,IAAI,SAAgC;CACrC;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACrD,IAAI,SAA4B;CACjC;AAED,qBAAa,4BAA6B,SAAQ,WAAW;IAC3D,IAAI,SAAkC;CACvC;AAED,qBAAa,+BAAgC,SAAQ,WAAW;IAC9D,IAAI,SAAqC;CAC1C;AAED,qBAAa,+BAAgC,SAAQ,WAAW;IAC9D,IAAI,SAAqC;CAC1C;AAED,qBAAa,0BAA2B,SAAQ,WAAW;IACzD,IAAI,SAAgC;CACrC;AAED,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,IAAI,SAAwB;CAC7B;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,IAAI,SAA8B;CACnC;AAED,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,IAAI,SAA6B;CAClC;AAED,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,IAAI,SAAyB;CAC9B;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,IAAI,SAA8B;CACnC;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,IAAI,SAA8B;CACnC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/ga/index.d.ts b/packages/wallet-adapter-core-new/dist/ga/index.d.ts deleted file mode 100644 index d1c50ffb..00000000 --- a/packages/wallet-adapter-core-new/dist/ga/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export declare class GA4 { - readonly aptosGAID: string | undefined; - constructor(); - gtag(a: string, b: string | object, c?: object): void; - private injectGA; -} -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/ga/index.d.ts.map b/packages/wallet-adapter-core-new/dist/ga/index.d.ts.map deleted file mode 100644 index 7b211f48..00000000 --- a/packages/wallet-adapter-core-new/dist/ga/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ga/index.ts"],"names":[],"mappings":"AAAA,qBAAa,GAAG;IACd,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAoB;;IAO1D,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM;IAK9C,OAAO,CAAC,QAAQ;CAuBjB"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/index.d.ts b/packages/wallet-adapter-core-new/dist/index.d.ts deleted file mode 100644 index 776c8706..00000000 --- a/packages/wallet-adapter-core-new/dist/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { type AdapterWallet, type NetworkInfo, type AccountInfo, WalletCoreNew, type DappConfig, type AdapterNotDetectedWallet, } from "./WalletCoreNew"; -export * from "./LegacyWalletPlugins"; -export * from "./constants"; -export * from "./utils"; -export * from "./AIP62StandardWallets"; -export { type AptosSignAndSubmitTransactionOutput, type AptosSignTransactionOutputV1_1, type AptosSignMessageOutput, type AptosSignMessageInput, } from "@aptos-labs/wallet-standard"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/index.d.ts.map b/packages/wallet-adapter-core-new/dist/index.d.ts.map deleted file mode 100644 index be58cd5d..00000000 --- a/packages/wallet-adapter-core-new/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,aAAa,EACb,KAAK,UAAU,EACf,KAAK,wBAAwB,GAC9B,MAAM,iBAAiB,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,KAAK,mCAAmC,EACxC,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,6BAA6B,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/index.js b/packages/wallet-adapter-core-new/dist/index.js deleted file mode 100644 index c7765bfb..00000000 --- a/packages/wallet-adapter-core-new/dist/index.js +++ /dev/null @@ -1,1357 +0,0 @@ -"use strict"; -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - APTOS_CONNECT_ACCOUNT_URL: () => APTOS_CONNECT_ACCOUNT_URL, - APTOS_CONNECT_BASE_URL: () => APTOS_CONNECT_BASE_URL, - ChainIdToAnsSupportedNetworkMap: () => ChainIdToAnsSupportedNetworkMap, - NetworkName: () => NetworkName, - TxnBuilderTypes: () => import_aptos3.TxnBuilderTypes, - Types: () => import_aptos3.Types, - WalletCoreNew: () => WalletCoreNew, - WalletCoreV1: () => WalletCoreV1, - WalletReadyState: () => WalletReadyState, - WalletStandardCore: () => WalletStandardCore, - areBCSArguments: () => areBCSArguments, - convertNetwork: () => convertNetwork, - convertPayloadInputV1ToV2: () => convertPayloadInputV1ToV2, - convertV2PayloadToV1JSONPayload: () => convertV2PayloadToV1JSONPayload, - convertV2TransactionPayloadToV1BCSPayload: () => convertV2TransactionPayloadToV1BCSPayload, - fetchDevnetChainId: () => fetchDevnetChainId, - generalizedErrorMessage: () => generalizedErrorMessage, - generateTransactionPayloadFromV1Input: () => generateTransactionPayloadFromV1Input, - getAptosConfig: () => getAptosConfig, - getAptosConnectWallets: () => getAptosConnectWallets, - getLocalStorage: () => getLocalStorage, - groupAndSortWallets: () => groupAndSortWallets, - handlePublishPackageTransaction: () => handlePublishPackageTransaction, - isAptosConnectWallet: () => isAptosConnectWallet, - isAptosLiveNetwork: () => isAptosLiveNetwork, - isAptosNetwork: () => isAptosNetwork, - isInAppBrowser: () => isInAppBrowser, - isInstallRequired: () => isInstallRequired, - isInstalled: () => isInstalled, - isMobile: () => isMobile, - isRedirectable: () => isRedirectable, - partitionWallets: () => partitionWallets, - removeLocalStorage: () => removeLocalStorage, - setLocalStorage: () => setLocalStorage, - truncateAddress: () => truncateAddress -}); -module.exports = __toCommonJS(src_exports); - -// src/version.ts -var WALLET_ADAPTER_CORE_VERSION = "4.23.0"; - -// src/WalletCoreNew.ts -var import_eventemitter3 = __toESM(require("eventemitter3")); - -// src/ga/index.ts -var GA4 = class { - constructor() { - this.aptosGAID = "G-GNVVWBL3J9"; - this.injectGA(this.aptosGAID); - } - gtag(a, b, c) { - let dataLayer = window.dataLayer || []; - dataLayer.push(arguments); - } - injectGA(gaID) { - if (typeof window === "undefined") - return; - if (!gaID) - return; - const head = document.getElementsByTagName("head")[0]; - var myScript = document.createElement("script"); - myScript.setAttribute( - "src", - `https://www.googletagmanager.com/gtag/js?id=${gaID}` - ); - const that = this; - myScript.onload = function() { - that.gtag("js", new Date()); - that.gtag("config", `${gaID}`, { - send_page_view: false - }); - }; - head.insertBefore(myScript, head.children[1]); - } -}; - -// src/constants.ts -var WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => { - WalletReadyState2["Installed"] = "Installed"; - WalletReadyState2["NotDetected"] = "NotDetected"; - WalletReadyState2["Loadable"] = "Loadable"; - WalletReadyState2["Unsupported"] = "Unsupported"; - return WalletReadyState2; -})(WalletReadyState || {}); -var NetworkName = /* @__PURE__ */ ((NetworkName2) => { - NetworkName2["Mainnet"] = "mainnet"; - NetworkName2["Testnet"] = "testnet"; - NetworkName2["Devnet"] = "devnet"; - return NetworkName2; -})(NetworkName || {}); -var ChainIdToAnsSupportedNetworkMap = { - "1": "mainnet", - "2": "testnet" -}; -var APTOS_CONNECT_BASE_URL = "https://aptosconnect.app"; -var APTOS_CONNECT_ACCOUNT_URL = "https://aptosconnect.app/dashboard/main-account"; - -// src/AIP62StandardWallets/sdkWallets.ts -var import_wallet_adapter_plugin = require("@aptos-connect/wallet-adapter-plugin"); -var import_ts_sdk = require("@aptos-labs/ts-sdk"); -var import_aptos_wallet_adapter = require("@atomrigslab/aptos-wallet-adapter"); -var import_aptos_wallet_adapter2 = require("@mizuwallet-sdk/aptos-wallet-adapter"); -function getSDKWallets(dappConfig) { - const sdkWallets = []; - if (typeof window !== "undefined") { - sdkWallets.push( - new import_wallet_adapter_plugin.AptosConnectGoogleWallet({ - network: dappConfig == null ? void 0 : dappConfig.network, - dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId, - ...dappConfig == null ? void 0 : dappConfig.aptosConnect - }), - new import_wallet_adapter_plugin.AptosConnectAppleWallet({ - network: dappConfig == null ? void 0 : dappConfig.network, - dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId, - ...dappConfig == null ? void 0 : dappConfig.aptosConnect - }) - ); - if ((dappConfig == null ? void 0 : dappConfig.mizuwallet) && (dappConfig == null ? void 0 : dappConfig.network) && [import_ts_sdk.Network.MAINNET, import_ts_sdk.Network.TESTNET].includes(dappConfig.network)) { - sdkWallets.push( - new import_aptos_wallet_adapter2.MizuWallet({ - network: dappConfig.network, - manifestURL: dappConfig.mizuwallet.manifestURL, - appId: dappConfig.mizuwallet.appId - }) - ); - } - } - if ((dappConfig == null ? void 0 : dappConfig.network) === import_ts_sdk.Network.MAINNET) { - sdkWallets.push(new import_aptos_wallet_adapter.TWallet()); - } else { - sdkWallets.push(new import_aptos_wallet_adapter.DevTWallet()); - } - return sdkWallets; -} - -// src/utils/helpers.ts -var import_ts_sdk3 = require("@aptos-labs/ts-sdk"); - -// src/LegacyWalletPlugins/conversion.ts -var import_ts_sdk2 = require("@aptos-labs/ts-sdk"); -var import_aptos = require("aptos"); -function convertNetwork(networkInfo) { - switch (networkInfo == null ? void 0 : networkInfo.name) { - case "mainnet": - return import_ts_sdk2.Network.MAINNET; - case "testnet": - return import_ts_sdk2.Network.TESTNET; - case "devnet": - return import_ts_sdk2.Network.DEVNET; - case "local": - return import_ts_sdk2.Network.LOCAL; - default: - throw new Error("Invalid Aptos network name"); - } -} -function convertV2TransactionPayloadToV1BCSPayload(payload) { - const deserializer = new import_aptos.BCS.Deserializer(payload.bcsToBytes()); - return import_aptos.TxnBuilderTypes.TransactionPayload.deserialize(deserializer); -} -function convertV2PayloadToV1JSONPayload(payload) { - var _a, _b; - if ("bytecode" in payload) { - throw new Error("script payload not supported"); - } else if ("multisigAddress" in payload) { - const stringTypeTags = (_a = payload.typeArguments) == null ? void 0 : _a.map( - (typeTag) => { - if (typeTag instanceof import_ts_sdk2.TypeTag) { - return typeTag.toString(); - } - return typeTag; - } - ); - const newPayload = { - type: "multisig_payload", - multisig_address: payload.multisigAddress.toString(), - function: payload.function, - type_arguments: stringTypeTags || [], - arguments: payload.functionArguments - }; - return newPayload; - } else { - const stringTypeTags = (_b = payload.typeArguments) == null ? void 0 : _b.map( - (typeTag) => { - if (typeTag instanceof import_ts_sdk2.TypeTag) { - return typeTag.toString(); - } - return typeTag; - } - ); - const newPayload = { - type: "entry_function_payload", - function: payload.function, - type_arguments: stringTypeTags || [], - arguments: payload.functionArguments - }; - return newPayload; - } -} -function convertPayloadInputV1ToV2(inputV1) { - if ("function" in inputV1) { - const inputV2 = { - function: inputV1.function, - functionArguments: inputV1.arguments, - typeArguments: inputV1.type_arguments - }; - return inputV2; - } - throw new Error("Payload type not supported"); -} -async function generateTransactionPayloadFromV1Input(aptosConfig, inputV1) { - if ("function" in inputV1) { - const inputV2 = convertPayloadInputV1ToV2(inputV1); - return (0, import_ts_sdk2.generateTransactionPayload)({ ...inputV2, aptosConfig }); - } - throw new Error("Payload type not supported"); -} - -// src/error/index.ts -var WalletError = class extends Error { - constructor(message, error) { - super(message); - this.error = error; - } -}; -var WalletNotSelectedError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletNotSelectedError"; - } -}; -var WalletNotReadyError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletNotReadyError"; - } -}; -var WalletConnectionError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletConnectionError"; - } -}; -var WalletDisconnectionError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletDisconnectionError"; - } -}; -var WalletAccountError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletAccountError"; - } -}; -var WalletGetNetworkError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletGetNetworkError"; - } -}; -var WalletAccountChangeError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletAccountChangeError"; - } -}; -var WalletNetworkChangeError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletNetworkChangeError"; - } -}; -var WalletNotConnectedError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletNotConnectedError"; - } -}; -var WalletSignMessageError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletSignMessageError"; - } -}; -var WalletSubmitTransactionError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletSubmitTransactionError"; - } -}; -var WalletSignMessageAndVerifyError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletSignMessageAndVerifyError"; - } -}; -var WalletSignAndSubmitMessageError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletSignAndSubmitMessageError"; - } -}; -var WalletSignTransactionError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletSignTransactionError"; - } -}; -var WalletNotSupportedMethod = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletNotSupportedMethod"; - } -}; -var WalletChangeNetworkError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletChangeNetworkError"; - } -}; - -// src/utils/helpers.ts -function isMobile() { - return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test( - navigator.userAgent - ); -} -function isInAppBrowser() { - const isIphone = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test( - navigator.userAgent - ); - const isAndroid = /(Android).*Version\/[\d.]+.*Chrome\/[^\s]+ Mobile/i.test( - navigator.userAgent - ); - return isIphone || isAndroid; -} -function isRedirectable() { - if (typeof navigator === "undefined" || !navigator) - return false; - return isMobile() && !isInAppBrowser(); -} -function generalizedErrorMessage(error) { - return typeof error === "object" && "message" in error ? error.message : error; -} -var areBCSArguments = (args) => { - if (args.length === 0) - return false; - return args.every( - (arg) => arg instanceof import_ts_sdk3.Serializable - ); -}; -var getAptosConfig = (networkInfo, dappConfig) => { - if (!networkInfo) { - throw new Error("Undefined network"); - } - const currentNetwork = convertNetwork(networkInfo); - if (isAptosLiveNetwork(currentNetwork)) { - const apiKey = dappConfig == null ? void 0 : dappConfig.aptosApiKeys; - return new import_ts_sdk3.AptosConfig({ - network: currentNetwork, - clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : void 0 } - }); - } - if (isAptosNetwork(networkInfo)) { - return new import_ts_sdk3.AptosConfig({ - network: currentNetwork - }); - } - return new import_ts_sdk3.AptosConfig({ - network: import_ts_sdk3.Network.CUSTOM, - fullnode: networkInfo.url - }); -}; -var isAptosNetwork = (networkInfo) => { - if (!networkInfo) { - throw new Error("Undefined network"); - } - return import_ts_sdk3.NetworkToNodeAPI[networkInfo.name] !== void 0; -}; -var isAptosLiveNetwork = (networkInfo) => { - return networkInfo === "devnet" || networkInfo === "testnet" || networkInfo === "mainnet"; -}; -var fetchDevnetChainId = async () => { - const aptos = new import_ts_sdk3.Aptos(); - return await aptos.getChainId(); -}; -var handlePublishPackageTransaction = (transactionInput) => { - let metadataBytes = transactionInput.data.functionArguments[0]; - if (typeof metadataBytes === "string") { - metadataBytes = import_ts_sdk3.Hex.fromHexInput(metadataBytes).toUint8Array(); - } - let byteCode = transactionInput.data.functionArguments[1]; - if (Array.isArray(byteCode)) { - byteCode = byteCode.map((byte) => { - if (typeof byte === "string") { - return import_ts_sdk3.Hex.fromHexInput(byte).toUint8Array(); - } - return byte; - }); - } else { - throw new WalletSignAndSubmitMessageError( - "The bytecode argument must be an array." - ).message; - } - return { metadataBytes, byteCode }; -}; - -// src/utils/localStorage.ts -var LOCAL_STORAGE_ITEM_KEY = "AptosWalletName"; -function setLocalStorage(walletName) { - localStorage.setItem(LOCAL_STORAGE_ITEM_KEY, walletName); -} -function removeLocalStorage() { - localStorage.removeItem(LOCAL_STORAGE_ITEM_KEY); -} -function getLocalStorage() { - localStorage.getItem(LOCAL_STORAGE_ITEM_KEY); -} - -// src/utils/walletSelector.ts -function partitionWallets(wallets, partitionFunction = isInstalled) { - const defaultWallets = []; - const moreWallets = []; - for (const wallet of wallets) { - if (partitionFunction(wallet)) - defaultWallets.push(wallet); - else - moreWallets.push(wallet); - } - return { defaultWallets, moreWallets }; -} -function isInstalled(wallet) { - return wallet.readyState === "Installed" /* Installed */; -} -function isInstallRequired(wallet) { - const isWalletReady = isInstalled(wallet); - const isMobile2 = !isWalletReady && isRedirectable(); - return !isMobile2 && !isWalletReady; -} -function truncateAddress(address) { - if (!address) - return; - return `${address.slice(0, 6)}...${address.slice(-5)}`; -} -function isAptosConnectWallet(wallet) { - if (!wallet.url) - return false; - return wallet.url.startsWith(APTOS_CONNECT_BASE_URL); -} -function getAptosConnectWallets(wallets) { - const { defaultWallets, moreWallets } = partitionWallets( - wallets, - isAptosConnectWallet - ); - return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets }; -} -function groupAndSortWallets(wallets, options) { - const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets); - const { defaultWallets, moreWallets } = partitionWallets(otherWallets); - if (options == null ? void 0 : options.sortAptosConnectWallets) { - aptosConnectWallets.sort(options.sortAptosConnectWallets); - } - if (options == null ? void 0 : options.sortAvailableWallets) { - defaultWallets.sort(options.sortAvailableWallets); - } - if (options == null ? void 0 : options.sortInstallableWallets) { - moreWallets.sort(options.sortInstallableWallets); - } - return { - aptosConnectWallets, - availableWallets: defaultWallets, - installableWallets: moreWallets - }; -} - -// src/WalletCoreNew.ts -var import_ts_sdk4 = require("@aptos-labs/ts-sdk"); -var import_wallet_standard = require("@aptos-labs/wallet-standard"); - -// src/AIP62StandardWallets/registry.ts -var aptosStandardSupportedWalletList = [ - { - name: "Nightly", - url: "https://chromewebstore.google.com/detail/nightly/fiikommddbeccaoicoejoniammnalkfa?hl=en", - icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==", - readyState: "NotDetected" /* NotDetected */ - }, - { - name: "Petra", - url: "https://chromewebstore.google.com/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci?hl=en", - icon: "data:image/png;base64,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", - readyState: "NotDetected" /* NotDetected */ - }, - { - name: "Pontem Wallet", - url: "https://pontem.network/pontem-wallet", - icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K", - readyState: "NotDetected" /* NotDetected */ - } -]; - -// src/WalletCoreNew.ts -var WalletCoreNew = class extends import_eventemitter3.default { - constructor(optInWallets, dappConfig, disableTelemetry) { - super(); - this._wallet = null; - this._sdkWallets = []; - this._standard_wallets = []; - this._standard_not_detected_wallets = []; - this._network = null; - this._connected = false; - this._connecting = false; - this._account = null; - this._optInWallets = []; - this._disableTelemetry = false; - this.ga4 = null; - this._optInWallets = optInWallets || []; - this._dappConfig = dappConfig; - this._disableTelemetry = disableTelemetry || false; - this._sdkWallets = getSDKWallets(this._dappConfig); - if (!this._disableTelemetry) { - this.ga4 = new GA4(); - } - this.fetchExtensionAIP62AptosWallets(); - this.fetchSDKAIP62AptosWallets(); - this.appendNotDetectedStandardSupportedWallets(); - } - fetchExtensionAIP62AptosWallets() { - let { aptosWallets, on } = (0, import_wallet_standard.getAptosWallets)(); - this.setExtensionAIP62Wallets(aptosWallets); - if (typeof window === "undefined") - return; - const that = this; - const removeRegisterListener = on("register", function() { - let { aptosWallets: aptosWallets2 } = (0, import_wallet_standard.getAptosWallets)(); - that.setExtensionAIP62Wallets(aptosWallets2); - }); - const removeUnregisterListener = on("unregister", function() { - let { aptosWallets: aptosWallets2 } = (0, import_wallet_standard.getAptosWallets)(); - that.setExtensionAIP62Wallets(aptosWallets2); - }); - } - setExtensionAIP62Wallets(extensionwWallets) { - const wallets = extensionwWallets.filter( - (wallet) => wallet.name !== "Dev T wallet" && wallet.name !== "T wallet" - ); - wallets.map((wallet) => { - if (this.excludeWallet(wallet)) { - return; - } - this._standard_wallets = this._standard_wallets.filter( - (item) => item.name !== wallet.name - ); - const isValid = (0, import_wallet_standard.isWalletWithRequiredFeatureSet)(wallet); - if (isValid) { - const index = this._standard_not_detected_wallets.findIndex( - (notDetctedWallet) => notDetctedWallet.name == wallet.name - ); - if (index !== -1) { - this._standard_not_detected_wallets.splice(index, 1); - } - wallet.readyState = "Installed" /* Installed */; - this._standard_wallets.push(wallet); - this.emit("standardWalletsAdded", wallet); - } - }); - } - fetchSDKAIP62AptosWallets() { - this._sdkWallets.map((wallet) => { - if (this.excludeWallet(wallet)) { - return; - } - const isValid = (0, import_wallet_standard.isWalletWithRequiredFeatureSet)(wallet); - if (isValid) { - wallet.readyState = "Installed" /* Installed */; - this._standard_wallets.push(wallet); - } - }); - } - appendNotDetectedStandardSupportedWallets() { - aptosStandardSupportedWalletList.map((supportedWallet) => { - const existingStandardWallet = this._standard_wallets.find( - (wallet) => wallet.name == supportedWallet.name - ); - if (existingStandardWallet) { - return; - } - if (existingStandardWallet && this.excludeWallet(existingStandardWallet)) { - return; - } - if (!existingStandardWallet) { - this._standard_not_detected_wallets.push(supportedWallet); - this.emit("standardNotDetectedWalletAdded", supportedWallet); - } - }); - } - excludeWallet(wallet) { - if (this._optInWallets.length > 0 && !this._optInWallets.includes(wallet.name)) { - return true; - } - return false; - } - recordEvent(eventName, additionalInfo) { - var _a, _b, _c, _d; - (_d = this.ga4) == null ? void 0 : _d.gtag("event", `wallet_adapter_${eventName}`, { - wallet: (_a = this._wallet) == null ? void 0 : _a.name, - network: (_b = this._network) == null ? void 0 : _b.name, - network_url: (_c = this._network) == null ? void 0 : _c.url, - adapter_core_version: WALLET_ADAPTER_CORE_VERSION, - send_to: "G-GNVVWBL3J9", - ...additionalInfo - }); - } - ensureWalletExists(wallet) { - if (!wallet) { - throw new WalletNotConnectedError().name; - } - if (!(wallet.readyState === "Installed" /* Installed */)) - throw new WalletNotReadyError("Wallet is not set").name; - } - ensureAccountExists(account) { - if (!account) { - throw new WalletAccountError("Account is not set").name; - } - } - async setAnsName() { - var _a; - if (((_a = this._network) == null ? void 0 : _a.chainId) && this._account) { - if (this._account.ansName) - return; - if (!ChainIdToAnsSupportedNetworkMap[this._network.chainId] || !isAptosNetwork(this._network)) { - this._account.ansName = void 0; - return; - } - const aptosConfig = getAptosConfig(this._network, this._dappConfig); - const aptos = new import_ts_sdk4.Aptos(aptosConfig); - const name = await aptos.ans.getPrimaryName({ - address: this._account.address.toString() - }); - this._account.ansName = name; - } - } - clearData() { - this._connected = false; - this.setWallet(null); - this.setAccount(null); - this.setNetwork(null); - removeLocalStorage(); - } - setWallet(wallet) { - this._wallet = wallet; - } - setAccount(account) { - this._account = account; - } - setNetwork(network) { - this._network = network; - } - isConnected() { - return this._connected; - } - get wallets() { - return this._standard_wallets; - } - get notDetectedWallets() { - return this._standard_not_detected_wallets; - } - get wallet() { - try { - if (!this._wallet) - return null; - return this._wallet; - } catch (error) { - throw new WalletNotSelectedError(error).message; - } - } - get account() { - try { - return this._account; - } catch (error) { - throw new WalletAccountError(error).message; - } - } - get network() { - try { - return this._network; - } catch (error) { - throw new WalletGetNetworkError(error).message; - } - } - async connect(walletName) { - var _a, _b, _c; - const allDetectedWallets = this._standard_wallets; - const selectedWallet = allDetectedWallets.find( - (wallet) => wallet.name === walletName - ); - if (!selectedWallet) - return; - if (this._connected) { - if (((_a = this._wallet) == null ? void 0 : _a.name) === walletName) - throw new WalletConnectionError( - `${walletName} wallet is already connected` - ).message; - } - if (isRedirectable() && selectedWallet.readyState !== "Installed" /* Installed */) { - if ((_b = selectedWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _b.openInMobileApp) { - (_c = selectedWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _c.openInMobileApp(); - return; - } - return; - } - if (selectedWallet.readyState !== "Installed" /* Installed */) { - return; - } - await this.connectWallet(selectedWallet); - } - async connectWallet(selectedWallet) { - var _a; - try { - this._connecting = true; - this.setWallet(selectedWallet); - const response = await selectedWallet.features["aptos:connect"].connect(); - if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - const account = response.args; - this.setAccount(account); - const network = await ((_a = selectedWallet.features["aptos:network"]) == null ? void 0 : _a.network()); - this.setNetwork(network); - await this.setAnsName(); - setLocalStorage(selectedWallet.name); - this._connected = true; - this.recordEvent("wallet_connect"); - this.emit("connect", account); - } catch (error) { - this.clearData(); - const errMsg = generalizedErrorMessage(error); - throw new WalletConnectionError(errMsg).message; - } finally { - this._connecting = false; - } - } - async disconnect() { - try { - this.ensureWalletExists(this._wallet); - await this._wallet.features["aptos:disconnect"].disconnect(); - this.clearData(); - this.recordEvent("wallet_disconnect"); - this.emit("disconnect"); - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletDisconnectionError(errMsg).message; - } - } - async signAndSubmitTransaction(transactionInput) { - var _a, _b, _c; - try { - if ("function" in transactionInput.data) { - if (transactionInput.data.function === "0x1::account::rotate_authentication_key_call") { - throw new WalletSignAndSubmitMessageError("SCAM SITE DETECTED").message; - } - if (transactionInput.data.function === "0x1::code::publish_package_txn") { - ({ - metadataBytes: transactionInput.data.functionArguments[0], - byteCode: transactionInput.data.functionArguments[1] - } = handlePublishPackageTransaction(transactionInput)); - } - } - this.ensureWalletExists(this._wallet); - this.ensureAccountExists(this._account); - this.recordEvent("sign_and_submit_transaction"); - if (this._wallet.features["aptos:signAndSubmitTransaction"]) { - if (((_a = this._wallet.features["aptos:signAndSubmitTransaction"]) == null ? void 0 : _a.version) !== "1.1.0") { - const aptosConfig2 = getAptosConfig(this._network, this._dappConfig); - const aptos2 = new import_ts_sdk4.Aptos(aptosConfig2); - const transaction2 = await aptos2.transaction.build.simple({ - sender: this._account.address.toString(), - data: transactionInput.data, - options: transactionInput.options - }); - const signAndSubmitTransactionMethod = this._wallet.features["aptos:signAndSubmitTransaction"].signAndSubmitTransaction; - const response3 = await signAndSubmitTransactionMethod( - transaction2 - ); - if (response3.status === import_wallet_standard.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response3.args; - } - const response2 = await this._wallet.features["aptos:signAndSubmitTransaction"].signAndSubmitTransaction({ - payload: transactionInput.data, - gasUnitPrice: (_b = transactionInput.options) == null ? void 0 : _b.gasUnitPrice, - maxGasAmount: (_c = transactionInput.options) == null ? void 0 : _c.maxGasAmount - }); - if (response2.status === import_wallet_standard.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response2.args; - } - const aptosConfig = getAptosConfig(this._network, this._dappConfig); - const aptos = new import_ts_sdk4.Aptos(aptosConfig); - const transaction = await aptos.transaction.build.simple({ - sender: this._account.address, - data: transactionInput.data, - options: transactionInput.options - }); - const signTransactionResponse = await this.signTransaction(transaction); - const response = await this.submitTransaction({ - transaction, - senderAuthenticator: "authenticator" in signTransactionResponse ? signTransactionResponse.authenticator : signTransactionResponse - }); - return { hash: response.hash }; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignAndSubmitMessageError(errMsg).message; - } - } - async signTransaction(transactionOrPayload, asFeePayer, options) { - var _a, _b, _c, _d; - try { - this.ensureWalletExists(this._wallet); - this.ensureAccountExists(this._account); - this.recordEvent("sign_transaction"); - if ("rawTransaction" in transactionOrPayload) { - const response = await ((_a = this._wallet) == null ? void 0 : _a.features["aptos:signTransaction"].signTransaction( - transactionOrPayload, - asFeePayer - )); - if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } else if (((_b = this._wallet.features["aptos:signTransaction"]) == null ? void 0 : _b.version) === "1.1") { - const signTransactionV1_1StandardInput = { - payload: transactionOrPayload.data, - expirationTimestamp: options == null ? void 0 : options.expirationTimestamp, - expirationSecondsFromNow: options == null ? void 0 : options.expirationSecondsFromNow, - gasUnitPrice: options == null ? void 0 : options.gasUnitPrice, - maxGasAmount: options == null ? void 0 : options.maxGasAmount, - sequenceNumber: options == null ? void 0 : options.accountSequenceNumber, - sender: transactionOrPayload.sender ? { address: import_ts_sdk4.AccountAddress.from(transactionOrPayload.sender) } : void 0 - }; - const walletSignTransactionMethod = (_c = this._wallet) == null ? void 0 : _c.features["aptos:signTransaction"].signTransaction; - const response = await walletSignTransactionMethod( - signTransactionV1_1StandardInput - ); - if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } else { - const aptosConfig = getAptosConfig(this._network, this._dappConfig); - const payload = await (0, import_ts_sdk4.generateTransactionPayload)({ - ...transactionOrPayload.data, - aptosConfig - }); - const rawTransaction = await (0, import_ts_sdk4.generateRawTransaction)({ - aptosConfig, - payload, - sender: this._account.address, - options - }); - const response = await ((_d = this._wallet) == null ? void 0 : _d.features["aptos:signTransaction"].signTransaction( - new import_ts_sdk4.SimpleTransaction(rawTransaction), - asFeePayer - )); - if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignTransactionError(errMsg).message; - } - } - async signMessage(message) { - var _a, _b; - try { - this.ensureWalletExists(this._wallet); - this.recordEvent("sign_message"); - const response = await ((_b = (_a = this._wallet) == null ? void 0 : _a.features["aptos:signMessage"]) == null ? void 0 : _b.signMessage(message)); - if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignMessageError(errMsg).message; - } - } - async submitTransaction(transaction) { - try { - this.ensureWalletExists(this._wallet); - const { additionalSignersAuthenticators } = transaction; - const transactionType = additionalSignersAuthenticators !== void 0 ? "multi-agent" : "simple"; - this.recordEvent("submit_transaction", { - transaction_type: transactionType - }); - const aptosConfig = getAptosConfig(this._network, this._dappConfig); - const aptos = new import_ts_sdk4.Aptos(aptosConfig); - if (additionalSignersAuthenticators !== void 0) { - const multiAgentTxn = { - ...transaction, - additionalSignersAuthenticators - }; - return aptos.transaction.submit.multiAgent(multiAgentTxn); - } else { - return aptos.transaction.submit.simple(transaction); - } - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSubmitTransactionError(errMsg).message; - } - } - async onAccountChange() { - var _a; - try { - this.ensureWalletExists(this._wallet); - await ((_a = this._wallet.features["aptos:onAccountChange"]) == null ? void 0 : _a.onAccountChange( - async (data) => { - this.setAccount(data); - await this.setAnsName(); - this.recordEvent("account_change"); - this.emit("accountChange", this._account); - } - )); - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletAccountChangeError(errMsg).message; - } - } - async onNetworkChange() { - var _a; - try { - this.ensureWalletExists(this._wallet); - await ((_a = this._wallet.features["aptos:onNetworkChange"]) == null ? void 0 : _a.onNetworkChange( - async (data) => { - this.setNetwork(data); - await this.setAnsName(); - this.emit("networkChange", this._network); - } - )); - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletNetworkChangeError(errMsg).message; - } - } - async changeNetwork(network) { - var _a; - try { - this.ensureWalletExists(this._wallet); - this.recordEvent("change_network_request", { - from: (_a = this._network) == null ? void 0 : _a.name, - to: network - }); - const chainId = network === import_ts_sdk4.Network.DEVNET ? await fetchDevnetChainId() : import_ts_sdk4.NetworkToChainId[network]; - const networkInfo = { - name: network, - chainId - }; - if (this._wallet.features["aptos:changeNetwork"]) { - const response = await this._wallet.features["aptos:changeNetwork"].changeNetwork( - networkInfo - ); - if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } - throw new WalletChangeNetworkError( - `${this._wallet.name} does not support changing network request` - ).message; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletChangeNetworkError(errMsg).message; - } - } - async signMessageAndVerify(message) { - try { - this.ensureWalletExists(this._wallet); - this.ensureAccountExists(this._account); - this.recordEvent("sign_message_and_verify"); - try { - const response = await this._wallet.features["aptos:signMessage"].signMessage(message); - if (response.status === import_wallet_standard.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("Failed to sign a message").message; - } - if (this._account.publicKey instanceof import_ts_sdk4.AnyPublicKey && this._account.publicKey.variant === import_ts_sdk4.AnyPublicKeyVariant.Keyless) { - return true; - } - let verified = false; - if (response.args.signature instanceof import_ts_sdk4.MultiEd25519Signature) { - if (!(this._account.publicKey instanceof import_ts_sdk4.MultiEd25519PublicKey)) { - throw new WalletSignMessageAndVerifyError( - "Public key and Signature type mismatch" - ).message; - } - const { fullMessage, signature } = response.args; - const bitmap = signature.bitmap; - if (bitmap) { - const minKeysRequired = this._account.publicKey.threshold; - if (signature.signatures.length < minKeysRequired) { - verified = false; - } else { - verified = this._account.publicKey.verifySignature({ - message: new TextEncoder().encode(fullMessage), - signature - }); - } - } - } else { - verified = this._account.publicKey.verifySignature({ - message: new TextEncoder().encode(response.args.fullMessage), - signature: response.args.signature - }); - } - return verified; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignMessageAndVerifyError(errMsg).message; - } - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignMessageAndVerifyError(errMsg).message; - } - } -}; - -// src/LegacyWalletPlugins/WalletCoreV1.ts -var import_aptos2 = require("aptos"); -var import_eventemitter32 = __toESM(require("eventemitter3")); -var import_buffer = require("buffer"); -var import_ts_sdk5 = require("@aptos-labs/ts-sdk"); -var import_tweetnacl = __toESM(require("tweetnacl")); -var WalletCoreV1 = class extends import_eventemitter32.default { - async connect(wallet) { - const account = await wallet.connect(); - return account; - } - async resolveSignAndSubmitTransaction(payloadData, network, wallet, transactionInput, dappConfig) { - var _a, _b, _c, _d, _e, _f, _g, _h; - if (areBCSArguments(payloadData.functionArguments)) { - const aptosConfig = getAptosConfig(network, dappConfig); - const newPayload = await (0, import_ts_sdk5.generateTransactionPayload)({ - ...payloadData, - aptosConfig - }); - const oldTransactionPayload2 = convertV2TransactionPayloadToV1BCSPayload(newPayload); - return await this.signAndSubmitBCSTransaction( - oldTransactionPayload2, - wallet, - { - max_gas_amount: ((_a = transactionInput.options) == null ? void 0 : _a.maxGasAmount) ? BigInt((_b = transactionInput.options) == null ? void 0 : _b.maxGasAmount) : void 0, - gas_unit_price: ((_c = transactionInput.options) == null ? void 0 : _c.gasUnitPrice) ? BigInt((_d = transactionInput.options) == null ? void 0 : _d.gasUnitPrice) : void 0 - } - ); - } - const oldTransactionPayload = convertV2PayloadToV1JSONPayload(payloadData); - return await this.signAndSubmitTransaction(oldTransactionPayload, wallet, { - max_gas_amount: ((_e = transactionInput.options) == null ? void 0 : _e.maxGasAmount) ? BigInt((_f = transactionInput.options) == null ? void 0 : _f.maxGasAmount) : void 0, - gas_unit_price: ((_g = transactionInput.options) == null ? void 0 : _g.gasUnitPrice) ? BigInt((_h = transactionInput.options) == null ? void 0 : _h.gasUnitPrice) : void 0 - }); - } - async signAndSubmitTransaction(transaction, wallet, options) { - try { - const response = await wallet.signAndSubmitTransaction( - transaction, - options - ); - return response; - } catch (error) { - const errMsg = typeof error == "object" && "message" in error ? error.message : error; - throw new WalletSignAndSubmitMessageError(errMsg).message; - } - } - async signAndSubmitBCSTransaction(transaction, wallet, options) { - if (!("signAndSubmitBCSTransaction" in wallet)) { - throw new WalletNotSupportedMethod( - `Submit a BCS Transaction is not supported by ${wallet.name}` - ).message; - } - try { - const response = await wallet.signAndSubmitBCSTransaction( - transaction, - options - ); - return response; - } catch (error) { - const errMsg = typeof error == "object" && "message" in error ? error.message : error; - throw new WalletSignAndSubmitMessageError(errMsg).message; - } - } - async signTransaction(transaction, wallet, options) { - try { - const response = await wallet.signTransaction( - transaction, - options - ); - return response; - } catch (error) { - const errMsg = typeof error == "object" && "message" in error ? error.message : error; - throw new WalletSignTransactionError(errMsg).message; - } - } - async signMessageAndVerify(message, wallet, account) { - try { - const response = await wallet.signMessage(message); - if (!response) - throw new WalletSignMessageAndVerifyError("Failed to sign a message").message; - console.log("signMessageAndVerify signMessage response", response); - let verified = false; - if (Array.isArray(response.signature)) { - const { fullMessage, signature, bitmap } = response; - if (bitmap) { - const minKeysRequired = account.minKeysRequired; - if (signature.length < minKeysRequired) { - verified = false; - } else { - const bits = Array.from(bitmap).flatMap( - (n) => Array.from({ length: 8 }).map((_, i) => n >> i & 1) - ); - const index = bits.map((_, i) => i).filter((i) => bits[i]); - const publicKeys = account.publicKey; - const matchedPublicKeys = publicKeys.filter( - (_, i) => index.includes(i) - ); - verified = true; - for (let i = 0; i < signature.length; i++) { - const isSigVerified = import_tweetnacl.default.sign.detached.verify( - import_buffer.Buffer.from(fullMessage), - import_buffer.Buffer.from(signature[i], "hex"), - import_buffer.Buffer.from(matchedPublicKeys[i], "hex") - ); - if (!isSigVerified) { - verified = false; - break; - } - } - } - } else { - throw new WalletSignMessageAndVerifyError("Failed to get a bitmap").message; - } - } else { - const currentAccountPublicKey = new import_aptos2.HexString( - account.publicKey - ); - const signature = new import_aptos2.HexString( - response.signature - ); - verified = import_tweetnacl.default.sign.detached.verify( - import_buffer.Buffer.from(response.fullMessage), - import_buffer.Buffer.from(signature.noPrefix(), "hex"), - import_buffer.Buffer.from(currentAccountPublicKey.noPrefix(), "hex") - ); - } - return verified; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignMessageAndVerifyError(errMsg).message; - } - } -}; - -// src/LegacyWalletPlugins/types.ts -var import_aptos3 = require("aptos"); - -// src/AIP62StandardWallets/WalletStandard.ts -var import_wallet_standard2 = require("@aptos-labs/wallet-standard"); -var import_ts_sdk6 = require("@aptos-labs/ts-sdk"); -var WalletStandardCore = class { - async connect(wallet) { - const response = await wallet.connect(); - if (response.status === import_wallet_standard2.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } - async signAndSubmitTransaction(transactionInput, aptos, account, wallet, standardWallets) { - var _a, _b, _c; - try { - const standardWallet = standardWallets.find( - (standardWallet2) => wallet.name === standardWallet2.name - ); - if (((_a = standardWallet == null ? void 0 : standardWallet.features["aptos:signAndSubmitTransaction"]) == null ? void 0 : _a.version) !== "1.1.0") { - const transaction2 = await aptos.transaction.build.simple({ - sender: account.address.toString(), - data: transactionInput.data, - options: transactionInput.options - }); - const response2 = await wallet.signAndSubmitTransaction( - transaction2 - ); - if (response2.status === import_wallet_standard2.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response2.args; - } - const transaction = { - gasUnitPrice: (_b = transactionInput.options) == null ? void 0 : _b.gasUnitPrice, - maxGasAmount: (_c = transactionInput.options) == null ? void 0 : _c.maxGasAmount, - payload: transactionInput.data - }; - const response = await wallet.signAndSubmitTransaction( - transaction - ); - if (response.status === import_wallet_standard2.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignAndSubmitMessageError(errMsg).message; - } - } - async signTransaction(transactionOrInput, wallet, asFeePayer) { - const response = await wallet.signTransaction( - transactionOrInput, - asFeePayer - ); - if (response.status === import_wallet_standard2.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } - async signMessage(message, wallet) { - try { - const response = await wallet.signMessage( - message - ); - if (response.status === import_wallet_standard2.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignMessageError(errMsg).message; - } - } - async signMessageAndVerify(message, wallet) { - try { - const response = await wallet.signMessage( - message - ); - const account = await wallet.account(); - if (response.status === import_wallet_standard2.UserResponseStatus.REJECTED) { - throw new WalletConnectionError("Failed to sign a message").message; - } - if (account.publicKey instanceof import_ts_sdk6.AnyPublicKey && account.publicKey.variant === import_ts_sdk6.AnyPublicKeyVariant.Keyless) { - return true; - } - let verified = false; - if (response.args.signature instanceof import_ts_sdk6.MultiEd25519Signature) { - if (!(account.publicKey instanceof import_ts_sdk6.MultiEd25519PublicKey)) { - throw new WalletSignMessageAndVerifyError( - "Public key and Signature type mismatch" - ).message; - } - const { fullMessage, signature } = response.args; - const bitmap = signature.bitmap; - if (bitmap) { - const minKeysRequired = account.publicKey.threshold; - if (signature.signatures.length < minKeysRequired) { - verified = false; - } else { - verified = account.publicKey.verifySignature({ - message: new TextEncoder().encode(fullMessage), - signature - }); - } - } - } else { - verified = account.publicKey.verifySignature({ - message: new TextEncoder().encode(response.args.fullMessage), - signature: response.args.signature - }); - } - return verified; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignMessageAndVerifyError(errMsg).message; - } - } -}; - -// src/index.ts -var import_wallet_standard3 = require("@aptos-labs/wallet-standard"); -if (typeof window !== "undefined") { - window.WALLET_ADAPTER_CORE_VERSION = WALLET_ADAPTER_CORE_VERSION; -} -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - APTOS_CONNECT_ACCOUNT_URL, - APTOS_CONNECT_BASE_URL, - ChainIdToAnsSupportedNetworkMap, - NetworkName, - TxnBuilderTypes, - Types, - WalletCoreNew, - WalletCoreV1, - WalletReadyState, - WalletStandardCore, - areBCSArguments, - convertNetwork, - convertPayloadInputV1ToV2, - convertV2PayloadToV1JSONPayload, - convertV2TransactionPayloadToV1BCSPayload, - fetchDevnetChainId, - generalizedErrorMessage, - generateTransactionPayloadFromV1Input, - getAptosConfig, - getAptosConnectWallets, - getLocalStorage, - groupAndSortWallets, - handlePublishPackageTransaction, - isAptosConnectWallet, - isAptosLiveNetwork, - isAptosNetwork, - isInAppBrowser, - isInstallRequired, - isInstalled, - isMobile, - isRedirectable, - partitionWallets, - removeLocalStorage, - setLocalStorage, - truncateAddress -}); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/index.js.map b/packages/wallet-adapter-core-new/dist/index.js.map deleted file mode 100644 index 175d214e..00000000 --- a/packages/wallet-adapter-core-new/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts","../src/version.ts","../src/WalletCoreNew.ts","../src/ga/index.ts","../src/constants.ts","../src/AIP62StandardWallets/sdkWallets.ts","../src/utils/helpers.ts","../src/LegacyWalletPlugins/conversion.ts","../src/error/index.ts","../src/utils/localStorage.ts","../src/utils/walletSelector.ts","../src/AIP62StandardWallets/registry.ts","../src/LegacyWalletPlugins/WalletCoreV1.ts","../src/LegacyWalletPlugins/types.ts","../src/AIP62StandardWallets/WalletStandard.ts"],"sourcesContent":["import { WALLET_ADAPTER_CORE_VERSION } from \"./version\";\n\nexport {\n type AdapterWallet,\n type NetworkInfo,\n type AccountInfo,\n WalletCoreNew,\n type DappConfig,\n type AdapterNotDetectedWallet,\n} from \"./WalletCoreNew\";\nexport * from \"./LegacyWalletPlugins\";\nexport * from \"./constants\";\nexport * from \"./utils\";\nexport * from \"./AIP62StandardWallets\";\nexport {\n type AptosSignAndSubmitTransactionOutput,\n type AptosSignTransactionOutputV1_1,\n type AptosSignMessageOutput,\n type AptosSignMessageInput,\n} from \"@aptos-labs/wallet-standard\";\n\n// inject adapter core version to the window\nif (typeof window !== \"undefined\") {\n (window as any).WALLET_ADAPTER_CORE_VERSION = WALLET_ADAPTER_CORE_VERSION;\n}\n","export const WALLET_ADAPTER_CORE_VERSION = \"4.23.0\";\n","import EventEmitter from \"eventemitter3\";\nimport {\n AptosStandardWallet,\n AvailableWallets,\n WalletStandardCore,\n} from \"./AIP62StandardWallets\";\nimport { GA4 } from \"./ga\";\n\nimport { ChainIdToAnsSupportedNetworkMap, WalletReadyState } from \"./constants\";\nimport { getSDKWallets } from \"./AIP62StandardWallets/sdkWallets\";\nimport { WALLET_ADAPTER_CORE_VERSION } from \"./version\";\nimport {\n fetchDevnetChainId,\n generalizedErrorMessage,\n getAptosConfig,\n handlePublishPackageTransaction,\n isAptosNetwork,\n isRedirectable,\n removeLocalStorage,\n setLocalStorage,\n} from \"./utils\";\nimport {\n AccountAddress,\n AccountAuthenticator,\n AnyPublicKey,\n AnyPublicKeyVariant,\n AnyRawTransaction,\n Aptos,\n generateRawTransaction,\n generateTransactionPayload,\n InputEntryFunctionData,\n InputGenerateTransactionOptions,\n InputSubmitTransactionData,\n MultiEd25519PublicKey,\n MultiEd25519Signature,\n Network,\n NetworkToChainId,\n PendingTransactionResponse,\n SimpleTransaction,\n} from \"@aptos-labs/ts-sdk\";\nimport {\n WalletChangeNetworkError,\n WalletAccountChangeError,\n WalletAccountError,\n WalletConnectionError,\n WalletGetNetworkError,\n WalletNetworkChangeError,\n WalletNotConnectedError,\n WalletNotReadyError,\n WalletNotSelectedError,\n WalletSignAndSubmitMessageError,\n WalletSignMessageError,\n WalletSignTransactionError,\n WalletSignMessageAndVerifyError,\n WalletDisconnectionError,\n WalletSubmitTransactionError,\n} from \"./error\";\nimport {\n AptosWallet,\n getAptosWallets,\n isWalletWithRequiredFeatureSet,\n UserResponseStatus,\n AptosSignAndSubmitTransactionOutput,\n UserResponse,\n AptosSignTransactionOutputV1_1,\n AptosSignTransactionInputV1_1,\n AptosSignTransactionMethod,\n AptosSignTransactionMethodV1_1,\n NetworkInfo,\n AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosChangeNetworkOutput,\n} from \"@aptos-labs/wallet-standard\";\nexport type { NetworkInfo, AccountInfo } from \"@aptos-labs/wallet-standard\";\nimport { InputTransactionData } from \"./LegacyWalletPlugins/types\";\nimport { AptosConnectWalletConfig } from \"@aptos-connect/wallet-adapter-plugin\";\nimport { aptosStandardSupportedWalletList } from \"./AIP62StandardWallets/registry\";\n\n// An adapter wallet types is a wallet that is compatible with the wallet standard and the wallet adapter properties\nexport type AdapterWallet = AptosWallet & {\n readyState?: WalletReadyState;\n};\n\n// An adapter not detected wallet types is a wallet that is compatible with the wallet standard but not detected\nexport type AdapterNotDetectedWallet = Omit<\n AdapterWallet,\n \"features\" | \"version\" | \"chains\" | \"accounts\"\n> & {\n readyState: WalletReadyState.NotDetected;\n};\n\nexport interface DappConfig {\n network: Network;\n aptosApiKeys?: Partial>;\n aptosConnectDappId?: string;\n aptosConnect?: Omit;\n mizuwallet?: {\n manifestURL: string;\n appId?: string;\n };\n}\n\nexport declare interface WalletCoreEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n standardWalletsAdded(wallets: AdapterWallet): void;\n standardNotDetectedWalletAdded(wallets: AdapterNotDetectedWallet): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport type AdapterAccountInfo = Omit & {\n // ansName is a read-only property on the standard AccountInfo type\n ansName?: string;\n};\n\nexport class WalletCoreNew extends EventEmitter {\n // Local private variable to hold the wallet that is currently connected\n private _wallet: AdapterWallet | null = null;\n\n // Local private variable to hold SDK wallets in the adapter\n private readonly _sdkWallets: AdapterWallet[] = [];\n\n // Local array that holds all the wallets that are AIP-62 standard compatible\n private _standard_wallets: AdapterWallet[] = [];\n\n // Local array that holds all the wallets that are AIP-62 standard compatible but are not installed on the user machine\n private _standard_not_detected_wallets: AdapterNotDetectedWallet[] = [];\n\n // Local private variable to hold the network that is currently connected\n private _network: NetworkInfo | null = null;\n\n // Local private variable to hold the wallet connected state\n private _connected: boolean = false;\n\n // Local private variable to hold the connecting state\n private _connecting: boolean = false;\n\n // Local private variable to hold the account that is currently connected\n private _account: AdapterAccountInfo | null = null;\n\n // JSON configuration for AptosConnect\n private _dappConfig: DappConfig | undefined;\n\n // Private array that holds all the Wallets a dapp decided to opt-in to\n private _optInWallets: ReadonlyArray = [];\n\n // Local flag to disable the adapter telemetry tool\n private _disableTelemetry: boolean = false;\n\n // Google Analytics 4 module\n private readonly ga4: GA4 | null = null;\n\n constructor(\n optInWallets?: ReadonlyArray,\n dappConfig?: DappConfig,\n disableTelemetry?: boolean\n ) {\n super();\n this._optInWallets = optInWallets || [];\n this._dappConfig = dappConfig;\n this._disableTelemetry = disableTelemetry || false;\n this._sdkWallets = getSDKWallets(this._dappConfig);\n\n // If disableTelemetry set to false (by default), start GA4\n if (!this._disableTelemetry) {\n this.ga4 = new GA4();\n }\n // Strategy to detect AIP-62 standard compatible extension wallets\n this.fetchExtensionAIP62AptosWallets();\n // Strategy to detect AIP-62 standard compatible SDK wallets.\n // We separate the extension and sdk detection process so we dont refetch sdk wallets everytime a new\n // extension wallet is detected\n this.fetchSDKAIP62AptosWallets();\n\n this.appendNotDetectedStandardSupportedWallets();\n }\n\n private fetchExtensionAIP62AptosWallets(): void {\n let { aptosWallets, on } = getAptosWallets();\n this.setExtensionAIP62Wallets(aptosWallets);\n\n if (typeof window === \"undefined\") return;\n // Adds an event listener for new wallets that get registered after the dapp has been loaded,\n // receiving an unsubscribe function, which it can later use to remove the listener\n const that = this;\n const removeRegisterListener = on(\"register\", function () {\n let { aptosWallets } = getAptosWallets();\n that.setExtensionAIP62Wallets(aptosWallets);\n });\n\n const removeUnregisterListener = on(\"unregister\", function () {\n let { aptosWallets } = getAptosWallets();\n that.setExtensionAIP62Wallets(aptosWallets);\n });\n }\n\n /**\n * Set AIP-62 extension wallets\n *\n * @param extensionwWallets\n */\n private setExtensionAIP62Wallets(\n extensionwWallets: readonly AptosWallet[]\n ): void {\n // Twallet SDK fires a register event so the adapter assumes it is an extension wallet\n // so filter out t wallet, remove it when twallet fixes it\n const wallets = extensionwWallets.filter(\n (wallet) => wallet.name !== \"Dev T wallet\" && wallet.name !== \"T wallet\"\n );\n\n wallets.map((wallet: AptosStandardWallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n\n // Remove optional duplications in the _all_wallets array\n this._standard_wallets = this._standard_wallets.filter(\n (item) => item.name !== wallet.name\n );\n\n const isValid = isWalletWithRequiredFeatureSet(wallet);\n if (isValid) {\n // check if we already have this wallet as a not detected wallet\n const index = this._standard_not_detected_wallets.findIndex(\n (notDetctedWallet) => notDetctedWallet.name == wallet.name\n );\n // if we do, remove it from the not detected wallets array as it is now become detected\n if (index !== -1) {\n this._standard_not_detected_wallets.splice(index, 1);\n }\n\n wallet.readyState = WalletReadyState.Installed;\n this._standard_wallets.push(wallet);\n this.emit(\"standardWalletsAdded\", wallet);\n }\n });\n }\n\n /**\n * Set AIP-62 SDK wallets\n */\n private fetchSDKAIP62AptosWallets(): void {\n this._sdkWallets.map((wallet: AptosStandardWallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n const isValid = isWalletWithRequiredFeatureSet(wallet);\n\n if (isValid) {\n wallet.readyState = WalletReadyState.Installed;\n this._standard_wallets.push(wallet);\n }\n });\n }\n\n // Since we can't discover AIP-62 wallets that are not installed on the user machine,\n // we hold a AIP-62 wallets registry to show on the wallet selector modal for the users.\n // Append wallets from wallet standard support registry to the `all_wallets` array\n // when wallet is not installed on the user machine\n private appendNotDetectedStandardSupportedWallets(): void {\n // Loop over the registry map\n aptosStandardSupportedWalletList.map((supportedWallet) => {\n // Check if we already have this wallet as a AIP-62 wallet standard\n const existingStandardWallet = this._standard_wallets.find(\n (wallet) => wallet.name == supportedWallet.name\n );\n if (existingStandardWallet) {\n return;\n }\n // If AIP-62 wallet detected but it is excluded by the dapp, dont add it to the wallets array\n if (\n existingStandardWallet &&\n this.excludeWallet(existingStandardWallet)\n ) {\n return;\n }\n\n // If AIP-62 wallet does not exist, append it to the wallet selector modal\n // as an undetected wallet\n if (!existingStandardWallet) {\n this._standard_not_detected_wallets.push(supportedWallet);\n this.emit(\"standardNotDetectedWalletAdded\", supportedWallet);\n }\n });\n }\n\n /**\n * A function that excludes an AIP-62 compatible wallet the dapp doesnt want to include\n *\n * @param walletName\n * @returns\n */\n excludeWallet(wallet: AptosStandardWallet): boolean {\n // If _optInWallets is not empty, and does not include the provided wallet,\n // return true to exclude the wallet, otherwise return false\n if (\n this._optInWallets.length > 0 &&\n !this._optInWallets.includes(wallet.name as AvailableWallets)\n ) {\n return true;\n }\n return false;\n }\n\n private recordEvent(eventName: string, additionalInfo?: object): void {\n this.ga4?.gtag(\"event\", `wallet_adapter_${eventName}`, {\n wallet: this._wallet?.name,\n network: this._network?.name,\n network_url: this._network?.url,\n adapter_core_version: WALLET_ADAPTER_CORE_VERSION,\n send_to: process.env.GAID,\n ...additionalInfo,\n });\n }\n\n /**\n * Helper function to ensure wallet exists\n *\n * @param wallet A wallet\n */\n private ensureWalletExists(\n wallet: AdapterWallet | null\n ): asserts wallet is AdapterWallet {\n if (!wallet) {\n throw new WalletNotConnectedError().name;\n }\n if (!(wallet.readyState === WalletReadyState.Installed))\n throw new WalletNotReadyError(\"Wallet is not set\").name;\n }\n\n /**\n * Helper function to ensure account exists\n *\n * @param account An account\n */\n private ensureAccountExists(\n account: AccountInfo | null\n ): asserts account is AccountInfo {\n if (!account) {\n throw new WalletAccountError(\"Account is not set\").name;\n }\n }\n\n /**\n * Queries and sets ANS name for the current connected wallet account\n */\n private async setAnsName(): Promise {\n if (this._network?.chainId && this._account) {\n if (this._account.ansName) return;\n // ANS supports only MAINNET or TESTNET\n if (\n !ChainIdToAnsSupportedNetworkMap[this._network.chainId] ||\n !isAptosNetwork(this._network)\n ) {\n this._account.ansName = undefined;\n return;\n }\n\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new Aptos(aptosConfig);\n const name = await aptos.ans.getPrimaryName({\n address: this._account.address.toString(),\n });\n\n this._account.ansName = name;\n }\n }\n\n /**\n * Function to cleat wallet adapter data.\n *\n * - Removes current connected wallet state\n * - Removes current connected account state\n * - Removes current connected network state\n * - Removes autoconnect local storage value\n */\n private clearData(): void {\n this._connected = false;\n this.setWallet(null);\n this.setAccount(null);\n this.setNetwork(null);\n removeLocalStorage();\n }\n\n /**\n * Sets the connected wallet\n *\n * @param wallet A wallet\n */\n setWallet(wallet: AptosWallet | null): void {\n this._wallet = wallet;\n }\n\n /**\n * Sets the connected account\n *\n * @param account An account\n */\n setAccount(account: AccountInfo | null): void {\n this._account = account;\n }\n\n /**\n * Sets the connected network\n *\n * @param network A network\n */\n setNetwork(network: NetworkInfo | null): void {\n this._network = network;\n }\n\n /**\n * Helper function to detect whether a wallet is connected\n *\n * @returns boolean\n */\n isConnected(): boolean {\n return this._connected;\n }\n\n /**\n * Getter to fetch all detected wallets\n */\n get wallets(): ReadonlyArray {\n return this._standard_wallets;\n }\n\n get notDetectedWallets(): ReadonlyArray {\n return this._standard_not_detected_wallets;\n }\n\n /**\n * Getter for the current connected wallet\n *\n * @return wallet info\n * @throws WalletNotSelectedError\n */\n get wallet(): AptosWallet | null {\n try {\n if (!this._wallet) return null;\n return this._wallet;\n } catch (error: any) {\n throw new WalletNotSelectedError(error).message;\n }\n }\n\n /**\n * Getter for the current connected account\n *\n * @return account info\n * @throws WalletAccountError\n */\n get account(): AccountInfo | null {\n try {\n return this._account;\n } catch (error: any) {\n throw new WalletAccountError(error).message;\n }\n }\n\n /**\n * Getter for the current wallet network\n *\n * @return network info\n * @throws WalletGetNetworkError\n */\n get network(): NetworkInfo | null {\n try {\n return this._network;\n } catch (error: any) {\n throw new WalletGetNetworkError(error).message;\n }\n }\n\n /**\n * Helper function to run some checks before we connect with a wallet.\n *\n * @param walletName. The wallet name we want to connect with.\n */\n async connect(walletName: string): Promise {\n // Checks the wallet exists in the detected wallets array\n const allDetectedWallets = this._standard_wallets;\n\n const selectedWallet = allDetectedWallets.find(\n (wallet: AdapterWallet) => wallet.name === walletName\n );\n\n if (!selectedWallet) return;\n\n // Check if wallet is already connected\n if (this._connected) {\n // if the selected wallet is already connected, we don't need to connect again\n if (this._wallet?.name === walletName)\n throw new WalletConnectionError(\n `${walletName} wallet is already connected`\n ).message;\n }\n\n // Check if we are in a redirectable view (i.e on mobile AND not in an in-app browser)\n // Ignore if wallet is installed (iOS extension)\n if (\n isRedirectable() &&\n selectedWallet.readyState !== WalletReadyState.Installed\n ) {\n // use wallet deep link\n if (selectedWallet.features[\"aptos:openInMobileApp\"]?.openInMobileApp) {\n selectedWallet.features[\"aptos:openInMobileApp\"]?.openInMobileApp();\n return;\n }\n\n return;\n }\n\n // Check wallet state is Installed\n if (selectedWallet.readyState !== WalletReadyState.Installed) {\n return;\n }\n\n // Now we can connect to the wallet\n await this.connectWallet(selectedWallet);\n }\n\n /**\n * Connects a wallet to the dapp.\n * On connect success, we set the current account and the network, and keeping the selected wallet\n * name in LocalStorage to support autoConnect function.\n *\n * @param selectedWallet. The wallet we want to connect.\n * @emit emits \"connect\" event\n * @throws WalletConnectionError\n */\n async connectWallet(selectedWallet: AdapterWallet): Promise {\n try {\n this._connecting = true;\n this.setWallet(selectedWallet);\n const response = await selectedWallet.features[\"aptos:connect\"].connect();\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n const account = response.args;\n this.setAccount(account);\n const network = await selectedWallet.features[\"aptos:network\"]?.network();\n this.setNetwork(network);\n await this.setAnsName();\n setLocalStorage(selectedWallet.name);\n this._connected = true;\n this.recordEvent(\"wallet_connect\");\n this.emit(\"connect\", account);\n } catch (error: any) {\n this.clearData();\n const errMsg = generalizedErrorMessage(error);\n throw new WalletConnectionError(errMsg).message;\n } finally {\n this._connecting = false;\n }\n }\n\n /**\n * Disconnect the current connected wallet. On success, we clear the\n * current account, current network and LocalStorage data.\n *\n * @emit emits \"disconnect\" event\n * @throws WalletDisconnectionError\n */\n async disconnect(): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:disconnect\"].disconnect();\n this.clearData();\n this.recordEvent(\"wallet_disconnect\");\n this.emit(\"disconnect\");\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletDisconnectionError(errMsg).message;\n }\n }\n\n /**\n * Signs and submits a transaction to chain\n *\n * @param transactionInput InputTransactionData\n * @returns PendingTransactionResponse\n */\n async signAndSubmitTransaction(\n transactionInput: InputTransactionData\n ): Promise {\n try {\n if (\"function\" in transactionInput.data) {\n if (\n transactionInput.data.function ===\n \"0x1::account::rotate_authentication_key_call\"\n ) {\n throw new WalletSignAndSubmitMessageError(\"SCAM SITE DETECTED\")\n .message;\n }\n\n if (\n transactionInput.data.function === \"0x1::code::publish_package_txn\"\n ) {\n ({\n metadataBytes: transactionInput.data.functionArguments[0],\n byteCode: transactionInput.data.functionArguments[1],\n } = handlePublishPackageTransaction(transactionInput));\n }\n }\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_and_submit_transaction\");\n\n if (this._wallet.features[\"aptos:signAndSubmitTransaction\"]) {\n // check for backward compatibility. before version 1.1.0 the standard expected\n // AnyRawTransaction input so the adapter built the transaction before sending it to the wallet\n if (\n this._wallet.features[\"aptos:signAndSubmitTransaction\"]?.version !==\n \"1.1.0\"\n ) {\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n\n const aptos = new Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options,\n });\n\n type AptosSignAndSubmitTransactionV1Method = (\n transaction: AnyRawTransaction\n ) => Promise>;\n\n const signAndSubmitTransactionMethod = this._wallet.features[\n \"aptos:signAndSubmitTransaction\"\n ]\n .signAndSubmitTransaction as unknown as AptosSignAndSubmitTransactionV1Method;\n\n const response = (await signAndSubmitTransactionMethod(\n transaction\n )) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n }\n\n const response = await this._wallet.features[\n \"aptos:signAndSubmitTransaction\"\n ].signAndSubmitTransaction({\n payload: transactionInput.data,\n gasUnitPrice: transactionInput.options?.gasUnitPrice,\n maxGasAmount: transactionInput.options?.maxGasAmount,\n });\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n\n // If wallet does not support signAndSubmitTransaction\n // the adapter will sign and submit it for the dapp.\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n\n const aptos = new Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address,\n data: transactionInput.data,\n options: transactionInput.options,\n });\n\n const signTransactionResponse = await this.signTransaction(transaction);\n const response = await this.submitTransaction({\n transaction,\n senderAuthenticator:\n \"authenticator\" in signTransactionResponse\n ? signTransactionResponse.authenticator\n : signTransactionResponse,\n });\n return { hash: response.hash };\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a transaction\n *\n * To support both existing wallet adapter V1 and V2, we support 2 input types\n *\n * @param transactionOrPayload AnyRawTransaction - V2 input | Types.TransactionPayload - V1 input\n * @param options optional. V1 input\n *\n * @returns AccountAuthenticator\n */\n async signTransaction(\n transactionOrPayload: AnyRawTransaction | InputTransactionData,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions & {\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n }\n ): Promise {\n /**\n * All standard compatible wallets should support AnyRawTransaction for signTransaction version 1.0.0\n * For standard signTransaction version 1.1.0, the standard expects a transaction input\n *\n * So, if the input is AnyRawTransaction, we can directly call the wallet's signTransaction method\n *\n *\n * If the input is InputTransactionData, we need to\n * 1. check if the wallet supports signTransaction version 1.1.0 - if so, we convert the input to the standard expected input\n * 2. if it does not support signTransaction version 1.1.0, we convert it to a rawTransaction input and call the wallet's signTransaction method\n */\n\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_transaction\");\n\n // dapp sends a generated transaction (i.e AnyRawTransaction), which is supported by the wallet at signMessage version 1.0.0\n if (\"rawTransaction\" in transactionOrPayload) {\n const response = (await this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction(\n transactionOrPayload,\n asFeePayer\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } // dapp sends a transaction data input (i.e InputTransactionData), which is supported by the wallet at signMessage version 1.1.0\n else if (\n this._wallet.features[\"aptos:signTransaction\"]?.version === \"1.1\"\n ) {\n // convert input to standard expected input\n const signTransactionV1_1StandardInput: AptosSignTransactionInputV1_1 =\n {\n payload: transactionOrPayload.data,\n expirationTimestamp: options?.expirationTimestamp,\n expirationSecondsFromNow: options?.expirationSecondsFromNow,\n gasUnitPrice: options?.gasUnitPrice,\n maxGasAmount: options?.maxGasAmount,\n sequenceNumber: options?.accountSequenceNumber,\n sender: transactionOrPayload.sender\n ? { address: AccountAddress.from(transactionOrPayload.sender) }\n : undefined,\n };\n\n const walletSignTransactionMethod = this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction as AptosSignTransactionMethod &\n AptosSignTransactionMethodV1_1;\n\n const response = (await walletSignTransactionMethod(\n signTransactionV1_1StandardInput\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } else {\n // dapp input is InputTransactionData but the wallet does not support it, so we convert it to a rawTransaction\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const payload = await generateTransactionPayload({\n ...(transactionOrPayload.data as InputEntryFunctionData),\n aptosConfig,\n });\n const rawTransaction = await generateRawTransaction({\n aptosConfig,\n payload,\n sender: this._account.address,\n options: options,\n });\n const response = (await this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction(\n new SimpleTransaction(rawTransaction),\n asFeePayer\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignTransactionError(errMsg).message;\n }\n }\n\n /**\n * Sign message (doesnt submit to chain).\n *\n * @param message\n * @return response from the wallet's signMessage function\n * @throws WalletSignMessageError\n */\n async signMessage(\n message: AptosSignMessageInput\n ): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"sign_message\");\n\n const response =\n await this._wallet?.features[\"aptos:signMessage\"]?.signMessage(message);\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageError(errMsg).message;\n }\n }\n\n /**\n * Submits transaction to chain\n *\n * @param transaction\n * @returns PendingTransactionResponse\n */\n async submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise {\n // The standard does not support submitTransaction, so we use the adapter to submit the transaction\n try {\n this.ensureWalletExists(this._wallet);\n\n const { additionalSignersAuthenticators } = transaction;\n const transactionType =\n additionalSignersAuthenticators !== undefined\n ? \"multi-agent\"\n : \"simple\";\n this.recordEvent(\"submit_transaction\", {\n transaction_type: transactionType,\n });\n\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new Aptos(aptosConfig);\n if (additionalSignersAuthenticators !== undefined) {\n const multiAgentTxn = {\n ...transaction,\n additionalSignersAuthenticators,\n };\n return aptos.transaction.submit.multiAgent(multiAgentTxn);\n } else {\n return aptos.transaction.submit.simple(transaction);\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSubmitTransactionError(errMsg).message;\n }\n }\n\n /**\n Event for when account has changed on the wallet\n @return the new account info\n @throws WalletAccountChangeError\n */\n async onAccountChange(): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onAccountChange\"]?.onAccountChange(\n async (data: AccountInfo) => {\n this.setAccount(data);\n await this.setAnsName();\n this.recordEvent(\"account_change\");\n this.emit(\"accountChange\", this._account);\n }\n );\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletAccountChangeError(errMsg).message;\n }\n }\n\n /**\n Event for when network has changed on the wallet\n @return the new network info\n @throws WalletNetworkChangeError\n */\n async onNetworkChange(): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onNetworkChange\"]?.onNetworkChange(\n async (data: NetworkInfo) => {\n this.setNetwork(data);\n await this.setAnsName();\n this.emit(\"networkChange\", this._network);\n }\n );\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletNetworkChangeError(errMsg).message;\n }\n }\n\n /**\n * Sends a change network request to the wallet to change the connected network\n *\n * @param network\n * @returns AptosChangeNetworkOutput\n */\n async changeNetwork(network: Network): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"change_network_request\", {\n from: this._network?.name,\n to: network,\n });\n const chainId =\n network === Network.DEVNET\n ? await fetchDevnetChainId()\n : NetworkToChainId[network];\n\n const networkInfo: NetworkInfo = {\n name: network,\n chainId,\n };\n\n if (this._wallet.features[\"aptos:changeNetwork\"]) {\n const response =\n await this._wallet.features[\"aptos:changeNetwork\"].changeNetwork(\n networkInfo\n );\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n\n throw new WalletChangeNetworkError(\n `${this._wallet.name} does not support changing network request`\n ).message;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletChangeNetworkError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message SignMessagePayload\n * @returns boolean\n */\n async signMessageAndVerify(message: AptosSignMessageInput): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_message_and_verify\");\n\n try {\n // sign the message\n const response = (await this._wallet.features[\n \"aptos:signMessage\"\n ].signMessage(message)) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"Failed to sign a message\").message;\n }\n\n // For Keyless wallet accounts we skip verification for now.\n // TODO: Remove when client-side verification is done in SDK.\n if (\n this._account.publicKey instanceof AnyPublicKey &&\n this._account.publicKey.variant === AnyPublicKeyVariant.Keyless\n ) {\n return true;\n }\n\n let verified = false;\n // if is a multi sig wallet with a MultiEd25519Signature type\n if (response.args.signature instanceof MultiEd25519Signature) {\n if (!(this._account.publicKey instanceof MultiEd25519PublicKey)) {\n throw new WalletSignMessageAndVerifyError(\n \"Public key and Signature type mismatch\"\n ).message;\n }\n const { fullMessage, signature } = response.args;\n const bitmap = signature.bitmap;\n if (bitmap) {\n const minKeysRequired = this._account.publicKey.threshold;\n if (signature.signatures.length < minKeysRequired) {\n verified = false;\n } else {\n verified = this._account.publicKey.verifySignature({\n message: new TextEncoder().encode(fullMessage),\n signature,\n });\n }\n }\n } else {\n verified = this._account.publicKey.verifySignature({\n message: new TextEncoder().encode(response.args.fullMessage),\n signature: response.args.signature,\n });\n }\n return verified;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n","export class GA4 {\n readonly aptosGAID: string | undefined = process.env.GAID;\n\n constructor() {\n // Inject Aptos Google Analytics 4 script\n this.injectGA(this.aptosGAID);\n }\n\n gtag(a: string, b: string | object, c?: object) {\n let dataLayer = (window as any).dataLayer || [];\n dataLayer.push(arguments);\n }\n\n private injectGA(gaID?: string) {\n if (typeof window === \"undefined\") return;\n if (!gaID) return;\n\n const head = document.getElementsByTagName(\"head\")[0];\n\n var myScript = document.createElement(\"script\");\n\n myScript.setAttribute(\n \"src\",\n `https://www.googletagmanager.com/gtag/js?id=${gaID}`\n );\n\n const that = this;\n myScript.onload = function () {\n that.gtag(\"js\", new Date());\n that.gtag(\"config\", `${gaID}`, {\n send_page_view: false,\n });\n };\n\n head.insertBefore(myScript, head.children[1]);\n }\n}\n","export enum WalletReadyState {\n /**\n * User-installable wallets can typically be detected by scanning for an API\n * that they've injected into the global context. If such an API is present,\n * we consider the wallet to have been installed.\n */\n Installed = \"Installed\",\n NotDetected = \"NotDetected\",\n /**\n * Loadable wallets are always available to you. Since you can load them at\n * any time, it's meaningless to say that they have been detected.\n */\n Loadable = \"Loadable\",\n /**\n * If a wallet is not supported on a given platform (eg. server-rendering, or\n * mobile) then it will stay in the `Unsupported` state.\n */\n Unsupported = \"Unsupported\",\n}\n\nexport enum NetworkName {\n Mainnet = \"mainnet\",\n Testnet = \"testnet\",\n Devnet = \"devnet\",\n}\n\nexport const ChainIdToAnsSupportedNetworkMap: Record = {\n \"1\": \"mainnet\", // mainnet\n \"2\": \"testnet\", // testnet\n};\n\n/** The base URL for all Aptos Connect wallets. */\nexport const APTOS_CONNECT_BASE_URL = \"https://aptosconnect.app\";\n\n/** The URL to the Aptos Connect account page if the user is signed in to Aptos Connect. */\nexport const APTOS_CONNECT_ACCOUNT_URL =\n \"https://aptosconnect.app/dashboard/main-account\";\n","import {\n AptosConnectAppleWallet,\n AptosConnectGoogleWallet,\n} from \"@aptos-connect/wallet-adapter-plugin\";\nimport { Network } from \"@aptos-labs/ts-sdk\";\nimport { DevTWallet, TWallet } from \"@atomrigslab/aptos-wallet-adapter\";\nimport { MizuWallet } from \"@mizuwallet-sdk/aptos-wallet-adapter\";\nimport { DappConfig } from \"../WalletCoreNew\";\nimport { AptosStandardWallet } from \"./WalletStandard\";\n\nexport function getSDKWallets(dappConfig?: DappConfig) {\n const sdkWallets: AptosStandardWallet[] = [];\n\n // Need to check window is defined for AptosConnect\n if (typeof window !== \"undefined\") {\n sdkWallets.push(\n new AptosConnectGoogleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect,\n }),\n new AptosConnectAppleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect,\n })\n );\n\n if (\n dappConfig?.mizuwallet &&\n dappConfig?.network &&\n [Network.MAINNET, Network.TESTNET].includes(dappConfig.network)\n ) {\n sdkWallets.push(\n new MizuWallet({\n network: dappConfig.network as any,\n manifestURL: dappConfig.mizuwallet.manifestURL,\n appId: dappConfig.mizuwallet.appId,\n }) as any\n );\n }\n }\n\n // Push production wallet if env is production, otherwise use dev wallet\n if (dappConfig?.network === Network.MAINNET) {\n // TODO twallet uses @aptos-labs/wallet-standard at version 0.0.11 while adapter uses\n // a newer version (0.1.0) - this causes type mismatch. We should figure out how to handle it.\n sdkWallets.push(new TWallet() as any);\n } else {\n sdkWallets.push(new DevTWallet() as any);\n }\n\n // Add new SDK wallet plugins (ones that should be installed as packages) here:\n // Ex. sdkWallets.push(new YourSDKWallet(dappConfig))\n\n return sdkWallets;\n}\n","import {\n Aptos,\n AptosConfig,\n EntryFunctionArgumentTypes,\n Hex,\n Network,\n NetworkToNodeAPI,\n Serializable,\n SimpleEntryFunctionArgumentTypes,\n} from \"@aptos-labs/ts-sdk\";\nimport { NetworkInfo as StandardNetworkInfo } from \"@aptos-labs/wallet-standard\";\nimport { convertNetwork } from \"../LegacyWalletPlugins/conversion\";\nimport {\n InputTransactionData,\n NetworkInfo,\n} from \"../LegacyWalletPlugins/types\";\nimport { DappConfig } from \"../WalletCoreNew\";\nimport { WalletSignAndSubmitMessageError } from \"../error\";\n\nexport function isMobile(): boolean {\n return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(\n navigator.userAgent\n );\n}\n\nexport function isInAppBrowser(): boolean {\n const isIphone = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(\n navigator.userAgent\n );\n\n const isAndroid = /(Android).*Version\\/[\\d.]+.*Chrome\\/[^\\s]+ Mobile/i.test(\n navigator.userAgent\n );\n\n return isIphone || isAndroid;\n}\n\nexport function isRedirectable(): boolean {\n // SSR: return false\n if (typeof navigator === \"undefined\" || !navigator) return false;\n\n // if we are on mobile and NOT in a in-app browser we will redirect to a wallet app\n\n return isMobile() && !isInAppBrowser();\n}\n\nexport function generalizedErrorMessage(error: any): string {\n return typeof error === \"object\" && \"message\" in error\n ? error.message\n : error;\n}\n\n// Helper function to check if input arguments are BCS serialized arguments.\n// In @aptos-labs/ts-sdk each move representative class extends\n// Serializable, so if each argument is of an instance of a class\n// the extends Serializable - we know these are BCS arguments\nexport const areBCSArguments = (\n args: Array\n): boolean => {\n // `every` returns true if the array is empty, so\n // first check the array length\n if (args.length === 0) return false;\n return args.every(\n (arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes) =>\n arg instanceof Serializable\n );\n};\n\n/**\n * Helper function to get AptosConfig that supports Aptos and Custom networks\n *\n * @param networkInfo\n * @param dappConfig\n * @returns AptosConfig\n */\nexport const getAptosConfig = (\n networkInfo: NetworkInfo | StandardNetworkInfo | null,\n dappConfig: DappConfig | undefined\n): AptosConfig => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n const currentNetwork = convertNetwork(networkInfo);\n\n if (isAptosLiveNetwork(currentNetwork)) {\n const apiKey = dappConfig?.aptosApiKeys;\n return new AptosConfig({\n network: currentNetwork,\n clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : undefined },\n });\n }\n\n if (isAptosNetwork(networkInfo)) {\n return new AptosConfig({\n network: currentNetwork,\n });\n }\n return new AptosConfig({\n network: Network.CUSTOM,\n fullnode: networkInfo.url,\n });\n};\n\n/**\n * Helper function to resolve if the current connected network is an Aptos network\n *\n * @param networkInfo\n * @returns boolean\n */\nexport const isAptosNetwork = (\n networkInfo: NetworkInfo | StandardNetworkInfo | null\n): boolean => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n return NetworkToNodeAPI[networkInfo.name] !== undefined;\n};\n\nexport const isAptosLiveNetwork = (networkInfo: Network): boolean => {\n return (\n networkInfo === \"devnet\" ||\n networkInfo === \"testnet\" ||\n networkInfo === \"mainnet\"\n );\n};\n\n/**\n * Helper function to fetch Devnet chain id\n */\nexport const fetchDevnetChainId = async (): Promise => {\n const aptos = new Aptos(); // default to devnet\n return await aptos.getChainId();\n};\n\n/**\n * A helper function to handle the publish package transaction.\n * The Aptos SDK expects the metadataBytes and byteCode to be Uint8Array, but in case the arguments are passed in\n * as a string, this function converts the string to Uint8Array.\n */\nexport const handlePublishPackageTransaction = (\n transactionInput: InputTransactionData\n) => {\n // convert the first argument, metadataBytes, to uint8array if is a string\n let metadataBytes = transactionInput.data.functionArguments[0];\n if (typeof metadataBytes === \"string\") {\n metadataBytes = Hex.fromHexInput(metadataBytes).toUint8Array();\n }\n\n // convert the second argument, byteCode, to uint8array if is a string\n let byteCode = transactionInput.data.functionArguments[1];\n if (Array.isArray(byteCode)) {\n byteCode = byteCode.map((byte) => {\n if (typeof byte === \"string\") {\n return Hex.fromHexInput(byte).toUint8Array();\n }\n return byte;\n });\n } else {\n throw new WalletSignAndSubmitMessageError(\n \"The bytecode argument must be an array.\"\n ).message;\n }\n\n return { metadataBytes, byteCode };\n};\n","import {\n Network,\n TransactionPayload,\n InputGenerateTransactionPayloadData,\n TypeTag,\n AptosConfig,\n InputEntryFunctionData,\n InputMultiSigData,\n MoveFunctionId,\n generateTransactionPayload,\n TransactionPayloadEntryFunction,\n} from \"@aptos-labs/ts-sdk\";\nimport { NetworkInfo as StandardNetworkInfo } from \"@aptos-labs/wallet-standard\";\nimport { BCS, TxnBuilderTypes, Types } from \"aptos\";\nimport { NetworkInfo } from \"./types\";\n\n// old => new\nexport function convertNetwork(\n networkInfo: NetworkInfo | StandardNetworkInfo | null\n): Network {\n switch (networkInfo?.name) {\n case \"mainnet\" as Network:\n return Network.MAINNET;\n case \"testnet\" as Network:\n return Network.TESTNET;\n case \"devnet\" as Network:\n return Network.DEVNET;\n case \"local\" as Network:\n return Network.LOCAL;\n default:\n throw new Error(\"Invalid Aptos network name\");\n }\n}\n\n// new => old\nexport function convertV2TransactionPayloadToV1BCSPayload(\n payload: TransactionPayload\n): TxnBuilderTypes.TransactionPayload {\n const deserializer = new BCS.Deserializer(payload.bcsToBytes());\n return TxnBuilderTypes.TransactionPayload.deserialize(deserializer);\n}\n\nexport function convertV2PayloadToV1JSONPayload(\n payload: InputGenerateTransactionPayloadData\n): Types.TransactionPayload {\n if (\"bytecode\" in payload) {\n // is a script payload\n throw new Error(\"script payload not supported\");\n // is multisig function payload\n } else if (\"multisigAddress\" in payload) {\n const stringTypeTags: string[] | undefined = payload.typeArguments?.map(\n (typeTag) => {\n if (typeTag instanceof TypeTag) {\n return typeTag.toString();\n }\n return typeTag;\n }\n );\n const newPayload: Types.TransactionPayload = {\n type: \"multisig_payload\",\n multisig_address: payload.multisigAddress.toString(),\n function: payload.function,\n type_arguments: stringTypeTags || [],\n arguments: payload.functionArguments,\n };\n\n return newPayload;\n } else {\n // is entry function payload\n const stringTypeTags: string[] | undefined = payload.typeArguments?.map(\n (typeTag) => {\n if (typeTag instanceof TypeTag) {\n return typeTag.toString();\n }\n return typeTag;\n }\n );\n const newPayload: Types.TransactionPayload = {\n type: \"entry_function_payload\",\n function: payload.function,\n type_arguments: stringTypeTags || [],\n arguments: payload.functionArguments,\n };\n\n return newPayload;\n }\n}\n\nexport function convertPayloadInputV1ToV2(\n inputV1: Types.TransactionPayload\n) {\n if (\"function\" in inputV1) {\n const inputV2: InputEntryFunctionData | InputMultiSigData = {\n function: inputV1.function as MoveFunctionId,\n functionArguments: inputV1.arguments,\n typeArguments: inputV1.type_arguments,\n };\n return inputV2;\n }\n\n throw new Error(\"Payload type not supported\");\n}\n\nexport async function generateTransactionPayloadFromV1Input(\n aptosConfig: AptosConfig,\n inputV1: Types.TransactionPayload\n): Promise {\n if (\"function\" in inputV1) {\n const inputV2 = convertPayloadInputV1ToV2(inputV1);\n return generateTransactionPayload({ ...inputV2, aptosConfig });\n }\n\n throw new Error(\"Payload type not supported\");\n}\n\nexport interface CompatibleTransactionOptions {\n expireTimestamp?: number;\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n gasUnitPrice?: number;\n gas_unit_price?: number;\n maxGasAmount?: number;\n max_gas_amount?: number;\n sender?: string;\n sequenceNumber?: number;\n}\n","export class WalletError extends Error {\n public error: any;\n\n constructor(message?: string, error?: any) {\n super(message);\n this.error = error;\n }\n}\n\nexport class WalletNotSelectedError extends WalletError {\n name = \"WalletNotSelectedError\";\n}\n\nexport class WalletNotReadyError extends WalletError {\n name = \"WalletNotReadyError\";\n}\n\nexport class WalletLoadError extends WalletError {\n name = \"WalletLoadError\";\n}\n\nexport class WalletConfigError extends WalletError {\n name = \"WalletConfigError\";\n}\n\nexport class WalletConnectionError extends WalletError {\n name = \"WalletConnectionError\";\n}\n\nexport class WalletDisconnectedError extends WalletError {\n name = \"WalletDisconnectedError\";\n}\n\nexport class WalletDisconnectionError extends WalletError {\n name = \"WalletDisconnectionError\";\n}\n\nexport class WalletAccountError extends WalletError {\n name = \"WalletAccountError\";\n}\nexport class WalletGetNetworkError extends WalletError {\n name = \"WalletGetNetworkError\";\n}\n\nexport class WalletAccountChangeError extends WalletError {\n name = \"WalletAccountChangeError\";\n}\n\nexport class WalletNetworkChangeError extends WalletError {\n name = \"WalletNetworkChangeError\";\n}\n\nexport class WalletPublicKeyError extends WalletError {\n name = \"WalletPublicKeyError\";\n}\n\nexport class WalletKeypairError extends WalletError {\n name = \"WalletKeypairError\";\n}\n\nexport class WalletNotConnectedError extends WalletError {\n name = \"WalletNotConnectedError\";\n}\n\nexport class WalletSendTransactionError extends WalletError {\n name = \"WalletSendTransactionError\";\n}\n\nexport class WalletSignMessageError extends WalletError {\n name = \"WalletSignMessageError\";\n}\n\nexport class WalletSubmitTransactionError extends WalletError {\n name = \"WalletSubmitTransactionError\";\n}\n\nexport class WalletSignMessageAndVerifyError extends WalletError {\n name = \"WalletSignMessageAndVerifyError\";\n}\n\nexport class WalletSignAndSubmitMessageError extends WalletError {\n name = \"WalletSignAndSubmitMessageError\";\n}\n\nexport class WalletSignTransactionError extends WalletError {\n name = \"WalletSignTransactionError\";\n}\n\nexport class WalletTimeoutError extends WalletError {\n name = \"WalletTimeoutError\";\n}\n\nexport class WalletWindowBlockedError extends WalletError {\n name = \"WalletWindowBlockedError\";\n}\n\nexport class WalletWindowClosedError extends WalletError {\n name = \"WalletWindowClosedError\";\n}\n\nexport class WalletResponseError extends WalletError {\n name = \"WalletResponseError\";\n}\n\nexport class WalletNotSupportedMethod extends WalletError {\n name = \"WalletNotSupportedMethod\";\n}\n\nexport class WalletChangeNetworkError extends WalletError {\n name = \"WalletChangeNetworkError\";\n}\n","const LOCAL_STORAGE_ITEM_KEY = \"AptosWalletName\";\n\nexport function setLocalStorage(walletName: string) {\n localStorage.setItem(LOCAL_STORAGE_ITEM_KEY, walletName);\n}\n\nexport function removeLocalStorage() {\n localStorage.removeItem(LOCAL_STORAGE_ITEM_KEY);\n}\n\nexport function getLocalStorage() {\n localStorage.getItem(LOCAL_STORAGE_ITEM_KEY);\n}\n","import { AptosStandardWallet } from \"../AIP62StandardWallets\";\nimport { WalletInfo } from \"../LegacyWalletPlugins\";\nimport { AdapterNotDetectedWallet, AdapterWallet } from \"../WalletCoreNew\";\nimport { APTOS_CONNECT_BASE_URL, WalletReadyState } from \"../constants\";\nimport { isRedirectable } from \"./helpers\";\n\n/**\n * A function that will partition the provided wallets into two list — `defaultWallets` and `moreWallets`.\n * By default, the wallets will be partitioned by whether or not they are installed or loadable.\n * You can pass your own partition function if you wish to customize this behavior.\n */\nexport function partitionWallets(\n wallets: ReadonlyArray,\n partitionFunction: (\n wallet: AdapterWallet | AdapterNotDetectedWallet\n ) => boolean = isInstalled\n) {\n const defaultWallets: Array = [];\n const moreWallets: Array = [];\n\n for (const wallet of wallets) {\n if (partitionFunction(wallet)) defaultWallets.push(wallet as AdapterWallet);\n else moreWallets.push(wallet as AdapterNotDetectedWallet);\n }\n\n return { defaultWallets, moreWallets };\n}\n\n/** Returns true if the wallet is installed. */\nexport function isInstalled(wallet: AdapterWallet | AdapterNotDetectedWallet) {\n return wallet.readyState === WalletReadyState.Installed;\n}\n\n/**\n * Returns true if the user is on desktop and the provided wallet requires installation of a browser extension.\n * This can be used to decide whether to show a \"Connect\" button or \"Install\" link in the UI.\n */\nexport function isInstallRequired(\n wallet: AdapterWallet | AdapterNotDetectedWallet\n) {\n const isWalletReady = isInstalled(wallet);\n const isMobile = !isWalletReady && isRedirectable();\n\n return !isMobile && !isWalletReady;\n}\n\n/** Truncates the provided wallet address at the middle with an ellipsis. */\nexport function truncateAddress(address: string | undefined) {\n if (!address) return;\n return `${address.slice(0, 6)}...${address.slice(-5)}`;\n}\n\n/** Returns `true` if the provided wallet is an Aptos Connect wallet. */\nexport function isAptosConnectWallet(\n wallet:\n | WalletInfo\n | AdapterWallet\n | AptosStandardWallet\n | AdapterNotDetectedWallet\n) {\n if (!wallet.url) return false;\n return wallet.url.startsWith(APTOS_CONNECT_BASE_URL);\n}\n\n/**\n * Partitions the `wallets` array so that Aptos Connect wallets are grouped separately from the rest.\n * Aptos Connect is a web wallet that uses social login to create accounts on the blockchain.\n */\nexport function getAptosConnectWallets(\n wallets: ReadonlyArray\n) {\n const { defaultWallets, moreWallets } = partitionWallets(\n wallets,\n isAptosConnectWallet\n );\n return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets };\n}\n\nexport interface WalletSortingOptions {\n /** An optional function for sorting Aptos Connect wallets. */\n sortAptosConnectWallets?: (a: AdapterWallet, b: AdapterWallet) => number;\n /** An optional function for sorting wallets that are currently installed or loadable. */\n sortAvailableWallets?: (a: AdapterWallet, b: AdapterWallet) => number;\n /** An optional function for sorting wallets that are NOT currently installed or loadable. */\n sortInstallableWallets?: (\n a: AdapterNotDetectedWallet,\n b: AdapterNotDetectedWallet\n ) => number;\n}\n\n/**\n * Partitions the `wallets` array into three distinct groups:\n *\n * `aptosConnectWallets` - Wallets that use social login to create accounts on\n * the blockchain via Aptos Connect.\n *\n * `availableWallets` - Wallets that are currently installed or loadable by the client.\n *\n * `installableWallets` - Wallets that are NOT current installed or loadable and\n * require the client to install a browser extension first.\n *\n * Additionally, these wallet groups can be sorted by passing sort functions via the `options` argument.\n */\nexport function groupAndSortWallets(\n wallets: ReadonlyArray,\n options?: WalletSortingOptions\n) {\n const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets);\n const { defaultWallets, moreWallets } = partitionWallets(otherWallets);\n\n if (options?.sortAptosConnectWallets) {\n aptosConnectWallets.sort(options.sortAptosConnectWallets);\n }\n if (options?.sortAvailableWallets) {\n defaultWallets.sort(options.sortAvailableWallets);\n }\n if (options?.sortInstallableWallets) {\n moreWallets.sort(options.sortInstallableWallets);\n }\n\n return {\n /** Wallets that use social login to create an account on the blockchain */\n aptosConnectWallets,\n /** Wallets that are currently installed or loadable. */\n availableWallets: defaultWallets,\n /** Wallets that are NOT currently installed or loadable. */\n installableWallets: moreWallets,\n };\n}\n","import { WalletName } from \"../LegacyWalletPlugins/types\";\nimport { AdapterNotDetectedWallet } from \"../WalletCoreNew\";\nimport { WalletReadyState } from \"../constants\";\n\n/**\n * Registry of AIP-62 wallet standard supported wallets.\n * This list is used to show supported wallets even if they are not installed on the user machine.\n *\n * AIP-62 compatible wallets are required to add their wallet info here if they want to be detected by the adapter\n *\n * name - The name of your wallet cast to WalletName (Ex. \"Petra\" as WalletName<\"Petra\">)\n * url - TThe link to your chrome extension or main website where new users can create an account with your wallet.\n * icon - An icon for your wallet. Can be one of 4 data types. Be sure to follow the below format exactly (including the literal \",\" after base64).\n * Format: `data:image/${\"svg+xml\" | \"webp\" | \"png\" | \"gif\"};base64,${string}`\n * Note: ${...} data in the above format should be replaced. Other characters are literals (ex. \";\")\n */\nexport const aptosStandardSupportedWalletList: Array =\n [\n {\n name: \"Nightly\" as WalletName<\"Nightly\">,\n url: \"https://chromewebstore.google.com/detail/nightly/fiikommddbeccaoicoejoniammnalkfa?hl=en\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: WalletReadyState.NotDetected,\n },\n {\n name: \"Petra\" as WalletName<\"Petra\">,\n url: \"https://chromewebstore.google.com/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci?hl=en\",\n icon: \"data:image/png;base64,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\",\n readyState: WalletReadyState.NotDetected,\n },\n {\n name: \"Pontem Wallet\" as WalletName<\"Pontem Wallet\">,\n url: \"https://pontem.network/pontem-wallet\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K\",\n readyState: WalletReadyState.NotDetected,\n },\n ];\n","import { HexString, TxnBuilderTypes, Types } from \"aptos\";\nimport EventEmitter from \"eventemitter3\";\nimport { Buffer } from \"buffer\";\nimport {\n InputEntryFunctionDataWithRemoteABI,\n InputGenerateTransactionPayloadData,\n generateTransactionPayload,\n} from \"@aptos-labs/ts-sdk\";\nimport nacl from \"tweetnacl\";\nimport {\n WalletNotSupportedMethod,\n WalletSignAndSubmitMessageError,\n WalletSignMessageAndVerifyError,\n WalletSignTransactionError,\n} from \"../error\";\nimport {\n Wallet,\n WalletCoreEvents,\n TransactionOptions,\n NetworkInfo,\n InputTransactionData,\n AccountInfo,\n SignMessagePayload,\n SignMessageResponse,\n} from \"./types\";\n\nimport {\n convertV2PayloadToV1JSONPayload,\n convertV2TransactionPayloadToV1BCSPayload,\n} from \"./conversion\";\nimport {\n areBCSArguments,\n generalizedErrorMessage,\n getAptosConfig,\n} from \"../utils\";\nimport { DappConfig } from \"../WalletCoreNew\";\n\nexport class WalletCoreV1 extends EventEmitter {\n async connect(wallet: Wallet) {\n const account = await wallet.connect();\n return account;\n }\n\n /**\n * Resolve the transaction type (BCS arguments or Simple arguments)\n *\n * @param payloadData\n * @param network\n * @param wallet\n * @param transactionInput\n *\n * @returns\n */\n async resolveSignAndSubmitTransaction(\n payloadData: InputGenerateTransactionPayloadData,\n network: NetworkInfo | null,\n wallet: Wallet,\n transactionInput: InputTransactionData,\n dappConfig?: DappConfig\n ) {\n // first check if each argument is a BCS serialized argument\n if (areBCSArguments(payloadData.functionArguments)) {\n const aptosConfig = getAptosConfig(network, dappConfig);\n const newPayload = await generateTransactionPayload({\n ...(payloadData as InputEntryFunctionDataWithRemoteABI),\n aptosConfig: aptosConfig,\n });\n const oldTransactionPayload =\n convertV2TransactionPayloadToV1BCSPayload(newPayload);\n // Call and return signAndSubmitBCSTransaction response\n return await this.signAndSubmitBCSTransaction(\n oldTransactionPayload,\n wallet!,\n {\n max_gas_amount: transactionInput.options?.maxGasAmount\n ? BigInt(transactionInput.options?.maxGasAmount)\n : undefined,\n gas_unit_price: transactionInput.options?.gasUnitPrice\n ? BigInt(transactionInput.options?.gasUnitPrice)\n : undefined,\n }\n );\n }\n\n // if it is not a bcs serialized arguments transaction, convert to the old\n // json format\n const oldTransactionPayload = convertV2PayloadToV1JSONPayload(payloadData);\n return await this.signAndSubmitTransaction(oldTransactionPayload, wallet!, {\n max_gas_amount: transactionInput.options?.maxGasAmount\n ? BigInt(transactionInput.options?.maxGasAmount)\n : undefined,\n gas_unit_price: transactionInput.options?.gasUnitPrice\n ? BigInt(transactionInput.options?.gasUnitPrice)\n : undefined,\n });\n }\n\n /**\n Sign and submit an entry (not bcs serialized) transaction type to chain.\n @param transaction a non-bcs serialized transaction\n @param options max_gas_amount and gas_unit_limit\n @return response from the wallet's signAndSubmitTransaction function\n @throws WalletSignAndSubmitMessageError\n */\n async signAndSubmitTransaction(\n transaction: Types.TransactionPayload,\n wallet: Wallet,\n options?: TransactionOptions\n ): Promise {\n try {\n const response = await (wallet as any).signAndSubmitTransaction(\n transaction,\n options\n );\n return response;\n } catch (error: any) {\n const errMsg =\n typeof error == \"object\" && \"message\" in error ? error.message : error;\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n Sign and submit a bsc serialized transaction type to chain.\n @param transaction a bcs serialized transaction\n @param options max_gas_amount and gas_unit_limit\n @return response from the wallet's signAndSubmitBCSTransaction function\n @throws WalletSignAndSubmitMessageError\n */\n async signAndSubmitBCSTransaction(\n transaction: TxnBuilderTypes.TransactionPayload,\n wallet: Wallet,\n options?: TransactionOptions\n ): Promise {\n if (!(\"signAndSubmitBCSTransaction\" in wallet)) {\n throw new WalletNotSupportedMethod(\n `Submit a BCS Transaction is not supported by ${wallet.name}`\n ).message;\n }\n try {\n const response = await (wallet as any).signAndSubmitBCSTransaction(\n transaction,\n options\n );\n return response;\n } catch (error: any) {\n const errMsg =\n typeof error == \"object\" && \"message\" in error ? error.message : error;\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n Sign transaction\n @param transaction\n @param options max_gas_amount and gas_unit_limit\n @return response from the wallet's signTransaction function\n @throws WalletSignTransactionError\n */\n async signTransaction(\n transaction: Types.TransactionPayload,\n wallet: Wallet,\n options?: TransactionOptions\n ): Promise {\n try {\n const response = await (wallet as any).signTransaction(\n transaction,\n options\n );\n return response;\n } catch (error: any) {\n const errMsg =\n typeof error == \"object\" && \"message\" in error ? error.message : error;\n throw new WalletSignTransactionError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message SignMessagePayload\n * @returns boolean\n */\n async signMessageAndVerify(\n message: SignMessagePayload,\n wallet: Wallet,\n account: AccountInfo\n ): Promise {\n try {\n const response = await wallet.signMessage(message);\n if (!response)\n throw new WalletSignMessageAndVerifyError(\"Failed to sign a message\")\n .message;\n console.log(\"signMessageAndVerify signMessage response\", response);\n\n // Verify that the bytes were signed using the private key that matches the known public key\n let verified = false;\n if (Array.isArray((response as SignMessageResponse).signature)) {\n // multi sig wallets\n const { fullMessage, signature, bitmap } =\n response as SignMessageResponse;\n if (bitmap) {\n const minKeysRequired = account.minKeysRequired as number;\n if ((signature as string[]).length < minKeysRequired) {\n verified = false;\n } else {\n // Getting an array which marks the keys signing the message with 1, while marking 0 for the keys not being used.\n const bits = Array.from(bitmap).flatMap((n) =>\n Array.from({ length: 8 }).map((_, i) => (n >> i) & 1)\n );\n // Filter out indexes of the keys we need\n const index = bits.map((_, i) => i).filter((i) => bits[i]);\n\n const publicKeys = account.publicKey as string[];\n const matchedPublicKeys = publicKeys.filter(\n (_: string, i: number) => index.includes(i)\n );\n\n verified = true;\n for (let i = 0; i < (signature as string[]).length; i++) {\n const isSigVerified = nacl.sign.detached.verify(\n Buffer.from(fullMessage),\n Buffer.from((signature as string[])[i], \"hex\"),\n Buffer.from(matchedPublicKeys[i], \"hex\")\n ); // `isSigVerified` should be `true` for every signature\n\n if (!isSigVerified) {\n verified = false;\n break;\n }\n }\n }\n } else {\n throw new WalletSignMessageAndVerifyError(\"Failed to get a bitmap\")\n .message;\n }\n } else {\n // single sig wallets\n // support for when address doesnt have hex prefix (0x)\n const currentAccountPublicKey = new HexString(\n account.publicKey as string\n );\n // support for when address doesnt have hex prefix (0x)\n const signature = new HexString(\n (response as SignMessageResponse).signature as string\n );\n verified = nacl.sign.detached.verify(\n Buffer.from((response as SignMessageResponse).fullMessage),\n Buffer.from(signature.noPrefix(), \"hex\"),\n Buffer.from(currentAccountPublicKey.noPrefix(), \"hex\")\n );\n }\n return verified;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n","import { Types } from \"aptos\";\nimport {\n Network,\n InputGenerateTransactionOptions,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAddressInput,\n InputGenerateTransactionPayloadData,\n AnyRawTransaction,\n Signature,\n AccountAuthenticator,\n} from \"@aptos-labs/ts-sdk\";\nimport { WalletReadyState } from \"../constants\";\nimport {\n AptosSignAndSubmitTransactionOutput,\n AptosSignMessageOutput,\n UserResponse,\n AccountInfo as StandardAccountInfo,\n NetworkInfo as StandardNetworkInfo,\n AptosChangeNetworkMethod,\n AptosSignAndSubmitTransactionInput,\n} from \"@aptos-labs/wallet-standard\";\nimport { AptosStandardSupportedWallet } from \"../AIP62StandardWallets/types\";\n\nexport { TxnBuilderTypes, Types } from \"aptos\";\nexport type {\n InputGenerateTransactionData,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Network,\n} from \"@aptos-labs/ts-sdk\";\n\nexport type {\n NetworkInfo as StandardNetworkInfo,\n AptosChangeNetworkOutput,\n} from \"@aptos-labs/wallet-standard\";\n\n// WalletName is a nominal type that wallet adapters should use, e.g. `'MyCryptoWallet' as WalletName<'MyCryptoWallet'>`\nexport type WalletName = T & {\n __brand__: \"WalletName\";\n};\n\nexport type NetworkInfo = {\n name: Network;\n chainId?: string;\n url?: string;\n};\n\nexport type WalletInfo = {\n name: WalletName;\n icon: string;\n url: string;\n};\n\nexport type AccountInfo = {\n address: string;\n publicKey: string | string[];\n minKeysRequired?: number;\n ansName?: string | null;\n};\n\nexport interface AptosWalletErrorResult {\n code: number;\n name: string;\n message: string;\n}\n\nexport declare interface WalletCoreEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n readyStateChange(wallet: Wallet): void;\n standardWalletsAdded(wallets: Wallet | AptosStandardSupportedWallet): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport interface SignMessagePayload {\n address?: boolean; // Should we include the address of the account in the message\n application?: boolean; // Should we include the domain of the dapp\n chainId?: boolean; // Should we include the current chain id the wallet is connected to\n message: string; // The message to be signed and displayed to the user\n nonce: string; // A nonce the dapp should generate\n}\n\nexport interface SignMessageResponse {\n address?: string;\n application?: string;\n chainId?: number;\n fullMessage: string; // The message that was generated to sign\n message: string; // The message passed in by the user\n nonce: string;\n prefix: \"APTOS\"; // Should always be APTOS\n signature: string | string[] | Signature; // The signed full message\n bitmap?: Uint8Array; // a 4-byte (32 bits) bit-vector of length N\n}\n\nexport type OnNetworkChange = (\n callBack: (networkInfo: NetworkInfo | StandardNetworkInfo) => Promise\n) => Promise;\n\nexport type OnAccountChange = (\n callBack: (accountInfo: AccountInfo | StandardAccountInfo) => Promise\n) => Promise;\n\nexport interface AdapterPluginEvents {\n onNetworkChange: OnNetworkChange;\n onAccountChange: OnAccountChange;\n}\n\n// TODO add signTransaction()\nexport interface AdapterPluginProps {\n name: WalletName;\n url: string;\n icon: `data:image/${\"svg+xml\" | \"webp\" | \"png\" | \"gif\"};base64,${string}`;\n providerName?: string;\n provider: any;\n // Compatible with legacy wallet plugin\n deeplinkProvider?: (data: { url: string }) => string;\n // Comaptible with AIP-62 standard wallet\n openInMobileApp?: () => void;\n connect(): Promise;\n disconnect: () => Promise;\n network: () => Promise;\n signAndSubmitTransaction?(\n transaction:\n | Types.TransactionPayload\n | InputTransactionData\n | AnyRawTransaction\n | AptosSignAndSubmitTransactionInput,\n options?: InputGenerateTransactionOptions\n ): Promise<\n | { hash: Types.HexEncodedBytes; output?: any }\n | PendingTransactionResponse\n | UserResponse\n >;\n submitTransaction?(\n transaction: InputSubmitTransactionData\n ): Promise;\n signMessage(\n message: T\n ): Promise>;\n signTransaction?( // `any` type for backwards compatibility, especially for identity connect\n transactionOrPayload: any,\n optionsOrAsFeePayer?: any\n ): Promise;\n account?: () => Promise;\n changeNetwork?: AptosChangeNetworkMethod;\n}\n\nexport type AdapterPlugin =\n AdapterPluginProps & AdapterPluginEvents;\n\nexport type Wallet = AdapterPlugin & {\n readyState?: WalletReadyState;\n isAIP62Standard?: boolean;\n isSignTransactionV1_1?: boolean;\n};\n\nexport interface TransactionOptions {\n max_gas_amount?: bigint;\n gas_unit_price?: bigint;\n}\n\nexport type InputTransactionData = {\n sender?: AccountAddressInput;\n data: InputGenerateTransactionPayloadData;\n options?: InputGenerateTransactionOptions;\n};\n\n// To be used by a wallet plugin\nexport interface PluginProvider {\n connect: () => Promise;\n account: () => Promise;\n disconnect: () => Promise;\n signAndSubmitTransaction: (\n transaction: any,\n options?: any\n ) => Promise<{ hash: Types.HexEncodedBytes } | AptosWalletErrorResult>;\n signMessage: (message: SignMessagePayload) => Promise;\n network: () => Promise;\n onAccountChange: (\n listener: (newAddress: AccountInfo) => Promise\n ) => Promise;\n onNetworkChange: OnNetworkChange;\n}\n","import {\n UserResponse,\n AptosSignTransactionInputV1_1,\n AptosSignTransactionOutput,\n AptosSignMessageOutput,\n AptosSignMessageInput,\n AptosWallet,\n UserResponseStatus,\n AptosSignAndSubmitTransactionOutput,\n AccountInfo as StandardAccountInfo,\n AptosConnectOutput,\n AptosSignTransactionOutputV1_1,\n} from \"@aptos-labs/wallet-standard\";\nimport {\n AnyPublicKey,\n AnyPublicKeyVariant,\n AnyRawTransaction,\n PendingTransactionResponse,\n Aptos,\n MultiEd25519Signature,\n MultiEd25519PublicKey,\n} from \"@aptos-labs/ts-sdk\";\n\nimport { WalletReadyState } from \"../constants\";\nimport {\n WalletConnectionError,\n WalletSignAndSubmitMessageError,\n WalletSignMessageAndVerifyError,\n WalletSignMessageError,\n} from \"../error\";\nimport {\n AccountInfo,\n InputTransactionData,\n Wallet,\n} from \"../LegacyWalletPlugins\";\nimport { generalizedErrorMessage } from \"../utils\";\n\nexport type AptosStandardWallet = AptosWallet & {\n readyState?: WalletReadyState;\n};\n\nexport class WalletStandardCore {\n async connect(wallet: Wallet) {\n const response =\n (await wallet.connect()) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response.args;\n }\n\n /**\n * Signs and submits a transaction to chain\n *\n * @param transactionInput InputTransactionData\n * @returns PendingTransactionResponse\n */\n async signAndSubmitTransaction(\n transactionInput: InputTransactionData,\n aptos: Aptos,\n account: AccountInfo,\n wallet: Wallet,\n standardWallets: ReadonlyArray\n ): Promise {\n try {\n // need to find the standard wallet type to do the\n // next features check\n const standardWallet = standardWallets.find(\n (standardWallet: AptosStandardWallet) =>\n wallet.name === standardWallet.name\n );\n\n // check for backward compatibility. before version 1.1.0 the standard expected\n // AnyRawTransaction input so the adapter built the transaction before sending it to the wallet\n if (\n standardWallet?.features[\"aptos:signAndSubmitTransaction\"]?.version !==\n \"1.1.0\"\n ) {\n const transaction = await aptos.transaction.build.simple({\n sender: account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options,\n });\n const response = (await wallet.signAndSubmitTransaction!(\n transaction\n )) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n }\n\n // build standard json format\n const transaction = {\n gasUnitPrice: transactionInput.options?.gasUnitPrice,\n maxGasAmount: transactionInput.options?.maxGasAmount,\n payload: transactionInput.data,\n };\n const response = (await wallet.signAndSubmitTransaction!(\n transaction\n )) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a transaction\n *\n * To support both existing wallet adapter V1 and V2, we support 2 input types\n *\n * @param transactionOrPayload AnyRawTransaction\n * @param options asFeePayer. To sign a transaction as the fee payer sponsor\n *\n * @returns AptosSignTransactionOutput\n */\n async signTransaction(\n transaction: AnyRawTransaction,\n wallet: Wallet,\n asFeePayer?: boolean\n ): Promise\n async signTransaction(\n input: AptosSignTransactionInputV1_1,\n wallet: Wallet,\n ): Promise\n async signTransaction(\n transactionOrInput: AnyRawTransaction | AptosSignTransactionInputV1_1,\n wallet: Wallet,\n asFeePayer?: boolean\n ): Promise {\n const response = (await wallet.signTransaction!(\n transactionOrInput,\n asFeePayer\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response.args;\n }\n\n /**\n * Sign message\n *\n * @param message AptosSignMessageInput\n * @return AptosSignMessageOutput\n * @throws WalletSignMessageError\n */\n async signMessage(\n message: AptosSignMessageInput,\n wallet: Wallet\n ): Promise {\n try {\n const response = (await wallet.signMessage(\n message\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message AptosSignMessageInput\n * @returns boolean\n */\n async signMessageAndVerify(\n message: AptosSignMessageInput,\n wallet: Wallet\n ): Promise {\n try {\n // sign the message\n const response = (await wallet.signMessage(\n message\n )) as UserResponse;\n // standard wallet account() method is a required method\n const account = (await wallet.account!()) as StandardAccountInfo;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"Failed to sign a message\").message;\n }\n\n // For Keyless wallet accounts we skip verification for now.\n // TODO: Remove when client-side verification is done in SDK.\n if (\n account.publicKey instanceof AnyPublicKey &&\n account.publicKey.variant === AnyPublicKeyVariant.Keyless\n ) {\n return true;\n }\n\n let verified = false;\n // if is a multi sig wallet with a MultiEd25519Signature type\n if (response.args.signature instanceof MultiEd25519Signature) {\n if (!(account.publicKey instanceof MultiEd25519PublicKey)) {\n throw new WalletSignMessageAndVerifyError(\n \"Public key and Signature type mismatch\"\n ).message;\n }\n const { fullMessage, signature } = response.args;\n const bitmap = signature.bitmap;\n if (bitmap) {\n const minKeysRequired = account.publicKey.threshold;\n if (signature.signatures.length < minKeysRequired) {\n verified = false;\n } else {\n verified = account.publicKey.verifySignature({\n message: new TextEncoder().encode(fullMessage),\n signature,\n });\n }\n }\n } else {\n verified = account.publicKey.verifySignature({\n message: new TextEncoder().encode(response.args.fullMessage),\n signature: response.args.signature,\n });\n }\n return verified;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n"],"mappings":"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","names":["WalletReadyState","NetworkName","import_aptos_wallet_adapter","import_ts_sdk","import_ts_sdk","isMobile","import_ts_sdk","EventEmitter","aptosWallets","aptosConfig","aptos","transaction","response","import_aptos","import_eventemitter3","import_ts_sdk","EventEmitter","oldTransactionPayload","nacl","import_aptos","import_wallet_standard","import_ts_sdk","standardWallet","transaction","response","import_wallet_standard"]} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/index.mjs b/packages/wallet-adapter-core-new/dist/index.mjs deleted file mode 100644 index d3915bf1..00000000 --- a/packages/wallet-adapter-core-new/dist/index.mjs +++ /dev/null @@ -1,1330 +0,0 @@ -// src/version.ts -var WALLET_ADAPTER_CORE_VERSION = "4.23.0"; - -// src/WalletCoreNew.ts -import EventEmitter from "eventemitter3"; - -// src/ga/index.ts -var GA4 = class { - constructor() { - this.aptosGAID = "G-GNVVWBL3J9"; - this.injectGA(this.aptosGAID); - } - gtag(a, b, c) { - let dataLayer = window.dataLayer || []; - dataLayer.push(arguments); - } - injectGA(gaID) { - if (typeof window === "undefined") - return; - if (!gaID) - return; - const head = document.getElementsByTagName("head")[0]; - var myScript = document.createElement("script"); - myScript.setAttribute( - "src", - `https://www.googletagmanager.com/gtag/js?id=${gaID}` - ); - const that = this; - myScript.onload = function() { - that.gtag("js", new Date()); - that.gtag("config", `${gaID}`, { - send_page_view: false - }); - }; - head.insertBefore(myScript, head.children[1]); - } -}; - -// src/constants.ts -var WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => { - WalletReadyState2["Installed"] = "Installed"; - WalletReadyState2["NotDetected"] = "NotDetected"; - WalletReadyState2["Loadable"] = "Loadable"; - WalletReadyState2["Unsupported"] = "Unsupported"; - return WalletReadyState2; -})(WalletReadyState || {}); -var NetworkName = /* @__PURE__ */ ((NetworkName2) => { - NetworkName2["Mainnet"] = "mainnet"; - NetworkName2["Testnet"] = "testnet"; - NetworkName2["Devnet"] = "devnet"; - return NetworkName2; -})(NetworkName || {}); -var ChainIdToAnsSupportedNetworkMap = { - "1": "mainnet", - "2": "testnet" -}; -var APTOS_CONNECT_BASE_URL = "https://aptosconnect.app"; -var APTOS_CONNECT_ACCOUNT_URL = "https://aptosconnect.app/dashboard/main-account"; - -// src/AIP62StandardWallets/sdkWallets.ts -import { - AptosConnectAppleWallet, - AptosConnectGoogleWallet -} from "@aptos-connect/wallet-adapter-plugin"; -import { Network } from "@aptos-labs/ts-sdk"; -import { DevTWallet, TWallet } from "@atomrigslab/aptos-wallet-adapter"; -import { MizuWallet } from "@mizuwallet-sdk/aptos-wallet-adapter"; -function getSDKWallets(dappConfig) { - const sdkWallets = []; - if (typeof window !== "undefined") { - sdkWallets.push( - new AptosConnectGoogleWallet({ - network: dappConfig == null ? void 0 : dappConfig.network, - dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId, - ...dappConfig == null ? void 0 : dappConfig.aptosConnect - }), - new AptosConnectAppleWallet({ - network: dappConfig == null ? void 0 : dappConfig.network, - dappId: dappConfig == null ? void 0 : dappConfig.aptosConnectDappId, - ...dappConfig == null ? void 0 : dappConfig.aptosConnect - }) - ); - if ((dappConfig == null ? void 0 : dappConfig.mizuwallet) && (dappConfig == null ? void 0 : dappConfig.network) && [Network.MAINNET, Network.TESTNET].includes(dappConfig.network)) { - sdkWallets.push( - new MizuWallet({ - network: dappConfig.network, - manifestURL: dappConfig.mizuwallet.manifestURL, - appId: dappConfig.mizuwallet.appId - }) - ); - } - } - if ((dappConfig == null ? void 0 : dappConfig.network) === Network.MAINNET) { - sdkWallets.push(new TWallet()); - } else { - sdkWallets.push(new DevTWallet()); - } - return sdkWallets; -} - -// src/utils/helpers.ts -import { - Aptos, - AptosConfig as AptosConfig2, - Hex, - Network as Network3, - NetworkToNodeAPI, - Serializable -} from "@aptos-labs/ts-sdk"; - -// src/LegacyWalletPlugins/conversion.ts -import { - Network as Network2, - TypeTag, - generateTransactionPayload -} from "@aptos-labs/ts-sdk"; -import { BCS, TxnBuilderTypes } from "aptos"; -function convertNetwork(networkInfo) { - switch (networkInfo == null ? void 0 : networkInfo.name) { - case "mainnet": - return Network2.MAINNET; - case "testnet": - return Network2.TESTNET; - case "devnet": - return Network2.DEVNET; - case "local": - return Network2.LOCAL; - default: - throw new Error("Invalid Aptos network name"); - } -} -function convertV2TransactionPayloadToV1BCSPayload(payload) { - const deserializer = new BCS.Deserializer(payload.bcsToBytes()); - return TxnBuilderTypes.TransactionPayload.deserialize(deserializer); -} -function convertV2PayloadToV1JSONPayload(payload) { - var _a, _b; - if ("bytecode" in payload) { - throw new Error("script payload not supported"); - } else if ("multisigAddress" in payload) { - const stringTypeTags = (_a = payload.typeArguments) == null ? void 0 : _a.map( - (typeTag) => { - if (typeTag instanceof TypeTag) { - return typeTag.toString(); - } - return typeTag; - } - ); - const newPayload = { - type: "multisig_payload", - multisig_address: payload.multisigAddress.toString(), - function: payload.function, - type_arguments: stringTypeTags || [], - arguments: payload.functionArguments - }; - return newPayload; - } else { - const stringTypeTags = (_b = payload.typeArguments) == null ? void 0 : _b.map( - (typeTag) => { - if (typeTag instanceof TypeTag) { - return typeTag.toString(); - } - return typeTag; - } - ); - const newPayload = { - type: "entry_function_payload", - function: payload.function, - type_arguments: stringTypeTags || [], - arguments: payload.functionArguments - }; - return newPayload; - } -} -function convertPayloadInputV1ToV2(inputV1) { - if ("function" in inputV1) { - const inputV2 = { - function: inputV1.function, - functionArguments: inputV1.arguments, - typeArguments: inputV1.type_arguments - }; - return inputV2; - } - throw new Error("Payload type not supported"); -} -async function generateTransactionPayloadFromV1Input(aptosConfig, inputV1) { - if ("function" in inputV1) { - const inputV2 = convertPayloadInputV1ToV2(inputV1); - return generateTransactionPayload({ ...inputV2, aptosConfig }); - } - throw new Error("Payload type not supported"); -} - -// src/error/index.ts -var WalletError = class extends Error { - constructor(message, error) { - super(message); - this.error = error; - } -}; -var WalletNotSelectedError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletNotSelectedError"; - } -}; -var WalletNotReadyError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletNotReadyError"; - } -}; -var WalletConnectionError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletConnectionError"; - } -}; -var WalletDisconnectionError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletDisconnectionError"; - } -}; -var WalletAccountError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletAccountError"; - } -}; -var WalletGetNetworkError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletGetNetworkError"; - } -}; -var WalletAccountChangeError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletAccountChangeError"; - } -}; -var WalletNetworkChangeError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletNetworkChangeError"; - } -}; -var WalletNotConnectedError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletNotConnectedError"; - } -}; -var WalletSignMessageError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletSignMessageError"; - } -}; -var WalletSubmitTransactionError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletSubmitTransactionError"; - } -}; -var WalletSignMessageAndVerifyError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletSignMessageAndVerifyError"; - } -}; -var WalletSignAndSubmitMessageError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletSignAndSubmitMessageError"; - } -}; -var WalletSignTransactionError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletSignTransactionError"; - } -}; -var WalletNotSupportedMethod = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletNotSupportedMethod"; - } -}; -var WalletChangeNetworkError = class extends WalletError { - constructor() { - super(...arguments); - this.name = "WalletChangeNetworkError"; - } -}; - -// src/utils/helpers.ts -function isMobile() { - return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test( - navigator.userAgent - ); -} -function isInAppBrowser() { - const isIphone = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test( - navigator.userAgent - ); - const isAndroid = /(Android).*Version\/[\d.]+.*Chrome\/[^\s]+ Mobile/i.test( - navigator.userAgent - ); - return isIphone || isAndroid; -} -function isRedirectable() { - if (typeof navigator === "undefined" || !navigator) - return false; - return isMobile() && !isInAppBrowser(); -} -function generalizedErrorMessage(error) { - return typeof error === "object" && "message" in error ? error.message : error; -} -var areBCSArguments = (args) => { - if (args.length === 0) - return false; - return args.every( - (arg) => arg instanceof Serializable - ); -}; -var getAptosConfig = (networkInfo, dappConfig) => { - if (!networkInfo) { - throw new Error("Undefined network"); - } - const currentNetwork = convertNetwork(networkInfo); - if (isAptosLiveNetwork(currentNetwork)) { - const apiKey = dappConfig == null ? void 0 : dappConfig.aptosApiKeys; - return new AptosConfig2({ - network: currentNetwork, - clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : void 0 } - }); - } - if (isAptosNetwork(networkInfo)) { - return new AptosConfig2({ - network: currentNetwork - }); - } - return new AptosConfig2({ - network: Network3.CUSTOM, - fullnode: networkInfo.url - }); -}; -var isAptosNetwork = (networkInfo) => { - if (!networkInfo) { - throw new Error("Undefined network"); - } - return NetworkToNodeAPI[networkInfo.name] !== void 0; -}; -var isAptosLiveNetwork = (networkInfo) => { - return networkInfo === "devnet" || networkInfo === "testnet" || networkInfo === "mainnet"; -}; -var fetchDevnetChainId = async () => { - const aptos = new Aptos(); - return await aptos.getChainId(); -}; -var handlePublishPackageTransaction = (transactionInput) => { - let metadataBytes = transactionInput.data.functionArguments[0]; - if (typeof metadataBytes === "string") { - metadataBytes = Hex.fromHexInput(metadataBytes).toUint8Array(); - } - let byteCode = transactionInput.data.functionArguments[1]; - if (Array.isArray(byteCode)) { - byteCode = byteCode.map((byte) => { - if (typeof byte === "string") { - return Hex.fromHexInput(byte).toUint8Array(); - } - return byte; - }); - } else { - throw new WalletSignAndSubmitMessageError( - "The bytecode argument must be an array." - ).message; - } - return { metadataBytes, byteCode }; -}; - -// src/utils/localStorage.ts -var LOCAL_STORAGE_ITEM_KEY = "AptosWalletName"; -function setLocalStorage(walletName) { - localStorage.setItem(LOCAL_STORAGE_ITEM_KEY, walletName); -} -function removeLocalStorage() { - localStorage.removeItem(LOCAL_STORAGE_ITEM_KEY); -} -function getLocalStorage() { - localStorage.getItem(LOCAL_STORAGE_ITEM_KEY); -} - -// src/utils/walletSelector.ts -function partitionWallets(wallets, partitionFunction = isInstalled) { - const defaultWallets = []; - const moreWallets = []; - for (const wallet of wallets) { - if (partitionFunction(wallet)) - defaultWallets.push(wallet); - else - moreWallets.push(wallet); - } - return { defaultWallets, moreWallets }; -} -function isInstalled(wallet) { - return wallet.readyState === "Installed" /* Installed */; -} -function isInstallRequired(wallet) { - const isWalletReady = isInstalled(wallet); - const isMobile2 = !isWalletReady && isRedirectable(); - return !isMobile2 && !isWalletReady; -} -function truncateAddress(address) { - if (!address) - return; - return `${address.slice(0, 6)}...${address.slice(-5)}`; -} -function isAptosConnectWallet(wallet) { - if (!wallet.url) - return false; - return wallet.url.startsWith(APTOS_CONNECT_BASE_URL); -} -function getAptosConnectWallets(wallets) { - const { defaultWallets, moreWallets } = partitionWallets( - wallets, - isAptosConnectWallet - ); - return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets }; -} -function groupAndSortWallets(wallets, options) { - const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets); - const { defaultWallets, moreWallets } = partitionWallets(otherWallets); - if (options == null ? void 0 : options.sortAptosConnectWallets) { - aptosConnectWallets.sort(options.sortAptosConnectWallets); - } - if (options == null ? void 0 : options.sortAvailableWallets) { - defaultWallets.sort(options.sortAvailableWallets); - } - if (options == null ? void 0 : options.sortInstallableWallets) { - moreWallets.sort(options.sortInstallableWallets); - } - return { - aptosConnectWallets, - availableWallets: defaultWallets, - installableWallets: moreWallets - }; -} - -// src/WalletCoreNew.ts -import { - AccountAddress, - AnyPublicKey, - AnyPublicKeyVariant, - Aptos as Aptos2, - generateRawTransaction, - generateTransactionPayload as generateTransactionPayload2, - MultiEd25519PublicKey, - MultiEd25519Signature, - Network as Network4, - NetworkToChainId, - SimpleTransaction -} from "@aptos-labs/ts-sdk"; -import { - getAptosWallets, - isWalletWithRequiredFeatureSet, - UserResponseStatus -} from "@aptos-labs/wallet-standard"; - -// src/AIP62StandardWallets/registry.ts -var aptosStandardSupportedWalletList = [ - { - name: "Nightly", - url: "https://chromewebstore.google.com/detail/nightly/fiikommddbeccaoicoejoniammnalkfa?hl=en", - icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==", - readyState: "NotDetected" /* NotDetected */ - }, - { - name: "Petra", - url: "https://chromewebstore.google.com/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci?hl=en", - icon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAWbSURBVHgB7Z09c9NYFIaPlFSpUqQNK6rQhbSkWJghLZP9BesxfwAqytg1xe7+AY+3go5ACzObBkpwSqrVQkuRCiqkva8UZW1je22wpHPveZ8ZRU6wwwznueee+6FLJCuSdzrb7nZTNjaOJc9/ctdNiaJESPPkeeq+phLH5/L162k0HJ7JikTLvtEFPnFBf+D+0l/dt9tCNJK6xnjmZOg7GdJlPvC/AhQtPo5P3MsHQvwhiobLiLBQABf82y74z4Qt3ldSybKHToLTeW+I5/1B3u2euOD/JQy+zyRowEUs5zAzA1x+oCckJHrRYNCf/uE3AjD4QfONBBMC5PfvY2j3TEi4ZNmd8eHilQDFMK/s8xMhIXPhJLjuJLjAN/8VgRsbPWHwLbAtm5tXRWGRAS5b/99C7FBmgbTMAGXrJ5aIomJir8wA3S5afyLEEkUtEBezfQy+RYpFvdilgmMhNnGxRw2wL8QqScy1fMNE0T4yQCLEKkksxDQUwDj2BNjbK69pdndn/zxwNsUCCOyNGyJ374psbYkMBiLv30++59o1kW5X5NMnkdFI5OXL8nXghCsAAn10NL/Fz2NnpxQFFyR5/bq8BypDWAIg6AcHIoeH60nn4/K8e1deECIgwhAAQULQEXxIUAf43bju3ZvMDJ7jrwDT/XpToIvABeECqBf8EuB7+/W6CKBe0C/Auvv1uvC0XtArQBP9el14VC/oEqCtfr0uPKgX2hdAW79eF0rrhfYFQPCRKi1RyY4ZyZYF4GKQcSiAcSiAcSiAcSiAcSiAcSiAcSiAcSiAcSiAcSiAcSiAcSiAcShAm3z+LG1DAdqEAhjn40dpGwrQFtgIwgxgGAWtH1CAtsC2cQVQgLZQsk2cArSBoqeHKEAbKHpiiAI0DVq+kv4fUICmQetXMPyroABNgtb/5o1oggI0icJzBChAUyDwr16JNihAUzx+LBqhAE3w5InaU0MoQN08f64y9VdQgDrBkO/FC9EMBagLBB/P/yvHxlGxTYPh3tOn4gMUYN2g4FPc509DAdYFqvxZh1ArhwKsg6rSVzTHvywU4EeoqnyPTxKnAKuCVo4iD4s6ARwhTwGWoTrk8e3bIE4IH4cCVCDI1U6dL1/K73Eh4B727ctCASoQ6MBa9zJwJtA4FMA4FMA4FMA4FMA4FMA4FMA4FMA47Qtg4P/n1Uz7AgQ8zeoD7Qug5KQMq+joApgFWkNHEWhwEUYLFMA4OgRQdGCCNXQIUG28II2jZyKIWaAV9Aig7OgUK+gRAMH36ImaUNC1FoDt1swCjaJLAAQfT9mQxtC3GohugCOCxtC5HIyHLNkVNIJOATAv4Mnz9b6jd0MIhoWsB2pH944gPHmLkQGpDf1bwtAVUILa8GNPICRgd1AL/mwKRXfA0cHa8WtXMArDfp8bSdeIf9vCEfxHj8psQBF+GH/PB0A2wIzhrVsih4ciOztCVsfvAyKQAVAbYPr44EDk6Ehkd1fI8oRxQggKQ2QEXMgEe3ulELhvbQmZT3hHxFRn+1Tn/UAAZAWIUXUTHz4IKQn/jCBkB6Pn/ywDHw41DgUwDgRIhVgljSWKzoXYJM+dAFmWCrHKeewsOBViExd71AAjd10IsUYaDYdnsfty4Uz4U4g1zvClHAbm+e9CbJFlfdwKAVwWSJ0EfwixwrCIuYxPBOV5T1gLWCCtWj+4EqCoBbLsFyFhk2UPq9YPJqaCURW6W19IqPRdjCeG/dGsd+Xdbs/dToSERD8aDHrTP4zmvZsSBMXM4INo0afyTudY4vg39zIR4iNFXXfZtc9k4XJw0V9k2R1OFHkIhvVZdn1R8MHCDDDx+zqdxK0c9tz1szAjaKWc1XUTe+OV/iKWFmAcJ8NtJ8Kxe7kvkCGKEiHN45Zz3b/9yN3/uVzUGxXD+RX4F56985hsqA6SAAAAAElFTkSuQmCC", - readyState: "NotDetected" /* NotDetected */ - }, - { - name: "Pontem Wallet", - url: "https://pontem.network/pontem-wallet", - icon: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K", - readyState: "NotDetected" /* NotDetected */ - } -]; - -// src/WalletCoreNew.ts -var WalletCoreNew = class extends EventEmitter { - constructor(optInWallets, dappConfig, disableTelemetry) { - super(); - this._wallet = null; - this._sdkWallets = []; - this._standard_wallets = []; - this._standard_not_detected_wallets = []; - this._network = null; - this._connected = false; - this._connecting = false; - this._account = null; - this._optInWallets = []; - this._disableTelemetry = false; - this.ga4 = null; - this._optInWallets = optInWallets || []; - this._dappConfig = dappConfig; - this._disableTelemetry = disableTelemetry || false; - this._sdkWallets = getSDKWallets(this._dappConfig); - if (!this._disableTelemetry) { - this.ga4 = new GA4(); - } - this.fetchExtensionAIP62AptosWallets(); - this.fetchSDKAIP62AptosWallets(); - this.appendNotDetectedStandardSupportedWallets(); - } - fetchExtensionAIP62AptosWallets() { - let { aptosWallets, on } = getAptosWallets(); - this.setExtensionAIP62Wallets(aptosWallets); - if (typeof window === "undefined") - return; - const that = this; - const removeRegisterListener = on("register", function() { - let { aptosWallets: aptosWallets2 } = getAptosWallets(); - that.setExtensionAIP62Wallets(aptosWallets2); - }); - const removeUnregisterListener = on("unregister", function() { - let { aptosWallets: aptosWallets2 } = getAptosWallets(); - that.setExtensionAIP62Wallets(aptosWallets2); - }); - } - setExtensionAIP62Wallets(extensionwWallets) { - const wallets = extensionwWallets.filter( - (wallet) => wallet.name !== "Dev T wallet" && wallet.name !== "T wallet" - ); - wallets.map((wallet) => { - if (this.excludeWallet(wallet)) { - return; - } - this._standard_wallets = this._standard_wallets.filter( - (item) => item.name !== wallet.name - ); - const isValid = isWalletWithRequiredFeatureSet(wallet); - if (isValid) { - const index = this._standard_not_detected_wallets.findIndex( - (notDetctedWallet) => notDetctedWallet.name == wallet.name - ); - if (index !== -1) { - this._standard_not_detected_wallets.splice(index, 1); - } - wallet.readyState = "Installed" /* Installed */; - this._standard_wallets.push(wallet); - this.emit("standardWalletsAdded", wallet); - } - }); - } - fetchSDKAIP62AptosWallets() { - this._sdkWallets.map((wallet) => { - if (this.excludeWallet(wallet)) { - return; - } - const isValid = isWalletWithRequiredFeatureSet(wallet); - if (isValid) { - wallet.readyState = "Installed" /* Installed */; - this._standard_wallets.push(wallet); - } - }); - } - appendNotDetectedStandardSupportedWallets() { - aptosStandardSupportedWalletList.map((supportedWallet) => { - const existingStandardWallet = this._standard_wallets.find( - (wallet) => wallet.name == supportedWallet.name - ); - if (existingStandardWallet) { - return; - } - if (existingStandardWallet && this.excludeWallet(existingStandardWallet)) { - return; - } - if (!existingStandardWallet) { - this._standard_not_detected_wallets.push(supportedWallet); - this.emit("standardNotDetectedWalletAdded", supportedWallet); - } - }); - } - excludeWallet(wallet) { - if (this._optInWallets.length > 0 && !this._optInWallets.includes(wallet.name)) { - return true; - } - return false; - } - recordEvent(eventName, additionalInfo) { - var _a, _b, _c, _d; - (_d = this.ga4) == null ? void 0 : _d.gtag("event", `wallet_adapter_${eventName}`, { - wallet: (_a = this._wallet) == null ? void 0 : _a.name, - network: (_b = this._network) == null ? void 0 : _b.name, - network_url: (_c = this._network) == null ? void 0 : _c.url, - adapter_core_version: WALLET_ADAPTER_CORE_VERSION, - send_to: "G-GNVVWBL3J9", - ...additionalInfo - }); - } - ensureWalletExists(wallet) { - if (!wallet) { - throw new WalletNotConnectedError().name; - } - if (!(wallet.readyState === "Installed" /* Installed */)) - throw new WalletNotReadyError("Wallet is not set").name; - } - ensureAccountExists(account) { - if (!account) { - throw new WalletAccountError("Account is not set").name; - } - } - async setAnsName() { - var _a; - if (((_a = this._network) == null ? void 0 : _a.chainId) && this._account) { - if (this._account.ansName) - return; - if (!ChainIdToAnsSupportedNetworkMap[this._network.chainId] || !isAptosNetwork(this._network)) { - this._account.ansName = void 0; - return; - } - const aptosConfig = getAptosConfig(this._network, this._dappConfig); - const aptos = new Aptos2(aptosConfig); - const name = await aptos.ans.getPrimaryName({ - address: this._account.address.toString() - }); - this._account.ansName = name; - } - } - clearData() { - this._connected = false; - this.setWallet(null); - this.setAccount(null); - this.setNetwork(null); - removeLocalStorage(); - } - setWallet(wallet) { - this._wallet = wallet; - } - setAccount(account) { - this._account = account; - } - setNetwork(network) { - this._network = network; - } - isConnected() { - return this._connected; - } - get wallets() { - return this._standard_wallets; - } - get notDetectedWallets() { - return this._standard_not_detected_wallets; - } - get wallet() { - try { - if (!this._wallet) - return null; - return this._wallet; - } catch (error) { - throw new WalletNotSelectedError(error).message; - } - } - get account() { - try { - return this._account; - } catch (error) { - throw new WalletAccountError(error).message; - } - } - get network() { - try { - return this._network; - } catch (error) { - throw new WalletGetNetworkError(error).message; - } - } - async connect(walletName) { - var _a, _b, _c; - const allDetectedWallets = this._standard_wallets; - const selectedWallet = allDetectedWallets.find( - (wallet) => wallet.name === walletName - ); - if (!selectedWallet) - return; - if (this._connected) { - if (((_a = this._wallet) == null ? void 0 : _a.name) === walletName) - throw new WalletConnectionError( - `${walletName} wallet is already connected` - ).message; - } - if (isRedirectable() && selectedWallet.readyState !== "Installed" /* Installed */) { - if ((_b = selectedWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _b.openInMobileApp) { - (_c = selectedWallet.features["aptos:openInMobileApp"]) == null ? void 0 : _c.openInMobileApp(); - return; - } - return; - } - if (selectedWallet.readyState !== "Installed" /* Installed */) { - return; - } - await this.connectWallet(selectedWallet); - } - async connectWallet(selectedWallet) { - var _a; - try { - this._connecting = true; - this.setWallet(selectedWallet); - const response = await selectedWallet.features["aptos:connect"].connect(); - if (response.status === UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - const account = response.args; - this.setAccount(account); - const network = await ((_a = selectedWallet.features["aptos:network"]) == null ? void 0 : _a.network()); - this.setNetwork(network); - await this.setAnsName(); - setLocalStorage(selectedWallet.name); - this._connected = true; - this.recordEvent("wallet_connect"); - this.emit("connect", account); - } catch (error) { - this.clearData(); - const errMsg = generalizedErrorMessage(error); - throw new WalletConnectionError(errMsg).message; - } finally { - this._connecting = false; - } - } - async disconnect() { - try { - this.ensureWalletExists(this._wallet); - await this._wallet.features["aptos:disconnect"].disconnect(); - this.clearData(); - this.recordEvent("wallet_disconnect"); - this.emit("disconnect"); - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletDisconnectionError(errMsg).message; - } - } - async signAndSubmitTransaction(transactionInput) { - var _a, _b, _c; - try { - if ("function" in transactionInput.data) { - if (transactionInput.data.function === "0x1::account::rotate_authentication_key_call") { - throw new WalletSignAndSubmitMessageError("SCAM SITE DETECTED").message; - } - if (transactionInput.data.function === "0x1::code::publish_package_txn") { - ({ - metadataBytes: transactionInput.data.functionArguments[0], - byteCode: transactionInput.data.functionArguments[1] - } = handlePublishPackageTransaction(transactionInput)); - } - } - this.ensureWalletExists(this._wallet); - this.ensureAccountExists(this._account); - this.recordEvent("sign_and_submit_transaction"); - if (this._wallet.features["aptos:signAndSubmitTransaction"]) { - if (((_a = this._wallet.features["aptos:signAndSubmitTransaction"]) == null ? void 0 : _a.version) !== "1.1.0") { - const aptosConfig2 = getAptosConfig(this._network, this._dappConfig); - const aptos2 = new Aptos2(aptosConfig2); - const transaction2 = await aptos2.transaction.build.simple({ - sender: this._account.address.toString(), - data: transactionInput.data, - options: transactionInput.options - }); - const signAndSubmitTransactionMethod = this._wallet.features["aptos:signAndSubmitTransaction"].signAndSubmitTransaction; - const response3 = await signAndSubmitTransactionMethod( - transaction2 - ); - if (response3.status === UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response3.args; - } - const response2 = await this._wallet.features["aptos:signAndSubmitTransaction"].signAndSubmitTransaction({ - payload: transactionInput.data, - gasUnitPrice: (_b = transactionInput.options) == null ? void 0 : _b.gasUnitPrice, - maxGasAmount: (_c = transactionInput.options) == null ? void 0 : _c.maxGasAmount - }); - if (response2.status === UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response2.args; - } - const aptosConfig = getAptosConfig(this._network, this._dappConfig); - const aptos = new Aptos2(aptosConfig); - const transaction = await aptos.transaction.build.simple({ - sender: this._account.address, - data: transactionInput.data, - options: transactionInput.options - }); - const signTransactionResponse = await this.signTransaction(transaction); - const response = await this.submitTransaction({ - transaction, - senderAuthenticator: "authenticator" in signTransactionResponse ? signTransactionResponse.authenticator : signTransactionResponse - }); - return { hash: response.hash }; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignAndSubmitMessageError(errMsg).message; - } - } - async signTransaction(transactionOrPayload, asFeePayer, options) { - var _a, _b, _c, _d; - try { - this.ensureWalletExists(this._wallet); - this.ensureAccountExists(this._account); - this.recordEvent("sign_transaction"); - if ("rawTransaction" in transactionOrPayload) { - const response = await ((_a = this._wallet) == null ? void 0 : _a.features["aptos:signTransaction"].signTransaction( - transactionOrPayload, - asFeePayer - )); - if (response.status === UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } else if (((_b = this._wallet.features["aptos:signTransaction"]) == null ? void 0 : _b.version) === "1.1") { - const signTransactionV1_1StandardInput = { - payload: transactionOrPayload.data, - expirationTimestamp: options == null ? void 0 : options.expirationTimestamp, - expirationSecondsFromNow: options == null ? void 0 : options.expirationSecondsFromNow, - gasUnitPrice: options == null ? void 0 : options.gasUnitPrice, - maxGasAmount: options == null ? void 0 : options.maxGasAmount, - sequenceNumber: options == null ? void 0 : options.accountSequenceNumber, - sender: transactionOrPayload.sender ? { address: AccountAddress.from(transactionOrPayload.sender) } : void 0 - }; - const walletSignTransactionMethod = (_c = this._wallet) == null ? void 0 : _c.features["aptos:signTransaction"].signTransaction; - const response = await walletSignTransactionMethod( - signTransactionV1_1StandardInput - ); - if (response.status === UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } else { - const aptosConfig = getAptosConfig(this._network, this._dappConfig); - const payload = await generateTransactionPayload2({ - ...transactionOrPayload.data, - aptosConfig - }); - const rawTransaction = await generateRawTransaction({ - aptosConfig, - payload, - sender: this._account.address, - options - }); - const response = await ((_d = this._wallet) == null ? void 0 : _d.features["aptos:signTransaction"].signTransaction( - new SimpleTransaction(rawTransaction), - asFeePayer - )); - if (response.status === UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignTransactionError(errMsg).message; - } - } - async signMessage(message) { - var _a, _b; - try { - this.ensureWalletExists(this._wallet); - this.recordEvent("sign_message"); - const response = await ((_b = (_a = this._wallet) == null ? void 0 : _a.features["aptos:signMessage"]) == null ? void 0 : _b.signMessage(message)); - if (response.status === UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignMessageError(errMsg).message; - } - } - async submitTransaction(transaction) { - try { - this.ensureWalletExists(this._wallet); - const { additionalSignersAuthenticators } = transaction; - const transactionType = additionalSignersAuthenticators !== void 0 ? "multi-agent" : "simple"; - this.recordEvent("submit_transaction", { - transaction_type: transactionType - }); - const aptosConfig = getAptosConfig(this._network, this._dappConfig); - const aptos = new Aptos2(aptosConfig); - if (additionalSignersAuthenticators !== void 0) { - const multiAgentTxn = { - ...transaction, - additionalSignersAuthenticators - }; - return aptos.transaction.submit.multiAgent(multiAgentTxn); - } else { - return aptos.transaction.submit.simple(transaction); - } - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSubmitTransactionError(errMsg).message; - } - } - async onAccountChange() { - var _a; - try { - this.ensureWalletExists(this._wallet); - await ((_a = this._wallet.features["aptos:onAccountChange"]) == null ? void 0 : _a.onAccountChange( - async (data) => { - this.setAccount(data); - await this.setAnsName(); - this.recordEvent("account_change"); - this.emit("accountChange", this._account); - } - )); - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletAccountChangeError(errMsg).message; - } - } - async onNetworkChange() { - var _a; - try { - this.ensureWalletExists(this._wallet); - await ((_a = this._wallet.features["aptos:onNetworkChange"]) == null ? void 0 : _a.onNetworkChange( - async (data) => { - this.setNetwork(data); - await this.setAnsName(); - this.emit("networkChange", this._network); - } - )); - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletNetworkChangeError(errMsg).message; - } - } - async changeNetwork(network) { - var _a; - try { - this.ensureWalletExists(this._wallet); - this.recordEvent("change_network_request", { - from: (_a = this._network) == null ? void 0 : _a.name, - to: network - }); - const chainId = network === Network4.DEVNET ? await fetchDevnetChainId() : NetworkToChainId[network]; - const networkInfo = { - name: network, - chainId - }; - if (this._wallet.features["aptos:changeNetwork"]) { - const response = await this._wallet.features["aptos:changeNetwork"].changeNetwork( - networkInfo - ); - if (response.status === UserResponseStatus.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } - throw new WalletChangeNetworkError( - `${this._wallet.name} does not support changing network request` - ).message; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletChangeNetworkError(errMsg).message; - } - } - async signMessageAndVerify(message) { - try { - this.ensureWalletExists(this._wallet); - this.ensureAccountExists(this._account); - this.recordEvent("sign_message_and_verify"); - try { - const response = await this._wallet.features["aptos:signMessage"].signMessage(message); - if (response.status === UserResponseStatus.REJECTED) { - throw new WalletConnectionError("Failed to sign a message").message; - } - if (this._account.publicKey instanceof AnyPublicKey && this._account.publicKey.variant === AnyPublicKeyVariant.Keyless) { - return true; - } - let verified = false; - if (response.args.signature instanceof MultiEd25519Signature) { - if (!(this._account.publicKey instanceof MultiEd25519PublicKey)) { - throw new WalletSignMessageAndVerifyError( - "Public key and Signature type mismatch" - ).message; - } - const { fullMessage, signature } = response.args; - const bitmap = signature.bitmap; - if (bitmap) { - const minKeysRequired = this._account.publicKey.threshold; - if (signature.signatures.length < minKeysRequired) { - verified = false; - } else { - verified = this._account.publicKey.verifySignature({ - message: new TextEncoder().encode(fullMessage), - signature - }); - } - } - } else { - verified = this._account.publicKey.verifySignature({ - message: new TextEncoder().encode(response.args.fullMessage), - signature: response.args.signature - }); - } - return verified; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignMessageAndVerifyError(errMsg).message; - } - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignMessageAndVerifyError(errMsg).message; - } - } -}; - -// src/LegacyWalletPlugins/WalletCoreV1.ts -import { HexString } from "aptos"; -import EventEmitter2 from "eventemitter3"; -import { Buffer } from "buffer"; -import { - generateTransactionPayload as generateTransactionPayload3 -} from "@aptos-labs/ts-sdk"; -import nacl from "tweetnacl"; -var WalletCoreV1 = class extends EventEmitter2 { - async connect(wallet) { - const account = await wallet.connect(); - return account; - } - async resolveSignAndSubmitTransaction(payloadData, network, wallet, transactionInput, dappConfig) { - var _a, _b, _c, _d, _e, _f, _g, _h; - if (areBCSArguments(payloadData.functionArguments)) { - const aptosConfig = getAptosConfig(network, dappConfig); - const newPayload = await generateTransactionPayload3({ - ...payloadData, - aptosConfig - }); - const oldTransactionPayload2 = convertV2TransactionPayloadToV1BCSPayload(newPayload); - return await this.signAndSubmitBCSTransaction( - oldTransactionPayload2, - wallet, - { - max_gas_amount: ((_a = transactionInput.options) == null ? void 0 : _a.maxGasAmount) ? BigInt((_b = transactionInput.options) == null ? void 0 : _b.maxGasAmount) : void 0, - gas_unit_price: ((_c = transactionInput.options) == null ? void 0 : _c.gasUnitPrice) ? BigInt((_d = transactionInput.options) == null ? void 0 : _d.gasUnitPrice) : void 0 - } - ); - } - const oldTransactionPayload = convertV2PayloadToV1JSONPayload(payloadData); - return await this.signAndSubmitTransaction(oldTransactionPayload, wallet, { - max_gas_amount: ((_e = transactionInput.options) == null ? void 0 : _e.maxGasAmount) ? BigInt((_f = transactionInput.options) == null ? void 0 : _f.maxGasAmount) : void 0, - gas_unit_price: ((_g = transactionInput.options) == null ? void 0 : _g.gasUnitPrice) ? BigInt((_h = transactionInput.options) == null ? void 0 : _h.gasUnitPrice) : void 0 - }); - } - async signAndSubmitTransaction(transaction, wallet, options) { - try { - const response = await wallet.signAndSubmitTransaction( - transaction, - options - ); - return response; - } catch (error) { - const errMsg = typeof error == "object" && "message" in error ? error.message : error; - throw new WalletSignAndSubmitMessageError(errMsg).message; - } - } - async signAndSubmitBCSTransaction(transaction, wallet, options) { - if (!("signAndSubmitBCSTransaction" in wallet)) { - throw new WalletNotSupportedMethod( - `Submit a BCS Transaction is not supported by ${wallet.name}` - ).message; - } - try { - const response = await wallet.signAndSubmitBCSTransaction( - transaction, - options - ); - return response; - } catch (error) { - const errMsg = typeof error == "object" && "message" in error ? error.message : error; - throw new WalletSignAndSubmitMessageError(errMsg).message; - } - } - async signTransaction(transaction, wallet, options) { - try { - const response = await wallet.signTransaction( - transaction, - options - ); - return response; - } catch (error) { - const errMsg = typeof error == "object" && "message" in error ? error.message : error; - throw new WalletSignTransactionError(errMsg).message; - } - } - async signMessageAndVerify(message, wallet, account) { - try { - const response = await wallet.signMessage(message); - if (!response) - throw new WalletSignMessageAndVerifyError("Failed to sign a message").message; - console.log("signMessageAndVerify signMessage response", response); - let verified = false; - if (Array.isArray(response.signature)) { - const { fullMessage, signature, bitmap } = response; - if (bitmap) { - const minKeysRequired = account.minKeysRequired; - if (signature.length < minKeysRequired) { - verified = false; - } else { - const bits = Array.from(bitmap).flatMap( - (n) => Array.from({ length: 8 }).map((_, i) => n >> i & 1) - ); - const index = bits.map((_, i) => i).filter((i) => bits[i]); - const publicKeys = account.publicKey; - const matchedPublicKeys = publicKeys.filter( - (_, i) => index.includes(i) - ); - verified = true; - for (let i = 0; i < signature.length; i++) { - const isSigVerified = nacl.sign.detached.verify( - Buffer.from(fullMessage), - Buffer.from(signature[i], "hex"), - Buffer.from(matchedPublicKeys[i], "hex") - ); - if (!isSigVerified) { - verified = false; - break; - } - } - } - } else { - throw new WalletSignMessageAndVerifyError("Failed to get a bitmap").message; - } - } else { - const currentAccountPublicKey = new HexString( - account.publicKey - ); - const signature = new HexString( - response.signature - ); - verified = nacl.sign.detached.verify( - Buffer.from(response.fullMessage), - Buffer.from(signature.noPrefix(), "hex"), - Buffer.from(currentAccountPublicKey.noPrefix(), "hex") - ); - } - return verified; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignMessageAndVerifyError(errMsg).message; - } - } -}; - -// src/LegacyWalletPlugins/types.ts -import { TxnBuilderTypes as TxnBuilderTypes3, Types as Types3 } from "aptos"; - -// src/AIP62StandardWallets/WalletStandard.ts -import { - UserResponseStatus as UserResponseStatus2 -} from "@aptos-labs/wallet-standard"; -import { - AnyPublicKey as AnyPublicKey2, - AnyPublicKeyVariant as AnyPublicKeyVariant2, - MultiEd25519Signature as MultiEd25519Signature2, - MultiEd25519PublicKey as MultiEd25519PublicKey2 -} from "@aptos-labs/ts-sdk"; -var WalletStandardCore = class { - async connect(wallet) { - const response = await wallet.connect(); - if (response.status === UserResponseStatus2.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } - async signAndSubmitTransaction(transactionInput, aptos, account, wallet, standardWallets) { - var _a, _b, _c; - try { - const standardWallet = standardWallets.find( - (standardWallet2) => wallet.name === standardWallet2.name - ); - if (((_a = standardWallet == null ? void 0 : standardWallet.features["aptos:signAndSubmitTransaction"]) == null ? void 0 : _a.version) !== "1.1.0") { - const transaction2 = await aptos.transaction.build.simple({ - sender: account.address.toString(), - data: transactionInput.data, - options: transactionInput.options - }); - const response2 = await wallet.signAndSubmitTransaction( - transaction2 - ); - if (response2.status === UserResponseStatus2.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response2.args; - } - const transaction = { - gasUnitPrice: (_b = transactionInput.options) == null ? void 0 : _b.gasUnitPrice, - maxGasAmount: (_c = transactionInput.options) == null ? void 0 : _c.maxGasAmount, - payload: transactionInput.data - }; - const response = await wallet.signAndSubmitTransaction( - transaction - ); - if (response.status === UserResponseStatus2.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignAndSubmitMessageError(errMsg).message; - } - } - async signTransaction(transactionOrInput, wallet, asFeePayer) { - const response = await wallet.signTransaction( - transactionOrInput, - asFeePayer - ); - if (response.status === UserResponseStatus2.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } - async signMessage(message, wallet) { - try { - const response = await wallet.signMessage( - message - ); - if (response.status === UserResponseStatus2.REJECTED) { - throw new WalletConnectionError("User has rejected the request").message; - } - return response.args; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignMessageError(errMsg).message; - } - } - async signMessageAndVerify(message, wallet) { - try { - const response = await wallet.signMessage( - message - ); - const account = await wallet.account(); - if (response.status === UserResponseStatus2.REJECTED) { - throw new WalletConnectionError("Failed to sign a message").message; - } - if (account.publicKey instanceof AnyPublicKey2 && account.publicKey.variant === AnyPublicKeyVariant2.Keyless) { - return true; - } - let verified = false; - if (response.args.signature instanceof MultiEd25519Signature2) { - if (!(account.publicKey instanceof MultiEd25519PublicKey2)) { - throw new WalletSignMessageAndVerifyError( - "Public key and Signature type mismatch" - ).message; - } - const { fullMessage, signature } = response.args; - const bitmap = signature.bitmap; - if (bitmap) { - const minKeysRequired = account.publicKey.threshold; - if (signature.signatures.length < minKeysRequired) { - verified = false; - } else { - verified = account.publicKey.verifySignature({ - message: new TextEncoder().encode(fullMessage), - signature - }); - } - } - } else { - verified = account.publicKey.verifySignature({ - message: new TextEncoder().encode(response.args.fullMessage), - signature: response.args.signature - }); - } - return verified; - } catch (error) { - const errMsg = generalizedErrorMessage(error); - throw new WalletSignMessageAndVerifyError(errMsg).message; - } - } -}; - -// src/index.ts -import { -} from "@aptos-labs/wallet-standard"; -if (typeof window !== "undefined") { - window.WALLET_ADAPTER_CORE_VERSION = WALLET_ADAPTER_CORE_VERSION; -} -export { - APTOS_CONNECT_ACCOUNT_URL, - APTOS_CONNECT_BASE_URL, - ChainIdToAnsSupportedNetworkMap, - NetworkName, - TxnBuilderTypes3 as TxnBuilderTypes, - Types3 as Types, - WalletCoreNew, - WalletCoreV1, - WalletReadyState, - WalletStandardCore, - areBCSArguments, - convertNetwork, - convertPayloadInputV1ToV2, - convertV2PayloadToV1JSONPayload, - convertV2TransactionPayloadToV1BCSPayload, - fetchDevnetChainId, - generalizedErrorMessage, - generateTransactionPayloadFromV1Input, - getAptosConfig, - getAptosConnectWallets, - getLocalStorage, - groupAndSortWallets, - handlePublishPackageTransaction, - isAptosConnectWallet, - isAptosLiveNetwork, - isAptosNetwork, - isInAppBrowser, - isInstallRequired, - isInstalled, - isMobile, - isRedirectable, - partitionWallets, - removeLocalStorage, - setLocalStorage, - truncateAddress -}; -//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/index.mjs.map b/packages/wallet-adapter-core-new/dist/index.mjs.map deleted file mode 100644 index 36c7a848..00000000 --- a/packages/wallet-adapter-core-new/dist/index.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/version.ts","../src/WalletCoreNew.ts","../src/ga/index.ts","../src/constants.ts","../src/AIP62StandardWallets/sdkWallets.ts","../src/utils/helpers.ts","../src/LegacyWalletPlugins/conversion.ts","../src/error/index.ts","../src/utils/localStorage.ts","../src/utils/walletSelector.ts","../src/AIP62StandardWallets/registry.ts","../src/LegacyWalletPlugins/WalletCoreV1.ts","../src/LegacyWalletPlugins/types.ts","../src/AIP62StandardWallets/WalletStandard.ts","../src/index.ts"],"sourcesContent":["export const WALLET_ADAPTER_CORE_VERSION = \"4.23.0\";\n","import EventEmitter from \"eventemitter3\";\nimport {\n AptosStandardWallet,\n AvailableWallets,\n WalletStandardCore,\n} from \"./AIP62StandardWallets\";\nimport { GA4 } from \"./ga\";\n\nimport { ChainIdToAnsSupportedNetworkMap, WalletReadyState } from \"./constants\";\nimport { getSDKWallets } from \"./AIP62StandardWallets/sdkWallets\";\nimport { WALLET_ADAPTER_CORE_VERSION } from \"./version\";\nimport {\n fetchDevnetChainId,\n generalizedErrorMessage,\n getAptosConfig,\n handlePublishPackageTransaction,\n isAptosNetwork,\n isRedirectable,\n removeLocalStorage,\n setLocalStorage,\n} from \"./utils\";\nimport {\n AccountAddress,\n AccountAuthenticator,\n AnyPublicKey,\n AnyPublicKeyVariant,\n AnyRawTransaction,\n Aptos,\n generateRawTransaction,\n generateTransactionPayload,\n InputEntryFunctionData,\n InputGenerateTransactionOptions,\n InputSubmitTransactionData,\n MultiEd25519PublicKey,\n MultiEd25519Signature,\n Network,\n NetworkToChainId,\n PendingTransactionResponse,\n SimpleTransaction,\n} from \"@aptos-labs/ts-sdk\";\nimport {\n WalletChangeNetworkError,\n WalletAccountChangeError,\n WalletAccountError,\n WalletConnectionError,\n WalletGetNetworkError,\n WalletNetworkChangeError,\n WalletNotConnectedError,\n WalletNotReadyError,\n WalletNotSelectedError,\n WalletSignAndSubmitMessageError,\n WalletSignMessageError,\n WalletSignTransactionError,\n WalletSignMessageAndVerifyError,\n WalletDisconnectionError,\n WalletSubmitTransactionError,\n} from \"./error\";\nimport {\n AptosWallet,\n getAptosWallets,\n isWalletWithRequiredFeatureSet,\n UserResponseStatus,\n AptosSignAndSubmitTransactionOutput,\n UserResponse,\n AptosSignTransactionOutputV1_1,\n AptosSignTransactionInputV1_1,\n AptosSignTransactionMethod,\n AptosSignTransactionMethodV1_1,\n NetworkInfo,\n AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosChangeNetworkOutput,\n} from \"@aptos-labs/wallet-standard\";\nexport type { NetworkInfo, AccountInfo } from \"@aptos-labs/wallet-standard\";\nimport { InputTransactionData } from \"./LegacyWalletPlugins/types\";\nimport { AptosConnectWalletConfig } from \"@aptos-connect/wallet-adapter-plugin\";\nimport { aptosStandardSupportedWalletList } from \"./AIP62StandardWallets/registry\";\n\n// An adapter wallet types is a wallet that is compatible with the wallet standard and the wallet adapter properties\nexport type AdapterWallet = AptosWallet & {\n readyState?: WalletReadyState;\n};\n\n// An adapter not detected wallet types is a wallet that is compatible with the wallet standard but not detected\nexport type AdapterNotDetectedWallet = Omit<\n AdapterWallet,\n \"features\" | \"version\" | \"chains\" | \"accounts\"\n> & {\n readyState: WalletReadyState.NotDetected;\n};\n\nexport interface DappConfig {\n network: Network;\n aptosApiKeys?: Partial>;\n aptosConnectDappId?: string;\n aptosConnect?: Omit;\n mizuwallet?: {\n manifestURL: string;\n appId?: string;\n };\n}\n\nexport declare interface WalletCoreEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n standardWalletsAdded(wallets: AdapterWallet): void;\n standardNotDetectedWalletAdded(wallets: AdapterNotDetectedWallet): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport type AdapterAccountInfo = Omit & {\n // ansName is a read-only property on the standard AccountInfo type\n ansName?: string;\n};\n\nexport class WalletCoreNew extends EventEmitter {\n // Local private variable to hold the wallet that is currently connected\n private _wallet: AdapterWallet | null = null;\n\n // Local private variable to hold SDK wallets in the adapter\n private readonly _sdkWallets: AdapterWallet[] = [];\n\n // Local array that holds all the wallets that are AIP-62 standard compatible\n private _standard_wallets: AdapterWallet[] = [];\n\n // Local array that holds all the wallets that are AIP-62 standard compatible but are not installed on the user machine\n private _standard_not_detected_wallets: AdapterNotDetectedWallet[] = [];\n\n // Local private variable to hold the network that is currently connected\n private _network: NetworkInfo | null = null;\n\n // Local private variable to hold the wallet connected state\n private _connected: boolean = false;\n\n // Local private variable to hold the connecting state\n private _connecting: boolean = false;\n\n // Local private variable to hold the account that is currently connected\n private _account: AdapterAccountInfo | null = null;\n\n // JSON configuration for AptosConnect\n private _dappConfig: DappConfig | undefined;\n\n // Private array that holds all the Wallets a dapp decided to opt-in to\n private _optInWallets: ReadonlyArray = [];\n\n // Local flag to disable the adapter telemetry tool\n private _disableTelemetry: boolean = false;\n\n // Google Analytics 4 module\n private readonly ga4: GA4 | null = null;\n\n constructor(\n optInWallets?: ReadonlyArray,\n dappConfig?: DappConfig,\n disableTelemetry?: boolean\n ) {\n super();\n this._optInWallets = optInWallets || [];\n this._dappConfig = dappConfig;\n this._disableTelemetry = disableTelemetry || false;\n this._sdkWallets = getSDKWallets(this._dappConfig);\n\n // If disableTelemetry set to false (by default), start GA4\n if (!this._disableTelemetry) {\n this.ga4 = new GA4();\n }\n // Strategy to detect AIP-62 standard compatible extension wallets\n this.fetchExtensionAIP62AptosWallets();\n // Strategy to detect AIP-62 standard compatible SDK wallets.\n // We separate the extension and sdk detection process so we dont refetch sdk wallets everytime a new\n // extension wallet is detected\n this.fetchSDKAIP62AptosWallets();\n\n this.appendNotDetectedStandardSupportedWallets();\n }\n\n private fetchExtensionAIP62AptosWallets(): void {\n let { aptosWallets, on } = getAptosWallets();\n this.setExtensionAIP62Wallets(aptosWallets);\n\n if (typeof window === \"undefined\") return;\n // Adds an event listener for new wallets that get registered after the dapp has been loaded,\n // receiving an unsubscribe function, which it can later use to remove the listener\n const that = this;\n const removeRegisterListener = on(\"register\", function () {\n let { aptosWallets } = getAptosWallets();\n that.setExtensionAIP62Wallets(aptosWallets);\n });\n\n const removeUnregisterListener = on(\"unregister\", function () {\n let { aptosWallets } = getAptosWallets();\n that.setExtensionAIP62Wallets(aptosWallets);\n });\n }\n\n /**\n * Set AIP-62 extension wallets\n *\n * @param extensionwWallets\n */\n private setExtensionAIP62Wallets(\n extensionwWallets: readonly AptosWallet[]\n ): void {\n // Twallet SDK fires a register event so the adapter assumes it is an extension wallet\n // so filter out t wallet, remove it when twallet fixes it\n const wallets = extensionwWallets.filter(\n (wallet) => wallet.name !== \"Dev T wallet\" && wallet.name !== \"T wallet\"\n );\n\n wallets.map((wallet: AptosStandardWallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n\n // Remove optional duplications in the _all_wallets array\n this._standard_wallets = this._standard_wallets.filter(\n (item) => item.name !== wallet.name\n );\n\n const isValid = isWalletWithRequiredFeatureSet(wallet);\n if (isValid) {\n // check if we already have this wallet as a not detected wallet\n const index = this._standard_not_detected_wallets.findIndex(\n (notDetctedWallet) => notDetctedWallet.name == wallet.name\n );\n // if we do, remove it from the not detected wallets array as it is now become detected\n if (index !== -1) {\n this._standard_not_detected_wallets.splice(index, 1);\n }\n\n wallet.readyState = WalletReadyState.Installed;\n this._standard_wallets.push(wallet);\n this.emit(\"standardWalletsAdded\", wallet);\n }\n });\n }\n\n /**\n * Set AIP-62 SDK wallets\n */\n private fetchSDKAIP62AptosWallets(): void {\n this._sdkWallets.map((wallet: AptosStandardWallet) => {\n if (this.excludeWallet(wallet)) {\n return;\n }\n const isValid = isWalletWithRequiredFeatureSet(wallet);\n\n if (isValid) {\n wallet.readyState = WalletReadyState.Installed;\n this._standard_wallets.push(wallet);\n }\n });\n }\n\n // Since we can't discover AIP-62 wallets that are not installed on the user machine,\n // we hold a AIP-62 wallets registry to show on the wallet selector modal for the users.\n // Append wallets from wallet standard support registry to the `all_wallets` array\n // when wallet is not installed on the user machine\n private appendNotDetectedStandardSupportedWallets(): void {\n // Loop over the registry map\n aptosStandardSupportedWalletList.map((supportedWallet) => {\n // Check if we already have this wallet as a AIP-62 wallet standard\n const existingStandardWallet = this._standard_wallets.find(\n (wallet) => wallet.name == supportedWallet.name\n );\n if (existingStandardWallet) {\n return;\n }\n // If AIP-62 wallet detected but it is excluded by the dapp, dont add it to the wallets array\n if (\n existingStandardWallet &&\n this.excludeWallet(existingStandardWallet)\n ) {\n return;\n }\n\n // If AIP-62 wallet does not exist, append it to the wallet selector modal\n // as an undetected wallet\n if (!existingStandardWallet) {\n this._standard_not_detected_wallets.push(supportedWallet);\n this.emit(\"standardNotDetectedWalletAdded\", supportedWallet);\n }\n });\n }\n\n /**\n * A function that excludes an AIP-62 compatible wallet the dapp doesnt want to include\n *\n * @param walletName\n * @returns\n */\n excludeWallet(wallet: AptosStandardWallet): boolean {\n // If _optInWallets is not empty, and does not include the provided wallet,\n // return true to exclude the wallet, otherwise return false\n if (\n this._optInWallets.length > 0 &&\n !this._optInWallets.includes(wallet.name as AvailableWallets)\n ) {\n return true;\n }\n return false;\n }\n\n private recordEvent(eventName: string, additionalInfo?: object): void {\n this.ga4?.gtag(\"event\", `wallet_adapter_${eventName}`, {\n wallet: this._wallet?.name,\n network: this._network?.name,\n network_url: this._network?.url,\n adapter_core_version: WALLET_ADAPTER_CORE_VERSION,\n send_to: process.env.GAID,\n ...additionalInfo,\n });\n }\n\n /**\n * Helper function to ensure wallet exists\n *\n * @param wallet A wallet\n */\n private ensureWalletExists(\n wallet: AdapterWallet | null\n ): asserts wallet is AdapterWallet {\n if (!wallet) {\n throw new WalletNotConnectedError().name;\n }\n if (!(wallet.readyState === WalletReadyState.Installed))\n throw new WalletNotReadyError(\"Wallet is not set\").name;\n }\n\n /**\n * Helper function to ensure account exists\n *\n * @param account An account\n */\n private ensureAccountExists(\n account: AccountInfo | null\n ): asserts account is AccountInfo {\n if (!account) {\n throw new WalletAccountError(\"Account is not set\").name;\n }\n }\n\n /**\n * Queries and sets ANS name for the current connected wallet account\n */\n private async setAnsName(): Promise {\n if (this._network?.chainId && this._account) {\n if (this._account.ansName) return;\n // ANS supports only MAINNET or TESTNET\n if (\n !ChainIdToAnsSupportedNetworkMap[this._network.chainId] ||\n !isAptosNetwork(this._network)\n ) {\n this._account.ansName = undefined;\n return;\n }\n\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new Aptos(aptosConfig);\n const name = await aptos.ans.getPrimaryName({\n address: this._account.address.toString(),\n });\n\n this._account.ansName = name;\n }\n }\n\n /**\n * Function to cleat wallet adapter data.\n *\n * - Removes current connected wallet state\n * - Removes current connected account state\n * - Removes current connected network state\n * - Removes autoconnect local storage value\n */\n private clearData(): void {\n this._connected = false;\n this.setWallet(null);\n this.setAccount(null);\n this.setNetwork(null);\n removeLocalStorage();\n }\n\n /**\n * Sets the connected wallet\n *\n * @param wallet A wallet\n */\n setWallet(wallet: AptosWallet | null): void {\n this._wallet = wallet;\n }\n\n /**\n * Sets the connected account\n *\n * @param account An account\n */\n setAccount(account: AccountInfo | null): void {\n this._account = account;\n }\n\n /**\n * Sets the connected network\n *\n * @param network A network\n */\n setNetwork(network: NetworkInfo | null): void {\n this._network = network;\n }\n\n /**\n * Helper function to detect whether a wallet is connected\n *\n * @returns boolean\n */\n isConnected(): boolean {\n return this._connected;\n }\n\n /**\n * Getter to fetch all detected wallets\n */\n get wallets(): ReadonlyArray {\n return this._standard_wallets;\n }\n\n get notDetectedWallets(): ReadonlyArray {\n return this._standard_not_detected_wallets;\n }\n\n /**\n * Getter for the current connected wallet\n *\n * @return wallet info\n * @throws WalletNotSelectedError\n */\n get wallet(): AptosWallet | null {\n try {\n if (!this._wallet) return null;\n return this._wallet;\n } catch (error: any) {\n throw new WalletNotSelectedError(error).message;\n }\n }\n\n /**\n * Getter for the current connected account\n *\n * @return account info\n * @throws WalletAccountError\n */\n get account(): AccountInfo | null {\n try {\n return this._account;\n } catch (error: any) {\n throw new WalletAccountError(error).message;\n }\n }\n\n /**\n * Getter for the current wallet network\n *\n * @return network info\n * @throws WalletGetNetworkError\n */\n get network(): NetworkInfo | null {\n try {\n return this._network;\n } catch (error: any) {\n throw new WalletGetNetworkError(error).message;\n }\n }\n\n /**\n * Helper function to run some checks before we connect with a wallet.\n *\n * @param walletName. The wallet name we want to connect with.\n */\n async connect(walletName: string): Promise {\n // Checks the wallet exists in the detected wallets array\n const allDetectedWallets = this._standard_wallets;\n\n const selectedWallet = allDetectedWallets.find(\n (wallet: AdapterWallet) => wallet.name === walletName\n );\n\n if (!selectedWallet) return;\n\n // Check if wallet is already connected\n if (this._connected) {\n // if the selected wallet is already connected, we don't need to connect again\n if (this._wallet?.name === walletName)\n throw new WalletConnectionError(\n `${walletName} wallet is already connected`\n ).message;\n }\n\n // Check if we are in a redirectable view (i.e on mobile AND not in an in-app browser)\n // Ignore if wallet is installed (iOS extension)\n if (\n isRedirectable() &&\n selectedWallet.readyState !== WalletReadyState.Installed\n ) {\n // use wallet deep link\n if (selectedWallet.features[\"aptos:openInMobileApp\"]?.openInMobileApp) {\n selectedWallet.features[\"aptos:openInMobileApp\"]?.openInMobileApp();\n return;\n }\n\n return;\n }\n\n // Check wallet state is Installed\n if (selectedWallet.readyState !== WalletReadyState.Installed) {\n return;\n }\n\n // Now we can connect to the wallet\n await this.connectWallet(selectedWallet);\n }\n\n /**\n * Connects a wallet to the dapp.\n * On connect success, we set the current account and the network, and keeping the selected wallet\n * name in LocalStorage to support autoConnect function.\n *\n * @param selectedWallet. The wallet we want to connect.\n * @emit emits \"connect\" event\n * @throws WalletConnectionError\n */\n async connectWallet(selectedWallet: AdapterWallet): Promise {\n try {\n this._connecting = true;\n this.setWallet(selectedWallet);\n const response = await selectedWallet.features[\"aptos:connect\"].connect();\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n const account = response.args;\n this.setAccount(account);\n const network = await selectedWallet.features[\"aptos:network\"]?.network();\n this.setNetwork(network);\n await this.setAnsName();\n setLocalStorage(selectedWallet.name);\n this._connected = true;\n this.recordEvent(\"wallet_connect\");\n this.emit(\"connect\", account);\n } catch (error: any) {\n this.clearData();\n const errMsg = generalizedErrorMessage(error);\n throw new WalletConnectionError(errMsg).message;\n } finally {\n this._connecting = false;\n }\n }\n\n /**\n * Disconnect the current connected wallet. On success, we clear the\n * current account, current network and LocalStorage data.\n *\n * @emit emits \"disconnect\" event\n * @throws WalletDisconnectionError\n */\n async disconnect(): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:disconnect\"].disconnect();\n this.clearData();\n this.recordEvent(\"wallet_disconnect\");\n this.emit(\"disconnect\");\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletDisconnectionError(errMsg).message;\n }\n }\n\n /**\n * Signs and submits a transaction to chain\n *\n * @param transactionInput InputTransactionData\n * @returns PendingTransactionResponse\n */\n async signAndSubmitTransaction(\n transactionInput: InputTransactionData\n ): Promise {\n try {\n if (\"function\" in transactionInput.data) {\n if (\n transactionInput.data.function ===\n \"0x1::account::rotate_authentication_key_call\"\n ) {\n throw new WalletSignAndSubmitMessageError(\"SCAM SITE DETECTED\")\n .message;\n }\n\n if (\n transactionInput.data.function === \"0x1::code::publish_package_txn\"\n ) {\n ({\n metadataBytes: transactionInput.data.functionArguments[0],\n byteCode: transactionInput.data.functionArguments[1],\n } = handlePublishPackageTransaction(transactionInput));\n }\n }\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_and_submit_transaction\");\n\n if (this._wallet.features[\"aptos:signAndSubmitTransaction\"]) {\n // check for backward compatibility. before version 1.1.0 the standard expected\n // AnyRawTransaction input so the adapter built the transaction before sending it to the wallet\n if (\n this._wallet.features[\"aptos:signAndSubmitTransaction\"]?.version !==\n \"1.1.0\"\n ) {\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n\n const aptos = new Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options,\n });\n\n type AptosSignAndSubmitTransactionV1Method = (\n transaction: AnyRawTransaction\n ) => Promise>;\n\n const signAndSubmitTransactionMethod = this._wallet.features[\n \"aptos:signAndSubmitTransaction\"\n ]\n .signAndSubmitTransaction as unknown as AptosSignAndSubmitTransactionV1Method;\n\n const response = (await signAndSubmitTransactionMethod(\n transaction\n )) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n }\n\n const response = await this._wallet.features[\n \"aptos:signAndSubmitTransaction\"\n ].signAndSubmitTransaction({\n payload: transactionInput.data,\n gasUnitPrice: transactionInput.options?.gasUnitPrice,\n maxGasAmount: transactionInput.options?.maxGasAmount,\n });\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n\n // If wallet does not support signAndSubmitTransaction\n // the adapter will sign and submit it for the dapp.\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n\n const aptos = new Aptos(aptosConfig);\n const transaction = await aptos.transaction.build.simple({\n sender: this._account.address,\n data: transactionInput.data,\n options: transactionInput.options,\n });\n\n const signTransactionResponse = await this.signTransaction(transaction);\n const response = await this.submitTransaction({\n transaction,\n senderAuthenticator:\n \"authenticator\" in signTransactionResponse\n ? signTransactionResponse.authenticator\n : signTransactionResponse,\n });\n return { hash: response.hash };\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a transaction\n *\n * To support both existing wallet adapter V1 and V2, we support 2 input types\n *\n * @param transactionOrPayload AnyRawTransaction - V2 input | Types.TransactionPayload - V1 input\n * @param options optional. V1 input\n *\n * @returns AccountAuthenticator\n */\n async signTransaction(\n transactionOrPayload: AnyRawTransaction | InputTransactionData,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions & {\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n }\n ): Promise {\n /**\n * All standard compatible wallets should support AnyRawTransaction for signTransaction version 1.0.0\n * For standard signTransaction version 1.1.0, the standard expects a transaction input\n *\n * So, if the input is AnyRawTransaction, we can directly call the wallet's signTransaction method\n *\n *\n * If the input is InputTransactionData, we need to\n * 1. check if the wallet supports signTransaction version 1.1.0 - if so, we convert the input to the standard expected input\n * 2. if it does not support signTransaction version 1.1.0, we convert it to a rawTransaction input and call the wallet's signTransaction method\n */\n\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_transaction\");\n\n // dapp sends a generated transaction (i.e AnyRawTransaction), which is supported by the wallet at signMessage version 1.0.0\n if (\"rawTransaction\" in transactionOrPayload) {\n const response = (await this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction(\n transactionOrPayload,\n asFeePayer\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } // dapp sends a transaction data input (i.e InputTransactionData), which is supported by the wallet at signMessage version 1.1.0\n else if (\n this._wallet.features[\"aptos:signTransaction\"]?.version === \"1.1\"\n ) {\n // convert input to standard expected input\n const signTransactionV1_1StandardInput: AptosSignTransactionInputV1_1 =\n {\n payload: transactionOrPayload.data,\n expirationTimestamp: options?.expirationTimestamp,\n expirationSecondsFromNow: options?.expirationSecondsFromNow,\n gasUnitPrice: options?.gasUnitPrice,\n maxGasAmount: options?.maxGasAmount,\n sequenceNumber: options?.accountSequenceNumber,\n sender: transactionOrPayload.sender\n ? { address: AccountAddress.from(transactionOrPayload.sender) }\n : undefined,\n };\n\n const walletSignTransactionMethod = this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction as AptosSignTransactionMethod &\n AptosSignTransactionMethodV1_1;\n\n const response = (await walletSignTransactionMethod(\n signTransactionV1_1StandardInput\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } else {\n // dapp input is InputTransactionData but the wallet does not support it, so we convert it to a rawTransaction\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const payload = await generateTransactionPayload({\n ...(transactionOrPayload.data as InputEntryFunctionData),\n aptosConfig,\n });\n const rawTransaction = await generateRawTransaction({\n aptosConfig,\n payload,\n sender: this._account.address,\n options: options,\n });\n const response = (await this._wallet?.features[\n \"aptos:signTransaction\"\n ].signTransaction(\n new SimpleTransaction(rawTransaction),\n asFeePayer\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignTransactionError(errMsg).message;\n }\n }\n\n /**\n * Sign message (doesnt submit to chain).\n *\n * @param message\n * @return response from the wallet's signMessage function\n * @throws WalletSignMessageError\n */\n async signMessage(\n message: AptosSignMessageInput\n ): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"sign_message\");\n\n const response =\n await this._wallet?.features[\"aptos:signMessage\"]?.signMessage(message);\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageError(errMsg).message;\n }\n }\n\n /**\n * Submits transaction to chain\n *\n * @param transaction\n * @returns PendingTransactionResponse\n */\n async submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise {\n // The standard does not support submitTransaction, so we use the adapter to submit the transaction\n try {\n this.ensureWalletExists(this._wallet);\n\n const { additionalSignersAuthenticators } = transaction;\n const transactionType =\n additionalSignersAuthenticators !== undefined\n ? \"multi-agent\"\n : \"simple\";\n this.recordEvent(\"submit_transaction\", {\n transaction_type: transactionType,\n });\n\n const aptosConfig = getAptosConfig(this._network, this._dappConfig);\n const aptos = new Aptos(aptosConfig);\n if (additionalSignersAuthenticators !== undefined) {\n const multiAgentTxn = {\n ...transaction,\n additionalSignersAuthenticators,\n };\n return aptos.transaction.submit.multiAgent(multiAgentTxn);\n } else {\n return aptos.transaction.submit.simple(transaction);\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSubmitTransactionError(errMsg).message;\n }\n }\n\n /**\n Event for when account has changed on the wallet\n @return the new account info\n @throws WalletAccountChangeError\n */\n async onAccountChange(): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onAccountChange\"]?.onAccountChange(\n async (data: AccountInfo) => {\n this.setAccount(data);\n await this.setAnsName();\n this.recordEvent(\"account_change\");\n this.emit(\"accountChange\", this._account);\n }\n );\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletAccountChangeError(errMsg).message;\n }\n }\n\n /**\n Event for when network has changed on the wallet\n @return the new network info\n @throws WalletNetworkChangeError\n */\n async onNetworkChange(): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n await this._wallet.features[\"aptos:onNetworkChange\"]?.onNetworkChange(\n async (data: NetworkInfo) => {\n this.setNetwork(data);\n await this.setAnsName();\n this.emit(\"networkChange\", this._network);\n }\n );\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletNetworkChangeError(errMsg).message;\n }\n }\n\n /**\n * Sends a change network request to the wallet to change the connected network\n *\n * @param network\n * @returns AptosChangeNetworkOutput\n */\n async changeNetwork(network: Network): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n this.recordEvent(\"change_network_request\", {\n from: this._network?.name,\n to: network,\n });\n const chainId =\n network === Network.DEVNET\n ? await fetchDevnetChainId()\n : NetworkToChainId[network];\n\n const networkInfo: NetworkInfo = {\n name: network,\n chainId,\n };\n\n if (this._wallet.features[\"aptos:changeNetwork\"]) {\n const response =\n await this._wallet.features[\"aptos:changeNetwork\"].changeNetwork(\n networkInfo\n );\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n }\n\n throw new WalletChangeNetworkError(\n `${this._wallet.name} does not support changing network request`\n ).message;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletChangeNetworkError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message SignMessagePayload\n * @returns boolean\n */\n async signMessageAndVerify(message: AptosSignMessageInput): Promise {\n try {\n this.ensureWalletExists(this._wallet);\n this.ensureAccountExists(this._account);\n this.recordEvent(\"sign_message_and_verify\");\n\n try {\n // sign the message\n const response = (await this._wallet.features[\n \"aptos:signMessage\"\n ].signMessage(message)) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"Failed to sign a message\").message;\n }\n\n // For Keyless wallet accounts we skip verification for now.\n // TODO: Remove when client-side verification is done in SDK.\n if (\n this._account.publicKey instanceof AnyPublicKey &&\n this._account.publicKey.variant === AnyPublicKeyVariant.Keyless\n ) {\n return true;\n }\n\n let verified = false;\n // if is a multi sig wallet with a MultiEd25519Signature type\n if (response.args.signature instanceof MultiEd25519Signature) {\n if (!(this._account.publicKey instanceof MultiEd25519PublicKey)) {\n throw new WalletSignMessageAndVerifyError(\n \"Public key and Signature type mismatch\"\n ).message;\n }\n const { fullMessage, signature } = response.args;\n const bitmap = signature.bitmap;\n if (bitmap) {\n const minKeysRequired = this._account.publicKey.threshold;\n if (signature.signatures.length < minKeysRequired) {\n verified = false;\n } else {\n verified = this._account.publicKey.verifySignature({\n message: new TextEncoder().encode(fullMessage),\n signature,\n });\n }\n }\n } else {\n verified = this._account.publicKey.verifySignature({\n message: new TextEncoder().encode(response.args.fullMessage),\n signature: response.args.signature,\n });\n }\n return verified;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n","export class GA4 {\n readonly aptosGAID: string | undefined = process.env.GAID;\n\n constructor() {\n // Inject Aptos Google Analytics 4 script\n this.injectGA(this.aptosGAID);\n }\n\n gtag(a: string, b: string | object, c?: object) {\n let dataLayer = (window as any).dataLayer || [];\n dataLayer.push(arguments);\n }\n\n private injectGA(gaID?: string) {\n if (typeof window === \"undefined\") return;\n if (!gaID) return;\n\n const head = document.getElementsByTagName(\"head\")[0];\n\n var myScript = document.createElement(\"script\");\n\n myScript.setAttribute(\n \"src\",\n `https://www.googletagmanager.com/gtag/js?id=${gaID}`\n );\n\n const that = this;\n myScript.onload = function () {\n that.gtag(\"js\", new Date());\n that.gtag(\"config\", `${gaID}`, {\n send_page_view: false,\n });\n };\n\n head.insertBefore(myScript, head.children[1]);\n }\n}\n","export enum WalletReadyState {\n /**\n * User-installable wallets can typically be detected by scanning for an API\n * that they've injected into the global context. If such an API is present,\n * we consider the wallet to have been installed.\n */\n Installed = \"Installed\",\n NotDetected = \"NotDetected\",\n /**\n * Loadable wallets are always available to you. Since you can load them at\n * any time, it's meaningless to say that they have been detected.\n */\n Loadable = \"Loadable\",\n /**\n * If a wallet is not supported on a given platform (eg. server-rendering, or\n * mobile) then it will stay in the `Unsupported` state.\n */\n Unsupported = \"Unsupported\",\n}\n\nexport enum NetworkName {\n Mainnet = \"mainnet\",\n Testnet = \"testnet\",\n Devnet = \"devnet\",\n}\n\nexport const ChainIdToAnsSupportedNetworkMap: Record = {\n \"1\": \"mainnet\", // mainnet\n \"2\": \"testnet\", // testnet\n};\n\n/** The base URL for all Aptos Connect wallets. */\nexport const APTOS_CONNECT_BASE_URL = \"https://aptosconnect.app\";\n\n/** The URL to the Aptos Connect account page if the user is signed in to Aptos Connect. */\nexport const APTOS_CONNECT_ACCOUNT_URL =\n \"https://aptosconnect.app/dashboard/main-account\";\n","import {\n AptosConnectAppleWallet,\n AptosConnectGoogleWallet,\n} from \"@aptos-connect/wallet-adapter-plugin\";\nimport { Network } from \"@aptos-labs/ts-sdk\";\nimport { DevTWallet, TWallet } from \"@atomrigslab/aptos-wallet-adapter\";\nimport { MizuWallet } from \"@mizuwallet-sdk/aptos-wallet-adapter\";\nimport { DappConfig } from \"../WalletCoreNew\";\nimport { AptosStandardWallet } from \"./WalletStandard\";\n\nexport function getSDKWallets(dappConfig?: DappConfig) {\n const sdkWallets: AptosStandardWallet[] = [];\n\n // Need to check window is defined for AptosConnect\n if (typeof window !== \"undefined\") {\n sdkWallets.push(\n new AptosConnectGoogleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect,\n }),\n new AptosConnectAppleWallet({\n network: dappConfig?.network,\n dappId: dappConfig?.aptosConnectDappId,\n ...dappConfig?.aptosConnect,\n })\n );\n\n if (\n dappConfig?.mizuwallet &&\n dappConfig?.network &&\n [Network.MAINNET, Network.TESTNET].includes(dappConfig.network)\n ) {\n sdkWallets.push(\n new MizuWallet({\n network: dappConfig.network as any,\n manifestURL: dappConfig.mizuwallet.manifestURL,\n appId: dappConfig.mizuwallet.appId,\n }) as any\n );\n }\n }\n\n // Push production wallet if env is production, otherwise use dev wallet\n if (dappConfig?.network === Network.MAINNET) {\n // TODO twallet uses @aptos-labs/wallet-standard at version 0.0.11 while adapter uses\n // a newer version (0.1.0) - this causes type mismatch. We should figure out how to handle it.\n sdkWallets.push(new TWallet() as any);\n } else {\n sdkWallets.push(new DevTWallet() as any);\n }\n\n // Add new SDK wallet plugins (ones that should be installed as packages) here:\n // Ex. sdkWallets.push(new YourSDKWallet(dappConfig))\n\n return sdkWallets;\n}\n","import {\n Aptos,\n AptosConfig,\n EntryFunctionArgumentTypes,\n Hex,\n Network,\n NetworkToNodeAPI,\n Serializable,\n SimpleEntryFunctionArgumentTypes,\n} from \"@aptos-labs/ts-sdk\";\nimport { NetworkInfo as StandardNetworkInfo } from \"@aptos-labs/wallet-standard\";\nimport { convertNetwork } from \"../LegacyWalletPlugins/conversion\";\nimport {\n InputTransactionData,\n NetworkInfo,\n} from \"../LegacyWalletPlugins/types\";\nimport { DappConfig } from \"../WalletCoreNew\";\nimport { WalletSignAndSubmitMessageError } from \"../error\";\n\nexport function isMobile(): boolean {\n return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(\n navigator.userAgent\n );\n}\n\nexport function isInAppBrowser(): boolean {\n const isIphone = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(\n navigator.userAgent\n );\n\n const isAndroid = /(Android).*Version\\/[\\d.]+.*Chrome\\/[^\\s]+ Mobile/i.test(\n navigator.userAgent\n );\n\n return isIphone || isAndroid;\n}\n\nexport function isRedirectable(): boolean {\n // SSR: return false\n if (typeof navigator === \"undefined\" || !navigator) return false;\n\n // if we are on mobile and NOT in a in-app browser we will redirect to a wallet app\n\n return isMobile() && !isInAppBrowser();\n}\n\nexport function generalizedErrorMessage(error: any): string {\n return typeof error === \"object\" && \"message\" in error\n ? error.message\n : error;\n}\n\n// Helper function to check if input arguments are BCS serialized arguments.\n// In @aptos-labs/ts-sdk each move representative class extends\n// Serializable, so if each argument is of an instance of a class\n// the extends Serializable - we know these are BCS arguments\nexport const areBCSArguments = (\n args: Array\n): boolean => {\n // `every` returns true if the array is empty, so\n // first check the array length\n if (args.length === 0) return false;\n return args.every(\n (arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes) =>\n arg instanceof Serializable\n );\n};\n\n/**\n * Helper function to get AptosConfig that supports Aptos and Custom networks\n *\n * @param networkInfo\n * @param dappConfig\n * @returns AptosConfig\n */\nexport const getAptosConfig = (\n networkInfo: NetworkInfo | StandardNetworkInfo | null,\n dappConfig: DappConfig | undefined\n): AptosConfig => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n const currentNetwork = convertNetwork(networkInfo);\n\n if (isAptosLiveNetwork(currentNetwork)) {\n const apiKey = dappConfig?.aptosApiKeys;\n return new AptosConfig({\n network: currentNetwork,\n clientConfig: { API_KEY: apiKey ? apiKey[currentNetwork] : undefined },\n });\n }\n\n if (isAptosNetwork(networkInfo)) {\n return new AptosConfig({\n network: currentNetwork,\n });\n }\n return new AptosConfig({\n network: Network.CUSTOM,\n fullnode: networkInfo.url,\n });\n};\n\n/**\n * Helper function to resolve if the current connected network is an Aptos network\n *\n * @param networkInfo\n * @returns boolean\n */\nexport const isAptosNetwork = (\n networkInfo: NetworkInfo | StandardNetworkInfo | null\n): boolean => {\n if (!networkInfo) {\n throw new Error(\"Undefined network\");\n }\n return NetworkToNodeAPI[networkInfo.name] !== undefined;\n};\n\nexport const isAptosLiveNetwork = (networkInfo: Network): boolean => {\n return (\n networkInfo === \"devnet\" ||\n networkInfo === \"testnet\" ||\n networkInfo === \"mainnet\"\n );\n};\n\n/**\n * Helper function to fetch Devnet chain id\n */\nexport const fetchDevnetChainId = async (): Promise => {\n const aptos = new Aptos(); // default to devnet\n return await aptos.getChainId();\n};\n\n/**\n * A helper function to handle the publish package transaction.\n * The Aptos SDK expects the metadataBytes and byteCode to be Uint8Array, but in case the arguments are passed in\n * as a string, this function converts the string to Uint8Array.\n */\nexport const handlePublishPackageTransaction = (\n transactionInput: InputTransactionData\n) => {\n // convert the first argument, metadataBytes, to uint8array if is a string\n let metadataBytes = transactionInput.data.functionArguments[0];\n if (typeof metadataBytes === \"string\") {\n metadataBytes = Hex.fromHexInput(metadataBytes).toUint8Array();\n }\n\n // convert the second argument, byteCode, to uint8array if is a string\n let byteCode = transactionInput.data.functionArguments[1];\n if (Array.isArray(byteCode)) {\n byteCode = byteCode.map((byte) => {\n if (typeof byte === \"string\") {\n return Hex.fromHexInput(byte).toUint8Array();\n }\n return byte;\n });\n } else {\n throw new WalletSignAndSubmitMessageError(\n \"The bytecode argument must be an array.\"\n ).message;\n }\n\n return { metadataBytes, byteCode };\n};\n","import {\n Network,\n TransactionPayload,\n InputGenerateTransactionPayloadData,\n TypeTag,\n AptosConfig,\n InputEntryFunctionData,\n InputMultiSigData,\n MoveFunctionId,\n generateTransactionPayload,\n TransactionPayloadEntryFunction,\n} from \"@aptos-labs/ts-sdk\";\nimport { NetworkInfo as StandardNetworkInfo } from \"@aptos-labs/wallet-standard\";\nimport { BCS, TxnBuilderTypes, Types } from \"aptos\";\nimport { NetworkInfo } from \"./types\";\n\n// old => new\nexport function convertNetwork(\n networkInfo: NetworkInfo | StandardNetworkInfo | null\n): Network {\n switch (networkInfo?.name) {\n case \"mainnet\" as Network:\n return Network.MAINNET;\n case \"testnet\" as Network:\n return Network.TESTNET;\n case \"devnet\" as Network:\n return Network.DEVNET;\n case \"local\" as Network:\n return Network.LOCAL;\n default:\n throw new Error(\"Invalid Aptos network name\");\n }\n}\n\n// new => old\nexport function convertV2TransactionPayloadToV1BCSPayload(\n payload: TransactionPayload\n): TxnBuilderTypes.TransactionPayload {\n const deserializer = new BCS.Deserializer(payload.bcsToBytes());\n return TxnBuilderTypes.TransactionPayload.deserialize(deserializer);\n}\n\nexport function convertV2PayloadToV1JSONPayload(\n payload: InputGenerateTransactionPayloadData\n): Types.TransactionPayload {\n if (\"bytecode\" in payload) {\n // is a script payload\n throw new Error(\"script payload not supported\");\n // is multisig function payload\n } else if (\"multisigAddress\" in payload) {\n const stringTypeTags: string[] | undefined = payload.typeArguments?.map(\n (typeTag) => {\n if (typeTag instanceof TypeTag) {\n return typeTag.toString();\n }\n return typeTag;\n }\n );\n const newPayload: Types.TransactionPayload = {\n type: \"multisig_payload\",\n multisig_address: payload.multisigAddress.toString(),\n function: payload.function,\n type_arguments: stringTypeTags || [],\n arguments: payload.functionArguments,\n };\n\n return newPayload;\n } else {\n // is entry function payload\n const stringTypeTags: string[] | undefined = payload.typeArguments?.map(\n (typeTag) => {\n if (typeTag instanceof TypeTag) {\n return typeTag.toString();\n }\n return typeTag;\n }\n );\n const newPayload: Types.TransactionPayload = {\n type: \"entry_function_payload\",\n function: payload.function,\n type_arguments: stringTypeTags || [],\n arguments: payload.functionArguments,\n };\n\n return newPayload;\n }\n}\n\nexport function convertPayloadInputV1ToV2(\n inputV1: Types.TransactionPayload\n) {\n if (\"function\" in inputV1) {\n const inputV2: InputEntryFunctionData | InputMultiSigData = {\n function: inputV1.function as MoveFunctionId,\n functionArguments: inputV1.arguments,\n typeArguments: inputV1.type_arguments,\n };\n return inputV2;\n }\n\n throw new Error(\"Payload type not supported\");\n}\n\nexport async function generateTransactionPayloadFromV1Input(\n aptosConfig: AptosConfig,\n inputV1: Types.TransactionPayload\n): Promise {\n if (\"function\" in inputV1) {\n const inputV2 = convertPayloadInputV1ToV2(inputV1);\n return generateTransactionPayload({ ...inputV2, aptosConfig });\n }\n\n throw new Error(\"Payload type not supported\");\n}\n\nexport interface CompatibleTransactionOptions {\n expireTimestamp?: number;\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n gasUnitPrice?: number;\n gas_unit_price?: number;\n maxGasAmount?: number;\n max_gas_amount?: number;\n sender?: string;\n sequenceNumber?: number;\n}\n","export class WalletError extends Error {\n public error: any;\n\n constructor(message?: string, error?: any) {\n super(message);\n this.error = error;\n }\n}\n\nexport class WalletNotSelectedError extends WalletError {\n name = \"WalletNotSelectedError\";\n}\n\nexport class WalletNotReadyError extends WalletError {\n name = \"WalletNotReadyError\";\n}\n\nexport class WalletLoadError extends WalletError {\n name = \"WalletLoadError\";\n}\n\nexport class WalletConfigError extends WalletError {\n name = \"WalletConfigError\";\n}\n\nexport class WalletConnectionError extends WalletError {\n name = \"WalletConnectionError\";\n}\n\nexport class WalletDisconnectedError extends WalletError {\n name = \"WalletDisconnectedError\";\n}\n\nexport class WalletDisconnectionError extends WalletError {\n name = \"WalletDisconnectionError\";\n}\n\nexport class WalletAccountError extends WalletError {\n name = \"WalletAccountError\";\n}\nexport class WalletGetNetworkError extends WalletError {\n name = \"WalletGetNetworkError\";\n}\n\nexport class WalletAccountChangeError extends WalletError {\n name = \"WalletAccountChangeError\";\n}\n\nexport class WalletNetworkChangeError extends WalletError {\n name = \"WalletNetworkChangeError\";\n}\n\nexport class WalletPublicKeyError extends WalletError {\n name = \"WalletPublicKeyError\";\n}\n\nexport class WalletKeypairError extends WalletError {\n name = \"WalletKeypairError\";\n}\n\nexport class WalletNotConnectedError extends WalletError {\n name = \"WalletNotConnectedError\";\n}\n\nexport class WalletSendTransactionError extends WalletError {\n name = \"WalletSendTransactionError\";\n}\n\nexport class WalletSignMessageError extends WalletError {\n name = \"WalletSignMessageError\";\n}\n\nexport class WalletSubmitTransactionError extends WalletError {\n name = \"WalletSubmitTransactionError\";\n}\n\nexport class WalletSignMessageAndVerifyError extends WalletError {\n name = \"WalletSignMessageAndVerifyError\";\n}\n\nexport class WalletSignAndSubmitMessageError extends WalletError {\n name = \"WalletSignAndSubmitMessageError\";\n}\n\nexport class WalletSignTransactionError extends WalletError {\n name = \"WalletSignTransactionError\";\n}\n\nexport class WalletTimeoutError extends WalletError {\n name = \"WalletTimeoutError\";\n}\n\nexport class WalletWindowBlockedError extends WalletError {\n name = \"WalletWindowBlockedError\";\n}\n\nexport class WalletWindowClosedError extends WalletError {\n name = \"WalletWindowClosedError\";\n}\n\nexport class WalletResponseError extends WalletError {\n name = \"WalletResponseError\";\n}\n\nexport class WalletNotSupportedMethod extends WalletError {\n name = \"WalletNotSupportedMethod\";\n}\n\nexport class WalletChangeNetworkError extends WalletError {\n name = \"WalletChangeNetworkError\";\n}\n","const LOCAL_STORAGE_ITEM_KEY = \"AptosWalletName\";\n\nexport function setLocalStorage(walletName: string) {\n localStorage.setItem(LOCAL_STORAGE_ITEM_KEY, walletName);\n}\n\nexport function removeLocalStorage() {\n localStorage.removeItem(LOCAL_STORAGE_ITEM_KEY);\n}\n\nexport function getLocalStorage() {\n localStorage.getItem(LOCAL_STORAGE_ITEM_KEY);\n}\n","import { AptosStandardWallet } from \"../AIP62StandardWallets\";\nimport { WalletInfo } from \"../LegacyWalletPlugins\";\nimport { AdapterNotDetectedWallet, AdapterWallet } from \"../WalletCoreNew\";\nimport { APTOS_CONNECT_BASE_URL, WalletReadyState } from \"../constants\";\nimport { isRedirectable } from \"./helpers\";\n\n/**\n * A function that will partition the provided wallets into two list — `defaultWallets` and `moreWallets`.\n * By default, the wallets will be partitioned by whether or not they are installed or loadable.\n * You can pass your own partition function if you wish to customize this behavior.\n */\nexport function partitionWallets(\n wallets: ReadonlyArray,\n partitionFunction: (\n wallet: AdapterWallet | AdapterNotDetectedWallet\n ) => boolean = isInstalled\n) {\n const defaultWallets: Array = [];\n const moreWallets: Array = [];\n\n for (const wallet of wallets) {\n if (partitionFunction(wallet)) defaultWallets.push(wallet as AdapterWallet);\n else moreWallets.push(wallet as AdapterNotDetectedWallet);\n }\n\n return { defaultWallets, moreWallets };\n}\n\n/** Returns true if the wallet is installed. */\nexport function isInstalled(wallet: AdapterWallet | AdapterNotDetectedWallet) {\n return wallet.readyState === WalletReadyState.Installed;\n}\n\n/**\n * Returns true if the user is on desktop and the provided wallet requires installation of a browser extension.\n * This can be used to decide whether to show a \"Connect\" button or \"Install\" link in the UI.\n */\nexport function isInstallRequired(\n wallet: AdapterWallet | AdapterNotDetectedWallet\n) {\n const isWalletReady = isInstalled(wallet);\n const isMobile = !isWalletReady && isRedirectable();\n\n return !isMobile && !isWalletReady;\n}\n\n/** Truncates the provided wallet address at the middle with an ellipsis. */\nexport function truncateAddress(address: string | undefined) {\n if (!address) return;\n return `${address.slice(0, 6)}...${address.slice(-5)}`;\n}\n\n/** Returns `true` if the provided wallet is an Aptos Connect wallet. */\nexport function isAptosConnectWallet(\n wallet:\n | WalletInfo\n | AdapterWallet\n | AptosStandardWallet\n | AdapterNotDetectedWallet\n) {\n if (!wallet.url) return false;\n return wallet.url.startsWith(APTOS_CONNECT_BASE_URL);\n}\n\n/**\n * Partitions the `wallets` array so that Aptos Connect wallets are grouped separately from the rest.\n * Aptos Connect is a web wallet that uses social login to create accounts on the blockchain.\n */\nexport function getAptosConnectWallets(\n wallets: ReadonlyArray\n) {\n const { defaultWallets, moreWallets } = partitionWallets(\n wallets,\n isAptosConnectWallet\n );\n return { aptosConnectWallets: defaultWallets, otherWallets: moreWallets };\n}\n\nexport interface WalletSortingOptions {\n /** An optional function for sorting Aptos Connect wallets. */\n sortAptosConnectWallets?: (a: AdapterWallet, b: AdapterWallet) => number;\n /** An optional function for sorting wallets that are currently installed or loadable. */\n sortAvailableWallets?: (a: AdapterWallet, b: AdapterWallet) => number;\n /** An optional function for sorting wallets that are NOT currently installed or loadable. */\n sortInstallableWallets?: (\n a: AdapterNotDetectedWallet,\n b: AdapterNotDetectedWallet\n ) => number;\n}\n\n/**\n * Partitions the `wallets` array into three distinct groups:\n *\n * `aptosConnectWallets` - Wallets that use social login to create accounts on\n * the blockchain via Aptos Connect.\n *\n * `availableWallets` - Wallets that are currently installed or loadable by the client.\n *\n * `installableWallets` - Wallets that are NOT current installed or loadable and\n * require the client to install a browser extension first.\n *\n * Additionally, these wallet groups can be sorted by passing sort functions via the `options` argument.\n */\nexport function groupAndSortWallets(\n wallets: ReadonlyArray,\n options?: WalletSortingOptions\n) {\n const { aptosConnectWallets, otherWallets } = getAptosConnectWallets(wallets);\n const { defaultWallets, moreWallets } = partitionWallets(otherWallets);\n\n if (options?.sortAptosConnectWallets) {\n aptosConnectWallets.sort(options.sortAptosConnectWallets);\n }\n if (options?.sortAvailableWallets) {\n defaultWallets.sort(options.sortAvailableWallets);\n }\n if (options?.sortInstallableWallets) {\n moreWallets.sort(options.sortInstallableWallets);\n }\n\n return {\n /** Wallets that use social login to create an account on the blockchain */\n aptosConnectWallets,\n /** Wallets that are currently installed or loadable. */\n availableWallets: defaultWallets,\n /** Wallets that are NOT currently installed or loadable. */\n installableWallets: moreWallets,\n };\n}\n","import { WalletName } from \"../LegacyWalletPlugins/types\";\nimport { AdapterNotDetectedWallet } from \"../WalletCoreNew\";\nimport { WalletReadyState } from \"../constants\";\n\n/**\n * Registry of AIP-62 wallet standard supported wallets.\n * This list is used to show supported wallets even if they are not installed on the user machine.\n *\n * AIP-62 compatible wallets are required to add their wallet info here if they want to be detected by the adapter\n *\n * name - The name of your wallet cast to WalletName (Ex. \"Petra\" as WalletName<\"Petra\">)\n * url - TThe link to your chrome extension or main website where new users can create an account with your wallet.\n * icon - An icon for your wallet. Can be one of 4 data types. Be sure to follow the below format exactly (including the literal \",\" after base64).\n * Format: `data:image/${\"svg+xml\" | \"webp\" | \"png\" | \"gif\"};base64,${string}`\n * Note: ${...} data in the above format should be replaced. Other characters are literals (ex. \";\")\n */\nexport const aptosStandardSupportedWalletList: Array =\n [\n {\n name: \"Nightly\" as WalletName<\"Nightly\">,\n url: \"https://chromewebstore.google.com/detail/nightly/fiikommddbeccaoicoejoniammnalkfa?hl=en\",\n icon: \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iV2Fyc3R3YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDg1MS41IDg1MS41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA4NTEuNSA4NTEuNTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzYwNjdGOTt9DQoJLnN0MXtmaWxsOiNGN0Y3Rjc7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnIGlkPSJXYXJzdHdhXzJfMDAwMDAwMTQ2MDk2NTQyNTMxODA5NDY0NjAwMDAwMDg2NDc4NTIwMDIxMTY5MTg2ODhfIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyNCwwaDYwMy42YzY4LjUsMCwxMjQsNTUuNSwxMjQsMTI0djYwMy42YzAsNjguNS01NS41LDEyNC0xMjQsMTI0SDEyNGMtNjguNSwwLTEyNC01NS41LTEyNC0xMjRWMTI0DQoJCQlDMCw1NS41LDU1LjUsMCwxMjQsMHoiLz4NCgk8L2c+DQoJPGcgaWQ9IldhcnN0d2FfMyI+DQoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MjMuNSwxNzAuM2MtMzcuNCw1Mi4yLTg0LjIsODguNC0xMzkuNSwxMTIuNmMtMTkuMi01LjMtMzguOS04LTU4LjMtNy44Yy0xOS40LTAuMi0zOS4xLDIuNi01OC4zLDcuOA0KCQkJYy01NS4zLTI0LjMtMTAyLjEtNjAuMy0xMzkuNS0xMTIuNmMtMTEuMywyOC40LTU0LjgsMTI2LjQtMi42LDI2My40YzAsMC0xNi43LDcxLjUsMTQsMTMyLjljMCwwLDQ0LjQtMjAuMSw3OS43LDguMg0KCQkJYzM2LjksMjkuOSwyNS4xLDU4LjcsNTEuMSw4My41YzIyLjQsMjIuOSw1NS43LDIyLjksNTUuNywyMi45czMzLjMsMCw1NS43LTIyLjhjMjYtMjQuNywxNC4zLTUzLjUsNTEuMS04My41DQoJCQljMzUuMi0yOC4zLDc5LjctOC4yLDc5LjctOC4yYzMwLjYtNjEuNCwxNC0xMzIuOSwxNC0xMzIuOUM2NzguMywyOTYuNyw2MzQuOSwxOTguNyw2MjMuNSwxNzAuM3ogTTI1My4xLDQxNC44DQoJCQljLTI4LjQtNTguMy0zNi4yLTEzOC4zLTE4LjMtMjAxLjVjMjMuNyw2MCw1NS45LDg2LjksOTQuMiwxMTUuM0MzMTIuOCwzNjIuMywyODIuMywzOTQuMSwyNTMuMSw0MTQuOHogTTMzNC44LDUxNy41DQoJCQljLTIyLjQtOS45LTI3LjEtMjkuNC0yNy4xLTI5LjRjMzAuNS0xOS4yLDc1LjQtNC41LDc2LjgsNDAuOUMzNjAuOSw1MTQuNywzNTMsNTI1LjQsMzM0LjgsNTE3LjV6IE00MjUuNyw2NzguNw0KCQkJYy0xNiwwLTI5LTExLjUtMjktMjUuNnMxMy0yNS42LDI5LTI1LjZzMjksMTEuNSwyOSwyNS42QzQ1NC43LDY2Ny4zLDQ0MS43LDY3OC43LDQyNS43LDY3OC43eiBNNTE2LjcsNTE3LjUNCgkJCWMtMTguMiw4LTI2LTIuOC00OS43LDExLjVjMS41LTQ1LjQsNDYuMi02MC4xLDc2LjgtNDAuOUM1NDMuOCw0ODgsNTM5LDUwNy42LDUxNi43LDUxNy41eiBNNTk4LjMsNDE0LjgNCgkJCWMtMjkuMS0yMC43LTU5LjctNTIuNC03Ni04Ni4yYzM4LjMtMjguNCw3MC42LTU1LjQsOTQuMi0xMTUuM0M2MzQuNiwyNzYuNSw2MjYuOCwzNTYuNiw1OTguMyw0MTQuOHoiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\",\n readyState: WalletReadyState.NotDetected,\n },\n {\n name: \"Petra\" as WalletName<\"Petra\">,\n url: \"https://chromewebstore.google.com/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci?hl=en\",\n icon: \"data:image/png;base64,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\",\n readyState: WalletReadyState.NotDetected,\n },\n {\n name: \"Pontem Wallet\" as WalletName<\"Pontem Wallet\">,\n url: \"https://pontem.network/pontem-wallet\",\n icon: \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDBDOC4wNzMwNCAwIDAgOC4wNzEzOSAwIDE3Ljk5NjNDMCAyNS4xMjk4IDQuMTczMTYgMzEuMzEwOCAxMC4yMDc2IDM0LjIyMDNWMzQuMjM1MUgxMC4yMzcyQzEyLjU4NiAzNS4zNjQ5IDE1LjIyMjggMzYgMTggMzZDMjcuOTI3IDM2IDM2IDI3LjkyODYgMzYgMTguMDAzN0MzNiA4LjA3MTM4IDI3LjkyNyAwIDE4IDBaTTE4IDEuNDc2OTJDMjcuMTA3MSAxLjQ3NjkyIDM0LjUyMjggOC44OTEwOCAzNC41MjI4IDE3Ljk5NjNDMzQuNTIyOCAyMC42MTA1IDMzLjkwOTcgMjMuMDkxNyAzMi44MjQgMjUuMjkyM0MzMC40NDU2IDI0LjE0MDMgMjguMDMwNCAyMy4yODM3IDI1LjU5MjkgMjIuNzAwM1Y4LjkyMDYyQzI1LjU5MjkgOC40NDA2MiAyNS4yMTYyIDguMDU2NjIgMjQuNzQzNSA4LjA1NjYySDIxLjcxNTJIMTQuMDg1NEgxMS4wNTdDMTAuNTkxNyA4LjA1NjYyIDEwLjIwNzYgOC40NDA2MiAxMC4yMDc2IDguOTIwNjJWMjIuNzY2OEM3Ljg0NDA3IDIzLjM1MDIgNS40OTUyOCAyNC4xOTIgMy4xODM0MiAyNS4yOTk3QzIuMDkwMjcgMjMuMDkxNyAxLjQ3NzIzIDIwLjYxNzggMS40NzcyMyAxNy45OTYzQzEuNDc3MjMgOC44OTEwOCA4Ljg5MjkgMS40NzY5MiAxOCAxLjQ3NjkyWk00LjEzNjIzIDI2Ljk2MTJDNi4wOTM1NiAyNS45OTM4IDguMTI0NzQgMjUuMjQ4IDEwLjIxNSAyNC43MzExVjMyLjU1ODhDNy43NDA2NiAzMS4yMzY5IDUuNjUwMzkgMjkuMzAyMiA0LjEzNjIzIDI2Ljk2MTJaTTE0LjA4NTQgMzQuMDQzMVYxNS42MDM3QzE0LjA4NTQgMTMuNDY5NSAxNS44MzU5IDExLjcwNDYgMTcuOTI2MSAxMS43MDQ2QzIwLjAxNjQgMTEuNzA0NiAyMS43MTUyIDEzLjQzMjYgMjEuNzE1MiAxNS41NTk0QzIxLjcxNTIgMTUuNTc0MiAyMS43MDc4IDE1LjU4ODkgMjEuNzA3OCAxNS42MDM3SDIxLjcxNTJWMjIuMDIwOUMxOS45MzUyIDIxLjgxNDIgMTguMTQ3NyAyMS43NDc3IDE2LjM2MDMgMjEuODQzN0wxNC44OTA0IDIzLjk3NzhDMTcuMTgwMSAyMy43ODU4IDE5LjQxMDcgMjMuODAwNiAyMS42MTE4IDI0LjA1MTdDMjEuNjM0IDI0LjA1MTcgMjEuNjQ4NyAyNC4wNTE3IDIxLjY3MDkgMjQuMDU5MUMyMS42ODU3IDI0LjA1OTEgMjEuNzAwNSAyNC4wNTkxIDIxLjcyMjYgMjQuMDY2NUMyMi4xMDY3IDI0LjExMDggMjMuNTAyNyAyNC4yODggMjQuNzgwNSAyNC42MDU1TDIxLjcyMjYgMjUuNjQ2OFYzNC4xMDIyQzIwLjUyNjEgMzQuMzc1NCAxOS4yODUyIDM0LjUzMDUgMTguMDE0OCAzNC41MzA1QzE2LjY0ODMgMzQuNTE1NyAxNS4zNDEgMzQuMzQ1OCAxNC4wODU0IDM0LjA0MzFaTTI1LjU4NTYgMzIuNjYyMlYyNC43NjhDMjcuNjY4NCAyNS4yOTIzIDI5LjcyOTIgMjYuMDYwMyAzMS43OTczIDI3LjA2NDZDMzAuMjQ2MiAyOS40MjAzIDI4LjEwNDIgMzEuMzU1MSAyNS41ODU2IDMyLjY2MjJaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjIyXzE2NzApIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIyXzE2NzAiIHgxPSIxNy45OTk3IiB5MT0iMzYuNzc4OSIgeDI9IjE3Ljk5OTciIHkyPSItNS41MTk3OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDg1OCIgc3RvcC1jb2xvcj0iIzhEMjlDMSIvPgo8c3RvcCBvZmZzZXQ9IjAuMjM4MyIgc3RvcC1jb2xvcj0iIzk0MkJCQiIvPgo8c3RvcCBvZmZzZXQ9IjAuNDY2NyIgc3RvcC1jb2xvcj0iI0E5MkZBQyIvPgo8c3RvcCBvZmZzZXQ9IjAuNzQxMyIgc3RvcC1jb2xvcj0iI0NBMzc5MyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGMDNGNzciLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K\",\n readyState: WalletReadyState.NotDetected,\n },\n ];\n","import { HexString, TxnBuilderTypes, Types } from \"aptos\";\nimport EventEmitter from \"eventemitter3\";\nimport { Buffer } from \"buffer\";\nimport {\n InputEntryFunctionDataWithRemoteABI,\n InputGenerateTransactionPayloadData,\n generateTransactionPayload,\n} from \"@aptos-labs/ts-sdk\";\nimport nacl from \"tweetnacl\";\nimport {\n WalletNotSupportedMethod,\n WalletSignAndSubmitMessageError,\n WalletSignMessageAndVerifyError,\n WalletSignTransactionError,\n} from \"../error\";\nimport {\n Wallet,\n WalletCoreEvents,\n TransactionOptions,\n NetworkInfo,\n InputTransactionData,\n AccountInfo,\n SignMessagePayload,\n SignMessageResponse,\n} from \"./types\";\n\nimport {\n convertV2PayloadToV1JSONPayload,\n convertV2TransactionPayloadToV1BCSPayload,\n} from \"./conversion\";\nimport {\n areBCSArguments,\n generalizedErrorMessage,\n getAptosConfig,\n} from \"../utils\";\nimport { DappConfig } from \"../WalletCoreNew\";\n\nexport class WalletCoreV1 extends EventEmitter {\n async connect(wallet: Wallet) {\n const account = await wallet.connect();\n return account;\n }\n\n /**\n * Resolve the transaction type (BCS arguments or Simple arguments)\n *\n * @param payloadData\n * @param network\n * @param wallet\n * @param transactionInput\n *\n * @returns\n */\n async resolveSignAndSubmitTransaction(\n payloadData: InputGenerateTransactionPayloadData,\n network: NetworkInfo | null,\n wallet: Wallet,\n transactionInput: InputTransactionData,\n dappConfig?: DappConfig\n ) {\n // first check if each argument is a BCS serialized argument\n if (areBCSArguments(payloadData.functionArguments)) {\n const aptosConfig = getAptosConfig(network, dappConfig);\n const newPayload = await generateTransactionPayload({\n ...(payloadData as InputEntryFunctionDataWithRemoteABI),\n aptosConfig: aptosConfig,\n });\n const oldTransactionPayload =\n convertV2TransactionPayloadToV1BCSPayload(newPayload);\n // Call and return signAndSubmitBCSTransaction response\n return await this.signAndSubmitBCSTransaction(\n oldTransactionPayload,\n wallet!,\n {\n max_gas_amount: transactionInput.options?.maxGasAmount\n ? BigInt(transactionInput.options?.maxGasAmount)\n : undefined,\n gas_unit_price: transactionInput.options?.gasUnitPrice\n ? BigInt(transactionInput.options?.gasUnitPrice)\n : undefined,\n }\n );\n }\n\n // if it is not a bcs serialized arguments transaction, convert to the old\n // json format\n const oldTransactionPayload = convertV2PayloadToV1JSONPayload(payloadData);\n return await this.signAndSubmitTransaction(oldTransactionPayload, wallet!, {\n max_gas_amount: transactionInput.options?.maxGasAmount\n ? BigInt(transactionInput.options?.maxGasAmount)\n : undefined,\n gas_unit_price: transactionInput.options?.gasUnitPrice\n ? BigInt(transactionInput.options?.gasUnitPrice)\n : undefined,\n });\n }\n\n /**\n Sign and submit an entry (not bcs serialized) transaction type to chain.\n @param transaction a non-bcs serialized transaction\n @param options max_gas_amount and gas_unit_limit\n @return response from the wallet's signAndSubmitTransaction function\n @throws WalletSignAndSubmitMessageError\n */\n async signAndSubmitTransaction(\n transaction: Types.TransactionPayload,\n wallet: Wallet,\n options?: TransactionOptions\n ): Promise {\n try {\n const response = await (wallet as any).signAndSubmitTransaction(\n transaction,\n options\n );\n return response;\n } catch (error: any) {\n const errMsg =\n typeof error == \"object\" && \"message\" in error ? error.message : error;\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n Sign and submit a bsc serialized transaction type to chain.\n @param transaction a bcs serialized transaction\n @param options max_gas_amount and gas_unit_limit\n @return response from the wallet's signAndSubmitBCSTransaction function\n @throws WalletSignAndSubmitMessageError\n */\n async signAndSubmitBCSTransaction(\n transaction: TxnBuilderTypes.TransactionPayload,\n wallet: Wallet,\n options?: TransactionOptions\n ): Promise {\n if (!(\"signAndSubmitBCSTransaction\" in wallet)) {\n throw new WalletNotSupportedMethod(\n `Submit a BCS Transaction is not supported by ${wallet.name}`\n ).message;\n }\n try {\n const response = await (wallet as any).signAndSubmitBCSTransaction(\n transaction,\n options\n );\n return response;\n } catch (error: any) {\n const errMsg =\n typeof error == \"object\" && \"message\" in error ? error.message : error;\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n Sign transaction\n @param transaction\n @param options max_gas_amount and gas_unit_limit\n @return response from the wallet's signTransaction function\n @throws WalletSignTransactionError\n */\n async signTransaction(\n transaction: Types.TransactionPayload,\n wallet: Wallet,\n options?: TransactionOptions\n ): Promise {\n try {\n const response = await (wallet as any).signTransaction(\n transaction,\n options\n );\n return response;\n } catch (error: any) {\n const errMsg =\n typeof error == \"object\" && \"message\" in error ? error.message : error;\n throw new WalletSignTransactionError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message SignMessagePayload\n * @returns boolean\n */\n async signMessageAndVerify(\n message: SignMessagePayload,\n wallet: Wallet,\n account: AccountInfo\n ): Promise {\n try {\n const response = await wallet.signMessage(message);\n if (!response)\n throw new WalletSignMessageAndVerifyError(\"Failed to sign a message\")\n .message;\n console.log(\"signMessageAndVerify signMessage response\", response);\n\n // Verify that the bytes were signed using the private key that matches the known public key\n let verified = false;\n if (Array.isArray((response as SignMessageResponse).signature)) {\n // multi sig wallets\n const { fullMessage, signature, bitmap } =\n response as SignMessageResponse;\n if (bitmap) {\n const minKeysRequired = account.minKeysRequired as number;\n if ((signature as string[]).length < minKeysRequired) {\n verified = false;\n } else {\n // Getting an array which marks the keys signing the message with 1, while marking 0 for the keys not being used.\n const bits = Array.from(bitmap).flatMap((n) =>\n Array.from({ length: 8 }).map((_, i) => (n >> i) & 1)\n );\n // Filter out indexes of the keys we need\n const index = bits.map((_, i) => i).filter((i) => bits[i]);\n\n const publicKeys = account.publicKey as string[];\n const matchedPublicKeys = publicKeys.filter(\n (_: string, i: number) => index.includes(i)\n );\n\n verified = true;\n for (let i = 0; i < (signature as string[]).length; i++) {\n const isSigVerified = nacl.sign.detached.verify(\n Buffer.from(fullMessage),\n Buffer.from((signature as string[])[i], \"hex\"),\n Buffer.from(matchedPublicKeys[i], \"hex\")\n ); // `isSigVerified` should be `true` for every signature\n\n if (!isSigVerified) {\n verified = false;\n break;\n }\n }\n }\n } else {\n throw new WalletSignMessageAndVerifyError(\"Failed to get a bitmap\")\n .message;\n }\n } else {\n // single sig wallets\n // support for when address doesnt have hex prefix (0x)\n const currentAccountPublicKey = new HexString(\n account.publicKey as string\n );\n // support for when address doesnt have hex prefix (0x)\n const signature = new HexString(\n (response as SignMessageResponse).signature as string\n );\n verified = nacl.sign.detached.verify(\n Buffer.from((response as SignMessageResponse).fullMessage),\n Buffer.from(signature.noPrefix(), \"hex\"),\n Buffer.from(currentAccountPublicKey.noPrefix(), \"hex\")\n );\n }\n return verified;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n","import { Types } from \"aptos\";\nimport {\n Network,\n InputGenerateTransactionOptions,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAddressInput,\n InputGenerateTransactionPayloadData,\n AnyRawTransaction,\n Signature,\n AccountAuthenticator,\n} from \"@aptos-labs/ts-sdk\";\nimport { WalletReadyState } from \"../constants\";\nimport {\n AptosSignAndSubmitTransactionOutput,\n AptosSignMessageOutput,\n UserResponse,\n AccountInfo as StandardAccountInfo,\n NetworkInfo as StandardNetworkInfo,\n AptosChangeNetworkMethod,\n AptosSignAndSubmitTransactionInput,\n} from \"@aptos-labs/wallet-standard\";\nimport { AptosStandardSupportedWallet } from \"../AIP62StandardWallets/types\";\n\nexport { TxnBuilderTypes, Types } from \"aptos\";\nexport type {\n InputGenerateTransactionData,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Network,\n} from \"@aptos-labs/ts-sdk\";\n\nexport type {\n NetworkInfo as StandardNetworkInfo,\n AptosChangeNetworkOutput,\n} from \"@aptos-labs/wallet-standard\";\n\n// WalletName is a nominal type that wallet adapters should use, e.g. `'MyCryptoWallet' as WalletName<'MyCryptoWallet'>`\nexport type WalletName = T & {\n __brand__: \"WalletName\";\n};\n\nexport type NetworkInfo = {\n name: Network;\n chainId?: string;\n url?: string;\n};\n\nexport type WalletInfo = {\n name: WalletName;\n icon: string;\n url: string;\n};\n\nexport type AccountInfo = {\n address: string;\n publicKey: string | string[];\n minKeysRequired?: number;\n ansName?: string | null;\n};\n\nexport interface AptosWalletErrorResult {\n code: number;\n name: string;\n message: string;\n}\n\nexport declare interface WalletCoreEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n readyStateChange(wallet: Wallet): void;\n standardWalletsAdded(wallets: Wallet | AptosStandardSupportedWallet): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport interface SignMessagePayload {\n address?: boolean; // Should we include the address of the account in the message\n application?: boolean; // Should we include the domain of the dapp\n chainId?: boolean; // Should we include the current chain id the wallet is connected to\n message: string; // The message to be signed and displayed to the user\n nonce: string; // A nonce the dapp should generate\n}\n\nexport interface SignMessageResponse {\n address?: string;\n application?: string;\n chainId?: number;\n fullMessage: string; // The message that was generated to sign\n message: string; // The message passed in by the user\n nonce: string;\n prefix: \"APTOS\"; // Should always be APTOS\n signature: string | string[] | Signature; // The signed full message\n bitmap?: Uint8Array; // a 4-byte (32 bits) bit-vector of length N\n}\n\nexport type OnNetworkChange = (\n callBack: (networkInfo: NetworkInfo | StandardNetworkInfo) => Promise\n) => Promise;\n\nexport type OnAccountChange = (\n callBack: (accountInfo: AccountInfo | StandardAccountInfo) => Promise\n) => Promise;\n\nexport interface AdapterPluginEvents {\n onNetworkChange: OnNetworkChange;\n onAccountChange: OnAccountChange;\n}\n\n// TODO add signTransaction()\nexport interface AdapterPluginProps {\n name: WalletName;\n url: string;\n icon: `data:image/${\"svg+xml\" | \"webp\" | \"png\" | \"gif\"};base64,${string}`;\n providerName?: string;\n provider: any;\n // Compatible with legacy wallet plugin\n deeplinkProvider?: (data: { url: string }) => string;\n // Comaptible with AIP-62 standard wallet\n openInMobileApp?: () => void;\n connect(): Promise;\n disconnect: () => Promise;\n network: () => Promise;\n signAndSubmitTransaction?(\n transaction:\n | Types.TransactionPayload\n | InputTransactionData\n | AnyRawTransaction\n | AptosSignAndSubmitTransactionInput,\n options?: InputGenerateTransactionOptions\n ): Promise<\n | { hash: Types.HexEncodedBytes; output?: any }\n | PendingTransactionResponse\n | UserResponse\n >;\n submitTransaction?(\n transaction: InputSubmitTransactionData\n ): Promise;\n signMessage(\n message: T\n ): Promise>;\n signTransaction?( // `any` type for backwards compatibility, especially for identity connect\n transactionOrPayload: any,\n optionsOrAsFeePayer?: any\n ): Promise;\n account?: () => Promise;\n changeNetwork?: AptosChangeNetworkMethod;\n}\n\nexport type AdapterPlugin =\n AdapterPluginProps & AdapterPluginEvents;\n\nexport type Wallet = AdapterPlugin & {\n readyState?: WalletReadyState;\n isAIP62Standard?: boolean;\n isSignTransactionV1_1?: boolean;\n};\n\nexport interface TransactionOptions {\n max_gas_amount?: bigint;\n gas_unit_price?: bigint;\n}\n\nexport type InputTransactionData = {\n sender?: AccountAddressInput;\n data: InputGenerateTransactionPayloadData;\n options?: InputGenerateTransactionOptions;\n};\n\n// To be used by a wallet plugin\nexport interface PluginProvider {\n connect: () => Promise;\n account: () => Promise;\n disconnect: () => Promise;\n signAndSubmitTransaction: (\n transaction: any,\n options?: any\n ) => Promise<{ hash: Types.HexEncodedBytes } | AptosWalletErrorResult>;\n signMessage: (message: SignMessagePayload) => Promise;\n network: () => Promise;\n onAccountChange: (\n listener: (newAddress: AccountInfo) => Promise\n ) => Promise;\n onNetworkChange: OnNetworkChange;\n}\n","import {\n UserResponse,\n AptosSignTransactionInputV1_1,\n AptosSignTransactionOutput,\n AptosSignMessageOutput,\n AptosSignMessageInput,\n AptosWallet,\n UserResponseStatus,\n AptosSignAndSubmitTransactionOutput,\n AccountInfo as StandardAccountInfo,\n AptosConnectOutput,\n AptosSignTransactionOutputV1_1,\n} from \"@aptos-labs/wallet-standard\";\nimport {\n AnyPublicKey,\n AnyPublicKeyVariant,\n AnyRawTransaction,\n PendingTransactionResponse,\n Aptos,\n MultiEd25519Signature,\n MultiEd25519PublicKey,\n} from \"@aptos-labs/ts-sdk\";\n\nimport { WalletReadyState } from \"../constants\";\nimport {\n WalletConnectionError,\n WalletSignAndSubmitMessageError,\n WalletSignMessageAndVerifyError,\n WalletSignMessageError,\n} from \"../error\";\nimport {\n AccountInfo,\n InputTransactionData,\n Wallet,\n} from \"../LegacyWalletPlugins\";\nimport { generalizedErrorMessage } from \"../utils\";\n\nexport type AptosStandardWallet = AptosWallet & {\n readyState?: WalletReadyState;\n};\n\nexport class WalletStandardCore {\n async connect(wallet: Wallet) {\n const response =\n (await wallet.connect()) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response.args;\n }\n\n /**\n * Signs and submits a transaction to chain\n *\n * @param transactionInput InputTransactionData\n * @returns PendingTransactionResponse\n */\n async signAndSubmitTransaction(\n transactionInput: InputTransactionData,\n aptos: Aptos,\n account: AccountInfo,\n wallet: Wallet,\n standardWallets: ReadonlyArray\n ): Promise {\n try {\n // need to find the standard wallet type to do the\n // next features check\n const standardWallet = standardWallets.find(\n (standardWallet: AptosStandardWallet) =>\n wallet.name === standardWallet.name\n );\n\n // check for backward compatibility. before version 1.1.0 the standard expected\n // AnyRawTransaction input so the adapter built the transaction before sending it to the wallet\n if (\n standardWallet?.features[\"aptos:signAndSubmitTransaction\"]?.version !==\n \"1.1.0\"\n ) {\n const transaction = await aptos.transaction.build.simple({\n sender: account.address.toString(),\n data: transactionInput.data,\n options: transactionInput.options,\n });\n const response = (await wallet.signAndSubmitTransaction!(\n transaction\n )) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n }\n\n // build standard json format\n const transaction = {\n gasUnitPrice: transactionInput.options?.gasUnitPrice,\n maxGasAmount: transactionInput.options?.maxGasAmount,\n payload: transactionInput.data,\n };\n const response = (await wallet.signAndSubmitTransaction!(\n transaction\n )) as UserResponse;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignAndSubmitMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a transaction\n *\n * To support both existing wallet adapter V1 and V2, we support 2 input types\n *\n * @param transactionOrPayload AnyRawTransaction\n * @param options asFeePayer. To sign a transaction as the fee payer sponsor\n *\n * @returns AptosSignTransactionOutput\n */\n async signTransaction(\n transaction: AnyRawTransaction,\n wallet: Wallet,\n asFeePayer?: boolean\n ): Promise\n async signTransaction(\n input: AptosSignTransactionInputV1_1,\n wallet: Wallet,\n ): Promise\n async signTransaction(\n transactionOrInput: AnyRawTransaction | AptosSignTransactionInputV1_1,\n wallet: Wallet,\n asFeePayer?: boolean\n ): Promise {\n const response = (await wallet.signTransaction!(\n transactionOrInput,\n asFeePayer\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\").message;\n }\n return response.args;\n }\n\n /**\n * Sign message\n *\n * @param message AptosSignMessageInput\n * @return AptosSignMessageOutput\n * @throws WalletSignMessageError\n */\n async signMessage(\n message: AptosSignMessageInput,\n wallet: Wallet\n ): Promise {\n try {\n const response = (await wallet.signMessage(\n message\n )) as UserResponse;\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"User has rejected the request\")\n .message;\n }\n return response.args;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageError(errMsg).message;\n }\n }\n\n /**\n * Signs a message and verifies the signer\n * @param message AptosSignMessageInput\n * @returns boolean\n */\n async signMessageAndVerify(\n message: AptosSignMessageInput,\n wallet: Wallet\n ): Promise {\n try {\n // sign the message\n const response = (await wallet.signMessage(\n message\n )) as UserResponse;\n // standard wallet account() method is a required method\n const account = (await wallet.account!()) as StandardAccountInfo;\n\n if (response.status === UserResponseStatus.REJECTED) {\n throw new WalletConnectionError(\"Failed to sign a message\").message;\n }\n\n // For Keyless wallet accounts we skip verification for now.\n // TODO: Remove when client-side verification is done in SDK.\n if (\n account.publicKey instanceof AnyPublicKey &&\n account.publicKey.variant === AnyPublicKeyVariant.Keyless\n ) {\n return true;\n }\n\n let verified = false;\n // if is a multi sig wallet with a MultiEd25519Signature type\n if (response.args.signature instanceof MultiEd25519Signature) {\n if (!(account.publicKey instanceof MultiEd25519PublicKey)) {\n throw new WalletSignMessageAndVerifyError(\n \"Public key and Signature type mismatch\"\n ).message;\n }\n const { fullMessage, signature } = response.args;\n const bitmap = signature.bitmap;\n if (bitmap) {\n const minKeysRequired = account.publicKey.threshold;\n if (signature.signatures.length < minKeysRequired) {\n verified = false;\n } else {\n verified = account.publicKey.verifySignature({\n message: new TextEncoder().encode(fullMessage),\n signature,\n });\n }\n }\n } else {\n verified = account.publicKey.verifySignature({\n message: new TextEncoder().encode(response.args.fullMessage),\n signature: response.args.signature,\n });\n }\n return verified;\n } catch (error: any) {\n const errMsg = generalizedErrorMessage(error);\n throw new WalletSignMessageAndVerifyError(errMsg).message;\n }\n }\n}\n","import { WALLET_ADAPTER_CORE_VERSION } from \"./version\";\n\nexport {\n type AdapterWallet,\n type NetworkInfo,\n type AccountInfo,\n WalletCoreNew,\n type DappConfig,\n type AdapterNotDetectedWallet,\n} from \"./WalletCoreNew\";\nexport * from \"./LegacyWalletPlugins\";\nexport * from \"./constants\";\nexport * from \"./utils\";\nexport * from \"./AIP62StandardWallets\";\nexport {\n type AptosSignAndSubmitTransactionOutput,\n type AptosSignTransactionOutputV1_1,\n type AptosSignMessageOutput,\n type AptosSignMessageInput,\n} from \"@aptos-labs/wallet-standard\";\n\n// inject adapter core version to the window\nif (typeof window !== \"undefined\") {\n (window as any).WALLET_ADAPTER_CORE_VERSION = WALLET_ADAPTER_CORE_VERSION;\n}\n"],"mappings":"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","names":["WalletReadyState","NetworkName","AptosConfig","Network","Network","AptosConfig","Network","isMobile","Aptos","generateTransactionPayload","Network","aptosWallets","Aptos","aptosConfig","aptos","transaction","response","generateTransactionPayload","Network","EventEmitter","generateTransactionPayload","EventEmitter","generateTransactionPayload","oldTransactionPayload","TxnBuilderTypes","Types","UserResponseStatus","AnyPublicKey","AnyPublicKeyVariant","MultiEd25519Signature","MultiEd25519PublicKey","UserResponseStatus","standardWallet","transaction","response","AnyPublicKey","AnyPublicKeyVariant","MultiEd25519Signature","MultiEd25519PublicKey"]} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts b/packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts deleted file mode 100644 index 0a6d361a..00000000 --- a/packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { AptosStandardWallet } from "../AIP62StandardWallets"; -import { WalletInfo } from "../LegacyWalletPlugins"; -import { AnyAptosWallet } from "../WalletCore"; -/** The base URL for all Aptos Connect wallets. */ -export declare const APTOS_CONNECT_BASE_URL = "https://aptosconnect.app"; -/** The URL to the Aptos Connect account page if the user is signed in to Aptos Connect. */ -export declare const APTOS_CONNECT_ACCOUNT_URL = "https://aptosconnect.app/dashboard/main-account"; -/** Returns `true` if the provided wallet is an Aptos Connect wallet. */ -export declare function isAptosConnectWallet(wallet: WalletInfo | AnyAptosWallet | AptosStandardWallet): boolean; -/** - * Partitions the `wallets` array so that Aptos Connect wallets are grouped separately from the rest. - * Aptos Connect is a web wallet that uses social login to create accounts on the blockchain. - */ -export declare function getAptosConnectWallets(wallets: ReadonlyArray): { - aptosConnectWallets: AnyAptosWallet[]; - otherWallets: AnyAptosWallet[]; -}; -//# sourceMappingURL=aptosConnect.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts.map b/packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts.map deleted file mode 100644 index 250d47e6..00000000 --- a/packages/wallet-adapter-core-new/dist/utils/aptosConnect.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"aptosConnect.d.ts","sourceRoot":"","sources":["../../src/utils/aptosConnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAEjE,2FAA2F;AAC3F,eAAO,MAAM,yBAAyB,oDACa,CAAC;AAEpD,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,mBAAmB,WAG1D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC;;;EAM5E"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/helpers.d.ts b/packages/wallet-adapter-core-new/dist/utils/helpers.d.ts deleted file mode 100644 index fe76033b..00000000 --- a/packages/wallet-adapter-core-new/dist/utils/helpers.d.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { AptosConfig, EntryFunctionArgumentTypes, Network, SimpleEntryFunctionArgumentTypes } from "@aptos-labs/ts-sdk"; -import { NetworkInfo as StandardNetworkInfo } from "@aptos-labs/wallet-standard"; -import { InputTransactionData, NetworkInfo } from "../LegacyWalletPlugins/types"; -import { DappConfig } from "../WalletCoreNew"; -export declare function isMobile(): boolean; -export declare function isInAppBrowser(): boolean; -export declare function isRedirectable(): boolean; -export declare function generalizedErrorMessage(error: any): string; -export declare const areBCSArguments: (args: Array) => boolean; -/** - * Helper function to get AptosConfig that supports Aptos and Custom networks - * - * @param networkInfo - * @param dappConfig - * @returns AptosConfig - */ -export declare const getAptosConfig: (networkInfo: NetworkInfo | StandardNetworkInfo | null, dappConfig: DappConfig | undefined) => AptosConfig; -/** - * Helper function to resolve if the current connected network is an Aptos network - * - * @param networkInfo - * @returns boolean - */ -export declare const isAptosNetwork: (networkInfo: NetworkInfo | StandardNetworkInfo | null) => boolean; -export declare const isAptosLiveNetwork: (networkInfo: Network) => boolean; -/** - * Helper function to fetch Devnet chain id - */ -export declare const fetchDevnetChainId: () => Promise; -/** - * A helper function to handle the publish package transaction. - * The Aptos SDK expects the metadataBytes and byteCode to be Uint8Array, but in case the arguments are passed in - * as a string, this function converts the string to Uint8Array. - */ -export declare const handlePublishPackageTransaction: (transactionInput: InputTransactionData) => { - metadataBytes: number | bigint | boolean | Uint8Array | import("@aptos-labs/ts-sdk/dist/common/accountAddress-BHsGaOsa").g | import("@aptos-labs/ts-sdk").Bool | import("@aptos-labs/ts-sdk").U8 | import("@aptos-labs/ts-sdk").U16 | import("@aptos-labs/ts-sdk").U32 | import("@aptos-labs/ts-sdk").U64 | import("@aptos-labs/ts-sdk").U128 | import("@aptos-labs/ts-sdk").U256 | import("@aptos-labs/ts-sdk").MoveVector | import("@aptos-labs/ts-sdk").MoveOption | import("@aptos-labs/ts-sdk").MoveString | import("@aptos-labs/ts-sdk").FixedBytes | ArrayBuffer | (EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes)[] | import("@aptos-labs/ts-sdk").MoveVector | import("@aptos-labs/ts-sdk").Serialized | null | undefined; - byteCode: (EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes)[]; -}; -//# sourceMappingURL=helpers.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/helpers.d.ts.map b/packages/wallet-adapter-core-new/dist/utils/helpers.d.ts.map deleted file mode 100644 index f1c0419b..00000000 --- a/packages/wallet-adapter-core-new/dist/utils/helpers.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,0BAA0B,EAE1B,OAAO,EAGP,gCAAgC,EACjC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEjF,OAAO,EACL,oBAAoB,EACpB,WAAW,EACZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,wBAAgB,QAAQ,IAAI,OAAO,CAIlC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAUxC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAOxC;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAI1D;AAMD,eAAO,MAAM,eAAe,SACpB,MAAM,0BAA0B,GAAG,gCAAgC,CAAC,KACzE,OAQF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,gBACZ,WAAW,GAAG,mBAAmB,GAAG,IAAI,cACzC,UAAU,GAAG,SAAS,KACjC,WAuBF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,gBACZ,WAAW,GAAG,mBAAmB,GAAG,IAAI,KACpD,OAKF,CAAC;AAEF,eAAO,MAAM,kBAAkB,gBAAiB,OAAO,KAAG,OAMzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAAa,QAAQ,MAAM,CAGzD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,qBACxB,oBAAoB;;;CAwBvC,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/index.d.ts b/packages/wallet-adapter-core-new/dist/utils/index.d.ts deleted file mode 100644 index ab0ff35a..00000000 --- a/packages/wallet-adapter-core-new/dist/utils/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./helpers"; -export * from "./localStorage"; -export * from "./walletSelector"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/index.d.ts.map b/packages/wallet-adapter-core-new/dist/utils/index.d.ts.map deleted file mode 100644 index 8902b9d4..00000000 --- a/packages/wallet-adapter-core-new/dist/utils/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts b/packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts deleted file mode 100644 index 8008c4a6..00000000 --- a/packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export declare function setLocalStorage(walletName: string): void; -export declare function removeLocalStorage(): void; -export declare function getLocalStorage(): void; -//# sourceMappingURL=localStorage.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts.map b/packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts.map deleted file mode 100644 index 9a7fb848..00000000 --- a/packages/wallet-adapter-core-new/dist/utils/localStorage.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"localStorage.d.ts","sourceRoot":"","sources":["../../src/utils/localStorage.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,QAEjD;AAED,wBAAgB,kBAAkB,SAEjC;AAED,wBAAgB,eAAe,SAE9B"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts b/packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts deleted file mode 100644 index 06755e1d..00000000 --- a/packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare function scopePollingDetectionStrategy(detect: () => boolean): void; -//# sourceMappingURL=scopePollingDetectionStrategy.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts.map b/packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts.map deleted file mode 100644 index bea9111e..00000000 --- a/packages/wallet-adapter-core-new/dist/utils/scopePollingDetectionStrategy.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"scopePollingDetectionStrategy.d.ts","sourceRoot":"","sources":["../../src/utils/scopePollingDetectionStrategy.ts"],"names":[],"mappings":"AAAA,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,OAAO,GAAG,IAAI,CA6CzE"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts b/packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts deleted file mode 100644 index a5684c55..00000000 --- a/packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { AptosStandardWallet } from "../AIP62StandardWallets"; -import { WalletInfo } from "../LegacyWalletPlugins"; -import { AdapterNotDetectedWallet, AdapterWallet } from "../WalletCoreNew"; -/** - * A function that will partition the provided wallets into two list — `defaultWallets` and `moreWallets`. - * By default, the wallets will be partitioned by whether or not they are installed or loadable. - * You can pass your own partition function if you wish to customize this behavior. - */ -export declare function partitionWallets(wallets: ReadonlyArray, partitionFunction?: (wallet: AdapterWallet | AdapterNotDetectedWallet) => boolean): { - defaultWallets: AdapterWallet[]; - moreWallets: AdapterNotDetectedWallet[]; -}; -/** Returns true if the wallet is installed. */ -export declare function isInstalled(wallet: AdapterWallet | AdapterNotDetectedWallet): boolean; -/** - * Returns true if the user is on desktop and the provided wallet requires installation of a browser extension. - * This can be used to decide whether to show a "Connect" button or "Install" link in the UI. - */ -export declare function isInstallRequired(wallet: AdapterWallet | AdapterNotDetectedWallet): boolean; -/** Truncates the provided wallet address at the middle with an ellipsis. */ -export declare function truncateAddress(address: string | undefined): string | undefined; -/** Returns `true` if the provided wallet is an Aptos Connect wallet. */ -export declare function isAptosConnectWallet(wallet: WalletInfo | AdapterWallet | AptosStandardWallet | AdapterNotDetectedWallet): boolean; -/** - * Partitions the `wallets` array so that Aptos Connect wallets are grouped separately from the rest. - * Aptos Connect is a web wallet that uses social login to create accounts on the blockchain. - */ -export declare function getAptosConnectWallets(wallets: ReadonlyArray): { - aptosConnectWallets: AdapterWallet[]; - otherWallets: AdapterNotDetectedWallet[]; -}; -export interface WalletSortingOptions { - /** An optional function for sorting Aptos Connect wallets. */ - sortAptosConnectWallets?: (a: AdapterWallet, b: AdapterWallet) => number; - /** An optional function for sorting wallets that are currently installed or loadable. */ - sortAvailableWallets?: (a: AdapterWallet, b: AdapterWallet) => number; - /** An optional function for sorting wallets that are NOT currently installed or loadable. */ - sortInstallableWallets?: (a: AdapterNotDetectedWallet, b: AdapterNotDetectedWallet) => number; -} -/** - * Partitions the `wallets` array into three distinct groups: - * - * `aptosConnectWallets` - Wallets that use social login to create accounts on - * the blockchain via Aptos Connect. - * - * `availableWallets` - Wallets that are currently installed or loadable by the client. - * - * `installableWallets` - Wallets that are NOT current installed or loadable and - * require the client to install a browser extension first. - * - * Additionally, these wallet groups can be sorted by passing sort functions via the `options` argument. - */ -export declare function groupAndSortWallets(wallets: ReadonlyArray, options?: WalletSortingOptions): { - /** Wallets that use social login to create an account on the blockchain */ - aptosConnectWallets: AdapterWallet[]; - /** Wallets that are currently installed or loadable. */ - availableWallets: AdapterWallet[]; - /** Wallets that are NOT currently installed or loadable. */ - installableWallets: AdapterNotDetectedWallet[]; -}; -//# sourceMappingURL=walletSelector.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts.map b/packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts.map deleted file mode 100644 index b95833c5..00000000 --- a/packages/wallet-adapter-core-new/dist/utils/walletSelector.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"walletSelector.d.ts","sourceRoot":"","sources":["../../src/utils/walletSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAI3E;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,CAAC,aAAa,GAAG,wBAAwB,CAAC,EAChE,iBAAiB,GAAE,CACjB,MAAM,EAAE,aAAa,GAAG,wBAAwB,KAC7C,OAAqB;;;EAW3B;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,wBAAwB,WAE3E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,GAAG,wBAAwB,WAMjD;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,sBAG1D;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,MAAM,EACF,UAAU,GACV,aAAa,GACb,mBAAmB,GACnB,wBAAwB,WAI7B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,CAAC,aAAa,GAAG,wBAAwB,CAAC;;;EAOjE;AAED,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,uBAAuB,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC;IACzE,yFAAyF;IACzF,oBAAoB,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC;IACtE,6FAA6F;IAC7F,sBAAsB,CAAC,EAAE,CACvB,CAAC,EAAE,wBAAwB,EAC3B,CAAC,EAAE,wBAAwB,KACxB,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,CAAC,aAAa,GAAG,wBAAwB,CAAC,EAChE,OAAO,CAAC,EAAE,oBAAoB;IAgB5B,2EAA2E;;IAE3E,wDAAwD;;IAExD,4DAA4D;;EAG/D"} \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/version.d.ts b/packages/wallet-adapter-core-new/dist/version.d.ts deleted file mode 100644 index e11977f4..00000000 --- a/packages/wallet-adapter-core-new/dist/version.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const WALLET_ADAPTER_CORE_VERSION = "4.23.0"; -//# sourceMappingURL=version.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-core-new/dist/version.d.ts.map b/packages/wallet-adapter-core-new/dist/version.d.ts.map deleted file mode 100644 index a81762b3..00000000 --- a/packages/wallet-adapter-core-new/dist/version.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts b/packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts deleted file mode 100644 index 8e23f604..00000000 --- a/packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { AvailableWallets, DappConfig } from "@aptos-labs/wallet-adapter-core-new"; -import { ReactNode, FC } from "react"; -export interface AptosWalletProviderPropsNew { - children: ReactNode; - optInWallets?: ReadonlyArray; - autoConnect?: boolean; - dappConfig?: DappConfig; - disableTelemetry?: boolean; - onError?: (error: any) => void; -} -export declare const AptosWalletAdapterProviderNew: FC; -//# sourceMappingURL=WalletProviderNew.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts.map b/packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts.map deleted file mode 100644 index 358df793..00000000 --- a/packages/wallet-adapter-react-new/dist/WalletProviderNew.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WalletProviderNew.d.ts","sourceRoot":"","sources":["../src/WalletProviderNew.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,UAAU,EAcX,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,EAAE,EAAoC,MAAM,OAAO,CAAC;AAGxE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC;AAcD,eAAO,MAAM,6BAA6B,EAAE,EAAE,CAAC,2BAA2B,CAgRzE,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts b/packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts deleted file mode 100644 index 9fc79c77..00000000 --- a/packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { ForwardRefExoticComponent, ReactNode, RefAttributes, SVGProps } from "react"; -import { HeadlessComponentProps } from "./utils"; -export declare const EXPLORE_ECOSYSTEM_URL = "https://aptosfoundation.org/ecosystem/projects/all"; -declare const educationScreenIndicators: ForwardRefExoticComponent>[]; -export interface AboutAptosConnectEducationScreen { - /** A component that renders an SVG to illustrate the idea of the current screen. */ - Graphic: ForwardRefExoticComponent, "ref"> & RefAttributes>; - /** A headless component that renders the title of the current screen. */ - Title: ForwardRefExoticComponent>; - /** A headless component that renders the description text of the current screen. */ - Description: ForwardRefExoticComponent>; - /** The index of the current education screen. */ - screenIndex: number; - /** The total number of education screens. */ - totalScreens: number; - /** - * An array of headless components for indicating the current screen of the set. - * Each indicator will navigate the user to the screen it represents when clicked. - */ - screenIndicators: typeof educationScreenIndicators; - /** - * A function that navigates the user to the previous education screen. - * If the user is on the first education screen, they will be navigated to the - * initial wallet selection screen. - */ - back: () => void; - /** - * A function that navigates the user to the next education screen. - * If the user is on the last education screen, they will be navigated to the - * initial wallet selection screen. - */ - next: () => void; - /** A function that navigates the user to the initial wallet selection screen. */ - cancel: () => void; -} -export interface AboutAptosConnectProps { - /** - * A function for defining how each education screen should be rendered. - * Each screen is modeled as a uniform set of headless components and utilities - * that allow you to construct your UI and apply your own styles. - */ - renderEducationScreen: (screen: AboutAptosConnectEducationScreen) => ReactNode; - /** - * The initial wallet selection UI that will be replaced by the education - * screens when `AboutAptosConnect.Trigger` is clicked. - */ - children?: ReactNode; -} -/** - * A headless component for rendering education screens that explain the basics - * of Aptos Connect and web3 wallets. - */ -export declare const AboutAptosConnect: { - ({ renderEducationScreen, children }: AboutAptosConnectProps): import("react/jsx-runtime").JSX.Element; - displayName: string; -} & { - Trigger: ForwardRefExoticComponent>; -}; -export {}; -//# sourceMappingURL=AboutAptosConnect.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts.map b/packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts.map deleted file mode 100644 index 08aef105..00000000 --- a/packages/wallet-adapter-react-new/dist/components/AboutAptosConnect.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"AboutAptosConnect.d.ts","sourceRoot":"","sources":["../../src/components/AboutAptosConnect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,yBAAyB,EACzB,SAAS,EACT,aAAa,EACb,QAAQ,EAMT,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,sBAAsB,EAA2B,MAAM,SAAS,CAAC;AAE1E,eAAO,MAAM,qBAAqB,uDACoB,CAAC;AAgEvD,QAAA,MAAM,yBAAyB,wFAoB5B,CAAC;AAEJ,MAAM,WAAW,gCAAgC;IAC/C,oFAAoF;IACpF,OAAO,EAAE,yBAAyB,CAChC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CACpE,CAAC;IACF,yEAAyE;IACzE,KAAK,EAAE,yBAAyB,CAC9B,sBAAsB,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAC3D,CAAC;IACF,oFAAoF;IACpF,WAAW,EAAE,yBAAyB,CACpC,sBAAsB,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAC7D,CAAC;IACF,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,gBAAgB,EAAE,OAAO,yBAAyB,CAAC;IACnD;;;;OAIG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB;;;;OAIG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,iFAAiF;IACjF,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,qBAAqB,EAAE,CACrB,MAAM,EAAE,gCAAgC,KACrC,SAAS,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAmDD;;;GAGG;AACH,eAAO,MAAM,iBAAiB;0CArDqB,sBAAsB;;;;CAuDvE,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts b/packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts deleted file mode 100644 index 884b59e3..00000000 --- a/packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/// -import { HeadlessComponentProps } from "./utils"; -export declare const APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy"; -/** - * A headless component for rendering the Aptos Labs privacy policy disclaimer - * that should be placed under the Aptos Connect login options. - */ -export declare const AptosPrivacyPolicy: import("react").ForwardRefExoticComponent> & { - Disclaimer: import("react").ForwardRefExoticComponent>; - Link: import("react").ForwardRefExoticComponent>; - PoweredBy: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; -}; -//# sourceMappingURL=AptosPrivacyPolicy.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts.map b/packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts.map deleted file mode 100644 index 30f2e48f..00000000 --- a/packages/wallet-adapter-react-new/dist/components/AptosPrivacyPolicy.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"AptosPrivacyPolicy.d.ts","sourceRoot":"","sources":["../../src/components/AptosPrivacyPolicy.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,sBAAsB,EAA2B,MAAM,SAAS,CAAC;AAE1E,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AA+BxE;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;CAI7B,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts b/packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts deleted file mode 100644 index 7eb9ea14..00000000 --- a/packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -/// -import { AdapterNotDetectedWallet, AdapterWallet } from "@aptos-labs/wallet-adapter-core-new"; -import { HeadlessComponentProps } from "./utils"; -export interface WalletItemProps extends HeadlessComponentProps { - /** The wallet option to be displayed. */ - wallet: AdapterWallet | AdapterNotDetectedWallet; - /** A callback to be invoked when the wallet is connected. */ - onConnect?: () => void; -} -/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */ -export declare const WalletItem: import("react").ForwardRefExoticComponent> & { - Icon: import("react").ForwardRefExoticComponent>; - Name: import("react").ForwardRefExoticComponent>; - ConnectButton: import("react").ForwardRefExoticComponent>; - InstallLink: import("react").ForwardRefExoticComponent>; -}; -//# sourceMappingURL=WalletItem.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts.map b/packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts.map deleted file mode 100644 index bbefa5f3..00000000 --- a/packages/wallet-adapter-react-new/dist/components/WalletItem.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WalletItem.d.ts","sourceRoot":"","sources":["../../src/components/WalletItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,wBAAwB,EACxB,aAAa,EAId,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EAAE,sBAAsB,EAA2B,MAAM,SAAS,CAAC;AAE1E,MAAM,WAAW,eAAgB,SAAQ,sBAAsB;IAC7D,yCAAyC;IACzC,MAAM,EAAE,aAAa,GAAG,wBAAwB,CAAC;IACjD,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAwGD,kHAAkH;AAClH,eAAO,MAAM,UAAU;;;;;CAKrB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/utils.d.ts b/packages/wallet-adapter-react-new/dist/components/utils.d.ts deleted file mode 100644 index 0c217500..00000000 --- a/packages/wallet-adapter-react-new/dist/components/utils.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ReactNode } from "react"; -export interface HeadlessComponentProps { - /** A class name for styling the element. */ - className?: string; - /** - * Whether to render as the child element instead of the default element provided. - * All props will be merged into the child element. - */ - asChild?: boolean; - children?: ReactNode; -} -/** - * Gets an HTML element type from its tag name - * @example - * HTMLElementFromTag<"img"> // resolved type: HTMLImageElement - */ -type HTMLElementFromTag = JSX.IntrinsicElements[T] extends React.ClassAttributes ? Element : HTMLElement; -export declare function createHeadlessComponent(displayName: string, elementType: TElement, props?: JSX.IntrinsicElements[TElement] | ((displayName: string) => JSX.IntrinsicElements[TElement])): import("react").ForwardRefExoticComponent>>; -export {}; -//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/components/utils.d.ts.map b/packages/wallet-adapter-react-new/dist/components/utils.d.ts.map deleted file mode 100644 index a4de8b19..00000000 --- a/packages/wallet-adapter-react-new/dist/components/utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/components/utils.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA4C,MAAM,OAAO,CAAC;AAE5E,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,IAC3D,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,eAAe,CAAC,MAAM,OAAO,CAAC,GACjE,OAAO,GACP,WAAW,CAAC;AAElB,wBAAgB,uBAAuB,CACrC,QAAQ,SAAS,MAAM,GAAG,CAAC,iBAAiB,EAE5C,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,QAAQ,EACrB,KAAK,CAAC,EACF,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAC/B,CAAC,CAAC,WAAW,EAAE,MAAM,KAAK,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,mIAsC/D"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts b/packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts deleted file mode 100644 index 2089bf6e..00000000 --- a/packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { SVGProps } from "react"; -export declare const LinkGraphic: import("react").ForwardRefExoticComponent, "ref"> & import("react").RefAttributes>; -//# sourceMappingURL=LinkGraphic.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts.map b/packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts.map deleted file mode 100644 index c6a757a3..00000000 --- a/packages/wallet-adapter-react-new/dist/graphics/LinkGraphic.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"LinkGraphic.d.ts","sourceRoot":"","sources":["../../src/graphics/LinkGraphic.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,OAAO,CAAC;AAE7C,eAAO,MAAM,WAAW,gIAsBvB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts b/packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts deleted file mode 100644 index e29766c8..00000000 --- a/packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { SVGProps } from "react"; -export declare const SmallAptosLogo: import("react").ForwardRefExoticComponent, "ref"> & import("react").RefAttributes>; -//# sourceMappingURL=SmallAptosLogo.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts.map b/packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts.map deleted file mode 100644 index 0515bc0d..00000000 --- a/packages/wallet-adapter-react-new/dist/graphics/SmallAptosLogo.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SmallAptosLogo.d.ts","sourceRoot":"","sources":["../../src/graphics/SmallAptosLogo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,OAAO,CAAC;AAE7C,eAAO,MAAM,cAAc,gIAqBzB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts b/packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts deleted file mode 100644 index 8611f5af..00000000 --- a/packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { SVGProps } from "react"; -export declare const WalletGraphic: import("react").ForwardRefExoticComponent, "ref"> & import("react").RefAttributes>; -//# sourceMappingURL=WalletGraphic.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts.map b/packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts.map deleted file mode 100644 index 6a7202f7..00000000 --- a/packages/wallet-adapter-react-new/dist/graphics/WalletGraphic.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WalletGraphic.d.ts","sourceRoot":"","sources":["../../src/graphics/WalletGraphic.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,OAAO,CAAC;AAE7C,eAAO,MAAM,aAAa,gIAsCzB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts b/packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts deleted file mode 100644 index 9c8b1c55..00000000 --- a/packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { SVGProps } from "react"; -export declare const Web3Graphic: import("react").ForwardRefExoticComponent, "ref"> & import("react").RefAttributes>; -//# sourceMappingURL=Web3Graphic.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts.map b/packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts.map deleted file mode 100644 index 5a82c28c..00000000 --- a/packages/wallet-adapter-react-new/dist/graphics/Web3Graphic.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Web3Graphic.d.ts","sourceRoot":"","sources":["../../src/graphics/Web3Graphic.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,OAAO,CAAC;AAE7C,eAAO,MAAM,WAAW,gIA2BvB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/index.d.ts b/packages/wallet-adapter-react-new/dist/index.d.ts deleted file mode 100644 index 180dbc63..00000000 --- a/packages/wallet-adapter-react-new/dist/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from "@aptos-labs/wallet-adapter-core-new"; -export * from "./WalletProviderNew"; -export * from "./components/AboutAptosConnect"; -export * from "./components/AptosPrivacyPolicy"; -export * from "./components/WalletItem"; -export * from "./useWalletNew"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/index.d.ts.map b/packages/wallet-adapter-react-new/dist/index.d.ts.map deleted file mode 100644 index c72747ae..00000000 --- a/packages/wallet-adapter-react-new/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/index.js b/packages/wallet-adapter-react-new/dist/index.js deleted file mode 100644 index b3251d84..00000000 --- a/packages/wallet-adapter-react-new/dist/index.js +++ /dev/null @@ -1,738 +0,0 @@ -"use strict"; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.tsx -var src_exports = {}; -__export(src_exports, { - APTOS_PRIVACY_POLICY_URL: () => APTOS_PRIVACY_POLICY_URL, - AboutAptosConnect: () => AboutAptosConnect, - AptosPrivacyPolicy: () => AptosPrivacyPolicy, - AptosWalletAdapterProviderNew: () => AptosWalletAdapterProviderNew, - EXPLORE_ECOSYSTEM_URL: () => EXPLORE_ECOSYSTEM_URL, - WalletContextNew: () => WalletContextNew, - WalletItem: () => WalletItem, - useWalletNew: () => useWalletNew -}); -module.exports = __toCommonJS(src_exports); -__reExport(src_exports, require("@aptos-labs/wallet-adapter-core-new"), module.exports); - -// src/WalletProviderNew.tsx -var import_wallet_adapter_core_new = require("@aptos-labs/wallet-adapter-core-new"); -var import_react3 = require("react"); - -// src/useWalletNew.tsx -var import_react = require("react"); -var import_react2 = require("react"); -var DEFAULT_CONTEXT = { - connected: false -}; -var WalletContextNew = (0, import_react2.createContext)( - DEFAULT_CONTEXT -); -function useWalletNew() { - const context = (0, import_react.useContext)(WalletContextNew); - if (!context) { - throw new Error("useWallet must be used within a WalletContextState"); - } - return context; -} - -// src/WalletProviderNew.tsx -var import_jsx_runtime = require("react/jsx-runtime"); -var initialState = { - connected: false, - account: null, - network: null, - wallet: null -}; -var AptosWalletAdapterProviderNew = ({ - children, - optInWallets, - autoConnect = false, - dappConfig, - disableTelemetry = false, - onError -}) => { - const [{ account, network, connected, wallet }, setState] = (0, import_react3.useState)(initialState); - const [isLoading, setIsLoading] = (0, import_react3.useState)(true); - const [walletCore, setWalletCore] = (0, import_react3.useState)(); - const [wallets, setWallets] = (0, import_react3.useState)([]); - const [notDetectedWallets, setNotDetectedWallets] = (0, import_react3.useState)([]); - (0, import_react3.useEffect)(() => { - const walletCore2 = new import_wallet_adapter_core_new.WalletCoreNew( - optInWallets, - dappConfig, - disableTelemetry - ); - setWalletCore(walletCore2); - }, []); - (0, import_react3.useEffect)(() => { - var _a, _b; - setWallets((_a = walletCore == null ? void 0 : walletCore.wallets) != null ? _a : []); - setNotDetectedWallets((_b = walletCore == null ? void 0 : walletCore.notDetectedWallets) != null ? _b : []); - }, [walletCore]); - (0, import_react3.useEffect)(() => { - if (autoConnect) { - if (localStorage.getItem("AptosWalletName") && !connected) { - connect(localStorage.getItem("AptosWalletName")); - } else { - setIsLoading(false); - } - } - }, [autoConnect, wallets]); - const connect = async (walletName) => { - try { - setIsLoading(true); - await (walletCore == null ? void 0 : walletCore.connect(walletName)); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } finally { - setIsLoading(false); - } - }; - const disconnect = async () => { - try { - await (walletCore == null ? void 0 : walletCore.disconnect()); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const signAndSubmitTransaction = async (transaction) => { - try { - if (!walletCore) { - throw new Error("WalletCore is not initialized"); - } - return await walletCore.signAndSubmitTransaction(transaction); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const signTransaction = async (transactionOrPayload, asFeePayer, options) => { - if (!walletCore) { - throw new Error("WalletCore is not initialized"); - } - try { - return await walletCore.signTransaction( - transactionOrPayload, - asFeePayer, - options - ); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const signMessage = async (message) => { - if (!walletCore) { - throw new Error("WalletCore is not initialized"); - } - try { - return await (walletCore == null ? void 0 : walletCore.signMessage(message)); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const signMessageAndVerify = async (message) => { - if (!walletCore) { - throw new Error("WalletCore is not initialized"); - } - try { - return await (walletCore == null ? void 0 : walletCore.signMessageAndVerify(message)); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const handleConnect = () => { - setState((state) => { - return { - ...state, - connected: true, - account: (walletCore == null ? void 0 : walletCore.account) || null, - network: (walletCore == null ? void 0 : walletCore.network) || null, - wallet: (walletCore == null ? void 0 : walletCore.wallet) || null - }; - }); - }; - const handleAccountChange = (0, import_react3.useCallback)(() => { - if (!connected) - return; - if (!(walletCore == null ? void 0 : walletCore.wallet)) - return; - setState((state) => { - return { - ...state, - account: (walletCore == null ? void 0 : walletCore.account) || null - }; - }); - }, [connected]); - const handleNetworkChange = (0, import_react3.useCallback)(() => { - if (!connected) - return; - if (!(walletCore == null ? void 0 : walletCore.wallet)) - return; - setState((state) => { - return { - ...state, - network: (walletCore == null ? void 0 : walletCore.network) || null - }; - }); - }, [connected]); - (0, import_react3.useEffect)(() => { - if (connected) { - walletCore == null ? void 0 : walletCore.onAccountChange(); - walletCore == null ? void 0 : walletCore.onNetworkChange(); - } - }, [connected]); - const handleDisconnect = () => { - if (!connected) - return; - setState((state) => { - return { - ...state, - connected: false, - account: (walletCore == null ? void 0 : walletCore.account) || null, - network: (walletCore == null ? void 0 : walletCore.network) || null, - wallet: null - }; - }); - }; - const handleStandardWalletsAdded = (standardWallet) => { - const existingWalletIndex = wallets.findIndex( - (wallet2) => wallet2.name == standardWallet.name - ); - if (existingWalletIndex !== -1) { - setWallets((wallets2) => [ - ...wallets2.slice(0, existingWalletIndex), - standardWallet, - ...wallets2.slice(existingWalletIndex + 1) - ]); - } else { - setWallets((wallets2) => [...wallets2, standardWallet]); - } - }; - const handleStandardNotDetectedWalletsAdded = (notDetectedWallet) => { - const existingWalletIndex = wallets.findIndex( - (wallet2) => wallet2.name == notDetectedWallet.name - ); - if (existingWalletIndex !== -1) { - setNotDetectedWallets((wallets2) => [ - ...wallets2.slice(0, existingWalletIndex), - notDetectedWallet, - ...wallets2.slice(existingWalletIndex + 1) - ]); - } else { - setNotDetectedWallets((wallets2) => [...wallets2, notDetectedWallet]); - } - }; - (0, import_react3.useEffect)(() => { - walletCore == null ? void 0 : walletCore.on("connect", handleConnect); - walletCore == null ? void 0 : walletCore.on("accountChange", handleAccountChange); - walletCore == null ? void 0 : walletCore.on("networkChange", handleNetworkChange); - walletCore == null ? void 0 : walletCore.on("disconnect", handleDisconnect); - walletCore == null ? void 0 : walletCore.on("standardWalletsAdded", handleStandardWalletsAdded); - walletCore == null ? void 0 : walletCore.on( - "standardNotDetectedWalletAdded", - handleStandardNotDetectedWalletsAdded - ); - return () => { - walletCore == null ? void 0 : walletCore.off("connect", handleConnect); - walletCore == null ? void 0 : walletCore.off("accountChange", handleAccountChange); - walletCore == null ? void 0 : walletCore.off("networkChange", handleNetworkChange); - walletCore == null ? void 0 : walletCore.off("disconnect", handleDisconnect); - walletCore == null ? void 0 : walletCore.off("standardWalletsAdded", handleStandardWalletsAdded); - walletCore == null ? void 0 : walletCore.off( - "standardNotDetectedWalletAdded", - handleStandardNotDetectedWalletsAdded - ); - }; - }, [wallets, account]); - return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WalletContextNew.Provider, { - value: { - connect, - disconnect, - signAndSubmitTransaction, - signTransaction, - signMessage, - signMessageAndVerify, - account, - network, - connected, - wallet, - wallets, - notDetectedWallets, - isLoading - }, - children - }); -}; - -// src/components/AboutAptosConnect.tsx -var import_react8 = require("react"); - -// src/graphics/LinkGraphic.tsx -var import_react4 = require("react"); -var import_jsx_runtime = require("react/jsx-runtime"); -var LinkGraphic = (0, import_react4.forwardRef)( - (props, ref) => { - return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { - ref, - width: "102", - height: "132", - viewBox: "0 0 102 132", - fill: "none", - ...props, - children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", { - stroke: "currentColor", - strokeMiterlimit: "10", - children: [ - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "M59.633 80.66c11.742-2.814 17.48-7.018 20.925-13.254l17.518-31.69c6.257-11.317 2.142-25.55-9.189-31.798C82.737.53 75.723.188 69.593 2.398M60.7 69.565a14.09 14.09 0 0 1-6.907-1.767l-.228-.108" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "m52.365 41.075 12.507-22.627a14.146 14.146 0 0 1 4.727-5.062M32.407 118.619a14.139 14.139 0 0 1-7.034-1.768c-6.857-3.78-9.353-12.402-5.561-19.25l16.634-30.1a14.097 14.097 0 0 1 4.518-4.923" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "M41.211 78.85c11.332 6.248 25.583 2.14 31.84-9.177l17.518-31.691c6.256-11.317 2.142-25.55-9.19-31.798-6.085-3.357-13.018-3.724-19.104-1.59A23.31 23.31 0 0 0 49.541 15.36L36.863 38.298l7.989 5.036 12.506-22.627c3.786-6.848 12.419-9.34 19.276-5.554 6.856 3.78 9.353 12.402 5.561 19.25l-16.634 30.1c-3.785 6.848-12.418 9.341-19.275 5.555l-5.075 8.791ZM29.5 130.447c12.361-1.37 19.2-6.994 22.966-13.804l12.678-22.936-8.305-5.239" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "m55.72 61.947-.442.764 5.511-9.55c-6.901-3.806-18.65-3.124-27.105.814M44.85 43.523l7.635-2.486m-4.221 23.264 7.217-1.723m-9.316 7.517 7.59-2.405m-.562-12.156 7.508-2.221m10.136-51.32L62.761 4.43M49.642 90.778l7.514-2.26m.474 7.448 7.514-2.26m-50.306-60.13c7.135 0 12.918-5.776 12.918-12.9 0-7.126-5.783-12.902-12.918-12.902-7.134 0-12.917 5.776-12.917 12.901s5.783 12.901 12.918 12.901Z" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "M15.724 7.774h3.197c7.135 0 12.918 5.776 12.918 12.901 0 7.126-5.783 12.901-12.918 12.901h-3.425m65.112 66.935h3.198c7.135 0 12.918 5.775 12.918 12.901 0 7.125-5.783 12.9-12.918 12.9h-3.425" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "M79.717 126.312c7.135 0 12.918-5.775 12.918-12.9s-5.783-12.901-12.918-12.901c-7.134 0-12.917 5.776-12.917 12.901s5.783 12.9 12.917 12.9ZM53.281 55.414c-11.33-6.248-25.582-2.14-31.839 9.177L3.924 96.281c-6.257 11.318-2.142 25.55 9.189 31.799 11.331 6.248 25.582 2.139 31.839-9.177l12.677-22.937-7.988-5.036-12.507 22.627c-3.785 6.848-12.418 9.341-19.275 5.554-6.857-3.781-9.353-12.402-5.561-19.25l16.633-30.1c3.786-6.848 12.419-9.341 19.276-5.555l5.074-8.792Z" - }) - ] - }) - }); - } -); -LinkGraphic.displayName = "LinkGraphic"; - -// src/graphics/WalletGraphic.tsx -var import_react5 = require("react"); -var import_jsx_runtime = require("react/jsx-runtime"); -var WalletGraphic = (0, import_react5.forwardRef)( - (props, ref) => { - return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", { - ref, - width: "128", - height: "102", - viewBox: "0 0 128 102", - fill: "none", - ...props, - children: [ - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - fill: "currentColor", - d: "m.96 25.93-.36-.35.36.85v-.5Zm7.79-7.81v-.5h-.21l-.15.15.36.35ZM1.3 26.28l7.79-7.8-.7-.71-7.8 7.8.7.71Zm7.44-7.66H10v-1H8.75v1Zm29.22 6.8h-37v1h37.01v-1Z" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - stroke: "currentColor", - strokeMiterlimit: "10", - d: "M82.25 26.08c0 12.25-9.92 22.2-22.14 22.2a22.17 22.17 0 0 1-22.14-22.2H1.1v74.82h118.02V26.08H82.25Zm44.33 67.02h.33V18.27h-5.7" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - stroke: "currentColor", - strokeMiterlimit: "10", - d: "M74.52 42.92a22.4 22.4 0 0 1-11.43 3.3 22.5 22.5 0 0 1-22.46-22.53H9.52M119.22 101l7.78-7.82m-7.88-67.1 7.79-7.81m-44.78 7.72 2.73-2.3m-46.89 2.39 2.39-2.4" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - stroke: "currentColor", - strokeMiterlimit: "10", - d: "M9.86 23.69V5.72h107.97v18.04H84.65" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - stroke: "currentColor", - strokeMiterlimit: "10", - d: "M117.83 20.46h3.39V1H13.25v4.72M9.36 23.69h31.78" - }) - ] - }); - } -); -WalletGraphic.displayName = "WalletGraphic"; - -// src/graphics/Web3Graphic.tsx -var import_react6 = require("react"); -var import_jsx_runtime = require("react/jsx-runtime"); -var Web3Graphic = (0, import_react6.forwardRef)( - (props, ref) => { - return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { - ref, - width: "142", - height: "108", - viewBox: "0 0 142 108", - fill: "none", - ...props, - children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", { - stroke: "currentColor", - strokeLinejoin: "round", - children: [ - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "m91.26 35.8.06-10.46L71.3 1v10.53L87 30.5m-36.11 5.24-.06-10.45L71.3 1v10.53L55 30.5" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "M71 59.55V49.17L50.83 25.3l.06 10.45L57 42.5m14 17.05V49.18l20.33-23.84-.07 10.45L86 42M1 59.68l.22-9.07 35.33-19.8-.1 9L9 55" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "M36.55 30.8s-.08 5.92-.1 9l.1-9ZM71 59.51v-9.07L36.55 30.8l-.1 9L63.5 55" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "M71 59.51v-9.07L36.44 70.78l-.1 9.14L55.5 68.5" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "M1.22 50.6a77387.2 77387.2 0 0 0 35.22 20.18l-.1 9.14L1 59.68l.23-9.07h-.01ZM141 59.68l-.23-9.07-35.33-19.8.11 9L133 55" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "m105.44 30.8.11 9-.1-9Z" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "M71 59.51v-9.07l34.44-19.64.11 9L78.5 55" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "M71 59.51v-9.07l34.56 20.34.1 9.14L87 69" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "M140.78 50.6a78487.3 78487.3 0 0 1-35.23 20.18l.11 9.14L141 59.68l-.23-9.07ZM50.83 80.15l.06-6.33 20.1-23.38H71v9.26L55 79" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "M71.3 97.6 50.89 73.81l-.06 9.33L71.3 107v-9.4Zm20.03-14.5-.07-9.33L71 50.44v9.26l16 18.8" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - d: "m71.3 97.6 19.96-23.83.06 9.33L71.3 107v-9.4Z" - }) - ] - }) - }); - } -); -Web3Graphic.displayName = "Web3Graphic"; - -// src/components/utils.tsx -var import_react_slot = require("@radix-ui/react-slot"); -var import_react7 = require("react"); -var import_jsx_runtime = require("react/jsx-runtime"); -function createHeadlessComponent(displayName, elementType, props) { - const component = (0, import_react7.forwardRef)(({ className, asChild, children }, ref) => { - const Component = asChild ? import_react_slot.Slot : elementType; - const { children: defaultChildren, ...resolvedProps } = typeof props === "function" ? props(displayName) : props != null ? props : {}; - const resolvedChildren = asChild && (0, import_react7.isValidElement)(children) && !children.props.children ? (0, import_react7.cloneElement)(children, {}, defaultChildren) : children != null ? children : defaultChildren; - return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { - ref, - className, - ...resolvedProps, - children: resolvedChildren - }); - }); - component.displayName = displayName; - return component; -} - -// src/components/AboutAptosConnect.tsx -var import_jsx_runtime = require("react/jsx-runtime"); -var EXPLORE_ECOSYSTEM_URL = "https://aptosfoundation.org/ecosystem/projects/all"; -var AboutAptosConnectContext = (0, import_react8.createContext)(null); -function useAboutAptosConnectContext(displayName) { - const context = (0, import_react8.useContext)(AboutAptosConnectContext); - if (!context) { - throw new Error( - `\`${displayName}\` must be used within \`AboutAptosConnect\`` - ); - } - return context; -} -var educationScreens = [ - { - Graphic: LinkGraphic, - Title: createHeadlessComponent("EducationScreen.Title", "h3", { - children: "A better way to login." - }), - Description: createHeadlessComponent("EducationScreen.Description", "p", { - children: "Aptos Connect is a web3 wallet that uses a Social Login to create accounts on the Aptos blockchain." - }) - }, - { - Graphic: WalletGraphic, - Title: createHeadlessComponent("EducationScreen.Title", "h2", { - children: "What is a wallet?" - }), - Description: createHeadlessComponent("EducationScreen.Description", "p", { - children: "Wallets are a secure way to send, receive, and interact with digital assets like cryptocurrencies & NFTs." - }) - }, - { - Graphic: Web3Graphic, - Title: createHeadlessComponent("EducationScreen.Title", "h2", { - children: "Explore more of web3." - }), - Description: createHeadlessComponent("EducationScreen.Description", "p", { - children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { - children: [ - "Aptos Connect lets you take one account across any application built on Aptos.", - " ", - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { - href: EXPLORE_ECOSYSTEM_URL, - target: "_blank", - rel: "noopener noreferrer", - children: "Explore the ecosystem" - }), - "." - ] - }) - }) - } -]; -var educationScreenIndicators = Array(educationScreens.length).fill(null).map( - (_, index) => createHeadlessComponent( - "AboutAptosConnect.ScreenIndicator", - "button", - (displayName) => { - const context = useAboutAptosConnectContext(displayName); - const isActive = context.screenIndex - 1 === index; - return { - "aria-label": `Go to screen ${index + 1}`, - "aria-current": isActive ? "step" : void 0, - "data-active": isActive || void 0, - onClick: () => { - context.setScreenIndex(index + 1); - } - }; - } - ) -); -var Root = ({ renderEducationScreen, children }) => { - const [screenIndex, setScreenIndex] = (0, import_react8.useState)(0); - const currentEducationScreen = (0, import_react8.useMemo)( - () => educationScreens.map((screen, i) => ({ - ...screen, - screenIndex: i, - totalScreens: educationScreens.length, - screenIndicators: educationScreenIndicators, - back: () => { - setScreenIndex(screenIndex - 1); - }, - next: () => { - setScreenIndex( - screenIndex === educationScreens.length ? 0 : screenIndex + 1 - ); - }, - cancel: () => { - setScreenIndex(0); - } - }))[screenIndex - 1], - [screenIndex] - ); - return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AboutAptosConnectContext.Provider, { - value: { screenIndex, setScreenIndex }, - children: screenIndex === 0 ? children : renderEducationScreen(currentEducationScreen) - }); -}; -Root.displayName = "AboutAptosConnect"; -var Trigger = createHeadlessComponent( - "AboutAptosConnect.Trigger", - "button", - (displayName) => { - const context = useAboutAptosConnectContext(displayName); - return { - onClick: () => { - context.setScreenIndex(1); - } - }; - } -); -var AboutAptosConnect = Object.assign(Root, { - Trigger -}); - -// src/components/AptosPrivacyPolicy.tsx -var import_react10 = require("react"); - -// src/graphics/SmallAptosLogo.tsx -var import_react9 = require("react"); -var import_jsx_runtime = require("react/jsx-runtime"); -var SmallAptosLogo = (0, import_react9.forwardRef)((props, ref) => { - return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { - ref, - width: "12", - height: "12", - viewBox: "0 0 12 12", - fill: "none", - ...props, - children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z", - fill: "currentColor" - }) - }); -}); -SmallAptosLogo.displayName = "SmallAptosLogo"; - -// src/components/AptosPrivacyPolicy.tsx -var import_jsx_runtime = require("react/jsx-runtime"); -var APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy"; -var Root2 = createHeadlessComponent("AptosPrivacyPolicy.Root", "div"); -var Disclaimer = createHeadlessComponent( - "AptosPrivacyPolicy.Disclaimer", - "span", - { children: "By continuing, you agree to Aptos Labs'" } -); -var Link = createHeadlessComponent("AptosPrivacyPolicy.Disclaimer", "a", { - href: APTOS_PRIVACY_POLICY_URL, - target: "_blank", - rel: "noopener noreferrer", - children: "Privacy Policy" -}); -var PoweredBy = (0, import_react10.forwardRef)(({ className }, ref) => { - return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { - ref, - className, - children: [ - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { - children: "Powered by" - }), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SmallAptosLogo, {}), - /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { - children: "Aptos Labs" - }) - ] - }); -}); -PoweredBy.displayName = "AptosPrivacyPolicy.PoweredBy"; -var AptosPrivacyPolicy = Object.assign(Root2, { - Disclaimer, - Link, - PoweredBy -}); - -// src/components/WalletItem.tsx -var import_wallet_adapter_core_new2 = require("@aptos-labs/wallet-adapter-core-new"); -var import_react_slot2 = require("@radix-ui/react-slot"); -var import_react11 = require("react"); -var import_jsx_runtime = require("react/jsx-runtime"); -function useWalletItemContext(displayName) { - const context = (0, import_react11.useContext)(WalletItemContext); - if (!context) { - throw new Error(`\`${displayName}\` must be used within \`WalletItem\``); - } - return context; -} -var WalletItemContext = (0, import_react11.createContext)(null); -var Root3 = (0, import_react11.forwardRef)( - ({ wallet, onConnect, className, asChild, children }, ref) => { - var _a; - const { connect } = useWalletNew(); - const connectWallet = (0, import_react11.useCallback)(() => { - connect(wallet.name); - onConnect == null ? void 0 : onConnect(); - }, [connect, wallet.name, onConnect]); - const isWalletReady = wallet.readyState === import_wallet_adapter_core_new2.WalletReadyState.Installed; - const mobileSupport = "features" in wallet && "aptos:openInMobileApp" in wallet.features && ((_a = wallet.features["aptos:openInMobileApp"]) == null ? void 0 : _a.openInMobileApp); - if ((0, import_wallet_adapter_core_new2.isMobile)()) { - if (!isWalletReady && (0, import_wallet_adapter_core_new2.isRedirectable)() && !mobileSupport) - return null; - } - const Component = asChild ? import_react_slot2.Slot : "div"; - return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WalletItemContext.Provider, { - value: { wallet, connectWallet }, - children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { - ref, - className, - children - }) - }); - } -); -Root3.displayName = "WalletItem"; -var Icon = createHeadlessComponent( - "WalletItem.Icon", - "img", - (displayName) => { - const context = useWalletItemContext(displayName); - return { - src: context.wallet.icon, - alt: `${context.wallet.name} icon` - }; - } -); -var Name = createHeadlessComponent( - "WalletItem.Name", - "div", - (displayName) => { - const context = useWalletItemContext(displayName); - return { - children: context.wallet.name - }; - } -); -var ConnectButton = createHeadlessComponent( - "WalletItem.ConnectButton", - "button", - (displayName) => { - const context = useWalletItemContext(displayName); - return { - onClick: context.connectWallet, - children: "Connect" - }; - } -); -var InstallLink = createHeadlessComponent( - "WalletItem.InstallLink", - "a", - (displayName) => { - const context = useWalletItemContext(displayName); - return { - href: context.wallet.url, - target: "_blank", - rel: "noopener noreferrer", - children: "Install" - }; - } -); -var WalletItem = Object.assign(Root3, { - Icon, - Name, - ConnectButton, - InstallLink -}); -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - APTOS_PRIVACY_POLICY_URL, - AboutAptosConnect, - AptosPrivacyPolicy, - AptosWalletAdapterProviderNew, - EXPLORE_ECOSYSTEM_URL, - WalletContextNew, - WalletItem, - useWalletNew -}); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/index.js.map b/packages/wallet-adapter-react-new/dist/index.js.map deleted file mode 100644 index 6df75349..00000000 --- a/packages/wallet-adapter-react-new/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.tsx","../src/WalletProviderNew.tsx","../src/useWalletNew.tsx","../src/components/AboutAptosConnect.tsx","../src/graphics/LinkGraphic.tsx","../src/graphics/WalletGraphic.tsx","../src/graphics/Web3Graphic.tsx","../src/components/utils.tsx","../src/components/AptosPrivacyPolicy.tsx","../src/graphics/SmallAptosLogo.tsx","../src/components/WalletItem.tsx"],"sourcesContent":["export * from \"@aptos-labs/wallet-adapter-core-new\";\nexport * from \"./WalletProviderNew\";\nexport * from \"./components/AboutAptosConnect\";\nexport * from \"./components/AptosPrivacyPolicy\";\nexport * from \"./components/WalletItem\";\nexport * from \"./useWalletNew\";\n","import {\n AvailableWallets,\n DappConfig,\n AccountInfo,\n AdapterWallet,\n NetworkInfo,\n WalletCoreNew,\n InputTransactionData,\n AptosSignAndSubmitTransactionOutput,\n AnyRawTransaction,\n InputGenerateTransactionOptions,\n AccountAuthenticator,\n AptosSignTransactionOutputV1_1,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AdapterNotDetectedWallet,\n} from \"@aptos-labs/wallet-adapter-core-new\";\nimport { ReactNode, FC, useState, useEffect, useCallback } from \"react\";\nimport { WalletContextNew } from \"./useWalletNew\";\n\nexport interface AptosWalletProviderPropsNew {\n children: ReactNode;\n optInWallets?: ReadonlyArray;\n autoConnect?: boolean;\n dappConfig?: DappConfig;\n disableTelemetry?: boolean;\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: AdapterWallet | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\nexport const AptosWalletAdapterProviderNew: FC = ({\n children,\n optInWallets,\n autoConnect = false,\n dappConfig,\n disableTelemetry = false,\n onError,\n}: AptosWalletProviderPropsNew) => {\n const [{ account, network, connected, wallet }, setState] =\n useState(initialState);\n\n const [isLoading, setIsLoading] = useState(true);\n const [walletCore, setWalletCore] = useState();\n\n const [wallets, setWallets] = useState>([]);\n const [notDetectedWallets, setNotDetectedWallets] = useState<\n ReadonlyArray\n >([]);\n // Initialize WalletCore on first load\n useEffect(() => {\n const walletCore = new WalletCoreNew(\n optInWallets,\n dappConfig,\n disableTelemetry\n );\n setWalletCore(walletCore);\n }, []);\n\n // Update initial Wallets state once WalletCore has been initialized\n useEffect(() => {\n setWallets(walletCore?.wallets ?? []);\n setNotDetectedWallets(walletCore?.notDetectedWallets ?? []);\n }, [walletCore]);\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as string);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, [autoConnect, wallets]);\n\n const connect = async (walletName: string): Promise => {\n try {\n setIsLoading(true);\n await walletCore?.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async (): Promise => {\n try {\n await walletCore?.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ): Promise => {\n try {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transactionOrPayload: AnyRawTransaction | InputTransactionData,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions & {\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n }\n ): Promise => {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n try {\n return await walletCore.signTransaction(\n transactionOrPayload,\n asFeePayer,\n options\n );\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: AptosSignMessageInput\n ): Promise => {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n try {\n return await walletCore?.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: AptosSignMessageInput\n ): Promise => {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n try {\n return await walletCore?.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n // Handle the adapter's connect event\n const handleConnect = (): void => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore?.account || null,\n network: walletCore?.network || null,\n wallet: walletCore?.wallet || null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback((): void => {\n if (!connected) return;\n if (!walletCore?.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore?.account || null,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback((): void => {\n if (!connected) return;\n if (!walletCore?.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore?.network || null,\n };\n });\n }, [connected]);\n\n useEffect(() => {\n if (connected) {\n walletCore?.onAccountChange();\n walletCore?.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's disconnect event\n const handleDisconnect = (): void => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore?.account || null,\n network: walletCore?.network || null,\n wallet: null,\n };\n });\n };\n\n const handleStandardWalletsAdded = (standardWallet: AdapterWallet): void => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n const handleStandardNotDetectedWalletsAdded = (\n notDetectedWallet: AdapterNotDetectedWallet\n ): void => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == notDetectedWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setNotDetectedWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n notDetectedWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setNotDetectedWallets((wallets) => [...wallets, notDetectedWallet]);\n }\n };\n\n useEffect(() => {\n walletCore?.on(\"connect\", handleConnect);\n walletCore?.on(\"accountChange\", handleAccountChange);\n walletCore?.on(\"networkChange\", handleNetworkChange);\n walletCore?.on(\"disconnect\", handleDisconnect);\n walletCore?.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n walletCore?.on(\n \"standardNotDetectedWalletAdded\",\n handleStandardNotDetectedWalletsAdded\n );\n return () => {\n walletCore?.off(\"connect\", handleConnect);\n walletCore?.off(\"accountChange\", handleAccountChange);\n walletCore?.off(\"networkChange\", handleNetworkChange);\n walletCore?.off(\"disconnect\", handleDisconnect);\n walletCore?.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n walletCore?.off(\n \"standardNotDetectedWalletAdded\",\n handleStandardNotDetectedWalletsAdded\n );\n };\n }, [wallets, account]);\n return (\n \n {children}\n \n );\n};\n","import { useContext } from \"react\";\nimport {\n AccountAuthenticator,\n AccountInfo,\n AdapterWallet,\n AnyRawTransaction,\n AptosSignAndSubmitTransactionOutput,\n AptosSignTransactionOutputV1_1,\n InputGenerateTransactionOptions,\n InputTransactionData,\n NetworkInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AdapterNotDetectedWallet,\n} from \"@aptos-labs/wallet-adapter-core-new\";\nimport { createContext } from \"react\";\n\nexport interface WalletContextStateNew {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: string): void;\n signAndSubmitTransaction(\n transaction: InputTransactionData\n ): Promise;\n signTransaction(\n transaction: AnyRawTransaction | InputTransactionData,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions & {\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n }\n ): Promise;\n signMessage(message: AptosSignMessageInput): Promise;\n signMessageAndVerify(message: AptosSignMessageInput): Promise;\n disconnect(): void;\n wallet: AdapterWallet | null;\n wallets: ReadonlyArray;\n notDetectedWallets: ReadonlyArray;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContextNew = createContext(\n DEFAULT_CONTEXT as WalletContextStateNew\n);\n\nexport function useWalletNew(): WalletContextStateNew {\n const context = useContext(WalletContextNew);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import {\n Dispatch,\n ForwardRefExoticComponent,\n ReactNode,\n RefAttributes,\n SVGProps,\n SetStateAction,\n createContext,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport { LinkGraphic } from \"../graphics/LinkGraphic\";\nimport { WalletGraphic } from \"../graphics/WalletGraphic\";\nimport { Web3Graphic } from \"../graphics/Web3Graphic\";\nimport { HeadlessComponentProps, createHeadlessComponent } from \"./utils\";\n\nexport const EXPLORE_ECOSYSTEM_URL =\n \"https://aptosfoundation.org/ecosystem/projects/all\";\n\nconst AboutAptosConnectContext = createContext<{\n screenIndex: number;\n setScreenIndex: Dispatch>;\n} | null>(null);\n\nfunction useAboutAptosConnectContext(displayName: string) {\n const context = useContext(AboutAptosConnectContext);\n\n if (!context) {\n throw new Error(\n `\\`${displayName}\\` must be used within \\`AboutAptosConnect\\``\n );\n }\n\n return context;\n}\n\nconst educationScreens = [\n {\n Graphic: LinkGraphic,\n Title: createHeadlessComponent(\"EducationScreen.Title\", \"h3\", {\n children: \"A better way to login.\",\n }),\n Description: createHeadlessComponent(\"EducationScreen.Description\", \"p\", {\n children:\n \"Aptos Connect is a web3 wallet that uses a Social Login to create accounts on the Aptos blockchain.\",\n }),\n },\n {\n Graphic: WalletGraphic,\n Title: createHeadlessComponent(\"EducationScreen.Title\", \"h2\", {\n children: \"What is a wallet?\",\n }),\n Description: createHeadlessComponent(\"EducationScreen.Description\", \"p\", {\n children:\n \"Wallets are a secure way to send, receive, and interact with digital assets like cryptocurrencies & NFTs.\",\n }),\n },\n {\n Graphic: Web3Graphic,\n Title: createHeadlessComponent(\"EducationScreen.Title\", \"h2\", {\n children: \"Explore more of web3.\",\n }),\n Description: createHeadlessComponent(\"EducationScreen.Description\", \"p\", {\n children: (\n <>\n Aptos Connect lets you take one account across any application built\n on Aptos.{\" \"}\n \n Explore the ecosystem\n \n .\n \n ),\n }),\n },\n];\n\nconst educationScreenIndicators = Array(educationScreens.length)\n .fill(null)\n .map((_, index) =>\n createHeadlessComponent(\n \"AboutAptosConnect.ScreenIndicator\",\n \"button\",\n (displayName) => {\n const context = useAboutAptosConnectContext(displayName);\n const isActive = context.screenIndex - 1 === index;\n\n return {\n \"aria-label\": `Go to screen ${index + 1}`,\n \"aria-current\": isActive ? \"step\" : undefined,\n \"data-active\": isActive || undefined,\n onClick: () => {\n context.setScreenIndex(index + 1);\n },\n };\n }\n )\n );\n\nexport interface AboutAptosConnectEducationScreen {\n /** A component that renders an SVG to illustrate the idea of the current screen. */\n Graphic: ForwardRefExoticComponent<\n Omit, \"ref\"> & RefAttributes\n >;\n /** A headless component that renders the title of the current screen. */\n Title: ForwardRefExoticComponent<\n HeadlessComponentProps & RefAttributes\n >;\n /** A headless component that renders the description text of the current screen. */\n Description: ForwardRefExoticComponent<\n HeadlessComponentProps & RefAttributes\n >;\n /** The index of the current education screen. */\n screenIndex: number;\n /** The total number of education screens. */\n totalScreens: number;\n /**\n * An array of headless components for indicating the current screen of the set.\n * Each indicator will navigate the user to the screen it represents when clicked.\n */\n screenIndicators: typeof educationScreenIndicators;\n /**\n * A function that navigates the user to the previous education screen.\n * If the user is on the first education screen, they will be navigated to the\n * initial wallet selection screen.\n */\n back: () => void;\n /**\n * A function that navigates the user to the next education screen.\n * If the user is on the last education screen, they will be navigated to the\n * initial wallet selection screen.\n */\n next: () => void;\n /** A function that navigates the user to the initial wallet selection screen. */\n cancel: () => void;\n}\n\nexport interface AboutAptosConnectProps {\n /**\n * A function for defining how each education screen should be rendered.\n * Each screen is modeled as a uniform set of headless components and utilities\n * that allow you to construct your UI and apply your own styles.\n */\n renderEducationScreen: (\n screen: AboutAptosConnectEducationScreen\n ) => ReactNode;\n /**\n * The initial wallet selection UI that will be replaced by the education\n * screens when `AboutAptosConnect.Trigger` is clicked.\n */\n children?: ReactNode;\n}\n\nconst Root = ({ renderEducationScreen, children }: AboutAptosConnectProps) => {\n const [screenIndex, setScreenIndex] = useState(0);\n\n const currentEducationScreen: AboutAptosConnectEducationScreen = useMemo(\n () =>\n educationScreens.map((screen, i) => ({\n ...screen,\n screenIndex: i,\n totalScreens: educationScreens.length,\n screenIndicators: educationScreenIndicators,\n back: () => {\n setScreenIndex(screenIndex - 1);\n },\n next: () => {\n setScreenIndex(\n screenIndex === educationScreens.length ? 0 : screenIndex + 1\n );\n },\n cancel: () => {\n setScreenIndex(0);\n },\n }))[screenIndex - 1],\n [screenIndex]\n );\n\n return (\n \n {screenIndex === 0\n ? children\n : renderEducationScreen(currentEducationScreen)}\n \n );\n};\nRoot.displayName = \"AboutAptosConnect\";\n\nconst Trigger = createHeadlessComponent(\n \"AboutAptosConnect.Trigger\",\n \"button\",\n (displayName) => {\n const context = useAboutAptosConnectContext(displayName);\n\n return {\n onClick: () => {\n context.setScreenIndex(1);\n },\n };\n }\n);\n\n/**\n * A headless component for rendering education screens that explain the basics\n * of Aptos Connect and web3 wallets.\n */\nexport const AboutAptosConnect = Object.assign(Root, {\n Trigger,\n});\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const LinkGraphic = forwardRef>(\n (props, ref) => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n }\n);\nLinkGraphic.displayName = \"LinkGraphic\";\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const WalletGraphic = forwardRef>(\n (props, ref) => {\n return (\n \n \n \n \n \n \n \n );\n }\n);\nWalletGraphic.displayName = \"WalletGraphic\";\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const Web3Graphic = forwardRef>(\n (props, ref) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n);\nWeb3Graphic.displayName = \"Web3Graphic\";\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { ReactNode, cloneElement, forwardRef, isValidElement } from \"react\";\n\nexport interface HeadlessComponentProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Gets an HTML element type from its tag name\n * @example\n * HTMLElementFromTag<\"img\"> // resolved type: HTMLImageElement\n */\ntype HTMLElementFromTag =\n JSX.IntrinsicElements[T] extends React.ClassAttributes\n ? Element\n : HTMLElement;\n\nexport function createHeadlessComponent<\n TElement extends keyof JSX.IntrinsicElements,\n>(\n displayName: string,\n elementType: TElement,\n props?:\n | JSX.IntrinsicElements[TElement]\n | ((displayName: string) => JSX.IntrinsicElements[TElement]),\n) {\n const component = forwardRef<\n HTMLElementFromTag,\n HeadlessComponentProps\n >(({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : elementType;\n\n const { children: defaultChildren, ...resolvedProps } =\n typeof props === \"function\" ? props(displayName) : props ?? {};\n const resolvedChildren =\n /**\n * Use props' default children if no children are set in the component element's children and when asChild is true.\n */\n asChild && isValidElement(children) && !children.props.children\n ? cloneElement(children, {}, defaultChildren)\n : (children ?? defaultChildren);\n\n return (\n /**\n * Due to the complexity of the types at play, TypeScript reports the\n * following error for our JSX below:\n *\n * `Expression produces a union type that is too complex to represent.`\n *\n * We can safely ignore this error and retain accurate return types for\n * consumers of this function. The only drawback is that type-checking is\n * ignored for the JSX block below.\n */\n // @ts-expect-error\n \n {resolvedChildren}\n \n );\n });\n component.displayName = displayName;\n\n return component;\n}\n","import { forwardRef } from \"react\";\nimport { SmallAptosLogo } from \"../graphics/SmallAptosLogo\";\nimport { HeadlessComponentProps, createHeadlessComponent } from \"./utils\";\n\nexport const APTOS_PRIVACY_POLICY_URL = \"https://aptoslabs.com/privacy\";\n\nconst Root = createHeadlessComponent(\"AptosPrivacyPolicy.Root\", \"div\");\n\nconst Disclaimer = createHeadlessComponent(\n \"AptosPrivacyPolicy.Disclaimer\",\n \"span\",\n { children: \"By continuing, you agree to Aptos Labs'\" }\n);\n\nconst Link = createHeadlessComponent(\"AptosPrivacyPolicy.Disclaimer\", \"a\", {\n href: APTOS_PRIVACY_POLICY_URL,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: \"Privacy Policy\",\n});\n\nconst PoweredBy = forwardRef<\n HTMLDivElement,\n Pick\n>(({ className }, ref) => {\n return (\n
\n Powered by\n \n Aptos Labs\n
\n );\n});\nPoweredBy.displayName = \"AptosPrivacyPolicy.PoweredBy\";\n\n/**\n * A headless component for rendering the Aptos Labs privacy policy disclaimer\n * that should be placed under the Aptos Connect login options.\n */\nexport const AptosPrivacyPolicy = Object.assign(Root, {\n Disclaimer,\n Link,\n PoweredBy,\n});\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const SmallAptosLogo = forwardRef<\n SVGSVGElement,\n SVGProps\n>((props, ref) => {\n return (\n \n \n \n );\n});\nSmallAptosLogo.displayName = \"SmallAptosLogo\";\n","import {\n AdapterNotDetectedWallet,\n AdapterWallet,\n WalletReadyState,\n isMobile,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core-new\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { createContext, forwardRef, useCallback, useContext } from \"react\";\nimport { useWalletNew } from \"../useWalletNew\";\nimport { HeadlessComponentProps, createHeadlessComponent } from \"./utils\";\n\nexport interface WalletItemProps extends HeadlessComponentProps {\n /** The wallet option to be displayed. */\n wallet: AdapterWallet | AdapterNotDetectedWallet;\n /** A callback to be invoked when the wallet is connected. */\n onConnect?: () => void;\n}\n\nfunction useWalletItemContext(displayName: string) {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(`\\`${displayName}\\` must be used within \\`WalletItem\\``);\n }\n\n return context;\n}\n\nconst WalletItemContext = createContext<{\n wallet: AdapterWallet | AdapterNotDetectedWallet;\n connectWallet: () => void;\n} | null>(null);\n\nconst Root = forwardRef(\n ({ wallet, onConnect, className, asChild, children }, ref) => {\n const { connect } = useWalletNew();\n\n const connectWallet = useCallback(() => {\n connect(wallet.name);\n onConnect?.();\n }, [connect, wallet.name, onConnect]);\n\n const isWalletReady = wallet.readyState === WalletReadyState.Installed;\n\n const mobileSupport =\n \"features\" in wallet &&\n \"aptos:openInMobileApp\" in (wallet as AdapterWallet).features &&\n (wallet as AdapterWallet).features[\"aptos:openInMobileApp\"]\n ?.openInMobileApp;\n\n if (isMobile()) {\n if (!isWalletReady && isRedirectable() && !mobileSupport) return null;\n }\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n \n \n {children}\n \n \n );\n }\n);\nRoot.displayName = \"WalletItem\";\n\nconst Icon = createHeadlessComponent(\n \"WalletItem.Icon\",\n \"img\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n src: context.wallet.icon,\n alt: `${context.wallet.name} icon`,\n };\n }\n);\n\nconst Name = createHeadlessComponent(\n \"WalletItem.Name\",\n \"div\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n children: context.wallet.name,\n };\n }\n);\n\nconst ConnectButton = createHeadlessComponent(\n \"WalletItem.ConnectButton\",\n \"button\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n onClick: context.connectWallet,\n children: \"Connect\",\n };\n }\n);\n\nconst InstallLink = createHeadlessComponent(\n \"WalletItem.InstallLink\",\n \"a\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n href: context.wallet.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: \"Install\",\n };\n }\n);\n\n/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */\nexport const WalletItem = Object.assign(Root, {\n Icon,\n Name,\n ConnectButton,\n InstallLink,\n});\n"],"mappings":"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","names":["import_react","import_react","walletCore","wallet","wallets","import_react","import_react","import_react","import_react","import_react","import_react","import_react","Root","import_wallet_adapter_core_new","import_react_slot","import_react","Root"]} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/index.mjs b/packages/wallet-adapter-react-new/dist/index.mjs deleted file mode 100644 index 12eb943b..00000000 --- a/packages/wallet-adapter-react-new/dist/index.mjs +++ /dev/null @@ -1,716 +0,0 @@ -// src/index.tsx -export * from "@aptos-labs/wallet-adapter-core-new"; - -// src/WalletProviderNew.tsx -import { - WalletCoreNew -} from "@aptos-labs/wallet-adapter-core-new"; -import { useState, useEffect, useCallback } from "react"; - -// src/useWalletNew.tsx -import { useContext } from "react"; -import { createContext } from "react"; -var DEFAULT_CONTEXT = { - connected: false -}; -var WalletContextNew = createContext( - DEFAULT_CONTEXT -); -function useWalletNew() { - const context = useContext(WalletContextNew); - if (!context) { - throw new Error("useWallet must be used within a WalletContextState"); - } - return context; -} - -// src/WalletProviderNew.tsx -import { jsx } from "react/jsx-runtime"; -var initialState = { - connected: false, - account: null, - network: null, - wallet: null -}; -var AptosWalletAdapterProviderNew = ({ - children, - optInWallets, - autoConnect = false, - dappConfig, - disableTelemetry = false, - onError -}) => { - const [{ account, network, connected, wallet }, setState] = useState(initialState); - const [isLoading, setIsLoading] = useState(true); - const [walletCore, setWalletCore] = useState(); - const [wallets, setWallets] = useState([]); - const [notDetectedWallets, setNotDetectedWallets] = useState([]); - useEffect(() => { - const walletCore2 = new WalletCoreNew( - optInWallets, - dappConfig, - disableTelemetry - ); - setWalletCore(walletCore2); - }, []); - useEffect(() => { - var _a, _b; - setWallets((_a = walletCore == null ? void 0 : walletCore.wallets) != null ? _a : []); - setNotDetectedWallets((_b = walletCore == null ? void 0 : walletCore.notDetectedWallets) != null ? _b : []); - }, [walletCore]); - useEffect(() => { - if (autoConnect) { - if (localStorage.getItem("AptosWalletName") && !connected) { - connect(localStorage.getItem("AptosWalletName")); - } else { - setIsLoading(false); - } - } - }, [autoConnect, wallets]); - const connect = async (walletName) => { - try { - setIsLoading(true); - await (walletCore == null ? void 0 : walletCore.connect(walletName)); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } finally { - setIsLoading(false); - } - }; - const disconnect = async () => { - try { - await (walletCore == null ? void 0 : walletCore.disconnect()); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const signAndSubmitTransaction = async (transaction) => { - try { - if (!walletCore) { - throw new Error("WalletCore is not initialized"); - } - return await walletCore.signAndSubmitTransaction(transaction); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const signTransaction = async (transactionOrPayload, asFeePayer, options) => { - if (!walletCore) { - throw new Error("WalletCore is not initialized"); - } - try { - return await walletCore.signTransaction( - transactionOrPayload, - asFeePayer, - options - ); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const signMessage = async (message) => { - if (!walletCore) { - throw new Error("WalletCore is not initialized"); - } - try { - return await (walletCore == null ? void 0 : walletCore.signMessage(message)); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const signMessageAndVerify = async (message) => { - if (!walletCore) { - throw new Error("WalletCore is not initialized"); - } - try { - return await (walletCore == null ? void 0 : walletCore.signMessageAndVerify(message)); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const handleConnect = () => { - setState((state) => { - return { - ...state, - connected: true, - account: (walletCore == null ? void 0 : walletCore.account) || null, - network: (walletCore == null ? void 0 : walletCore.network) || null, - wallet: (walletCore == null ? void 0 : walletCore.wallet) || null - }; - }); - }; - const handleAccountChange = useCallback(() => { - if (!connected) - return; - if (!(walletCore == null ? void 0 : walletCore.wallet)) - return; - setState((state) => { - return { - ...state, - account: (walletCore == null ? void 0 : walletCore.account) || null - }; - }); - }, [connected]); - const handleNetworkChange = useCallback(() => { - if (!connected) - return; - if (!(walletCore == null ? void 0 : walletCore.wallet)) - return; - setState((state) => { - return { - ...state, - network: (walletCore == null ? void 0 : walletCore.network) || null - }; - }); - }, [connected]); - useEffect(() => { - if (connected) { - walletCore == null ? void 0 : walletCore.onAccountChange(); - walletCore == null ? void 0 : walletCore.onNetworkChange(); - } - }, [connected]); - const handleDisconnect = () => { - if (!connected) - return; - setState((state) => { - return { - ...state, - connected: false, - account: (walletCore == null ? void 0 : walletCore.account) || null, - network: (walletCore == null ? void 0 : walletCore.network) || null, - wallet: null - }; - }); - }; - const handleStandardWalletsAdded = (standardWallet) => { - const existingWalletIndex = wallets.findIndex( - (wallet2) => wallet2.name == standardWallet.name - ); - if (existingWalletIndex !== -1) { - setWallets((wallets2) => [ - ...wallets2.slice(0, existingWalletIndex), - standardWallet, - ...wallets2.slice(existingWalletIndex + 1) - ]); - } else { - setWallets((wallets2) => [...wallets2, standardWallet]); - } - }; - const handleStandardNotDetectedWalletsAdded = (notDetectedWallet) => { - const existingWalletIndex = wallets.findIndex( - (wallet2) => wallet2.name == notDetectedWallet.name - ); - if (existingWalletIndex !== -1) { - setNotDetectedWallets((wallets2) => [ - ...wallets2.slice(0, existingWalletIndex), - notDetectedWallet, - ...wallets2.slice(existingWalletIndex + 1) - ]); - } else { - setNotDetectedWallets((wallets2) => [...wallets2, notDetectedWallet]); - } - }; - useEffect(() => { - walletCore == null ? void 0 : walletCore.on("connect", handleConnect); - walletCore == null ? void 0 : walletCore.on("accountChange", handleAccountChange); - walletCore == null ? void 0 : walletCore.on("networkChange", handleNetworkChange); - walletCore == null ? void 0 : walletCore.on("disconnect", handleDisconnect); - walletCore == null ? void 0 : walletCore.on("standardWalletsAdded", handleStandardWalletsAdded); - walletCore == null ? void 0 : walletCore.on( - "standardNotDetectedWalletAdded", - handleStandardNotDetectedWalletsAdded - ); - return () => { - walletCore == null ? void 0 : walletCore.off("connect", handleConnect); - walletCore == null ? void 0 : walletCore.off("accountChange", handleAccountChange); - walletCore == null ? void 0 : walletCore.off("networkChange", handleNetworkChange); - walletCore == null ? void 0 : walletCore.off("disconnect", handleDisconnect); - walletCore == null ? void 0 : walletCore.off("standardWalletsAdded", handleStandardWalletsAdded); - walletCore == null ? void 0 : walletCore.off( - "standardNotDetectedWalletAdded", - handleStandardNotDetectedWalletsAdded - ); - }; - }, [wallets, account]); - return /* @__PURE__ */ jsx(WalletContextNew.Provider, { - value: { - connect, - disconnect, - signAndSubmitTransaction, - signTransaction, - signMessage, - signMessageAndVerify, - account, - network, - connected, - wallet, - wallets, - notDetectedWallets, - isLoading - }, - children - }); -}; - -// src/components/AboutAptosConnect.tsx -import { - createContext as createContext2, - useContext as useContext2, - useMemo, - useState as useState2 -} from "react"; - -// src/graphics/LinkGraphic.tsx -import { forwardRef } from "react"; -import { jsx as jsx2, jsxs } from "react/jsx-runtime"; -var LinkGraphic = forwardRef( - (props, ref) => { - return /* @__PURE__ */ jsx2("svg", { - ref, - width: "102", - height: "132", - viewBox: "0 0 102 132", - fill: "none", - ...props, - children: /* @__PURE__ */ jsxs("g", { - stroke: "currentColor", - strokeMiterlimit: "10", - children: [ - /* @__PURE__ */ jsx2("path", { - d: "M59.633 80.66c11.742-2.814 17.48-7.018 20.925-13.254l17.518-31.69c6.257-11.317 2.142-25.55-9.189-31.798C82.737.53 75.723.188 69.593 2.398M60.7 69.565a14.09 14.09 0 0 1-6.907-1.767l-.228-.108" - }), - /* @__PURE__ */ jsx2("path", { - d: "m52.365 41.075 12.507-22.627a14.146 14.146 0 0 1 4.727-5.062M32.407 118.619a14.139 14.139 0 0 1-7.034-1.768c-6.857-3.78-9.353-12.402-5.561-19.25l16.634-30.1a14.097 14.097 0 0 1 4.518-4.923" - }), - /* @__PURE__ */ jsx2("path", { - d: "M41.211 78.85c11.332 6.248 25.583 2.14 31.84-9.177l17.518-31.691c6.256-11.317 2.142-25.55-9.19-31.798-6.085-3.357-13.018-3.724-19.104-1.59A23.31 23.31 0 0 0 49.541 15.36L36.863 38.298l7.989 5.036 12.506-22.627c3.786-6.848 12.419-9.34 19.276-5.554 6.856 3.78 9.353 12.402 5.561 19.25l-16.634 30.1c-3.785 6.848-12.418 9.341-19.275 5.555l-5.075 8.791ZM29.5 130.447c12.361-1.37 19.2-6.994 22.966-13.804l12.678-22.936-8.305-5.239" - }), - /* @__PURE__ */ jsx2("path", { - d: "m55.72 61.947-.442.764 5.511-9.55c-6.901-3.806-18.65-3.124-27.105.814M44.85 43.523l7.635-2.486m-4.221 23.264 7.217-1.723m-9.316 7.517 7.59-2.405m-.562-12.156 7.508-2.221m10.136-51.32L62.761 4.43M49.642 90.778l7.514-2.26m.474 7.448 7.514-2.26m-50.306-60.13c7.135 0 12.918-5.776 12.918-12.9 0-7.126-5.783-12.902-12.918-12.902-7.134 0-12.917 5.776-12.917 12.901s5.783 12.901 12.918 12.901Z" - }), - /* @__PURE__ */ jsx2("path", { - d: "M15.724 7.774h3.197c7.135 0 12.918 5.776 12.918 12.901 0 7.126-5.783 12.901-12.918 12.901h-3.425m65.112 66.935h3.198c7.135 0 12.918 5.775 12.918 12.901 0 7.125-5.783 12.9-12.918 12.9h-3.425" - }), - /* @__PURE__ */ jsx2("path", { - d: "M79.717 126.312c7.135 0 12.918-5.775 12.918-12.9s-5.783-12.901-12.918-12.901c-7.134 0-12.917 5.776-12.917 12.901s5.783 12.9 12.917 12.9ZM53.281 55.414c-11.33-6.248-25.582-2.14-31.839 9.177L3.924 96.281c-6.257 11.318-2.142 25.55 9.189 31.799 11.331 6.248 25.582 2.139 31.839-9.177l12.677-22.937-7.988-5.036-12.507 22.627c-3.785 6.848-12.418 9.341-19.275 5.554-6.857-3.781-9.353-12.402-5.561-19.25l16.633-30.1c3.786-6.848 12.419-9.341 19.276-5.555l5.074-8.792Z" - }) - ] - }) - }); - } -); -LinkGraphic.displayName = "LinkGraphic"; - -// src/graphics/WalletGraphic.tsx -import { forwardRef as forwardRef2 } from "react"; -import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime"; -var WalletGraphic = forwardRef2( - (props, ref) => { - return /* @__PURE__ */ jsxs2("svg", { - ref, - width: "128", - height: "102", - viewBox: "0 0 128 102", - fill: "none", - ...props, - children: [ - /* @__PURE__ */ jsx3("path", { - fill: "currentColor", - d: "m.96 25.93-.36-.35.36.85v-.5Zm7.79-7.81v-.5h-.21l-.15.15.36.35ZM1.3 26.28l7.79-7.8-.7-.71-7.8 7.8.7.71Zm7.44-7.66H10v-1H8.75v1Zm29.22 6.8h-37v1h37.01v-1Z" - }), - /* @__PURE__ */ jsx3("path", { - stroke: "currentColor", - strokeMiterlimit: "10", - d: "M82.25 26.08c0 12.25-9.92 22.2-22.14 22.2a22.17 22.17 0 0 1-22.14-22.2H1.1v74.82h118.02V26.08H82.25Zm44.33 67.02h.33V18.27h-5.7" - }), - /* @__PURE__ */ jsx3("path", { - stroke: "currentColor", - strokeMiterlimit: "10", - d: "M74.52 42.92a22.4 22.4 0 0 1-11.43 3.3 22.5 22.5 0 0 1-22.46-22.53H9.52M119.22 101l7.78-7.82m-7.88-67.1 7.79-7.81m-44.78 7.72 2.73-2.3m-46.89 2.39 2.39-2.4" - }), - /* @__PURE__ */ jsx3("path", { - stroke: "currentColor", - strokeMiterlimit: "10", - d: "M9.86 23.69V5.72h107.97v18.04H84.65" - }), - /* @__PURE__ */ jsx3("path", { - stroke: "currentColor", - strokeMiterlimit: "10", - d: "M117.83 20.46h3.39V1H13.25v4.72M9.36 23.69h31.78" - }) - ] - }); - } -); -WalletGraphic.displayName = "WalletGraphic"; - -// src/graphics/Web3Graphic.tsx -import { forwardRef as forwardRef3 } from "react"; -import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime"; -var Web3Graphic = forwardRef3( - (props, ref) => { - return /* @__PURE__ */ jsx4("svg", { - ref, - width: "142", - height: "108", - viewBox: "0 0 142 108", - fill: "none", - ...props, - children: /* @__PURE__ */ jsxs3("g", { - stroke: "currentColor", - strokeLinejoin: "round", - children: [ - /* @__PURE__ */ jsx4("path", { - d: "m91.26 35.8.06-10.46L71.3 1v10.53L87 30.5m-36.11 5.24-.06-10.45L71.3 1v10.53L55 30.5" - }), - /* @__PURE__ */ jsx4("path", { - d: "M71 59.55V49.17L50.83 25.3l.06 10.45L57 42.5m14 17.05V49.18l20.33-23.84-.07 10.45L86 42M1 59.68l.22-9.07 35.33-19.8-.1 9L9 55" - }), - /* @__PURE__ */ jsx4("path", { - d: "M36.55 30.8s-.08 5.92-.1 9l.1-9ZM71 59.51v-9.07L36.55 30.8l-.1 9L63.5 55" - }), - /* @__PURE__ */ jsx4("path", { - d: "M71 59.51v-9.07L36.44 70.78l-.1 9.14L55.5 68.5" - }), - /* @__PURE__ */ jsx4("path", { - d: "M1.22 50.6a77387.2 77387.2 0 0 0 35.22 20.18l-.1 9.14L1 59.68l.23-9.07h-.01ZM141 59.68l-.23-9.07-35.33-19.8.11 9L133 55" - }), - /* @__PURE__ */ jsx4("path", { - d: "m105.44 30.8.11 9-.1-9Z" - }), - /* @__PURE__ */ jsx4("path", { - d: "M71 59.51v-9.07l34.44-19.64.11 9L78.5 55" - }), - /* @__PURE__ */ jsx4("path", { - d: "M71 59.51v-9.07l34.56 20.34.1 9.14L87 69" - }), - /* @__PURE__ */ jsx4("path", { - d: "M140.78 50.6a78487.3 78487.3 0 0 1-35.23 20.18l.11 9.14L141 59.68l-.23-9.07ZM50.83 80.15l.06-6.33 20.1-23.38H71v9.26L55 79" - }), - /* @__PURE__ */ jsx4("path", { - d: "M71.3 97.6 50.89 73.81l-.06 9.33L71.3 107v-9.4Zm20.03-14.5-.07-9.33L71 50.44v9.26l16 18.8" - }), - /* @__PURE__ */ jsx4("path", { - d: "m71.3 97.6 19.96-23.83.06 9.33L71.3 107v-9.4Z" - }) - ] - }) - }); - } -); -Web3Graphic.displayName = "Web3Graphic"; - -// src/components/utils.tsx -import { Slot } from "@radix-ui/react-slot"; -import { cloneElement, forwardRef as forwardRef4, isValidElement } from "react"; -import { jsx as jsx5 } from "react/jsx-runtime"; -function createHeadlessComponent(displayName, elementType, props) { - const component = forwardRef4(({ className, asChild, children }, ref) => { - const Component = asChild ? Slot : elementType; - const { children: defaultChildren, ...resolvedProps } = typeof props === "function" ? props(displayName) : props != null ? props : {}; - const resolvedChildren = asChild && isValidElement(children) && !children.props.children ? cloneElement(children, {}, defaultChildren) : children != null ? children : defaultChildren; - return /* @__PURE__ */ jsx5(Component, { - ref, - className, - ...resolvedProps, - children: resolvedChildren - }); - }); - component.displayName = displayName; - return component; -} - -// src/components/AboutAptosConnect.tsx -import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime"; -var EXPLORE_ECOSYSTEM_URL = "https://aptosfoundation.org/ecosystem/projects/all"; -var AboutAptosConnectContext = createContext2(null); -function useAboutAptosConnectContext(displayName) { - const context = useContext2(AboutAptosConnectContext); - if (!context) { - throw new Error( - `\`${displayName}\` must be used within \`AboutAptosConnect\`` - ); - } - return context; -} -var educationScreens = [ - { - Graphic: LinkGraphic, - Title: createHeadlessComponent("EducationScreen.Title", "h3", { - children: "A better way to login." - }), - Description: createHeadlessComponent("EducationScreen.Description", "p", { - children: "Aptos Connect is a web3 wallet that uses a Social Login to create accounts on the Aptos blockchain." - }) - }, - { - Graphic: WalletGraphic, - Title: createHeadlessComponent("EducationScreen.Title", "h2", { - children: "What is a wallet?" - }), - Description: createHeadlessComponent("EducationScreen.Description", "p", { - children: "Wallets are a secure way to send, receive, and interact with digital assets like cryptocurrencies & NFTs." - }) - }, - { - Graphic: Web3Graphic, - Title: createHeadlessComponent("EducationScreen.Title", "h2", { - children: "Explore more of web3." - }), - Description: createHeadlessComponent("EducationScreen.Description", "p", { - children: /* @__PURE__ */ jsxs4(Fragment, { - children: [ - "Aptos Connect lets you take one account across any application built on Aptos.", - " ", - /* @__PURE__ */ jsx6("a", { - href: EXPLORE_ECOSYSTEM_URL, - target: "_blank", - rel: "noopener noreferrer", - children: "Explore the ecosystem" - }), - "." - ] - }) - }) - } -]; -var educationScreenIndicators = Array(educationScreens.length).fill(null).map( - (_, index) => createHeadlessComponent( - "AboutAptosConnect.ScreenIndicator", - "button", - (displayName) => { - const context = useAboutAptosConnectContext(displayName); - const isActive = context.screenIndex - 1 === index; - return { - "aria-label": `Go to screen ${index + 1}`, - "aria-current": isActive ? "step" : void 0, - "data-active": isActive || void 0, - onClick: () => { - context.setScreenIndex(index + 1); - } - }; - } - ) -); -var Root = ({ renderEducationScreen, children }) => { - const [screenIndex, setScreenIndex] = useState2(0); - const currentEducationScreen = useMemo( - () => educationScreens.map((screen, i) => ({ - ...screen, - screenIndex: i, - totalScreens: educationScreens.length, - screenIndicators: educationScreenIndicators, - back: () => { - setScreenIndex(screenIndex - 1); - }, - next: () => { - setScreenIndex( - screenIndex === educationScreens.length ? 0 : screenIndex + 1 - ); - }, - cancel: () => { - setScreenIndex(0); - } - }))[screenIndex - 1], - [screenIndex] - ); - return /* @__PURE__ */ jsx6(AboutAptosConnectContext.Provider, { - value: { screenIndex, setScreenIndex }, - children: screenIndex === 0 ? children : renderEducationScreen(currentEducationScreen) - }); -}; -Root.displayName = "AboutAptosConnect"; -var Trigger = createHeadlessComponent( - "AboutAptosConnect.Trigger", - "button", - (displayName) => { - const context = useAboutAptosConnectContext(displayName); - return { - onClick: () => { - context.setScreenIndex(1); - } - }; - } -); -var AboutAptosConnect = Object.assign(Root, { - Trigger -}); - -// src/components/AptosPrivacyPolicy.tsx -import { forwardRef as forwardRef6 } from "react"; - -// src/graphics/SmallAptosLogo.tsx -import { forwardRef as forwardRef5 } from "react"; -import { jsx as jsx7 } from "react/jsx-runtime"; -var SmallAptosLogo = forwardRef5((props, ref) => { - return /* @__PURE__ */ jsx7("svg", { - ref, - width: "12", - height: "12", - viewBox: "0 0 12 12", - fill: "none", - ...props, - children: /* @__PURE__ */ jsx7("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z", - fill: "currentColor" - }) - }); -}); -SmallAptosLogo.displayName = "SmallAptosLogo"; - -// src/components/AptosPrivacyPolicy.tsx -import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime"; -var APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy"; -var Root2 = createHeadlessComponent("AptosPrivacyPolicy.Root", "div"); -var Disclaimer = createHeadlessComponent( - "AptosPrivacyPolicy.Disclaimer", - "span", - { children: "By continuing, you agree to Aptos Labs'" } -); -var Link = createHeadlessComponent("AptosPrivacyPolicy.Disclaimer", "a", { - href: APTOS_PRIVACY_POLICY_URL, - target: "_blank", - rel: "noopener noreferrer", - children: "Privacy Policy" -}); -var PoweredBy = forwardRef6(({ className }, ref) => { - return /* @__PURE__ */ jsxs5("div", { - ref, - className, - children: [ - /* @__PURE__ */ jsx8("span", { - children: "Powered by" - }), - /* @__PURE__ */ jsx8(SmallAptosLogo, {}), - /* @__PURE__ */ jsx8("span", { - children: "Aptos Labs" - }) - ] - }); -}); -PoweredBy.displayName = "AptosPrivacyPolicy.PoweredBy"; -var AptosPrivacyPolicy = Object.assign(Root2, { - Disclaimer, - Link, - PoweredBy -}); - -// src/components/WalletItem.tsx -import { - WalletReadyState, - isMobile, - isRedirectable -} from "@aptos-labs/wallet-adapter-core-new"; -import { Slot as Slot2 } from "@radix-ui/react-slot"; -import { createContext as createContext3, forwardRef as forwardRef7, useCallback as useCallback2, useContext as useContext3 } from "react"; -import { jsx as jsx9 } from "react/jsx-runtime"; -function useWalletItemContext(displayName) { - const context = useContext3(WalletItemContext); - if (!context) { - throw new Error(`\`${displayName}\` must be used within \`WalletItem\``); - } - return context; -} -var WalletItemContext = createContext3(null); -var Root3 = forwardRef7( - ({ wallet, onConnect, className, asChild, children }, ref) => { - var _a; - const { connect } = useWalletNew(); - const connectWallet = useCallback2(() => { - connect(wallet.name); - onConnect == null ? void 0 : onConnect(); - }, [connect, wallet.name, onConnect]); - const isWalletReady = wallet.readyState === WalletReadyState.Installed; - const mobileSupport = "features" in wallet && "aptos:openInMobileApp" in wallet.features && ((_a = wallet.features["aptos:openInMobileApp"]) == null ? void 0 : _a.openInMobileApp); - if (isMobile()) { - if (!isWalletReady && isRedirectable() && !mobileSupport) - return null; - } - const Component = asChild ? Slot2 : "div"; - return /* @__PURE__ */ jsx9(WalletItemContext.Provider, { - value: { wallet, connectWallet }, - children: /* @__PURE__ */ jsx9(Component, { - ref, - className, - children - }) - }); - } -); -Root3.displayName = "WalletItem"; -var Icon = createHeadlessComponent( - "WalletItem.Icon", - "img", - (displayName) => { - const context = useWalletItemContext(displayName); - return { - src: context.wallet.icon, - alt: `${context.wallet.name} icon` - }; - } -); -var Name = createHeadlessComponent( - "WalletItem.Name", - "div", - (displayName) => { - const context = useWalletItemContext(displayName); - return { - children: context.wallet.name - }; - } -); -var ConnectButton = createHeadlessComponent( - "WalletItem.ConnectButton", - "button", - (displayName) => { - const context = useWalletItemContext(displayName); - return { - onClick: context.connectWallet, - children: "Connect" - }; - } -); -var InstallLink = createHeadlessComponent( - "WalletItem.InstallLink", - "a", - (displayName) => { - const context = useWalletItemContext(displayName); - return { - href: context.wallet.url, - target: "_blank", - rel: "noopener noreferrer", - children: "Install" - }; - } -); -var WalletItem = Object.assign(Root3, { - Icon, - Name, - ConnectButton, - InstallLink -}); -export { - APTOS_PRIVACY_POLICY_URL, - AboutAptosConnect, - AptosPrivacyPolicy, - AptosWalletAdapterProviderNew, - EXPLORE_ECOSYSTEM_URL, - WalletContextNew, - WalletItem, - useWalletNew -}; -//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/index.mjs.map b/packages/wallet-adapter-react-new/dist/index.mjs.map deleted file mode 100644 index 337206f7..00000000 --- a/packages/wallet-adapter-react-new/dist/index.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.tsx","../src/WalletProviderNew.tsx","../src/useWalletNew.tsx","../src/components/AboutAptosConnect.tsx","../src/graphics/LinkGraphic.tsx","../src/graphics/WalletGraphic.tsx","../src/graphics/Web3Graphic.tsx","../src/components/utils.tsx","../src/components/AptosPrivacyPolicy.tsx","../src/graphics/SmallAptosLogo.tsx","../src/components/WalletItem.tsx"],"sourcesContent":["export * from \"@aptos-labs/wallet-adapter-core-new\";\nexport * from \"./WalletProviderNew\";\nexport * from \"./components/AboutAptosConnect\";\nexport * from \"./components/AptosPrivacyPolicy\";\nexport * from \"./components/WalletItem\";\nexport * from \"./useWalletNew\";\n","import {\n AvailableWallets,\n DappConfig,\n AccountInfo,\n AdapterWallet,\n NetworkInfo,\n WalletCoreNew,\n InputTransactionData,\n AptosSignAndSubmitTransactionOutput,\n AnyRawTransaction,\n InputGenerateTransactionOptions,\n AccountAuthenticator,\n AptosSignTransactionOutputV1_1,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AdapterNotDetectedWallet,\n} from \"@aptos-labs/wallet-adapter-core-new\";\nimport { ReactNode, FC, useState, useEffect, useCallback } from \"react\";\nimport { WalletContextNew } from \"./useWalletNew\";\n\nexport interface AptosWalletProviderPropsNew {\n children: ReactNode;\n optInWallets?: ReadonlyArray;\n autoConnect?: boolean;\n dappConfig?: DappConfig;\n disableTelemetry?: boolean;\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: AdapterWallet | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\nexport const AptosWalletAdapterProviderNew: FC = ({\n children,\n optInWallets,\n autoConnect = false,\n dappConfig,\n disableTelemetry = false,\n onError,\n}: AptosWalletProviderPropsNew) => {\n const [{ account, network, connected, wallet }, setState] =\n useState(initialState);\n\n const [isLoading, setIsLoading] = useState(true);\n const [walletCore, setWalletCore] = useState();\n\n const [wallets, setWallets] = useState>([]);\n const [notDetectedWallets, setNotDetectedWallets] = useState<\n ReadonlyArray\n >([]);\n // Initialize WalletCore on first load\n useEffect(() => {\n const walletCore = new WalletCoreNew(\n optInWallets,\n dappConfig,\n disableTelemetry\n );\n setWalletCore(walletCore);\n }, []);\n\n // Update initial Wallets state once WalletCore has been initialized\n useEffect(() => {\n setWallets(walletCore?.wallets ?? []);\n setNotDetectedWallets(walletCore?.notDetectedWallets ?? []);\n }, [walletCore]);\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as string);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, [autoConnect, wallets]);\n\n const connect = async (walletName: string): Promise => {\n try {\n setIsLoading(true);\n await walletCore?.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async (): Promise => {\n try {\n await walletCore?.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ): Promise => {\n try {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transactionOrPayload: AnyRawTransaction | InputTransactionData,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions & {\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n }\n ): Promise => {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n try {\n return await walletCore.signTransaction(\n transactionOrPayload,\n asFeePayer,\n options\n );\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: AptosSignMessageInput\n ): Promise => {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n try {\n return await walletCore?.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: AptosSignMessageInput\n ): Promise => {\n if (!walletCore) {\n throw new Error(\"WalletCore is not initialized\");\n }\n try {\n return await walletCore?.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n // Handle the adapter's connect event\n const handleConnect = (): void => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore?.account || null,\n network: walletCore?.network || null,\n wallet: walletCore?.wallet || null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback((): void => {\n if (!connected) return;\n if (!walletCore?.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore?.account || null,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback((): void => {\n if (!connected) return;\n if (!walletCore?.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore?.network || null,\n };\n });\n }, [connected]);\n\n useEffect(() => {\n if (connected) {\n walletCore?.onAccountChange();\n walletCore?.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's disconnect event\n const handleDisconnect = (): void => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore?.account || null,\n network: walletCore?.network || null,\n wallet: null,\n };\n });\n };\n\n const handleStandardWalletsAdded = (standardWallet: AdapterWallet): void => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n const handleStandardNotDetectedWalletsAdded = (\n notDetectedWallet: AdapterNotDetectedWallet\n ): void => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == notDetectedWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setNotDetectedWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n notDetectedWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setNotDetectedWallets((wallets) => [...wallets, notDetectedWallet]);\n }\n };\n\n useEffect(() => {\n walletCore?.on(\"connect\", handleConnect);\n walletCore?.on(\"accountChange\", handleAccountChange);\n walletCore?.on(\"networkChange\", handleNetworkChange);\n walletCore?.on(\"disconnect\", handleDisconnect);\n walletCore?.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n walletCore?.on(\n \"standardNotDetectedWalletAdded\",\n handleStandardNotDetectedWalletsAdded\n );\n return () => {\n walletCore?.off(\"connect\", handleConnect);\n walletCore?.off(\"accountChange\", handleAccountChange);\n walletCore?.off(\"networkChange\", handleNetworkChange);\n walletCore?.off(\"disconnect\", handleDisconnect);\n walletCore?.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n walletCore?.off(\n \"standardNotDetectedWalletAdded\",\n handleStandardNotDetectedWalletsAdded\n );\n };\n }, [wallets, account]);\n return (\n \n {children}\n \n );\n};\n","import { useContext } from \"react\";\nimport {\n AccountAuthenticator,\n AccountInfo,\n AdapterWallet,\n AnyRawTransaction,\n AptosSignAndSubmitTransactionOutput,\n AptosSignTransactionOutputV1_1,\n InputGenerateTransactionOptions,\n InputTransactionData,\n NetworkInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AdapterNotDetectedWallet,\n} from \"@aptos-labs/wallet-adapter-core-new\";\nimport { createContext } from \"react\";\n\nexport interface WalletContextStateNew {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: string): void;\n signAndSubmitTransaction(\n transaction: InputTransactionData\n ): Promise;\n signTransaction(\n transaction: AnyRawTransaction | InputTransactionData,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions & {\n expirationSecondsFromNow?: number;\n expirationTimestamp?: number;\n }\n ): Promise;\n signMessage(message: AptosSignMessageInput): Promise;\n signMessageAndVerify(message: AptosSignMessageInput): Promise;\n disconnect(): void;\n wallet: AdapterWallet | null;\n wallets: ReadonlyArray;\n notDetectedWallets: ReadonlyArray;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContextNew = createContext(\n DEFAULT_CONTEXT as WalletContextStateNew\n);\n\nexport function useWalletNew(): WalletContextStateNew {\n const context = useContext(WalletContextNew);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import {\n Dispatch,\n ForwardRefExoticComponent,\n ReactNode,\n RefAttributes,\n SVGProps,\n SetStateAction,\n createContext,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport { LinkGraphic } from \"../graphics/LinkGraphic\";\nimport { WalletGraphic } from \"../graphics/WalletGraphic\";\nimport { Web3Graphic } from \"../graphics/Web3Graphic\";\nimport { HeadlessComponentProps, createHeadlessComponent } from \"./utils\";\n\nexport const EXPLORE_ECOSYSTEM_URL =\n \"https://aptosfoundation.org/ecosystem/projects/all\";\n\nconst AboutAptosConnectContext = createContext<{\n screenIndex: number;\n setScreenIndex: Dispatch>;\n} | null>(null);\n\nfunction useAboutAptosConnectContext(displayName: string) {\n const context = useContext(AboutAptosConnectContext);\n\n if (!context) {\n throw new Error(\n `\\`${displayName}\\` must be used within \\`AboutAptosConnect\\``\n );\n }\n\n return context;\n}\n\nconst educationScreens = [\n {\n Graphic: LinkGraphic,\n Title: createHeadlessComponent(\"EducationScreen.Title\", \"h3\", {\n children: \"A better way to login.\",\n }),\n Description: createHeadlessComponent(\"EducationScreen.Description\", \"p\", {\n children:\n \"Aptos Connect is a web3 wallet that uses a Social Login to create accounts on the Aptos blockchain.\",\n }),\n },\n {\n Graphic: WalletGraphic,\n Title: createHeadlessComponent(\"EducationScreen.Title\", \"h2\", {\n children: \"What is a wallet?\",\n }),\n Description: createHeadlessComponent(\"EducationScreen.Description\", \"p\", {\n children:\n \"Wallets are a secure way to send, receive, and interact with digital assets like cryptocurrencies & NFTs.\",\n }),\n },\n {\n Graphic: Web3Graphic,\n Title: createHeadlessComponent(\"EducationScreen.Title\", \"h2\", {\n children: \"Explore more of web3.\",\n }),\n Description: createHeadlessComponent(\"EducationScreen.Description\", \"p\", {\n children: (\n <>\n Aptos Connect lets you take one account across any application built\n on Aptos.{\" \"}\n \n Explore the ecosystem\n \n .\n \n ),\n }),\n },\n];\n\nconst educationScreenIndicators = Array(educationScreens.length)\n .fill(null)\n .map((_, index) =>\n createHeadlessComponent(\n \"AboutAptosConnect.ScreenIndicator\",\n \"button\",\n (displayName) => {\n const context = useAboutAptosConnectContext(displayName);\n const isActive = context.screenIndex - 1 === index;\n\n return {\n \"aria-label\": `Go to screen ${index + 1}`,\n \"aria-current\": isActive ? \"step\" : undefined,\n \"data-active\": isActive || undefined,\n onClick: () => {\n context.setScreenIndex(index + 1);\n },\n };\n }\n )\n );\n\nexport interface AboutAptosConnectEducationScreen {\n /** A component that renders an SVG to illustrate the idea of the current screen. */\n Graphic: ForwardRefExoticComponent<\n Omit, \"ref\"> & RefAttributes\n >;\n /** A headless component that renders the title of the current screen. */\n Title: ForwardRefExoticComponent<\n HeadlessComponentProps & RefAttributes\n >;\n /** A headless component that renders the description text of the current screen. */\n Description: ForwardRefExoticComponent<\n HeadlessComponentProps & RefAttributes\n >;\n /** The index of the current education screen. */\n screenIndex: number;\n /** The total number of education screens. */\n totalScreens: number;\n /**\n * An array of headless components for indicating the current screen of the set.\n * Each indicator will navigate the user to the screen it represents when clicked.\n */\n screenIndicators: typeof educationScreenIndicators;\n /**\n * A function that navigates the user to the previous education screen.\n * If the user is on the first education screen, they will be navigated to the\n * initial wallet selection screen.\n */\n back: () => void;\n /**\n * A function that navigates the user to the next education screen.\n * If the user is on the last education screen, they will be navigated to the\n * initial wallet selection screen.\n */\n next: () => void;\n /** A function that navigates the user to the initial wallet selection screen. */\n cancel: () => void;\n}\n\nexport interface AboutAptosConnectProps {\n /**\n * A function for defining how each education screen should be rendered.\n * Each screen is modeled as a uniform set of headless components and utilities\n * that allow you to construct your UI and apply your own styles.\n */\n renderEducationScreen: (\n screen: AboutAptosConnectEducationScreen\n ) => ReactNode;\n /**\n * The initial wallet selection UI that will be replaced by the education\n * screens when `AboutAptosConnect.Trigger` is clicked.\n */\n children?: ReactNode;\n}\n\nconst Root = ({ renderEducationScreen, children }: AboutAptosConnectProps) => {\n const [screenIndex, setScreenIndex] = useState(0);\n\n const currentEducationScreen: AboutAptosConnectEducationScreen = useMemo(\n () =>\n educationScreens.map((screen, i) => ({\n ...screen,\n screenIndex: i,\n totalScreens: educationScreens.length,\n screenIndicators: educationScreenIndicators,\n back: () => {\n setScreenIndex(screenIndex - 1);\n },\n next: () => {\n setScreenIndex(\n screenIndex === educationScreens.length ? 0 : screenIndex + 1\n );\n },\n cancel: () => {\n setScreenIndex(0);\n },\n }))[screenIndex - 1],\n [screenIndex]\n );\n\n return (\n \n {screenIndex === 0\n ? children\n : renderEducationScreen(currentEducationScreen)}\n \n );\n};\nRoot.displayName = \"AboutAptosConnect\";\n\nconst Trigger = createHeadlessComponent(\n \"AboutAptosConnect.Trigger\",\n \"button\",\n (displayName) => {\n const context = useAboutAptosConnectContext(displayName);\n\n return {\n onClick: () => {\n context.setScreenIndex(1);\n },\n };\n }\n);\n\n/**\n * A headless component for rendering education screens that explain the basics\n * of Aptos Connect and web3 wallets.\n */\nexport const AboutAptosConnect = Object.assign(Root, {\n Trigger,\n});\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const LinkGraphic = forwardRef>(\n (props, ref) => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n }\n);\nLinkGraphic.displayName = \"LinkGraphic\";\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const WalletGraphic = forwardRef>(\n (props, ref) => {\n return (\n \n \n \n \n \n \n \n );\n }\n);\nWalletGraphic.displayName = \"WalletGraphic\";\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const Web3Graphic = forwardRef>(\n (props, ref) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n);\nWeb3Graphic.displayName = \"Web3Graphic\";\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { ReactNode, cloneElement, forwardRef, isValidElement } from \"react\";\n\nexport interface HeadlessComponentProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Gets an HTML element type from its tag name\n * @example\n * HTMLElementFromTag<\"img\"> // resolved type: HTMLImageElement\n */\ntype HTMLElementFromTag =\n JSX.IntrinsicElements[T] extends React.ClassAttributes\n ? Element\n : HTMLElement;\n\nexport function createHeadlessComponent<\n TElement extends keyof JSX.IntrinsicElements,\n>(\n displayName: string,\n elementType: TElement,\n props?:\n | JSX.IntrinsicElements[TElement]\n | ((displayName: string) => JSX.IntrinsicElements[TElement]),\n) {\n const component = forwardRef<\n HTMLElementFromTag,\n HeadlessComponentProps\n >(({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : elementType;\n\n const { children: defaultChildren, ...resolvedProps } =\n typeof props === \"function\" ? props(displayName) : props ?? {};\n const resolvedChildren =\n /**\n * Use props' default children if no children are set in the component element's children and when asChild is true.\n */\n asChild && isValidElement(children) && !children.props.children\n ? cloneElement(children, {}, defaultChildren)\n : (children ?? defaultChildren);\n\n return (\n /**\n * Due to the complexity of the types at play, TypeScript reports the\n * following error for our JSX below:\n *\n * `Expression produces a union type that is too complex to represent.`\n *\n * We can safely ignore this error and retain accurate return types for\n * consumers of this function. The only drawback is that type-checking is\n * ignored for the JSX block below.\n */\n // @ts-expect-error\n \n {resolvedChildren}\n \n );\n });\n component.displayName = displayName;\n\n return component;\n}\n","import { forwardRef } from \"react\";\nimport { SmallAptosLogo } from \"../graphics/SmallAptosLogo\";\nimport { HeadlessComponentProps, createHeadlessComponent } from \"./utils\";\n\nexport const APTOS_PRIVACY_POLICY_URL = \"https://aptoslabs.com/privacy\";\n\nconst Root = createHeadlessComponent(\"AptosPrivacyPolicy.Root\", \"div\");\n\nconst Disclaimer = createHeadlessComponent(\n \"AptosPrivacyPolicy.Disclaimer\",\n \"span\",\n { children: \"By continuing, you agree to Aptos Labs'\" }\n);\n\nconst Link = createHeadlessComponent(\"AptosPrivacyPolicy.Disclaimer\", \"a\", {\n href: APTOS_PRIVACY_POLICY_URL,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: \"Privacy Policy\",\n});\n\nconst PoweredBy = forwardRef<\n HTMLDivElement,\n Pick\n>(({ className }, ref) => {\n return (\n
\n Powered by\n \n Aptos Labs\n
\n );\n});\nPoweredBy.displayName = \"AptosPrivacyPolicy.PoweredBy\";\n\n/**\n * A headless component for rendering the Aptos Labs privacy policy disclaimer\n * that should be placed under the Aptos Connect login options.\n */\nexport const AptosPrivacyPolicy = Object.assign(Root, {\n Disclaimer,\n Link,\n PoweredBy,\n});\n","import { SVGProps, forwardRef } from \"react\";\n\nexport const SmallAptosLogo = forwardRef<\n SVGSVGElement,\n SVGProps\n>((props, ref) => {\n return (\n \n \n \n );\n});\nSmallAptosLogo.displayName = \"SmallAptosLogo\";\n","import {\n AdapterNotDetectedWallet,\n AdapterWallet,\n WalletReadyState,\n isMobile,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core-new\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { createContext, forwardRef, useCallback, useContext } from \"react\";\nimport { useWalletNew } from \"../useWalletNew\";\nimport { HeadlessComponentProps, createHeadlessComponent } from \"./utils\";\n\nexport interface WalletItemProps extends HeadlessComponentProps {\n /** The wallet option to be displayed. */\n wallet: AdapterWallet | AdapterNotDetectedWallet;\n /** A callback to be invoked when the wallet is connected. */\n onConnect?: () => void;\n}\n\nfunction useWalletItemContext(displayName: string) {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(`\\`${displayName}\\` must be used within \\`WalletItem\\``);\n }\n\n return context;\n}\n\nconst WalletItemContext = createContext<{\n wallet: AdapterWallet | AdapterNotDetectedWallet;\n connectWallet: () => void;\n} | null>(null);\n\nconst Root = forwardRef(\n ({ wallet, onConnect, className, asChild, children }, ref) => {\n const { connect } = useWalletNew();\n\n const connectWallet = useCallback(() => {\n connect(wallet.name);\n onConnect?.();\n }, [connect, wallet.name, onConnect]);\n\n const isWalletReady = wallet.readyState === WalletReadyState.Installed;\n\n const mobileSupport =\n \"features\" in wallet &&\n \"aptos:openInMobileApp\" in (wallet as AdapterWallet).features &&\n (wallet as AdapterWallet).features[\"aptos:openInMobileApp\"]\n ?.openInMobileApp;\n\n if (isMobile()) {\n if (!isWalletReady && isRedirectable() && !mobileSupport) return null;\n }\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n \n \n {children}\n \n \n );\n }\n);\nRoot.displayName = \"WalletItem\";\n\nconst Icon = createHeadlessComponent(\n \"WalletItem.Icon\",\n \"img\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n src: context.wallet.icon,\n alt: `${context.wallet.name} icon`,\n };\n }\n);\n\nconst Name = createHeadlessComponent(\n \"WalletItem.Name\",\n \"div\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n children: context.wallet.name,\n };\n }\n);\n\nconst ConnectButton = createHeadlessComponent(\n \"WalletItem.ConnectButton\",\n \"button\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n onClick: context.connectWallet,\n children: \"Connect\",\n };\n }\n);\n\nconst InstallLink = createHeadlessComponent(\n \"WalletItem.InstallLink\",\n \"a\",\n (displayName) => {\n const context = useWalletItemContext(displayName);\n\n return {\n href: context.wallet.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: \"Install\",\n };\n }\n);\n\n/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */\nexport const WalletItem = Object.assign(Root, {\n Icon,\n Name,\n ConnectButton,\n InstallLink,\n});\n"],"mappings":"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","names":["walletCore","wallet","wallets","createContext","useContext","useState","jsx","forwardRef","jsx","jsxs","forwardRef","jsx","jsxs","forwardRef","jsx","jsx","jsxs","createContext","useContext","useState","forwardRef","forwardRef","jsx","jsx","jsxs","Root","forwardRef","Slot","createContext","forwardRef","useCallback","useContext","jsx","useContext","createContext","Root","forwardRef","useCallback","Slot"]} \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/useWalletNew.d.ts b/packages/wallet-adapter-react-new/dist/useWalletNew.d.ts deleted file mode 100644 index ea297f74..00000000 --- a/packages/wallet-adapter-react-new/dist/useWalletNew.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -/// -import { AccountAuthenticator, AccountInfo, AdapterWallet, AnyRawTransaction, AptosSignAndSubmitTransactionOutput, AptosSignTransactionOutputV1_1, InputGenerateTransactionOptions, InputTransactionData, NetworkInfo, AptosSignMessageInput, AptosSignMessageOutput, AdapterNotDetectedWallet } from "@aptos-labs/wallet-adapter-core-new"; -export interface WalletContextStateNew { - connected: boolean; - isLoading: boolean; - account: AccountInfo | null; - network: NetworkInfo | null; - connect(walletName: string): void; - signAndSubmitTransaction(transaction: InputTransactionData): Promise; - signTransaction(transaction: AnyRawTransaction | InputTransactionData, asFeePayer?: boolean, options?: InputGenerateTransactionOptions & { - expirationSecondsFromNow?: number; - expirationTimestamp?: number; - }): Promise; - signMessage(message: AptosSignMessageInput): Promise; - signMessageAndVerify(message: AptosSignMessageInput): Promise; - disconnect(): void; - wallet: AdapterWallet | null; - wallets: ReadonlyArray; - notDetectedWallets: ReadonlyArray; -} -export declare const WalletContextNew: import("react").Context; -export declare function useWalletNew(): WalletContextStateNew; -//# sourceMappingURL=useWalletNew.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-react-new/dist/useWalletNew.d.ts.map b/packages/wallet-adapter-react-new/dist/useWalletNew.d.ts.map deleted file mode 100644 index 0f90b0ac..00000000 --- a/packages/wallet-adapter-react-new/dist/useWalletNew.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"useWalletNew.d.ts","sourceRoot":"","sources":["../src/useWalletNew.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,mCAAmC,EACnC,8BAA8B,EAC9B,+BAA+B,EAC/B,oBAAoB,EACpB,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,qCAAqC,CAAC;AAG7C,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,wBAAwB,CACtB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAChD,eAAe,CACb,WAAW,EAAE,iBAAiB,GAAG,oBAAoB,EACrD,UAAU,CAAC,EAAE,OAAO,EACpB,OAAO,CAAC,EAAE,+BAA+B,GAAG;QAC1C,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,GACA,OAAO,CAAC,oBAAoB,GAAG,8BAA8B,CAAC,CAAC;IAClE,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7E,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,UAAU,IAAI,IAAI,CAAC;IACnB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACtC,kBAAkB,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;CAC7D;AAMD,eAAO,MAAM,gBAAgB,gDAE5B,CAAC;AAEF,wBAAgB,YAAY,IAAI,qBAAqB,CAMpD"} \ No newline at end of file diff --git a/packages/wallet-adapter-swap/src/MultiChain.tsx b/packages/wallet-adapter-swap/src/MultiChain.tsx index cd3eabab..9ed333c6 100644 --- a/packages/wallet-adapter-swap/src/MultiChain.tsx +++ b/packages/wallet-adapter-swap/src/MultiChain.tsx @@ -39,7 +39,7 @@ import { ChainSelect } from "./components/ChainSelect"; import { Input } from "./ui/input"; import { Signer } from "./signer/Signer"; import { sleep } from "./signer/SolanaSigner"; -import { Progress } from "./ui/progress"; + import { EthereumWalletSelector } from "./components/walletSelector/ethereum/EthereumWalletSelector"; import USDC from "./icons/USDC"; import { logger } from "./utils/logger"; @@ -72,7 +72,7 @@ export interface MultiChainProps { export const MultiChain: FC = ({ feePayerAccount = undefined, - dappConfig, + dappConfig = undefined, }) => { const isMainnet = dappConfig?.network === AptosNetwork.MAINNET; const chainToken = isMainnet ? mainnetChainTokens : testnetChainTokens; From c82356138fac040227ddbb3660bc435737314add Mon Sep 17 00:00:00 2001 From: maayan Date: Fri, 14 Feb 2025 09:23:50 -0500 Subject: [PATCH 6/7] Introduce cross chain adapter --- apps/nextjs-example/next.config.mjs | 6 +- apps/nextjs-example/package.json | 3 +- .../components/walletSelector/WalletItem.tsx | 56 +- .../walletSelector/WalletSelector.tsx | 156 + .../src/app/swap}/icons/USDC.tsx | 0 .../src/app/swap/icons/chainToIcon.ts | 25 + .../src/app/swap/icons/index.tsx | 2 + apps/nextjs-example/src/app/swap/layout.tsx | 26 + apps/nextjs-example/src/app/swap/page.tsx | 399 +- .../src/components}/ui/input.tsx | 0 package.json | 2 +- .../cross-chain-core}/.eslintrc.js | 0 .../cross-chain/cross-chain-core/.gitignore | 3 + .../cross-chain/cross-chain-core/.npmignore | 5 + .../cross-chain-core/dist/CrossChainCore.d.ts | 25 - .../dist/CrossChainCore.d.ts.map | 1 - .../cross-chain-core/dist/index.d.ts.map | 1 - .../cross-chain-core/dist/index.js | 899 - .../cross-chain-core/dist/index.js.map | 1 - .../cross-chain-core/dist/index.mjs | 874 - .../cross-chain-core/dist/index.mjs.map | 1 - .../providers/wormhole/config/index.d.ts.map | 1 - .../wormhole/config/mainnet/chains.d.ts | 17 - .../wormhole/config/mainnet/chains.d.ts.map | 1 - .../wormhole/config/mainnet/index.d.ts.map | 1 - .../wormhole/config/mainnet/tokens.d.ts | 4 - .../wormhole/config/mainnet/tokens.d.ts.map | 1 - .../wormhole/config/testnet/chains.d.ts | 19 - .../wormhole/config/testnet/chains.d.ts.map | 1 - .../wormhole/config/testnet/index.d.ts.map | 1 - .../wormhole/config/testnet/tokens.d.ts | 4 - .../wormhole/config/testnet/tokens.d.ts.map | 1 - .../dist/providers/wormhole/config/types.d.ts | 46 - .../providers/wormhole/config/types.d.ts.map | 1 - .../dist/providers/wormhole/index.d.ts | 54 - .../dist/providers/wormhole/index.d.ts.map | 1 - .../wormhole/signers/AptosLocalSigner.d.ts | 17 - .../signers/AptosLocalSigner.d.ts.map | 1 - .../wormhole/signers/EthereumSigner.d.ts | 5 - .../wormhole/signers/EthereumSigner.d.ts.map | 1 - .../wormhole/signers/SolanaSigner.d.ts | 27 - .../wormhole/signers/SolanaSigner.d.ts.map | 1 - .../providers/wormhole/signers/SuiSigner.d.ts | 5 - .../wormhole/signers/SuiSigner.d.ts.map | 1 - .../providers/wormhole/signers/index.d.ts | 15 - .../providers/wormhole/signers/index.d.ts.map | 1 - .../wormhole/utils/chains/index.d.ts | 3 - .../wormhole/utils/chains/index.d.ts.map | 1 - .../wormhole/utils/chains/mainnet/index.d.ts | 60 - .../utils/chains/mainnet/index.d.ts.map | 1 - .../wormhole/utils/chains/testnet/index.d.ts | 65 - .../utils/chains/testnet/index.d.ts.map | 1 - .../wormhole/utils/tokens/index.d.ts | 3 - .../wormhole/utils/tokens/index.d.ts.map | 1 - .../wormhole/utils/tokens/mainnet.d.ts | 15 - .../wormhole/utils/tokens/mainnet.d.ts.map | 1 - .../wormhole/utils/tokens/testnet.d.ts | 11 - .../wormhole/utils/tokens/testnet.d.ts.map | 1 - .../dist/signers/AptosLocalSigner.d.ts | 17 - .../dist/signers/AptosLocalSigner.d.ts.map | 1 - .../dist/signers/EthereumSigner.d.ts | 5 - .../dist/signers/EthereumSigner.d.ts.map | 1 - .../dist/signers/SolanaSigner.d.ts | 27 - .../dist/signers/SolanaSigner.d.ts.map | 1 - .../cross-chain-core/dist/signers/index.d.ts | 14 - .../dist/signers/index.d.ts.map | 1 - .../dist/utils/chains/index.d.ts | 3 - .../dist/utils/chains/index.d.ts.map | 1 - .../dist/utils/chains/mainnet/index.d.ts | 45 - .../dist/utils/chains/mainnet/index.d.ts.map | 1 - .../dist/utils/chains/testnet/index.d.ts | 50 - .../dist/utils/chains/testnet/index.d.ts.map | 1 - .../cross-chain-core/dist/utils/logger.d.ts | 6 - .../dist/utils/logger.d.ts.map | 1 - .../dist/utils/tokens/mainnet.d.ts | 15 - .../dist/utils/tokens/mainnet.d.ts.map | 1 - .../dist/utils/tokens/testnet.d.ts | 11 - .../dist/utils/tokens/testnet.d.ts.map | 1 - .../cross-chain-core/dist/version.d.ts | 2 - .../cross-chain-core/dist/version.d.ts.map | 1 - .../cross-chain-core/dist/wallets/aptos.d.ts | 10 - .../dist/wallets/aptos.d.ts.map | 1 - .../cross-chain-core/dist/wallets/core.d.ts | 1 - .../dist/wallets/core.d.ts.map | 1 - .../cross-chain-core/dist/wallets/evm.d.ts | 1 - .../dist/wallets/evm.d.ts.map | 1 - .../cross-chain-core/dist/wallets/index.d.ts | 1 - .../dist/wallets/index.d.ts.map | 1 - .../cross-chain-core/dist/wallets/solana.d.ts | 1 - .../dist/wallets/solana.d.ts.map | 1 - .../cross-chain-core/dist/wallets/sui.d.ts | 1 - .../dist/wallets/sui.d.ts.map | 1 - .../cross-chain/cross-chain-core/package.json | 80 + .../cross-chain-core/src/CrossChainCore.ts | 60 + .../{dist/index.d.ts => src/index.ts} | 1 - .../providers/wormhole/config/index.ts} | 1 - .../wormhole/config/mainnet/chains.ts} | 27 +- .../wormhole/config/mainnet/index.ts} | 1 - .../wormhole/config/mainnet/tokens.ts} | 28 +- .../wormhole/config/testnet/chains.ts} | 29 +- .../wormhole/config/testnet/index.ts} | 1 - .../wormhole/config/testnet/tokens.ts} | 16 +- .../src/providers/wormhole/config/types.ts | 50 + .../src/providers/wormhole/index.ts | 340 + .../wormhole/signers}/AptosLocalSigner.ts | 51 +- .../wormhole/signers}/EthereumSigner.ts | 27 +- .../wormhole/signers}/SolanaSigner.ts | 116 +- .../providers/wormhole/signers/SuiSigner.ts | 22 + .../src/providers/wormhole/signers/index.ts | 101 + .../cross-chain-core}/src/utils/logger.ts | 0 .../cross-chain-core/src/wallets/sui.ts | 112 + .../cross-chain-core/tsconfig.json | 12 + .../cross-chain-react/.eslintrc.js | 4 + .../cross-chain-react}/.gitignore | 0 .../cross-chain-react}/.npmignore | 0 .../dist/WalletProvider.d.ts | 14 - .../dist/WalletProvider.d.ts.map | 1 - .../dist/components/EthereumWalletItem.d.ts | 1 - .../components/EthereumWalletItem.d.ts.map | 1 - .../dist/components/SolanaWalletItem.d.ts | 1 - .../dist/components/SolanaWalletItem.d.ts.map | 1 - .../cross-chain-react/dist/index.d.ts.map | 1 - .../cross-chain-react/dist/index.js | 192 - .../cross-chain-react/dist/index.js.map | 1 - .../cross-chain-react/dist/index.mjs | 166 - .../cross-chain-react/dist/index.mjs.map | 1 - .../cross-chain-react/dist/useWallet.d.ts | 24 - .../cross-chain-react/dist/useWallet.d.ts.map | 1 - .../cross-chain-react/package.json | 63 + .../cross-chain-react/src/WalletProvider.tsx | 217 + .../{dist/index.d.ts => src/index.tsx} | 1 - .../cross-chain-react/src/useWallet.tsx | 50 + .../cross-chain-react/tsconfig.json | 9 + .../aptos/.eslintrc.js | 4 + .../aptos/.gitignore | 1 + .../aptos/.npmignore | 4 + .../aptos/dist/index.d.ts | 39 - .../aptos/dist/index.d.ts.map | 1 - .../aptos/dist/index.js | 118 - .../aptos/dist/index.js.map | 1 - .../aptos/dist/index.mjs | 99 - .../aptos/dist/index.mjs.map | 1 - .../aptos/package.json | 56 + .../aptos/src/index.ts | 156 + .../aptos/tsconfig.json | 9 + .../core/.eslintrc.js | 4 + .../wallet-adapter-aggregator/core/.gitignore | 1 + .../wallet-adapter-aggregator/core/.npmignore | 4 + .../core/dist/index.d.ts | 41 - .../core/dist/index.d.ts.map | 1 - .../core/dist/index.js | 52 - .../core/dist/index.js.map | 1 - .../core/dist/index.mjs | 20 - .../core/dist/index.mjs.map | 1 - .../core/package.json | 54 + .../core/src/index.ts | 74 + .../core/tsconfig.json | 9 + .../eip6963/.eslintrc.js | 4 + .../eip6963/.gitignore | 1 + .../eip6963/.npmignore | 4 + .../eip6963/dist/index.d.ts | 72 - .../eip6963/dist/index.d.ts.map | 1 - .../eip6963/dist/index.js | 348 - .../eip6963/dist/index.js.map | 1 - .../eip6963/dist/index.mjs | 329 - .../eip6963/dist/index.mjs.map | 1 - .../eip6963/dist/index2.d.ts | 26 - .../eip6963/dist/index2.d.ts.map | 1 - .../eip6963/dist/utils.d.ts | 3 - .../eip6963/dist/utils.d.ts.map | 1 - .../eip6963/package.json | 56 + .../eip6963/src/index.ts | 238 + .../eip6963/src/utils.ts | 229 + .../eip6963/tsconfig.json | 9 + .../solana/.eslintrc.js | 4 + .../solana/.gitignore | 1 + .../solana/.npmignore | 4 + .../solana/dist/index.d.ts | 37 - .../solana/dist/index.d.ts.map | 1 - .../solana/dist/index.js | 292 - .../solana/dist/index.js.map | 1 - .../solana/dist/index.mjs | 281 - .../solana/dist/index.mjs.map | 1 - .../solana/dist/utils.d.ts | 4 - .../solana/dist/utils.d.ts.map | 1 - .../solana/package.json | 59 + .../solana/src/index.ts | 161 + .../solana/src/utils.ts | 201 + .../solana/tsconfig.json | 9 + packages/wallet-adapter-swap/.env | 0 packages/wallet-adapter-swap/CHANGELOG.md | 687 - packages/wallet-adapter-swap/README.md | 283 - packages/wallet-adapter-swap/components.json | 18 - packages/wallet-adapter-swap/package.json | 95 - .../wallet-adapter-swap/postcss.config.js | 3 - .../wallet-adapter-swap/src/MultiChain.tsx | 665 - .../src/components/ChainSelect.tsx | 93 - .../src/components/Spinner.tsx | 0 .../walletSelector/aptos/WalletSelector.tsx | 298 - .../ethereum/EthereumWalletItem.tsx | 192 - .../ethereum/EthereumWalletSelector.tsx | 189 - .../solana/SolanaWalletSelector.tsx | 188 - packages/wallet-adapter-swap/src/config.json | 0 packages/wallet-adapter-swap/src/global.css | 59 - .../wallet-adapter-swap/src/icons/Aptos.tsx | 14 - .../src/icons/Ethereum.tsx | 60 - .../wallet-adapter-swap/src/icons/Solana.tsx | 42 - packages/wallet-adapter-swap/src/index.tsx | 1 - packages/wallet-adapter-swap/src/lib/utils.ts | 6 - .../src/signer/AptosSigner.ts | 144 - .../wallet-adapter-swap/src/signer/Signer.ts | 117 - .../wallet-adapter-swap/src/ui/button.tsx | 56 - packages/wallet-adapter-swap/src/ui/card.tsx | 86 - .../src/ui/collapsible.tsx | 9 - .../wallet-adapter-swap/src/ui/dialog.tsx | 120 - .../src/ui/dropdown-menu.tsx | 198 - .../wallet-adapter-swap/src/ui/progress.tsx | 28 - .../wallet-adapter-swap/src/ui/select.tsx | 158 - packages/wallet-adapter-swap/src/ui/toast.tsx | 127 - .../wallet-adapter-swap/src/ui/use-toast.ts | 189 - .../wallet-adapter-swap/src/utils/index.ts | 4 - .../wallet-adapter-swap/tailwind.config.d.ts | 84 - .../tailwind.config.d.ts.map | 1 - .../wallet-adapter-swap/tailwind.config.ts | 79 - packages/wallet-adapter-swap/tsconfig.json | 14 - pnpm-lock.yaml | 21088 ++++++++++++++++ pnpm-workspace.yaml | 2 +- turbo.json | 4 +- 228 files changed, 24365 insertions(+), 9094 deletions(-) rename packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletItem.tsx => apps/nextjs-example/src/app/swap/components/walletSelector/WalletItem.tsx (76%) create mode 100644 apps/nextjs-example/src/app/swap/components/walletSelector/WalletSelector.tsx rename {packages/wallet-adapter-swap/src => apps/nextjs-example/src/app/swap}/icons/USDC.tsx (100%) create mode 100644 apps/nextjs-example/src/app/swap/icons/chainToIcon.ts create mode 100644 apps/nextjs-example/src/app/swap/icons/index.tsx create mode 100644 apps/nextjs-example/src/app/swap/layout.tsx rename {packages/wallet-adapter-swap/src => apps/nextjs-example/src/components}/ui/input.tsx (100%) rename packages/{wallet-adapter-swap => cross-chain/cross-chain-core}/.eslintrc.js (100%) create mode 100644 packages/cross-chain/cross-chain-core/.gitignore create mode 100644 packages/cross-chain/cross-chain-core/.npmignore delete mode 100644 packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/index.js delete mode 100644 packages/cross-chain/cross-chain-core/dist/index.js.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/index.mjs delete mode 100644 packages/cross-chain/cross-chain-core/dist/index.mjs.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/signers/index.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/signers/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/version.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/version.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts delete mode 100644 packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts.map create mode 100644 packages/cross-chain/cross-chain-core/package.json create mode 100644 packages/cross-chain/cross-chain-core/src/CrossChainCore.ts rename packages/cross-chain/cross-chain-core/{dist/index.d.ts => src/index.ts} (82%) rename packages/cross-chain/cross-chain-core/{dist/providers/wormhole/config/index.d.ts => src/providers/wormhole/config/index.ts} (69%) rename packages/{wallet-adapter-swap/src/utils/chains/mainnet/index.ts => cross-chain/cross-chain-core/src/providers/wormhole/config/mainnet/chains.ts} (60%) rename packages/cross-chain/cross-chain-core/{dist/providers/wormhole/config/mainnet/index.d.ts => src/providers/wormhole/config/mainnet/index.ts} (59%) rename packages/{wallet-adapter-swap/src/utils/tokens/mainnet.ts => cross-chain/cross-chain-core/src/providers/wormhole/config/mainnet/tokens.ts} (58%) rename packages/{wallet-adapter-swap/src/utils/chains/testnet/index.ts => cross-chain/cross-chain-core/src/providers/wormhole/config/testnet/chains.ts} (70%) rename packages/cross-chain/cross-chain-core/{dist/providers/wormhole/config/testnet/index.d.ts => src/providers/wormhole/config/testnet/index.ts} (59%) rename packages/{wallet-adapter-swap/src/utils/tokens/testnet.ts => cross-chain/cross-chain-core/src/providers/wormhole/config/testnet/tokens.ts} (66%) create mode 100644 packages/cross-chain/cross-chain-core/src/providers/wormhole/config/types.ts create mode 100644 packages/cross-chain/cross-chain-core/src/providers/wormhole/index.ts rename packages/{wallet-adapter-swap/src/signer => cross-chain/cross-chain-core/src/providers/wormhole/signers}/AptosLocalSigner.ts (70%) rename packages/{wallet-adapter-swap/src/signer => cross-chain/cross-chain-core/src/providers/wormhole/signers}/EthereumSigner.ts (54%) rename packages/{wallet-adapter-swap/src/signer => cross-chain/cross-chain-core/src/providers/wormhole/signers}/SolanaSigner.ts (78%) create mode 100644 packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/SuiSigner.ts create mode 100644 packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/index.ts rename packages/{wallet-adapter-swap => cross-chain/cross-chain-core}/src/utils/logger.ts (100%) create mode 100644 packages/cross-chain/cross-chain-core/src/wallets/sui.ts create mode 100644 packages/cross-chain/cross-chain-core/tsconfig.json create mode 100644 packages/cross-chain/cross-chain-react/.eslintrc.js rename packages/{wallet-adapter-swap => cross-chain/cross-chain-react}/.gitignore (100%) rename packages/{wallet-adapter-swap => cross-chain/cross-chain-react}/.npmignore (100%) delete mode 100644 packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts delete mode 100644 packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts delete mode 100644 packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts delete mode 100644 packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-react/dist/index.d.ts.map delete mode 100644 packages/cross-chain/cross-chain-react/dist/index.js delete mode 100644 packages/cross-chain/cross-chain-react/dist/index.js.map delete mode 100644 packages/cross-chain/cross-chain-react/dist/index.mjs delete mode 100644 packages/cross-chain/cross-chain-react/dist/index.mjs.map delete mode 100644 packages/cross-chain/cross-chain-react/dist/useWallet.d.ts delete mode 100644 packages/cross-chain/cross-chain-react/dist/useWallet.d.ts.map create mode 100644 packages/cross-chain/cross-chain-react/package.json create mode 100644 packages/cross-chain/cross-chain-react/src/WalletProvider.tsx rename packages/cross-chain/cross-chain-react/{dist/index.d.ts => src/index.tsx} (75%) create mode 100644 packages/cross-chain/cross-chain-react/src/useWallet.tsx create mode 100644 packages/cross-chain/cross-chain-react/tsconfig.json create mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/.eslintrc.js create mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/.gitignore create mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/.npmignore delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts.map delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js.map delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/package.json create mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/src/index.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/aptos/tsconfig.json create mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/.eslintrc.js create mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/.gitignore create mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/.npmignore delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts.map delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js.map delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/package.json create mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/src/index.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/core/tsconfig.json create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/.eslintrc.js create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/.gitignore create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/.npmignore delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts.map delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js.map delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs.map delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts.map delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/package.json create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/src/index.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/src/utils.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/eip6963/tsconfig.json create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/.eslintrc.js create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/.gitignore create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/.npmignore delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts.map delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js.map delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs.map delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts delete mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts.map create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/package.json create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/src/index.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/src/utils.ts create mode 100644 packages/cross-chain/wallet-adapter-aggregator/solana/tsconfig.json delete mode 100644 packages/wallet-adapter-swap/.env delete mode 100644 packages/wallet-adapter-swap/CHANGELOG.md delete mode 100644 packages/wallet-adapter-swap/README.md delete mode 100644 packages/wallet-adapter-swap/components.json delete mode 100644 packages/wallet-adapter-swap/package.json delete mode 100644 packages/wallet-adapter-swap/postcss.config.js delete mode 100644 packages/wallet-adapter-swap/src/MultiChain.tsx delete mode 100644 packages/wallet-adapter-swap/src/components/ChainSelect.tsx delete mode 100644 packages/wallet-adapter-swap/src/components/Spinner.tsx delete mode 100644 packages/wallet-adapter-swap/src/components/walletSelector/aptos/WalletSelector.tsx delete mode 100644 packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletItem.tsx delete mode 100644 packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletSelector.tsx delete mode 100644 packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletSelector.tsx delete mode 100644 packages/wallet-adapter-swap/src/config.json delete mode 100644 packages/wallet-adapter-swap/src/global.css delete mode 100644 packages/wallet-adapter-swap/src/icons/Aptos.tsx delete mode 100644 packages/wallet-adapter-swap/src/icons/Ethereum.tsx delete mode 100644 packages/wallet-adapter-swap/src/icons/Solana.tsx delete mode 100644 packages/wallet-adapter-swap/src/index.tsx delete mode 100644 packages/wallet-adapter-swap/src/lib/utils.ts delete mode 100644 packages/wallet-adapter-swap/src/signer/AptosSigner.ts delete mode 100644 packages/wallet-adapter-swap/src/signer/Signer.ts delete mode 100644 packages/wallet-adapter-swap/src/ui/button.tsx delete mode 100644 packages/wallet-adapter-swap/src/ui/card.tsx delete mode 100644 packages/wallet-adapter-swap/src/ui/collapsible.tsx delete mode 100644 packages/wallet-adapter-swap/src/ui/dialog.tsx delete mode 100644 packages/wallet-adapter-swap/src/ui/dropdown-menu.tsx delete mode 100644 packages/wallet-adapter-swap/src/ui/progress.tsx delete mode 100644 packages/wallet-adapter-swap/src/ui/select.tsx delete mode 100644 packages/wallet-adapter-swap/src/ui/toast.tsx delete mode 100644 packages/wallet-adapter-swap/src/ui/use-toast.ts delete mode 100644 packages/wallet-adapter-swap/src/utils/index.ts delete mode 100644 packages/wallet-adapter-swap/tailwind.config.d.ts delete mode 100644 packages/wallet-adapter-swap/tailwind.config.d.ts.map delete mode 100644 packages/wallet-adapter-swap/tailwind.config.ts delete mode 100644 packages/wallet-adapter-swap/tsconfig.json create mode 100644 pnpm-lock.yaml diff --git a/apps/nextjs-example/next.config.mjs b/apps/nextjs-example/next.config.mjs index cb2aba4c..de34ce32 100644 --- a/apps/nextjs-example/next.config.mjs +++ b/apps/nextjs-example/next.config.mjs @@ -2,11 +2,11 @@ const isProd = process.env.NODE_ENV === "production"; /** @type {import('next').NextConfig} */ const nextConfig = { - output: "export", + output: "npx serve@latest out", reactStrictMode: true, transpilePackages: ["wallet-adapter-react", "wallet-adapter-plugin"], - assetPrefix: isProd ? "/aptos-wallet-adapter" : "", - basePath: isProd ? "/aptos-wallet-adapter" : "", + assetPrefix: isProd ? "/aptos-wallet-adapter/nextjs-example-testing" : "", + basePath: isProd ? "/aptos-wallet-adapter/nextjs-example-testing" : "", webpack: (config) => { config.resolve.fallback = { "@solana/web3.js": false }; return config; diff --git a/apps/nextjs-example/package.json b/apps/nextjs-example/package.json index 2fcc85e3..4472aa35 100644 --- a/apps/nextjs-example/package.json +++ b/apps/nextjs-example/package.json @@ -17,7 +17,8 @@ "@aptos-labs/wallet-adapter-mui-design": "workspace:*", "@aptos-labs/wallet-adapter-react": "workspace:*", "@aptos-labs/wallet-standard": "^0.3.0", - "@aptos-labs/wallet-adapter-swap": "workspace:*", + "@aptos-labs/wallet-adapter-aggregator-core": "workspace:*", + "@aptos-labs/cross-chain-react": "workspace:*", "@radix-ui/react-collapsible": "^1.0.3", "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-dropdown-menu": "^2.0.6", diff --git a/packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletItem.tsx b/apps/nextjs-example/src/app/swap/components/walletSelector/WalletItem.tsx similarity index 76% rename from packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletItem.tsx rename to apps/nextjs-example/src/app/swap/components/walletSelector/WalletItem.tsx index b451fdd1..4d3c0323 100644 --- a/packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletItem.tsx +++ b/apps/nextjs-example/src/app/swap/components/walletSelector/WalletItem.tsx @@ -1,3 +1,7 @@ +"use client"; + +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; +import { useCrossChainWallet } from "@aptos-labs/cross-chain-react"; import { Slot } from "@radix-ui/react-slot"; import { cloneElement, @@ -8,36 +12,36 @@ import { useCallback, useContext, } from "react"; -import { SolanaWallet } from "@xlabs-libs/wallet-aggregator-solana"; +import { useToast } from "@/components/ui/use-toast"; export interface WalletItemProps extends HeadlessComponentProps { /** The wallet option to be displayed. */ - wallet: SolanaWallet; + wallet: AdapterWallet; /** A callback to be invoked when the wallet is connected. */ onConnect?: () => void; } -function useSolanaWalletItemContext(displayName: string) { - const context = useContext(SolanaWalletItemContext); +function useWalletItemContext(displayName: string) { + const context = useContext(WalletItemContext); if (!context) { - throw new Error( - `\`${displayName}\` must be used within \`SolanaWalletItem\`` - ); + throw new Error(`\`${displayName}\` must be used within \`WalletItem\``); } return context; } -const SolanaWalletItemContext = createContext<{ - wallet: SolanaWallet; +const WalletItemContext = createContext<{ + wallet: AdapterWallet; connectWallet: () => void; } | null>(null); const Root = forwardRef( ({ wallet, onConnect, className, asChild, children }, ref) => { + const { connect } = useCrossChainWallet(); + const { toast } = useToast(); const connectWallet = useCallback(async () => { - await wallet.connect(); + await connect(wallet); onConnect?.(); }, [wallet, onConnect]); @@ -53,46 +57,46 @@ const Root = forwardRef( const Component = asChild ? Slot : "div"; return ( - + {children} - + ); } ); -Root.displayName = "SolanaWalletItem"; +Root.displayName = "WalletItem"; const Icon = createHeadlessComponent( - "SolanaWalletItem.Icon", + "WalletItem.Icon", "img", (displayName) => { - const context = useSolanaWalletItemContext(displayName); + const context = useWalletItemContext(displayName); return { - src: context.wallet.getIcon(), - alt: `${context.wallet.getName()} icon`, + src: context.wallet.icon, + alt: `${context.wallet.name} icon`, }; } ); const Name = createHeadlessComponent( - "SolanaWalletItem.Name", + "WalletItem.Name", "div", (displayName) => { - const context = useSolanaWalletItemContext(displayName); + const context = useWalletItemContext(displayName); return { - children: context.wallet.getName(), + children: context.wallet.name, }; } ); const ConnectButton = createHeadlessComponent( - "SolanaWalletItem.ConnectButton", + "WalletItem.ConnectButton", "button", (displayName) => { - const context = useSolanaWalletItemContext(displayName); + const context = useWalletItemContext(displayName); return { onClick: context.connectWallet, @@ -102,13 +106,13 @@ const ConnectButton = createHeadlessComponent( ); const InstallLink = createHeadlessComponent( - "SolanaWalletItem.InstallLink", + "WalletItem.InstallLink", "a", (displayName) => { - const context = useSolanaWalletItemContext(displayName); + const context = useWalletItemContext(displayName); return { - href: context.wallet.getUrl(), + href: context.wallet.url, target: "_blank", rel: "noopener noreferrer", children: "Install", @@ -117,7 +121,7 @@ const InstallLink = createHeadlessComponent( ); /** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */ -export const SolanaWalletItem = Object.assign(Root, { +export const WalletItem = Object.assign(Root, { Icon, Name, ConnectButton, diff --git a/apps/nextjs-example/src/app/swap/components/walletSelector/WalletSelector.tsx b/apps/nextjs-example/src/app/swap/components/walletSelector/WalletSelector.tsx new file mode 100644 index 00000000..7eb265b5 --- /dev/null +++ b/apps/nextjs-example/src/app/swap/components/walletSelector/WalletSelector.tsx @@ -0,0 +1,156 @@ +"use client"; + +import { Copy, LogOut } from "lucide-react"; +import { useCallback, useEffect, useState } from "react"; + +import { useToast } from "@/components/ui/use-toast"; +import { useCrossChainWallet } from "@aptos-labs/cross-chain-react"; +import { Button } from "@/components/ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; +import { + Dialog, + DialogContent, + DialogTitle, + DialogTrigger, +} from "@/components/ui/dialog"; +import { Chain } from "@aptos-labs/cross-chain-react"; +import { WalletItem } from "./WalletItem"; +import { + AdapterWallet, + WalletReadyState, +} from "@aptos-labs/wallet-adapter-aggregator-core"; + +export function WalletSelector({ + transactionInProgress, + sourceChain, +}: { + transactionInProgress: boolean; + sourceChain: Chain | null; +}) { + const { connected, disconnect, wallet, account } = useCrossChainWallet(); + + const { toast } = useToast(); + const [isDialogOpen, setIsDialogOpen] = useState(false); + + const closeDialog = useCallback(() => setIsDialogOpen(false), []); + + const copyAddress = useCallback(async () => { + if (!account?.address) return; + try { + await navigator.clipboard.writeText(account.address.toString()); + toast({ + title: "Success", + description: "Copied wallet address to clipboard.", + }); + } catch { + toast({ + variant: "destructive", + title: "Error", + description: "Failed to copy wallet address.", + }); + } + }, [account, toast]); + + return connected ? ( + + + + + + + Copy address + + + Disconnect + + + + ) : ( + + + + + + + ); +} + +interface ConnectWalletDialogProps { + close: () => void; + sourceChain: Chain | null; +} + +function ConnectWalletDialog({ close, sourceChain }: ConnectWalletDialogProps) { + const { getSolanaWallets, getAptosWallets, getEthereumWallets } = + useCrossChainWallet(); + + const [wallets, setWallets] = useState>([]); + + useEffect(() => { + const getWallets = async () => { + switch (sourceChain) { + case "Solana": + const solanaWallets = await getSolanaWallets(); + setWallets(solanaWallets); + break; + case "Aptos": + const aptosWallets = await getAptosWallets(); + setWallets(aptosWallets); + break; + default: + const ethereumWallets = await getEthereumWallets(); + setWallets(ethereumWallets); + } + }; + getWallets(); + }, [sourceChain]); + + return ( + + + Connect {sourceChain} Wallet + +
+ {wallets.map((wallet) => ( + + ))} +
+
+ ); +} + +interface WalletRowProps { + wallet: AdapterWallet; + onConnect?: () => void; +} + +function WalletRow({ wallet, onConnect }: WalletRowProps) { + return ( + +
+ + +
+ {wallet.readyState === WalletReadyState.NotDetected ? ( + + ) : ( + + + + )} +
+ ); +} diff --git a/packages/wallet-adapter-swap/src/icons/USDC.tsx b/apps/nextjs-example/src/app/swap/icons/USDC.tsx similarity index 100% rename from packages/wallet-adapter-swap/src/icons/USDC.tsx rename to apps/nextjs-example/src/app/swap/icons/USDC.tsx diff --git a/apps/nextjs-example/src/app/swap/icons/chainToIcon.ts b/apps/nextjs-example/src/app/swap/icons/chainToIcon.ts new file mode 100644 index 00000000..2d3a214e --- /dev/null +++ b/apps/nextjs-example/src/app/swap/icons/chainToIcon.ts @@ -0,0 +1,25 @@ +const PREFIX = "data:image/svg+xml;base64,"; + +export const chainToIcon = (chain: string) => { + if (chain === "Solana") { + return ( + PREFIX + + "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5NiIgaGVpZ2h0PSI4NCIgZmlsbD0ibm9uZSI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsPSJ1cmwoI2IpIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNy4zNjggNjQuMDUyQTMuMjE0IDMuMjE0IDAgMCAxIDE5Ljc0NCA2M2w3My4zMTIuMDZhMS42MTIgMS42MTIgMCAwIDEgMS4xODggMi42OThsLTE1LjYxMiAxNy4xOUEzLjIxMyAzLjIxMyAwIDAgMSA3Ni4yNTQgODRsLTczLjMxLS4wNmExLjYxMSAxLjYxMSAwIDAgMS0xLjE4OC0yLjY5OGwxNS42MTItMTcuMTlabTc2Ljg3Ni0xNC4zMWExLjYxMSAxLjYxMSAwIDAgMS0xLjE4OCAyLjY5OGwtNzMuMzEuMDZhMy4yMTMgMy4yMTMgMCAwIDEtMi4zNzgtMS4wNTJsLTE1LjYxMi0xNy4yYTEuNjEyIDEuNjEyIDAgMCAxIDEuMTg4LTIuNjk4bDczLjMxMi0uMDZhMy4yMTMgMy4yMTMgMCAwIDEgMi4zNzYgMS4wNTJsMTUuNjEyIDE3LjJaTTE3LjM2OCAxLjA1MkEzLjIxNSAzLjIxNSAwIDAgMSAxOS43NDQgMGw3My4zMTIuMDZhMS42MTIgMS42MTIgMCAwIDEgMS4xODggMi42OThsLTE1LjYxMiAxNy4xOUEzLjIxMyAzLjIxMyAwIDAgMSA3Ni4yNTQgMjFsLTczLjMxLS4wNmExLjYxMSAxLjYxMSAwIDAgMS0xLjE4OC0yLjY5OGwxNS42MTItMTcuMTlaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iNC4xNjgiIHgyPSI5MS44MzIiIHkxPSI4NS44MzIiIHkyPSItMS44MzIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjOTk0NUZGIi8+PHN0b3Agb2Zmc2V0PSIuMiIgc3RvcC1jb2xvcj0iIzc5NjJFNyIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAwRDE4QyIvPjwvbGluZWFyR3JhZGllbnQ+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDk2djg0SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+" + ); + } else if (chain === "Aptos") { + return ( + PREFIX + + "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIGJhc2VQcm9maWxlPSJ0aW55IiBvdmVyZmxvdz0idmlzaWJsZSIgdmVyc2lvbj0iMS4yIiB2aWV3Qm94PSIwIDAgMTEyIDExMiI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTg2LjYgMzcuNGgtOS45Yy0xLjEgMC0yLjItLjUtMy0xLjNsLTQtNC41Yy0xLjItMS4zLTMuMS0xLjQtNC41LS4zbC0uMy4zLTMuNCAzLjljLTEuMSAxLjMtMi44IDItNC41IDJIMi45QzEuNCA0MS45LjQgNDYuNiAwIDUxLjNoNTEuMmMuOSAwIDEuOC0uNCAyLjQtMWw0LjgtNWMuNi0uNiAxLjQtMSAyLjMtMWguMmMuOSAwIDEuOC40IDIuNCAxLjFsNCA0LjVjLjguOSAxLjkgMS40IDMgMS40SDExMmMtLjQtNC43LTEuNC05LjQtMi45LTEzLjhIODYuNnpNNTMuOCA2NWwtNC00LjVjLTEuMi0xLjMtMy4xLTEuNC00LjUtLjNsLS4zLjMtMy41IDMuOWMtMS4xIDEuMy0yLjcgMi00LjQgMkguOGMuOSA0LjggMi41IDkuNSA0LjYgMTRoMjUuNWMuOSAwIDEuNy0uNCAyLjQtMWw0LjgtNWMuNi0uNiAxLjQtMSAyLjMtMWguMmMuOSAwIDEuOC40IDIuNCAxLjFsNCA0LjVjLjguOSAxLjkgMS40IDMgMS40aDU2LjZjMi4xLTQuNCAzLjctOS4xIDQuNi0xNEg1Ni44Yy0xLjIgMC0yLjMtLjUtMy0xLjR6bTE5LjYtNDMuNiA0LjgtNWMuNi0uNiAxLjQtMSAyLjMtMWguMmMuOSAwIDEuOC40IDIuNCAxbDQgNC41Yy44LjkgMS45IDEuMyAzIDEuM2gxMC44Yy0xOC44LTI0LjgtNTQuMS0yOS43LTc5LTExLTQuMSAzLjEtNy44IDYuOC0xMSAxMUg3MWMxIC4yIDEuOC0uMiAyLjQtLjh6TTM0LjcgOTQuMmMtMS4yIDAtMi4zLS41LTMtMS4zbC00LTQuNWMtMS4yLTEuMy0zLjItMS40LTQuNS0uMmwtLjIuMi0zLjUgMy45Yy0xLjEgMS4zLTIuNyAyLTQuNCAyaC0uMkMzNiAxMTYuOSA3MS43IDExOCA5NC40IDk2LjdjLjktLjggMS43LTEuNyAyLjYtMi42SDM0Ljd6Ii8+PC9zdmc+" + ); + } else if (chain === "Ethereum" || chain === "Sepolia") { + return ( + PREFIX + + "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAxOTIwIDE5MjAiPjxwYXRoIGZpbGw9IiM4QTkyQjIiIGQ9Ik05NTkuOCA4MC43IDQyMC4xIDk3Ni4zIDk1OS44IDczMXoiLz48cGF0aCBmaWxsPSIjNjI2ODhGIiBkPSJNOTU5LjggNzMxIDQyMC4xIDk3Ni4zbDUzOS43IDMxOS4xem01MzkuOCAyNDUuM0w5NTkuOCA4MC43VjczMXoiLz48cGF0aCBmaWxsPSIjNDU0QTc1IiBkPSJtOTU5LjggMTI5NS40IDUzOS44LTMxOS4xTDk1OS44IDczMXoiLz48cGF0aCBmaWxsPSIjOEE5MkIyIiBkPSJtNDIwLjEgMTA3OC43IDUzOS43IDc2MC42di00NDEuN3oiLz48cGF0aCBmaWxsPSIjNjI2ODhGIiBkPSJNOTU5LjggMTM5Ny42djQ0MS43bDU0MC4xLTc2MC42eiIvPjwvc3ZnPg==" + ); + } else if (chain === "Sui") { + return ( + PREFIX + + "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iMTYwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTEwIDE2MCI+PHBhdGggZmlsbD0iIzZGQkNGMCIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNy40NDQgMTMyLjIxNkMxNy4zNyAxNDkuNjE1IDM1LjE1IDE2MCA1NSAxNjBzMzcuNjI3LTEwLjM4NSA0Ny41NTYtMjcuNzg0YzkuOTI1LTE3LjM5NCA5LjkyNS0zOC4xNjUgMC01NS41NjNMNjAuNzMgMy4zNDdjLTIuNTQ3LTQuNDYzLTguOTEzLTQuNDYzLTExLjQ2IDBMNy40NDQgNzYuNjUzYy05LjkyNSAxNy4zOTQtOS45MjUgMzguMTY1IDAgNTUuNTYzWm0zNS43NzMtOTMuOTk0IDguOTE4LTE1LjYzYzEuMjczLTIuMjMyIDQuNDU3LTIuMjMyIDUuNzMgMGwzNC4zMDcgNjAuMTNjNi4zMDMgMTEuMDQ2IDcuNDg2IDIzLjgzMSAzLjU1IDM1LjUzMWEzNy43MDggMzcuNzA4IDAgMCAwLTEuNzU2LTUuODM1Yy00LjczOS0xMi4xMDEtMTUuNDU0LTIxLjQzOS0zMS44NTMtMjcuNzU3LTExLjI3NS00LjMyNy0xOC40NzItMTAuNjkyLTIxLjM5Ni0xOC45MTktMy43NjctMTAuNjAzLjE2Ny0yMi4xNjUgMi41LTI3LjUyWk0yOC4wMTIgNjQuODc0IDE3LjgyOCA4Mi43MjJjLTcuNzYgMTMuNTk5LTcuNzYgMjkuODMzIDAgNDMuNDMyIDcuNzYgMTMuNiAyMS42NTMgMjEuNzE1IDM3LjE3MiAyMS43MTUgMTAuMzA3IDAgMTkuOS0zLjU4MyAyNy40NTQtOS45NzUuOTg1LTIuNTA5IDQuMDM2LTExLjY5Ni4yNjctMjEuMTY1LTMuNDgtOC43NDMtMTEuODU4LTE1LjcyMy0yNC45LTIwLjc1LTE0Ljc0My01LjY1OS0yNC4zMjItMTQuNDkzLTI4LjQ2My0yNi4yNWEzNy4xNzQgMzcuMTc0IDAgMCAxLTEuMzQ3LTQuODU1WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+" + ); + } +}; diff --git a/apps/nextjs-example/src/app/swap/icons/index.tsx b/apps/nextjs-example/src/app/swap/icons/index.tsx new file mode 100644 index 00000000..ac302d4c --- /dev/null +++ b/apps/nextjs-example/src/app/swap/icons/index.tsx @@ -0,0 +1,2 @@ +export * from "./USDC"; +export * from "./chainToIcon"; diff --git a/apps/nextjs-example/src/app/swap/layout.tsx b/apps/nextjs-example/src/app/swap/layout.tsx new file mode 100644 index 00000000..607e04a7 --- /dev/null +++ b/apps/nextjs-example/src/app/swap/layout.tsx @@ -0,0 +1,26 @@ +"use client"; + +import { useToast } from "@/components/ui/use-toast"; +import { AptosCrossChainWalletProvider } from "@aptos-labs/cross-chain-react"; +import { Network } from "@aptos-labs/ts-sdk"; +import { ReactNode } from "react"; + +export default function SwapLayout({ children }: { children: ReactNode }) { + const { toast } = useToast(); + return ( + { + toast({ + variant: "destructive", + title: "Error", + description: error || "Unknown wallet error", + }); + }} + > + {children} + + ); +} diff --git a/apps/nextjs-example/src/app/swap/page.tsx b/apps/nextjs-example/src/app/swap/page.tsx index dac44d2f..2b4b1016 100644 --- a/apps/nextjs-example/src/app/swap/page.tsx +++ b/apps/nextjs-example/src/app/swap/page.tsx @@ -1,12 +1,399 @@ "use client"; -import { MultiChain } from "@aptos-labs/wallet-adapter-swap"; -import "@aptos-labs/wallet-adapter-swap/dist/index.css"; -import { Ed25519PrivateKey, Account } from "@aptos-labs/ts-sdk"; +import { Account, Ed25519PrivateKey, Network } from "@aptos-labs/ts-sdk"; +import { useEffect, useState } from "react"; +import { Loader2, MoveDown } from "lucide-react"; +import { + Chain, + UsdcBalance, + useCrossChainWallet, + testnetChains, + mainnetChains, + QuoteResponse, +} from "@aptos-labs/cross-chain-react"; -// const privateKey = new Ed25519PrivateKey(""); -// const sponsorAccount = Account.fromPrivateKey({ privateKey }); +import { Input } from "@/components/ui/input"; +import { useToast } from "@/components/ui/use-toast"; +import { Card, CardContent } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; + +import USDC from "./icons/USDC"; +import { chainToIcon } from "./icons"; + +import { WalletSelector } from "./components/walletSelector/WalletSelector"; + +const privateKey = new Ed25519PrivateKey( + process.env.NEXT_PUBLIC_SWAP_CCTP_MAIN_SIGNER_PRIVATE_KEY as string +); +const mainSigner = Account.fromPrivateKey({ privateKey }); + +const feePayerPrivateKey = new Ed25519PrivateKey( + process.env.NEXT_PUBLIC_SWAP_CCTP_SPONSOR_ACCOUNT_PRIVATE_KEY as string +); +const sponsorAccount = Account.fromPrivateKey({ + privateKey: feePayerPrivateKey, +}); + +const dappNetwork: Network.MAINNET | Network.TESTNET = Network.TESTNET; export default function Swap() { - return ; + const { + wallet, + getQuote, + initiateTransfer, + sourceChain, + setSourceChain, + signInWith, + } = useCrossChainWallet(); + const { toast } = useToast(); + const [quote, setQuote] = useState(undefined); + + const [transactionInProgress, setTransactionInProgress] = + useState(false); + const [transactionCompleted, setTransactionCompleted] = + useState(false); + const [amount, setAmount] = useState(""); + const [transferResponse, setTransferResponse] = useState< + | { + originChainTxnId: string; + destinationChainTxnId: string; + } + | undefined + >(undefined); + const [sourceWalletUSDCBalance, setSourceWalletUSDCBalance] = useState< + UsdcBalance | undefined + >(undefined); + const [invalidAmount, setInvalidAmount] = useState(false); + const [quoteIsFetching, setQuoteIsFetching] = useState(false); + + const chains = + dappNetwork === Network.TESTNET ? testnetChains : mainnetChains; + + useEffect( + function getWalletUsdcBalance() { + if (!wallet || !sourceChain) { + setSourceWalletUSDCBalance(undefined); + return; + } + // const fetchUsdcBalance = async () => { + // const balance = await getUsdcBalance(wallet, sourceChain); + // return balance; + // }; + // fetchUsdcBalance().then((balance) => { + // setSourceWalletUSDCBalance(balance); + // }); + }, + [wallet, sourceChain] + ); + + // TODO use debounce + const onSetAmount = async (amount: string) => { + if (!sourceChain) return; + if (!amount) { + setAmount(""); + setQuote(undefined); + setInvalidAmount(false); + return; + } + setQuoteIsFetching(true); + setInvalidAmount(false); + setAmount(amount); + + if (invalidateAmount(amount)) { + setInvalidAmount(true); + setQuoteIsFetching(false); + return; + } + const fetchQuote = async () => { + const quote = await getQuote(amount, sourceChain); + console.log("quote", quote); + return quote; + }; + fetchQuote() + .then((quote) => { + setQuote(quote); + }) + .finally(() => { + setQuoteIsFetching(false); + }); + }; + + const onSetMaxAmount = () => { + if (!sourceWalletUSDCBalance) { + return; + } + onSetAmount(sourceWalletUSDCBalance.display); + }; + + const humanReadableETA = (milliseconds: number): string => { + if (milliseconds >= 60000) { + const minutes = Math.floor(milliseconds / 60000); + return `${minutes} minute${minutes > 1 ? "s" : ""}`; + } else { + const seconds = Math.floor(milliseconds / 1000); + return `${seconds} second${seconds > 1 ? "s" : ""}`; + } + }; + + const invalidateAmount = (amount: string) => { + if (!sourceWalletUSDCBalance || !amount) { + return; + } + return Number(amount) > Number(sourceWalletUSDCBalance.display); + }; + + const onTransferClick = async () => { + setTransactionInProgress(true); + const transfer = async () => { + if (!sourceChain) { + throw new Error("Missing required parameters"); + } + const { originChainTxnId, destinationChainTxnId } = + await initiateTransfer(sourceChain, mainSigner, sponsorAccount); + return { originChainTxnId, destinationChainTxnId }; + }; + transfer() + .then((response) => { + console.log("transfer", response); + setTransferResponse(response); + setTransactionInProgress(false); + setTransactionCompleted(true); + }) + .catch((error) => { + console.error("Error transferring", error); + }) + .finally(() => { + setTransactionInProgress(false); + }); + }; + + const onSignMessage = async () => { + if (!wallet) { + return; + } + + const payload = { + message: "Hello from Aptos Wallet Adapter", + nonce: Math.random().toString(16), + }; + try { + const signature = await wallet.signMessage(payload); + console.log("signature", signature); + } catch (error: any) { + toast({ + variant: "destructive", + title: "Error", + description: error, + }); + } + }; + + const onSignIn = async () => { + try { + await signInWith(); + } catch (error: any) { + toast({ + variant: "destructive", + title: "Error", + description: error, + }); + } + }; + + return ( +
+ + +
+ {Object.values(chains).map((chain, index) => ( + + ))} + +
+
+ +
+ +
+

Sign Message

+ +
+ +
+

Sign Message

+ +
+ +
+

CCTP transfer

+
+ onSetAmount(e.target.value)} + /> +
+ Max + + {sourceWalletUSDCBalance + ? sourceWalletUSDCBalance.display + : "0"} + +
+
+ {quoteIsFetching && ( +

+ +

+ )} + {invalidAmount && ( +

+ Amount is greater than the balance of the source wallet +

+ )} + {quote && !invalidAmount && ( + + +
+
+ +
+
+ {sourceChain?.toString() +
+
+

-{amount} USDC

+
+
+
+ +
+
+
+ +
+
+ Aptos +
+
+

+{amount} USDC

+
+
+
+
+

via Wormhole

+
+

+ ~{humanReadableETA(quote.eta ?? 0)} +

+
+
+
+ )} + + {!transactionInProgress && !transactionCompleted && ( + + )} + + {transactionInProgress && !transactionCompleted && ( +
+

Submitting transaction

+ +
+ )} + + {!transactionInProgress && transactionCompleted && ( +
+ +
+ )} + + {transferResponse && ( +
+

Transaction submitted

+ {transferResponse.originChainTxnId && ( + +

View on Solana Explorer

+
+ )} + {transferResponse.destinationChainTxnId && ( + +

View on Aptos Explorer

+
+ )} +
+ )} +
+
+
+
+ ); } diff --git a/packages/wallet-adapter-swap/src/ui/input.tsx b/apps/nextjs-example/src/components/ui/input.tsx similarity index 100% rename from packages/wallet-adapter-swap/src/ui/input.tsx rename to apps/nextjs-example/src/components/ui/input.tsx diff --git a/package.json b/package.json index f2bca135..2fd90be0 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ ], "scripts": { "build": "turbo run build", - "dev": "turbo run dev --no-cache --parallel --continue", + "dev": "turbo run dev --no-cache --parallel --continue --filter=!nuxt-app", "lint": "turbo run lint", "test": "turbo run test", "format": "prettier --write \"**/*.{ts,tsx,md}\"", diff --git a/packages/wallet-adapter-swap/.eslintrc.js b/packages/cross-chain/cross-chain-core/.eslintrc.js similarity index 100% rename from packages/wallet-adapter-swap/.eslintrc.js rename to packages/cross-chain/cross-chain-core/.eslintrc.js diff --git a/packages/cross-chain/cross-chain-core/.gitignore b/packages/cross-chain/cross-chain-core/.gitignore new file mode 100644 index 00000000..cc43326b --- /dev/null +++ b/packages/cross-chain/cross-chain-core/.gitignore @@ -0,0 +1,3 @@ +dist +.env +src/version.ts \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/.npmignore b/packages/cross-chain/cross-chain-core/.npmignore new file mode 100644 index 00000000..005dc2a0 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/.npmignore @@ -0,0 +1,5 @@ +node_modules +.turbo +.eslintrc.js +tsconfig.json +.env \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts b/packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts deleted file mode 100644 index 9952e45f..00000000 --- a/packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Account, Network } from "@aptos-labs/ts-sdk"; -export interface CrossChainDappConfig { - network: Network; - disableTelemetry?: boolean; -} -export type AptosAccount = Account; -export type Chain = "Solana" | "Ethereum" | "Aptos"; -export type CCTPProviders = "Wormhole"; -export type UsdcBalance = { - amount: string; - decimal: number; - display: string; -}; -export interface CrossChainProvider { - getQuote(params: TQuoteRequest): Promise; - initiateCCTPTransfer(params: TInitiateTransferRequest): Promise; -} -export declare class CrossChainCore { - readonly _dappConfig: CrossChainDappConfig | undefined; - constructor(args: { - dappConfig: CrossChainDappConfig; - }); - getProvider(providerType: CCTPProviders): CrossChainProvider; -} -//# sourceMappingURL=CrossChainCore.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts.map b/packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts.map deleted file mode 100644 index b3b3aebe..00000000 --- a/packages/cross-chain/cross-chain-core/dist/CrossChainCore.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CrossChainCore.d.ts","sourceRoot":"","sources":["../src/CrossChainCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAUtD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;AAEnC,MAAM,MAAM,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAEpD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AAEvC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,kBAAkB,CACjC,aAAa,GAAG,GAAG,EACnB,cAAc,GAAG,GAAG,EACpB,wBAAwB,GAAG,GAAG,EAC9B,yBAAyB,GAAG,GAAG;IAE/B,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACzD,oBAAoB,CAClB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACvC;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,WAAW,EAAE,oBAAoB,GAAG,SAAS,CAAC;gBAE3C,IAAI,EAAE;QAAE,UAAU,EAAE,oBAAoB,CAAA;KAAE;IAItD,WAAW,CAAC,YAAY,EAAE,aAAa,GAAG,kBAAkB;CAa7D"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/index.d.ts.map deleted file mode 100644 index d535ffda..00000000 --- a/packages/cross-chain/cross-chain-core/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/index.js b/packages/cross-chain/cross-chain-core/dist/index.js deleted file mode 100644 index b298a66a..00000000 --- a/packages/cross-chain/cross-chain-core/dist/index.js +++ /dev/null @@ -1,899 +0,0 @@ -"use strict"; -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AptosMainnetChain: () => AptosMainnetChain, - AptosMainnetUSDCToken: () => AptosMainnetUSDCToken, - AptosTestnetChain: () => AptosTestnetChain, - AptosTestnetUSDCToken: () => AptosTestnetUSDCToken, - Context: () => Context, - CrossChainCore: () => CrossChainCore, - Network: () => import_ts_sdk3.Network, - WormholeProvider: () => WormholeProvider, - mainnetChains: () => mainnetChains, - mainnetTokens: () => mainnetTokens, - testnetChains: () => testnetChains, - testnetTokens: () => testnetTokens -}); -module.exports = __toCommonJS(src_exports); - -// src/providers/wormhole/index.ts -var import_sdk = require("@wormhole-foundation/sdk"); -var import_aptos = __toESM(require("@wormhole-foundation/sdk/aptos")); -var import_solana = __toESM(require("@wormhole-foundation/sdk/solana")); -var import_evm = __toESM(require("@wormhole-foundation/sdk/evm")); - -// src/utils/logger.ts -var logger = { - log: (...args) => { - if (process.env.NODE_ENV === "development") { - console.log(...args); - } - }, - warn: (...args) => { - if (process.env.NODE_ENV === "development") { - console.warn(...args); - } - }, - error: (...args) => { - if (process.env.NODE_ENV === "development") { - console.error(...args); - } - } -}; - -// src/providers/wormhole/index.ts -var import_ts_sdk2 = require("@aptos-labs/ts-sdk"); - -// src/providers/wormhole/signers/AptosLocalSigner.ts -var import_ts_sdk = require("@aptos-labs/ts-sdk"); -var AptosLocalSigner = class { - constructor(chain, options, wallet, feePayerAccount) { - this._chain = chain; - this._options = options; - this._wallet = wallet; - this._sponsorAccount = feePayerAccount; - this._claimedTransactionHashes = ""; - } - chain() { - return this._chain; - } - address() { - return this._wallet.accountAddress.toString(); - } - claimedTransactionHashes() { - return this._claimedTransactionHashes; - } - async signAndSend(txs) { - console.log("Signer signAndSend txs", txs); - const txHashes = []; - for (const tx of txs) { - const txId = await signAndSendTransaction( - tx, - this._wallet, - this._sponsorAccount - ); - txHashes.push(txId); - this._claimedTransactionHashes = txId; - } - return txHashes; - } -}; -async function signAndSendTransaction(request, wallet, sponsorAccount) { - if (!wallet) { - throw new Error("Wallet is undefined"); - } - const payload = request.transaction; - payload.functionArguments = payload.functionArguments.map((a) => { - if (a instanceof Uint8Array) { - return Array.from(a); - } else if (typeof a === "bigint") { - return a.toString(); - } else { - return a; - } - }); - const aptosConfig = new import_ts_sdk.AptosConfig({ - network: import_ts_sdk.Network.TESTNET - }); - const aptos2 = new import_ts_sdk.Aptos(aptosConfig); - const txnToSign = await aptos2.transaction.build.simple({ - data: payload, - sender: wallet.accountAddress.toString(), - withFeePayer: sponsorAccount ? true : false - }); - const senderAuthenticator = await aptos2.transaction.sign({ - signer: wallet, - transaction: txnToSign - }); - const txnToSubmit = { - transaction: txnToSign, - senderAuthenticator - }; - if (sponsorAccount) { - const feePayerSignerAuthenticator = aptos2.transaction.signAsFeePayer({ - signer: sponsorAccount, - transaction: txnToSign - }); - txnToSubmit.feePayerAuthenticator = feePayerSignerAuthenticator; - } - const response = await aptos2.transaction.submit.simple(txnToSubmit); - const tx = await aptos2.waitForTransaction({ - transactionHash: response.hash - }); - return tx.hash; -} - -// src/providers/wormhole/signers/SolanaSigner.ts -var import_web3 = require("@solana/web3.js"); -var import_sdk_solana = require("@wormhole-foundation/sdk-solana"); -var import_web32 = require("@solana/web3.js"); -async function signAndSendTransaction2(request, wallet, options) { - var _a; - if (!wallet) - throw new Error("Wallet not found"); - const commitment = (_a = options == null ? void 0 : options.commitment) != null ? _a : "finalized"; - const connection = new import_web32.Connection("https://api.devnet.solana.com"); - const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(commitment); - const transaction = request.transaction.transaction; - const unsignedTx = await setPriorityFeeInstructions( - connection, - blockhash, - lastValidBlockHeight, - request - ); - let confirmTransactionPromise = null; - let confirmedTx = null; - let txSendAttempts = 1; - let signature = ""; - const tx = await wallet.signTransaction(unsignedTx); - const serializedTx = tx.serialize(); - const sendOptions = { - skipPreflight: true, - maxRetries: 0, - preFlightCommitment: commitment - }; - signature = await connection.sendRawTransaction(serializedTx, sendOptions); - confirmTransactionPromise = connection.confirmTransaction( - { - signature, - blockhash, - lastValidBlockHeight - }, - commitment - ); - const txRetryInterval = 5e3; - while (!confirmedTx) { - confirmedTx = await Promise.race([ - confirmTransactionPromise, - new Promise( - (resolve) => setTimeout(() => { - resolve(null); - }, txRetryInterval) - ) - ]); - if (confirmedTx) { - break; - } - console.log( - `Tx not confirmed after ${txRetryInterval * txSendAttempts++}ms, resending` - ); - try { - await connection.sendRawTransaction(serializedTx, sendOptions); - } catch (e) { - console.error("Failed to resend transaction:", e); - } - } - if (confirmedTx.value.err) { - let errorMessage = `Transaction failed: ${confirmedTx.value.err}`; - if (typeof confirmedTx.value.err === "object") { - try { - errorMessage = `Transaction failed: ${JSON.stringify( - confirmedTx.value.err, - (_key, value) => typeof value === "bigint" ? value.toString() : value - )}`; - } catch (e) { - errorMessage = `Transaction failed: Unknown error`; - } - } - throw new Error(`Transaction failed: ${errorMessage}`); - } - return signature; -} -async function setPriorityFeeInstructions(connection, blockhash, lastValidBlockHeight, request) { - const unsignedTx = request.transaction.transaction; - const computeBudgetIxFilter = (ix) => ix.programId.toString() !== "ComputeBudget111111111111111111111111111111"; - unsignedTx.recentBlockhash = blockhash; - unsignedTx.lastValidBlockHeight = lastValidBlockHeight; - unsignedTx.instructions = unsignedTx.instructions.filter( - computeBudgetIxFilter - ); - unsignedTx.add( - ...await createPriorityFeeInstructions(connection, unsignedTx) - ); - if (request.transaction.signers) { - unsignedTx.partialSign(...request.transaction.signers); - } - return unsignedTx; -} -async function createPriorityFeeInstructions(connection, transaction, commitment) { - let unitsUsed = 2e5; - let simulationAttempts = 0; - simulationLoop: - while (true) { - const response = await connection.simulateTransaction( - transaction - ); - if (response.value.err) { - if (checkKnownSimulationError(response.value)) { - if (simulationAttempts < 5) { - simulationAttempts++; - await sleep(1e3); - continue simulationLoop; - } - } else if (simulationAttempts < 3) { - simulationAttempts++; - await sleep(1e3); - continue simulationLoop; - } - throw new Error( - `Simulation failed: ${JSON.stringify(response.value.err)} -Logs: -${(response.value.logs || []).join("\n ")}` - ); - } else { - if (response.value.unitsConsumed) { - unitsUsed = response.value.unitsConsumed; - } - break; - } - } - const unitBudget = Math.floor(unitsUsed * 1.2); - const instructions = []; - instructions.push( - import_web3.ComputeBudgetProgram.setComputeUnitLimit({ - units: unitBudget - }) - ); - const percentile = 0.9; - const percentileMultiple = 1; - const min = 1e5; - const max = 1e8; - const calculateFee = async (rpcProvider2) => { - if (rpcProvider2 === "triton") { - try { - const fee2 = await (0, import_sdk_solana.determinePriorityFeeTritonOne)( - connection, - transaction, - percentile, - percentileMultiple, - min, - max - ); - return { - fee: fee2, - methodUsed: "triton" - }; - } catch (e) { - console.warn(`Failed to determine priority fee using Triton RPC:`, e); - } - } - try { - const fee2 = await (0, import_sdk_solana.determinePriorityFee)( - connection, - transaction, - percentile, - percentileMultiple, - min, - max - ); - return { - fee: fee2, - methodUsed: "default" - }; - } catch (e) { - console.warn(`Failed to determine priority fee using Triton RPC:`, e); - return { - fee: min, - methodUsed: "minimum" - }; - } - }; - const rpcProvider = determineRpcProvider(connection.rpcEndpoint); - const { fee, methodUsed } = await calculateFee(rpcProvider); - const maxFeeInSol = fee / 1e6 / import_web3.LAMPORTS_PER_SOL * unitBudget; - console.table({ - "RPC Provider": rpcProvider, - "Method used": methodUsed, - "Percentile used": percentile, - "Multiple used": percentileMultiple, - "Compute budget": unitBudget, - "Priority fee": fee, - "Max fee in SOL": maxFeeInSol - }); - instructions.push( - import_web3.ComputeBudgetProgram.setComputeUnitPrice({ microLamports: fee }) - ); - return instructions; -} -function checkKnownSimulationError(response) { - const errors = {}; - if (response.err === "BlockhashNotFound") { - errors["BlockhashNotFound"] = "Blockhash not found during simulation. Trying again."; - } - if (response.logs) { - for (const line of response.logs) { - if (line.includes("SlippageToleranceExceeded")) { - errors["SlippageToleranceExceeded"] = "Slippage failure during simulation. Trying again."; - } - if (line.includes("RequireGteViolated")) { - errors["RequireGteViolated"] = "Swap instruction failure during simulation. Trying again."; - } - } - } - if (isEmptyObject(errors)) { - return false; - } - console.table(errors); - return true; -} -async function sleep(timeout) { - return new Promise((resolve) => setTimeout(resolve, timeout)); -} -var isEmptyObject = (value) => { - if (value === null || value === void 0) { - return true; - } - for (const key in value) { - if (value.hasOwnProperty.call(value, key)) { - return false; - } - } - return true; -}; -function determineRpcProvider(endpoint) { - if (endpoint.includes("rpcpool.com")) { - return "triton"; - } else if (endpoint.includes("helius-rpc.com")) { - return "helius"; - } else if (endpoint.includes("rpc.ankr.com")) { - return "ankr"; - } else { - return "unknown"; - } -} - -// src/providers/wormhole/signers/EthereumSigner.ts -var import_ethers = require("ethers"); -async function signAndSendTransaction3(request, wallet, chainName, options) { - if (!wallet || !wallet.sendTransaction) { - throw new Error("wallet.sendTransaction is undefined"); - } - const actualChainId = await wallet.getConnectedNetwork(); - if (!actualChainId) - throw new Error("No signer found for chain" + chainName); - const expectedChainId = request.transaction.chainId ? (0, import_ethers.getBigInt)(request.transaction.chainId) : void 0; - if (!actualChainId || !expectedChainId || BigInt(actualChainId) !== expectedChainId) { - throw new Error( - `Signer is not connected to the right chain. Expected ${expectedChainId}, got ${actualChainId}` - ); - } - const txHash = await wallet.sendTransaction(request.transaction); - return txHash; -} - -// src/providers/wormhole/signers/SuiSigner.ts -async function signAndSendTransaction4(request, wallet) { - if (!wallet || !wallet.sendTransaction) { - throw new Error("wallet.sendTransaction is undefined"); - } - const response = await wallet.sendTransaction({ - transactionBlock: request.transaction - }); - return response == null ? void 0 : response.id; -} - -// src/providers/wormhole/signers/index.ts -var Signer = class { - constructor(chain, address, options, wallet) { - this._chain = chain; - this._address = address; - this._options = options; - this._wallet = wallet; - } - chain() { - return this._chain.displayName; - } - address() { - return this._address; - } - async signAndSend(txs) { - const txHashes = []; - for (const tx of txs) { - const txId = await signAndSendTransaction5( - this._chain, - tx, - this._wallet, - this._options - ); - txHashes.push(txId); - } - return txHashes; - } -}; -var signAndSendTransaction5 = async (chain, request, wallet, options = {}) => { - if (!wallet) { - throw new Error("wallet is undefined"); - } - if (chain.context === "Solana") { - const signature = await signAndSendTransaction2( - request, - wallet, - options - ); - return signature; - } else if (chain.context === "Ethereum") { - const tx = await signAndSendTransaction3( - request, - wallet, - chain.displayName, - options - ); - return tx; - } else if (chain.context === "Sui") { - const tx = await signAndSendTransaction4( - request, - wallet - ); - return tx; - } else { - throw new Error(`Unsupported chain: ${chain}`); - } -}; - -// src/providers/wormhole/config/types.ts -var Context = /* @__PURE__ */ ((Context2) => { - Context2["ETH"] = "Ethereum"; - Context2["TERRA"] = "Terra"; - Context2["XPLA"] = "XPLA"; - Context2["SOLANA"] = "Solana"; - Context2["ALGORAND"] = "Algorand"; - Context2["NEAR"] = "Near"; - Context2["APTOS"] = "Aptos"; - Context2["SUI"] = "Sui"; - Context2["OTHER"] = "OTHER"; - return Context2; -})(Context || {}); - -// src/providers/wormhole/config/testnet/chains.ts -var testnetChains = { - Sepolia: { - key: "Sepolia", - id: 10002, - context: "Ethereum" /* ETH */, - finalityThreshold: 0, - displayName: "Sepolia", - explorerUrl: "https://sepolia.etherscan.io/", - explorerName: "Etherscan", - gasToken: "ETHsepolia", - chainId: 11155111, - icon: "Ethereum", - maxBlockSearch: 2e3, - symbol: "ETH", - sdkName: "Sepolia", - wrappedGasToken: "0xeef12A83EE5b7161D3873317c8E0E7B76e0B5D9c" - }, - Solana: { - key: "Solana", - id: 1, - context: "Solana" /* SOLANA */, - finalityThreshold: 32, - displayName: "Solana", - explorerUrl: "https://explorer.solana.com/", - explorerName: "Solana Explorer", - gasToken: "SOL", - chainId: 0, - icon: "Solana", - maxBlockSearch: 2e3, - symbol: "SOL", - sdkName: "Solana", - wrappedGasToken: "So11111111111111111111111111111111111111112" - } -}; -var AptosTestnetChain = { - key: "Aptos", - id: 22, - context: "Aptos" /* APTOS */, - finalityThreshold: 0, - displayName: "Aptos", - explorerUrl: "https://explorer.aptoslabs.com?network=testnet", - explorerName: "Aptos Explorer", - gasToken: "APT", - chainId: 0, - icon: "Aptos", - maxBlockSearch: 0, - symbol: "APT", - sdkName: "Aptos" -}; - -// src/providers/wormhole/config/testnet/tokens.ts -var testnetTokens = { - Avalanche: { - symbol: "USDC", - icon: "USDC", - decimals: 6, - tokenId: { - chain: "Avalanche", - address: "0x5425890298aed601595a70AB815c96711a31Bc65" - } - }, - Sepolia: { - symbol: "USDC", - icon: "USDC", - decimals: 6, - tokenId: { - chain: "Sepolia", - address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238" - } - }, - Solana: { - symbol: "USDC", - tokenId: { - chain: "Solana", - address: "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU" - }, - icon: "USDC", - decimals: 6 - }, - Sui: { - symbol: "USDC", - tokenId: { - chain: "Sui", - address: "0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC" - }, - icon: "USDC", - decimals: 6 - } -}; -var AptosTestnetUSDCToken = { - symbol: "USDC", - decimals: 6, - tokenId: { - chain: "Aptos", - address: "0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832" - }, - icon: "USDC" -}; - -// src/providers/wormhole/config/mainnet/chains.ts -var mainnetChains = { - Ethereum: { - key: "Ethereum", - id: 2, - context: "Ethereum" /* ETH */, - finalityThreshold: 64, - displayName: "Ethereum", - explorerUrl: "https://etherscan.io/", - explorerName: "Etherscan", - gasToken: "ETH", - chainId: 1, - icon: "Ethereum", - maxBlockSearch: 2e3, - symbol: "ETH", - sdkName: "Ethereum" - }, - Solana: { - key: "Solana", - id: 1, - context: "Solana" /* SOLANA */, - finalityThreshold: 32, - displayName: "Solana", - explorerUrl: "https://explorer.solana.com/", - explorerName: "Solana Explorer", - gasToken: "SOL", - chainId: 0, - icon: "Solana", - maxBlockSearch: 2e3, - symbol: "SOL", - sdkName: "Solana" - } -}; -var AptosMainnetChain = { - key: "Aptos", - id: 22, - context: "Aptos", - finalityThreshold: 0, - displayName: "Aptos", - explorerUrl: "https://explorer.aptoslabs.com/", - explorerName: "Aptos Explorer", - gasToken: "APT", - chainId: 0, - icon: "Aptos", - maxBlockSearch: 0, - symbol: "APT" -}; - -// src/providers/wormhole/config/mainnet/tokens.ts -var mainnetTokens = { - Ethereum: { - symbol: "USDC", - tokenId: { - chain: "Ethereum", - address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" - }, - icon: "USDC", - decimals: 6 - }, - Solana: { - symbol: "USDC", - tokenId: { - chain: "Solana", - address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" - }, - icon: "USDC", - decimals: 6 - }, - Sui: { - symbol: "USDC", - decimals: 6, - tokenId: { - chain: "Sui", - address: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC" - }, - icon: "USDC" - } -}; -var AptosMainnetUSDCToken = { - symbol: "USDC", - tokenId: { - chain: "Aptos", - address: "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b" - }, - icon: "USDC", - decimals: 6 -}; - -// src/providers/wormhole/index.ts -var WormholeProvider = class { - constructor(core) { - this.CHAINS = testnetChains; - this.TOKENS = testnetTokens; - this.APTOS_TOKEN = AptosTestnetUSDCToken; - var _a; - this.crossChainCore = core; - if (((_a = core._dappConfig) == null ? void 0 : _a.network) === import_ts_sdk2.Network.MAINNET) { - this.CHAINS = mainnetChains; - this.TOKENS = mainnetTokens; - this.APTOS_TOKEN = AptosMainnetUSDCToken; - } else { - this.CHAINS = testnetChains; - this.TOKENS = testnetTokens; - this.APTOS_TOKEN = AptosTestnetUSDCToken; - } - } - get wormholeContext() { - return this._wormholeContext; - } - async setWormholeContext(sourceChain) { - var _a; - const dappNetwork = (_a = this.crossChainCore._dappConfig) == null ? void 0 : _a.network; - if (dappNetwork === import_ts_sdk2.Network.DEVNET) { - throw new Error("Devnet is not supported on Wormhole"); - } - if (!sourceChain) { - throw new Error("Origin chain not selected"); - } - const isMainnet = dappNetwork === import_ts_sdk2.Network.MAINNET; - const platforms = [import_aptos.default, import_solana.default, import_evm.default]; - const wh = await (0, import_sdk.wormhole)(isMainnet ? "Mainnet" : "Testnet", platforms); - this._wormholeContext = wh; - } - async getWormholeCctpRoute(sourceChain) { - if (!this._wormholeContext) { - throw new Error("Wormhole context not initialized"); - } - const { sourceToken, destToken } = this.getTokenInfo(sourceChain); - const sourceContext = this._wormholeContext.getPlatform((0, import_sdk.chainToPlatform)(sourceChain)).getChain(sourceChain); - logger.log("sourceContext", sourceContext); - const destContext = this._wormholeContext.getPlatform((0, import_sdk.chainToPlatform)("Aptos")).getChain("Aptos"); - logger.log("destContext", destContext); - const req = await import_sdk.routes.RouteTransferRequest.create( - this._wormholeContext, - { - source: sourceToken, - destination: destToken - }, - sourceContext, - destContext - ); - const resolver = this._wormholeContext.resolver([ - import_sdk.routes.CCTPRoute - ]); - const route = await resolver.findRoutes(req); - const cctpRoute = route[0]; - return { route: cctpRoute, request: req }; - } - async getQuote(input) { - const { amount, sourceChain } = input; - if (!this._wormholeContext) { - await this.setWormholeContext(sourceChain); - } - const { route, request } = await this.getWormholeCctpRoute(sourceChain); - this.wormholeRoute = route; - this.wormholeRequest = request; - const transferParams = { amount, options: { nativeGas: 0 } }; - const validated = await route.validate(request, transferParams); - if (!validated.valid) { - logger.log("invalid", validated.valid); - throw validated.error; - } - const quote = await route.quote(request, validated.params); - if (!quote.success) { - logger.log("quote failed", quote.success); - throw quote.error; - } - this.wormholeQuote = quote; - logger.log("quote", quote); - return quote; - } - async startCCTPTransfer(input) { - const { sourceChain, wallet, destinationAddress } = input; - if (!this._wormholeContext) { - await this.setWormholeContext(sourceChain); - } - if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) { - throw new Error("Wormhole route, request, or quote not initialized"); - } - let signerAddress; - const chainContext = this.getChainConfig(sourceChain).context; - const currentAccount = await wallet.getAccount(); - if (chainContext === "Solana") { - signerAddress = currentAccount.publicKey.toString(); - } else { - signerAddress = currentAccount.address; - } - logger.log("signerAddress", signerAddress); - const signer = new Signer( - this.getChainConfig(sourceChain), - signerAddress, - {}, - wallet - ); - let receipt = await this.wormholeRoute.initiate( - this.wormholeRequest, - signer, - this.wormholeQuote, - import_sdk.Wormhole.chainAddress("Aptos", destinationAddress.toString()) - ); - const originChainTxnId = "originTxs" in receipt ? receipt.originTxs[receipt.originTxs.length - 1].txid : void 0; - return { originChainTxnId: originChainTxnId || "", receipt }; - } - async initiateCCTPTransfer(input) { - var _a; - if (((_a = this.crossChainCore._dappConfig) == null ? void 0 : _a.network) === import_ts_sdk2.Network.DEVNET) { - throw new Error("Devnet is not supported on Wormhole"); - } - if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) { - throw new Error("Wormhole route, request, or quote not initialized"); - } - let { originChainTxnId, receipt } = await this.startCCTPTransfer(input); - const { mainSigner, sponsorAccount } = input; - logger.log("mainSigner", mainSigner.accountAddress.toString()); - let retries = 0; - const maxRetries = 5; - const baseDelay = 1e3; - while (retries < maxRetries) { - try { - for await (receipt of this.wormholeRoute.track(receipt, 120 * 1e3)) { - if (receipt.state >= import_sdk.TransferState.SourceInitiated) { - logger.log("Receipt is on track ", receipt); - try { - const signer = new AptosLocalSigner( - "Aptos", - {}, - mainSigner, - sponsorAccount ? sponsorAccount : void 0 - ); - if (import_sdk.routes.isManual(this.wormholeRoute)) { - const circleAttestationReceipt = await this.wormholeRoute.complete(signer, receipt); - logger.log("Claim receipt: ", circleAttestationReceipt); - const destinationChainTxnId = signer.claimedTransactionHashes(); - return { destinationChainTxnId, originChainTxnId }; - } else { - return { destinationChainTxnId: "", originChainTxnId }; - } - } catch (e) { - console.error("Failed to claim", e); - return { destinationChainTxnId: "", originChainTxnId }; - } - } - } - } catch (e) { - console.error( - `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`, - e - ); - const delay = baseDelay * Math.pow(2, retries); - await (0, import_ts_sdk2.sleep)(delay); - retries++; - } - } - return { destinationChainTxnId: "", originChainTxnId }; - } - getChainConfig(chain) { - const chainConfig = this.CHAINS[chain]; - if (!chainConfig) { - throw new Error(`Chain config not found for chain: ${chain}`); - } - return chainConfig; - } - getTokenInfo(sourceChain) { - const sourceToken = import_sdk.Wormhole.tokenId( - this.TOKENS[sourceChain].tokenId.chain, - this.TOKENS[sourceChain].tokenId.address - ); - const destToken = import_sdk.Wormhole.tokenId( - this.APTOS_TOKEN.tokenId.chain, - this.APTOS_TOKEN.tokenId.address - ); - return { sourceToken, destToken }; - } -}; - -// src/CrossChainCore.ts -var CrossChainCore = class { - constructor(args) { - this._dappConfig = args.dappConfig; - } - getProvider(providerType) { - switch (providerType) { - case "Wormhole": - return new WormholeProvider(this); - default: - throw new Error(`Unknown provider: ${providerType}`); - } - } -}; - -// src/index.ts -var import_ts_sdk3 = require("@aptos-labs/ts-sdk"); -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - AptosMainnetChain, - AptosMainnetUSDCToken, - AptosTestnetChain, - AptosTestnetUSDCToken, - Context, - CrossChainCore, - Network, - WormholeProvider, - mainnetChains, - mainnetTokens, - testnetChains, - testnetTokens -}); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/index.js.map b/packages/cross-chain/cross-chain-core/dist/index.js.map deleted file mode 100644 index 5d5c1e6e..00000000 --- a/packages/cross-chain/cross-chain-core/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts","../src/providers/wormhole/index.ts","../src/utils/logger.ts","../src/providers/wormhole/signers/AptosLocalSigner.ts","../src/providers/wormhole/signers/SolanaSigner.ts","../src/providers/wormhole/signers/EthereumSigner.ts","../src/providers/wormhole/signers/SuiSigner.ts","../src/providers/wormhole/signers/index.ts","../src/providers/wormhole/config/types.ts","../src/providers/wormhole/config/testnet/chains.ts","../src/providers/wormhole/config/testnet/tokens.ts","../src/providers/wormhole/config/mainnet/chains.ts","../src/providers/wormhole/config/mainnet/tokens.ts","../src/CrossChainCore.ts"],"sourcesContent":["export * from \"./CrossChainCore\";\nexport * from \"./providers/wormhole/config\";\nexport * from \"./providers/wormhole/index\";\nexport { Network } from \"@aptos-labs/ts-sdk\";\n","import { Chain, CrossChainProvider } from \"../../CrossChainCore\";\n\nimport {\n chainToPlatform,\n routes,\n TokenId,\n Wormhole,\n wormhole,\n PlatformLoader,\n TransferState,\n AttestationReceipt,\n} from \"@wormhole-foundation/sdk\";\n\nimport aptos from \"@wormhole-foundation/sdk/aptos\";\nimport solana from \"@wormhole-foundation/sdk/solana\";\nimport evm from \"@wormhole-foundation/sdk/evm\";\nimport sui from \"@wormhole-foundation/sdk/sui\";\n\nimport { CrossChainCore } from \"../../CrossChainCore\";\nimport { logger } from \"../../utils/logger\";\nimport {\n Account,\n AccountAddressInput,\n Ed25519PrivateKey,\n Network,\n sleep,\n} from \"@aptos-labs/ts-sdk\";\nimport { AptosLocalSigner } from \"./signers/AptosLocalSigner\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { Signer } from \"./signers\";\nimport {\n ChainsConfig,\n testnetChains,\n testnetTokens,\n mainnetChains,\n mainnetTokens,\n TokenConfig,\n AptosTestnetUSDCToken,\n AptosMainnetUSDCToken,\n ChainConfig,\n} from \"./config\";\n\nexport type WormholeRouteResponse = routes.Route<\n \"Mainnet\" | \"Testnet\",\n routes.Options,\n routes.ValidatedTransferParams,\n routes.Receipt\n>;\n\nexport type WormholeRequest = routes.RouteTransferRequest<\n \"Mainnet\" | \"Testnet\"\n>;\n\nexport type WormholeQuoteResponse = routes.Quote<\n routes.Options,\n routes.ValidatedTransferParams,\n any\n>;\n\nexport interface WormholeQuoteRequest {\n amount: string;\n sourceChain: Chain;\n}\n\nexport interface WormholeInitiateTransferRequest {\n sourceChain: Chain;\n wallet: AdapterWallet;\n destinationAddress: AccountAddressInput;\n mainSigner: Account;\n sponsorAccount?: Account | Partial>;\n}\n\nexport interface WormholeInitiateTransferResponse {\n destinationChainTxnId: string;\n originChainTxnId: string;\n}\n\nexport interface WormholeStartTransferResponse {\n originChainTxnId: string;\n receipt: routes.Receipt;\n}\n\nexport class WormholeProvider\n implements\n CrossChainProvider<\n WormholeQuoteRequest,\n WormholeQuoteResponse,\n WormholeInitiateTransferRequest,\n WormholeInitiateTransferResponse\n >\n{\n private crossChainCore: CrossChainCore;\n\n private _wormholeContext: Wormhole<\"Mainnet\" | \"Testnet\"> | undefined;\n\n private wormholeRoute: WormholeRouteResponse | undefined;\n private wormholeRequest: WormholeRequest | undefined;\n private wormholeQuote: WormholeQuoteResponse | undefined;\n\n readonly CHAINS: ChainsConfig = testnetChains;\n readonly TOKENS: Record = testnetTokens;\n\n readonly APTOS_TOKEN: TokenConfig = AptosTestnetUSDCToken;\n\n constructor(core: CrossChainCore) {\n this.crossChainCore = core;\n if (core._dappConfig?.network === Network.MAINNET) {\n this.CHAINS = mainnetChains;\n this.TOKENS = mainnetTokens;\n this.APTOS_TOKEN = AptosMainnetUSDCToken;\n } else {\n this.CHAINS = testnetChains;\n this.TOKENS = testnetTokens;\n this.APTOS_TOKEN = AptosTestnetUSDCToken;\n }\n }\n\n get wormholeContext(): Wormhole<\"Mainnet\" | \"Testnet\"> | undefined {\n return this._wormholeContext;\n }\n\n async setWormholeContext(sourceChain: Chain) {\n const dappNetwork = this.crossChainCore._dappConfig?.network;\n if (dappNetwork === Network.DEVNET) {\n throw new Error(\"Devnet is not supported on Wormhole\");\n }\n if (!sourceChain) {\n throw new Error(\"Origin chain not selected\");\n }\n const isMainnet = dappNetwork === Network.MAINNET;\n const platforms: PlatformLoader[] = [aptos, solana, evm];\n const wh = await wormhole(isMainnet ? \"Mainnet\" : \"Testnet\", platforms);\n this._wormholeContext = wh;\n }\n\n async getWormholeCctpRoute(sourceChain: Chain): Promise<{\n route: WormholeRouteResponse;\n request: WormholeRequest;\n }> {\n if (!this._wormholeContext) {\n throw new Error(\"Wormhole context not initialized\");\n }\n\n const { sourceToken, destToken } = this.getTokenInfo(sourceChain);\n\n const sourceContext = this._wormholeContext\n .getPlatform(chainToPlatform(sourceChain))\n .getChain(sourceChain);\n\n logger.log(\"sourceContext\", sourceContext);\n\n const destContext = this._wormholeContext\n .getPlatform(chainToPlatform(\"Aptos\"))\n .getChain(\"Aptos\");\n\n logger.log(\"destContext\", destContext);\n\n const req = await routes.RouteTransferRequest.create(\n this._wormholeContext,\n {\n source: sourceToken,\n destination: destToken,\n },\n sourceContext,\n destContext\n );\n\n const resolver = this._wormholeContext.resolver([\n routes.CCTPRoute, // manual CCTP\n ]);\n\n const route = await resolver.findRoutes(req);\n const cctpRoute = route[0];\n\n return { route: cctpRoute, request: req };\n }\n\n async getQuote(input: WormholeQuoteRequest): Promise {\n const { amount, sourceChain } = input;\n\n if (!this._wormholeContext) {\n await this.setWormholeContext(sourceChain);\n }\n\n const { route, request } = await this.getWormholeCctpRoute(sourceChain);\n this.wormholeRoute = route;\n this.wormholeRequest = request;\n\n // TODO what is nativeGas for?\n const transferParams = { amount, options: { nativeGas: 0 } };\n\n const validated = await route.validate(request, transferParams);\n if (!validated.valid) {\n logger.log(\"invalid\", validated.valid);\n throw validated.error;\n }\n const quote = await route.quote(request, validated.params);\n if (!quote.success) {\n logger.log(\"quote failed\", quote.success);\n throw quote.error;\n }\n this.wormholeQuote = quote;\n logger.log(\"quote\", quote);\n return quote;\n }\n\n async startCCTPTransfer(\n input: WormholeInitiateTransferRequest\n ): Promise {\n const { sourceChain, wallet, destinationAddress } = input;\n\n if (!this._wormholeContext) {\n await this.setWormholeContext(sourceChain);\n }\n if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) {\n throw new Error(\"Wormhole route, request, or quote not initialized\");\n }\n\n let signerAddress: string;\n\n const chainContext = this.getChainConfig(sourceChain).context;\n\n const currentAccount = await wallet.getAccount();\n if (chainContext === \"Solana\") {\n signerAddress = currentAccount.publicKey.toString();\n } else {\n signerAddress = currentAccount.address;\n }\n logger.log(\"signerAddress\", signerAddress);\n\n const signer = new Signer(\n this.getChainConfig(sourceChain),\n signerAddress,\n {},\n wallet\n );\n\n let receipt = await this.wormholeRoute.initiate(\n this.wormholeRequest,\n signer,\n this.wormholeQuote,\n Wormhole.chainAddress(\"Aptos\", destinationAddress.toString())\n );\n\n const originChainTxnId =\n \"originTxs\" in receipt\n ? receipt.originTxs[receipt.originTxs.length - 1].txid\n : undefined;\n\n return { originChainTxnId: originChainTxnId || \"\", receipt };\n }\n\n async initiateCCTPTransfer(\n input: WormholeInitiateTransferRequest\n ): Promise {\n if (this.crossChainCore._dappConfig?.network === Network.DEVNET) {\n throw new Error(\"Devnet is not supported on Wormhole\");\n }\n if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) {\n throw new Error(\"Wormhole route, request, or quote not initialized\");\n }\n let { originChainTxnId, receipt } = await this.startCCTPTransfer(input);\n // should come from transaction signer worker\n const { mainSigner, sponsorAccount } = input;\n\n logger.log(\"mainSigner\", mainSigner.accountAddress.toString());\n\n let retries = 0;\n const maxRetries = 5;\n const baseDelay = 1000; // Initial delay of 1 second\n\n while (retries < maxRetries) {\n try {\n for await (receipt of this.wormholeRoute.track(receipt, 120 * 1000)) {\n if (receipt.state >= TransferState.SourceInitiated) {\n logger.log(\"Receipt is on track \", receipt);\n\n try {\n const signer = new AptosLocalSigner(\n \"Aptos\",\n {},\n mainSigner, // the account that signs the \"claim\" transaction\n sponsorAccount ? sponsorAccount : undefined // the fee payer account\n );\n\n if (routes.isManual(this.wormholeRoute)) {\n const circleAttestationReceipt =\n await this.wormholeRoute.complete(signer, receipt);\n logger.log(\"Claim receipt: \", circleAttestationReceipt);\n const destinationChainTxnId = signer.claimedTransactionHashes();\n return { destinationChainTxnId, originChainTxnId };\n } else {\n // Should be unreachable\n return { destinationChainTxnId: \"\", originChainTxnId };\n }\n } catch (e) {\n console.error(\"Failed to claim\", e);\n return { destinationChainTxnId: \"\", originChainTxnId };\n }\n }\n }\n } catch (e) {\n console.error(\n `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`,\n e\n );\n const delay = baseDelay * Math.pow(2, retries); // Exponential backoff\n await sleep(delay);\n retries++;\n }\n }\n // Should be unreachable\n return { destinationChainTxnId: \"\", originChainTxnId };\n }\n\n getChainConfig(chain: Chain): ChainConfig {\n const chainConfig = this.CHAINS[chain as keyof typeof this.CHAINS];\n if (!chainConfig) {\n throw new Error(`Chain config not found for chain: ${chain}`);\n }\n return chainConfig;\n }\n\n getTokenInfo(sourceChain: Chain): {\n sourceToken: TokenId;\n destToken: TokenId;\n } {\n const sourceToken: TokenId = Wormhole.tokenId(\n this.TOKENS[sourceChain].tokenId.chain as Chain,\n this.TOKENS[sourceChain].tokenId.address\n );\n\n const destToken: TokenId = Wormhole.tokenId(\n this.APTOS_TOKEN.tokenId.chain as Chain,\n this.APTOS_TOKEN.tokenId.address\n );\n\n return { sourceToken, destToken };\n }\n}\n","export const logger = {\n log: (...args: any[]) => {\n if (process.env.NODE_ENV === \"development\") {\n console.log(...args);\n }\n },\n warn: (...args: any[]) => {\n if (process.env.NODE_ENV === \"development\") {\n console.warn(...args);\n }\n },\n error: (...args: any[]) => {\n if (process.env.NODE_ENV === \"development\") {\n console.error(...args);\n }\n },\n};\n","import {\n AccountAuthenticator,\n AnyRawTransaction,\n Aptos,\n AptosConfig,\n Network as AptosNetwork,\n Account,\n} from \"@aptos-labs/ts-sdk\";\n\nimport {\n Chain,\n Network,\n SignAndSendSigner,\n TxHash,\n UnsignedTransaction,\n} from \"@wormhole-foundation/sdk\";\nimport {\n AptosUnsignedTransaction,\n AptosChains,\n} from \"@wormhole-foundation/sdk-aptos\";\n\nexport class AptosLocalSigner\n implements SignAndSendSigner\n{\n _chain: C;\n _options: any;\n _wallet: Account;\n _sponsorAccount: Account | Partial> | undefined;\n _claimedTransactionHashes: string;\n\n constructor(\n chain: C,\n options: any,\n wallet: Account,\n feePayerAccount: Account | Partial> | undefined\n ) {\n this._chain = chain;\n this._options = options;\n this._wallet = wallet;\n this._sponsorAccount = feePayerAccount;\n this._claimedTransactionHashes = \"\";\n }\n\n chain(): C {\n return this._chain;\n }\n address(): string {\n return this._wallet.accountAddress.toString();\n }\n\n claimedTransactionHashes(): string {\n return this._claimedTransactionHashes;\n }\n /* other methods... */\n\n async signAndSend(txs: UnsignedTransaction[]): Promise {\n console.log(\"Signer signAndSend txs\", txs);\n const txHashes: TxHash[] = [];\n\n for (const tx of txs) {\n const txId = await signAndSendTransaction(\n tx as AptosUnsignedTransaction,\n this._wallet,\n this._sponsorAccount\n );\n txHashes.push(txId);\n this._claimedTransactionHashes = txId;\n }\n return txHashes;\n }\n}\n\nexport async function signAndSendTransaction(\n request: UnsignedTransaction,\n wallet: Account,\n sponsorAccount: Account | Partial> | undefined\n) {\n if (!wallet) {\n throw new Error(\"Wallet is undefined\");\n }\n\n const payload = request.transaction;\n // The wallets do not handle Uint8Array serialization\n payload.functionArguments = payload.functionArguments.map((a: any) => {\n if (a instanceof Uint8Array) {\n return Array.from(a);\n } else if (typeof a === \"bigint\") {\n return a.toString();\n } else {\n return a;\n }\n });\n\n const aptosConfig = new AptosConfig({\n network: AptosNetwork.TESTNET,\n });\n const aptos = new Aptos(aptosConfig);\n\n const txnToSign = await aptos.transaction.build.simple({\n data: payload,\n sender: wallet.accountAddress.toString(),\n withFeePayer: sponsorAccount ? true : false,\n });\n const senderAuthenticator = await aptos.transaction.sign({\n signer: wallet,\n transaction: txnToSign,\n });\n\n const txnToSubmit: {\n transaction: AnyRawTransaction;\n senderAuthenticator: AccountAuthenticator;\n feePayerAuthenticator?: AccountAuthenticator;\n } = {\n transaction: txnToSign,\n senderAuthenticator,\n };\n\n if (sponsorAccount) {\n const feePayerSignerAuthenticator = aptos.transaction.signAsFeePayer({\n // TODO: handles sponsor account coming from gas station\n signer: sponsorAccount as Account,\n transaction: txnToSign,\n });\n txnToSubmit.feePayerAuthenticator = feePayerSignerAuthenticator;\n }\n\n const response = await aptos.transaction.submit.simple(txnToSubmit);\n\n const tx = await aptos.waitForTransaction({\n transactionHash: response.hash,\n });\n\n return tx.hash;\n}\n","// This function signs and sends the transaction while constantly checking for confirmation\n// and resending the transaction if it hasn't been confirmed after the specified interval\n\nimport {\n AddressLookupTableAccount,\n Commitment,\n ComputeBudgetProgram,\n ConfirmOptions,\n LAMPORTS_PER_SOL,\n SimulatedTransactionResponse,\n TransactionInstruction,\n TransactionMessage,\n VersionedTransaction,\n} from \"@solana/web3.js\";\n\nimport { Transaction } from \"@solana/web3.js\";\nimport { RpcResponseAndContext, SignatureResult } from \"@solana/web3.js\";\nimport {\n determinePriorityFee,\n determinePriorityFeeTritonOne,\n isVersionedTransaction,\n SolanaUnsignedTransaction,\n} from \"@wormhole-foundation/sdk-solana\";\n\nimport { Connection } from \"@solana/web3.js\";\nimport { Network } from \"@wormhole-foundation/sdk\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\n\nexport type SolanaRpcProvider = \"triton\" | \"helius\" | \"ankr\" | \"unknown\";\n\n// See https://docs.triton.one/chains/solana/sending-txs for more information\nexport async function signAndSendTransaction(\n request: SolanaUnsignedTransaction,\n wallet: AdapterWallet | undefined,\n options?: ConfirmOptions\n) {\n if (!wallet) throw new Error(\"Wallet not found\");\n\n const commitment = options?.commitment ?? \"finalized\";\n // Solana rpc should come from dapp config\n const connection = new Connection(\"https://api.devnet.solana.com\");\n const { blockhash, lastValidBlockHeight } =\n await connection.getLatestBlockhash(commitment);\n\n // Circle Manual CCTP on Wormhole is always of a Trnasaction type\n // https://github.com/wormhole-foundation/wormhole-sdk-ts/blob/f7d992e04f844edcc4128659f12f75ade3553717/platforms/solana/protocols/cctp/src/circleBridge.ts#L173\n const transaction = request.transaction.transaction as Transaction;\n\n /**\n * TODO: Priority Fee is supported, but needs to come from dapp config\n */\n const unsignedTx = await setPriorityFeeInstructions(\n connection,\n blockhash,\n lastValidBlockHeight,\n request\n );\n\n let confirmTransactionPromise: Promise<\n RpcResponseAndContext\n > | null = null;\n let confirmedTx: RpcResponseAndContext | null = null;\n let txSendAttempts = 1;\n let signature = \"\";\n\n // transaction.recentBlockhash = blockhash;\n // if (request.transaction.signers) {\n // transaction.partialSign(...request.transaction.signers);\n // }\n\n const tx = await wallet.signTransaction(unsignedTx);\n const serializedTx = tx.serialize();\n const sendOptions = {\n skipPreflight: true,\n maxRetries: 0,\n preFlightCommitment: commitment, // See PR and linked issue for why setting this matters: https://github.com/anza-xyz/agave/pull/483\n };\n signature = await connection.sendRawTransaction(serializedTx, sendOptions);\n confirmTransactionPromise = connection.confirmTransaction(\n {\n signature,\n blockhash,\n lastValidBlockHeight,\n },\n commitment\n );\n\n // This loop will break once the transaction has been confirmed or the block height is exceeded.\n // An exception will be thrown if the block height is exceeded by the confirmTransactionPromise.\n // The transaction will be resent if it hasn't been confirmed after the interval.\n const txRetryInterval = 5000;\n while (!confirmedTx) {\n confirmedTx = await Promise.race([\n confirmTransactionPromise,\n new Promise((resolve) =>\n setTimeout(() => {\n resolve(null);\n }, txRetryInterval)\n ),\n ]);\n if (confirmedTx) {\n break;\n }\n console.log(\n `Tx not confirmed after ${\n txRetryInterval * txSendAttempts++\n }ms, resending`\n );\n try {\n await connection.sendRawTransaction(serializedTx, sendOptions);\n } catch (e) {\n console.error(\"Failed to resend transaction:\", e);\n }\n }\n\n if (confirmedTx.value.err) {\n let errorMessage = `Transaction failed: ${confirmedTx.value.err}`;\n if (typeof confirmedTx.value.err === \"object\") {\n try {\n errorMessage = `Transaction failed: ${JSON.stringify(\n confirmedTx.value.err,\n (_key, value) =>\n typeof value === \"bigint\" ? value.toString() : value // Handle bigint props\n )}`;\n } catch (e: unknown) {\n // Most likely a circular reference error, we can't stringify this error object.\n // See for more details:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#exceptions\n errorMessage = `Transaction failed: Unknown error`;\n }\n }\n throw new Error(`Transaction failed: ${errorMessage}`);\n }\n\n return signature;\n}\n\nexport async function setPriorityFeeInstructions(\n connection: Connection,\n blockhash: string,\n lastValidBlockHeight: number,\n request: SolanaUnsignedTransaction\n): Promise {\n const unsignedTx = request.transaction.transaction as Transaction;\n\n const computeBudgetIxFilter = (ix: TransactionInstruction) =>\n ix.programId.toString() !== \"ComputeBudget111111111111111111111111111111\";\n\n unsignedTx.recentBlockhash = blockhash;\n unsignedTx.lastValidBlockHeight = lastValidBlockHeight;\n\n // Remove existing compute budget instructions if they were added by the SDK\n unsignedTx.instructions = unsignedTx.instructions.filter(\n computeBudgetIxFilter\n );\n unsignedTx.add(\n ...(await createPriorityFeeInstructions(connection, unsignedTx))\n );\n if (request.transaction.signers) {\n unsignedTx.partialSign(...request.transaction.signers);\n }\n\n return unsignedTx;\n}\n\n// This will throw if the simulation fails\nasync function createPriorityFeeInstructions(\n connection: Connection,\n transaction: Transaction | VersionedTransaction,\n commitment?: Commitment\n) {\n let unitsUsed = 200_000;\n let simulationAttempts = 0;\n\n simulationLoop: while (true) {\n const response = await connection.simulateTransaction(\n transaction as Transaction\n );\n\n if (response.value.err) {\n if (checkKnownSimulationError(response.value)) {\n // Number of attempts will be at most 5 for known errors\n if (simulationAttempts < 5) {\n simulationAttempts++;\n await sleep(1000);\n continue simulationLoop;\n }\n } else if (simulationAttempts < 3) {\n // Number of attempts will be at most 3 for unknown errors\n simulationAttempts++;\n await sleep(1000);\n continue simulationLoop;\n }\n\n // Still failing after multiple attempts for both known and unknown errors\n // We should throw in that case\n throw new Error(\n `Simulation failed: ${JSON.stringify(response.value.err)}\\nLogs:\\n${(\n response.value.logs || []\n ).join(\"\\n \")}`\n );\n } else {\n // Simulation was successful\n if (response.value.unitsConsumed) {\n unitsUsed = response.value.unitsConsumed;\n }\n break;\n }\n }\n\n const unitBudget = Math.floor(unitsUsed * 1.2); // Budget in 20% headroom\n\n const instructions: TransactionInstruction[] = [];\n instructions.push(\n ComputeBudgetProgram.setComputeUnitLimit({\n // Set compute budget to 120% of the units used in the simulated transaction\n units: unitBudget,\n })\n );\n\n // const priorityFeeConfig =\n // config.transactionSettings?.Solana?.priorityFee || {};\n\n // const {\n // percentile = 0.9,\n // percentileMultiple = 1,\n // min = 100_000,\n // max = 100_000_000,\n // } = priorityFeeConfig;\n const percentile = 0.9;\n const percentileMultiple = 1;\n const min = 100_000;\n const max = 100_000_000;\n\n const calculateFee = async (\n rpcProvider?: SolanaRpcProvider\n ): Promise<{ fee: number; methodUsed: \"triton\" | \"default\" | \"minimum\" }> => {\n if (rpcProvider === \"triton\") {\n // Triton has an experimental RPC method that accepts a percentile paramater\n // and usually gives more accurate fee numbers.\n try {\n const fee = await determinePriorityFeeTritonOne(\n connection,\n transaction,\n percentile,\n percentileMultiple,\n min,\n max\n );\n\n return {\n fee,\n methodUsed: \"triton\",\n };\n } catch (e) {\n console.warn(`Failed to determine priority fee using Triton RPC:`, e);\n }\n }\n\n try {\n // By default, use generic Solana RPC method\n const fee = await determinePriorityFee(\n connection,\n transaction,\n percentile,\n percentileMultiple,\n min,\n max\n );\n\n return {\n fee,\n methodUsed: \"default\",\n };\n } catch (e) {\n console.warn(`Failed to determine priority fee using Triton RPC:`, e);\n\n return {\n fee: min,\n methodUsed: \"minimum\",\n };\n }\n };\n\n const rpcProvider = determineRpcProvider(connection.rpcEndpoint);\n\n const { fee, methodUsed } = await calculateFee(rpcProvider);\n\n const maxFeeInSol =\n (fee /\n // convert microlamports to lamports\n 1e6 /\n // convert lamports to SOL\n LAMPORTS_PER_SOL) *\n // multiply by maximum compute units used\n unitBudget;\n\n console.table({\n \"RPC Provider\": rpcProvider,\n \"Method used\": methodUsed,\n \"Percentile used\": percentile,\n \"Multiple used\": percentileMultiple,\n \"Compute budget\": unitBudget,\n \"Priority fee\": fee,\n \"Max fee in SOL\": maxFeeInSol,\n });\n\n instructions.push(\n ComputeBudgetProgram.setComputeUnitPrice({ microLamports: fee })\n );\n return instructions;\n}\n\n// Checks response logs for known errors.\n// Returns when the first error is encountered.\nfunction checkKnownSimulationError(\n response: SimulatedTransactionResponse\n): boolean {\n const errors = {} as any;\n\n // This error occur when the blockhash included in a transaction is not deemed to be valid\n // when a validator processes a transaction. We can retry the simulation to get a valid blockhash.\n if (response.err === \"BlockhashNotFound\") {\n errors[\"BlockhashNotFound\"] =\n \"Blockhash not found during simulation. Trying again.\";\n }\n\n // Check the response logs for any known errors\n if (response.logs) {\n for (const line of response.logs) {\n // In some cases which aren't deterministic, like a slippage error, we can retry the\n // simulation a few times to get a successful response.\n if (line.includes(\"SlippageToleranceExceeded\")) {\n errors[\"SlippageToleranceExceeded\"] =\n \"Slippage failure during simulation. Trying again.\";\n }\n\n // In this case a require_gte expression was violated during a Swap instruction.\n // We can retry the simulation to get a successful response.\n if (line.includes(\"RequireGteViolated\")) {\n errors[\"RequireGteViolated\"] =\n \"Swap instruction failure during simulation. Trying again.\";\n }\n }\n }\n\n // No known simulation errors found\n if (isEmptyObject(errors)) {\n return false;\n }\n\n console.table(errors);\n return true;\n}\n\nexport async function sleep(timeout: number) {\n return new Promise((resolve) => setTimeout(resolve, timeout));\n}\n\n/**\n * Checks whether an object is empty.\n *\n * isEmptyObject(null)\n * // => true\n *\n * isEmptyObject(undefined)\n * // => true\n *\n * isEmptyObject({})\n * // => true\n *\n * isEmptyObject({ 'a': 1 })\n * // => false\n */\nexport const isEmptyObject = (value: object | null | undefined) => {\n if (value === null || value === undefined) {\n return true;\n }\n\n // Check all property keys for any own prop\n for (const key in value) {\n if (value.hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n\n return true;\n};\n\nfunction determineRpcProvider(endpoint: string): SolanaRpcProvider {\n if (endpoint.includes(\"rpcpool.com\")) {\n return \"triton\";\n } else if (endpoint.includes(\"helius-rpc.com\")) {\n return \"helius\";\n } else if (endpoint.includes(\"rpc.ankr.com\")) {\n return \"ankr\";\n } else {\n return \"unknown\";\n }\n}\n","import {\n EvmUnsignedTransaction,\n EvmChains,\n} from \"@wormhole-foundation/sdk-evm\";\nimport { Network } from \"@wormhole-foundation/sdk\";\nimport { getBigInt } from \"ethers\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nexport async function signAndSendTransaction(\n request: EvmUnsignedTransaction,\n wallet: AdapterWallet,\n chainName: string,\n options: any\n): Promise {\n if (!wallet || !wallet.sendTransaction) {\n throw new Error(\"wallet.sendTransaction is undefined\");\n }\n // Ensure the signer is connected to the correct chain\n const actualChainId = await wallet.getConnectedNetwork();\n\n if (!actualChainId) throw new Error(\"No signer found for chain\" + chainName);\n const expectedChainId = request.transaction.chainId\n ? getBigInt(request.transaction.chainId)\n : undefined;\n\n if (\n !actualChainId ||\n !expectedChainId ||\n BigInt(actualChainId) !== expectedChainId\n ) {\n throw new Error(\n `Signer is not connected to the right chain. Expected ${expectedChainId}, got ${actualChainId}`\n );\n }\n\n const txHash = await wallet.sendTransaction(request.transaction);\n\n return txHash;\n}\n","import {\n SuiChains,\n SuiUnsignedTransaction,\n} from \"@wormhole-foundation/sdk-sui\";\nimport { Network } from \"@wormhole-foundation/sdk\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\n\nexport async function signAndSendTransaction(\n request: SuiUnsignedTransaction,\n wallet: AdapterWallet\n): Promise {\n if (!wallet || !wallet.sendTransaction) {\n throw new Error(\"wallet.sendTransaction is undefined\");\n }\n\n const response = await wallet.sendTransaction({\n /* @ts-ignore */\n transactionBlock: request.transaction as TransactionBlock,\n });\n\n return response?.id;\n}\n","import {\n UnsignedTransaction,\n Network,\n Chain,\n TxHash,\n SignAndSendSigner,\n} from \"@wormhole-foundation/sdk\";\nimport { SolanaUnsignedTransaction } from \"@wormhole-foundation/sdk-solana\";\nimport {\n SuiChains,\n SuiUnsignedTransaction,\n} from \"@wormhole-foundation/sdk-sui\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport {\n EvmUnsignedTransaction,\n EvmChains,\n} from \"@wormhole-foundation/sdk-evm\";\n\nimport * as solanaSigner from \"./SolanaSigner\";\nimport * as ethereumSigner from \"./EthereumSigner\";\nimport * as suiSigner from \"./SuiSigner\";\n\nimport { ChainConfig } from \"../config\";\nexport class Signer\n implements SignAndSendSigner\n{\n _chain: ChainConfig;\n _address: string;\n _options: any;\n _wallet: AdapterWallet;\n\n constructor(\n chain: ChainConfig,\n address: string,\n options: any,\n wallet: AdapterWallet\n ) {\n this._chain = chain;\n this._address = address;\n this._options = options;\n this._wallet = wallet;\n }\n\n chain(): C {\n return this._chain.displayName as C;\n }\n address(): string {\n return this._address;\n }\n\n async signAndSend(txs: UnsignedTransaction[]): Promise {\n const txHashes: TxHash[] = [];\n\n for (const tx of txs) {\n const txId = await signAndSendTransaction(\n this._chain,\n tx,\n this._wallet,\n this._options\n );\n txHashes.push(txId);\n }\n return txHashes;\n }\n}\n\nexport const signAndSendTransaction = async (\n chain: ChainConfig,\n request: UnsignedTransaction,\n wallet: AdapterWallet,\n options: any = {}\n): Promise => {\n if (!wallet) {\n throw new Error(\"wallet is undefined\");\n }\n\n if (chain.context === \"Solana\") {\n const signature = await solanaSigner.signAndSendTransaction(\n request as SolanaUnsignedTransaction,\n wallet,\n options\n );\n return signature;\n } else if (chain.context === \"Ethereum\") {\n const tx = await ethereumSigner.signAndSendTransaction(\n request as EvmUnsignedTransaction,\n wallet,\n chain.displayName,\n options\n );\n return tx;\n } else if (chain.context === \"Sui\") {\n const tx = await suiSigner.signAndSendTransaction(\n request as SuiUnsignedTransaction,\n wallet\n );\n return tx;\n } else {\n throw new Error(`Unsupported chain: ${chain}`);\n }\n};\n","import { Chain, ChainId } from \"@wormhole-foundation/sdk\";\n\nexport enum Context {\n ETH = \"Ethereum\",\n TERRA = \"Terra\",\n XPLA = \"XPLA\",\n SOLANA = \"Solana\",\n ALGORAND = \"Algorand\",\n NEAR = \"Near\",\n APTOS = \"Aptos\",\n SUI = \"Sui\",\n OTHER = \"OTHER\",\n}\n\nexport type BaseChainConfig = {\n key: Chain;\n id: ChainId;\n context: Context;\n finalityThreshold: number;\n disabledAsSource?: boolean;\n disabledAsDestination?: boolean;\n};\n\nexport interface ChainConfig extends BaseChainConfig {\n sdkName: Chain;\n displayName: string;\n explorerUrl: string;\n explorerName: string;\n gasToken: string;\n wrappedGasToken?: string;\n chainId: number | string;\n icon: Chain;\n maxBlockSearch: number;\n symbol?: string;\n}\n\nexport type ChainsConfig = {\n [chain in Chain]?: ChainConfig;\n};\n\nexport type TokenConfig = {\n symbol: string;\n name?: string;\n decimals: number;\n icon: string;\n tokenId: {\n chain: Chain;\n address: string;\n };\n};\n","import { Context } from \"../types\";\n\nimport { ChainsConfig } from \"../types\";\n\nexport const testnetChains: ChainsConfig = {\n // Avalanche: {\n // key: \"Avalanche\",\n // id: 6,\n // context: \"Ethereum\",\n // finalityThreshold: 1,\n // displayName: \"Fuji\",\n // explorerUrl: \"https://testnet.avascan.info/blockchain/c/\",\n // explorerName: \"Avascan\",\n // gasToken: \"AVAX\",\n // chainId: 43113,\n // icon: \"Avalanche\",\n // maxBlockSearch: 2000,\n // symbol: \"AVAX\",\n // sdkName: \"Avalanche\",\n // wrappedGasToken: \"0xd00ae08403B9bbb9124bB305C09058E32C39A48c\",\n // },\n Sepolia: {\n key: \"Sepolia\",\n id: 10002,\n context: Context.ETH,\n finalityThreshold: 0,\n displayName: \"Sepolia\",\n explorerUrl: \"https://sepolia.etherscan.io/\",\n explorerName: \"Etherscan\",\n gasToken: \"ETHsepolia\",\n chainId: 11155111,\n icon: \"Ethereum\",\n maxBlockSearch: 2000,\n symbol: \"ETH\",\n sdkName: \"Sepolia\",\n wrappedGasToken: \"0xeef12A83EE5b7161D3873317c8E0E7B76e0B5D9c\",\n },\n Solana: {\n key: \"Solana\",\n id: 1,\n context: Context.SOLANA,\n finalityThreshold: 32,\n displayName: \"Solana\",\n explorerUrl: \"https://explorer.solana.com/\",\n explorerName: \"Solana Explorer\",\n gasToken: \"SOL\",\n chainId: 0,\n icon: \"Solana\",\n maxBlockSearch: 2000,\n symbol: \"SOL\",\n sdkName: \"Solana\",\n wrappedGasToken: \"So11111111111111111111111111111111111111112\",\n },\n // Sui: {\n // key: \"Sui\",\n // id: 21,\n // context: Context.SUI,\n // finalityThreshold: 0,\n // displayName: \"Sui\",\n // explorerUrl: \"https://suiscan.xyz/testnet/\",\n // explorerName: \"Suiscan\",\n // gasToken: \"SUI\",\n // chainId: 0,\n // icon: \"Sui\",\n // maxBlockSearch: 0,\n // symbol: \"SUI\",\n // sdkName: \"Sui\",\n // },\n};\n\nexport const AptosTestnetChain = {\n key: \"Aptos\",\n id: 22,\n context: Context.APTOS,\n finalityThreshold: 0,\n displayName: \"Aptos\",\n explorerUrl: \"https://explorer.aptoslabs.com?network=testnet\",\n explorerName: \"Aptos Explorer\",\n gasToken: \"APT\",\n chainId: 0,\n icon: \"Aptos\",\n maxBlockSearch: 0,\n symbol: \"APT\",\n sdkName: \"Aptos\",\n};\n","import { TokenConfig } from \"../types\";\n\nexport const testnetTokens: Record = {\n Avalanche: {\n symbol: \"USDC\",\n icon: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Avalanche\",\n address: \"0x5425890298aed601595a70AB815c96711a31Bc65\",\n },\n },\n Sepolia: {\n symbol: \"USDC\",\n icon: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Sepolia\",\n address: \"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238\",\n },\n },\n Solana: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Solana\",\n address: \"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n Sui: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Sui\",\n address:\n \"0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n};\n\nexport const AptosTestnetUSDCToken: TokenConfig = {\n symbol: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Aptos\",\n address:\n \"0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832\",\n },\n icon: \"USDC\",\n};\n","import { Context } from \"../types\";\n\nimport { ChainsConfig } from \"../types\";\n\nexport const mainnetChains: ChainsConfig = {\n Ethereum: {\n key: \"Ethereum\",\n id: 2,\n context: Context.ETH,\n finalityThreshold: 64,\n displayName: \"Ethereum\",\n explorerUrl: \"https://etherscan.io/\",\n explorerName: \"Etherscan\",\n gasToken: \"ETH\",\n chainId: 1,\n icon: \"Ethereum\",\n maxBlockSearch: 2000,\n symbol: \"ETH\",\n sdkName: \"Ethereum\",\n },\n Solana: {\n key: \"Solana\",\n id: 1,\n context: Context.SOLANA,\n finalityThreshold: 32,\n displayName: \"Solana\",\n explorerUrl: \"https://explorer.solana.com/\",\n explorerName: \"Solana Explorer\",\n gasToken: \"SOL\",\n chainId: 0,\n icon: \"Solana\",\n maxBlockSearch: 2000,\n symbol: \"SOL\",\n sdkName: \"Solana\",\n },\n // Sui: {\n // key: \"Sui\",\n // id: 21,\n // context: Context.SUI,\n // finalityThreshold: 0,\n // displayName: \"Sui\",\n // sdkName: \"Sui\",\n // explorerUrl: \"https://suiscan.xyz/\",\n // explorerName: \"Suiscan\",\n // gasToken: \"SUI\",\n // chainId: 0,\n // icon: \"Sui\",\n // maxBlockSearch: 0,\n // symbol: \"SUI\",\n // },\n};\n\nexport const AptosMainnetChain = {\n key: \"Aptos\",\n id: 22,\n context: \"Aptos\",\n finalityThreshold: 0,\n displayName: \"Aptos\",\n explorerUrl: \"https://explorer.aptoslabs.com/\",\n explorerName: \"Aptos Explorer\",\n gasToken: \"APT\",\n chainId: 0,\n icon: \"Aptos\",\n maxBlockSearch: 0,\n symbol: \"APT\",\n};\n","import { TokenConfig } from \"../types\";\n\nexport const mainnetTokens: Record = {\n Ethereum: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Ethereum\",\n address: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n Solana: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Solana\",\n address: \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n Sui: {\n symbol: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Sui\",\n address:\n \"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC\",\n },\n icon: \"USDC\",\n },\n};\n\nexport const AptosMainnetUSDCToken: TokenConfig = {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Aptos\",\n address:\n \"0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b\",\n },\n icon: \"USDC\",\n decimals: 6,\n};\n","import { Account, Network } from \"@aptos-labs/ts-sdk\";\n\nimport {\n WormholeInitiateTransferRequest,\n WormholeInitiateTransferResponse,\n WormholeProvider,\n WormholeQuoteRequest,\n WormholeQuoteResponse,\n} from \"./providers/wormhole\";\n\nexport interface CrossChainDappConfig {\n network: Network;\n disableTelemetry?: boolean;\n}\n\nexport type AptosAccount = Account;\n\nexport type Chain = \"Solana\" | \"Ethereum\" | \"Aptos\";\n\nexport type CCTPProviders = \"Wormhole\";\n\nexport type UsdcBalance = {\n amount: string;\n decimal: number;\n display: string;\n};\n\nexport interface CrossChainProvider<\n TQuoteRequest = any,\n TQuoteResponse = any,\n TInitiateTransferRequest = any,\n TInitiateTransferResponse = any,\n> {\n getQuote(params: TQuoteRequest): Promise;\n initiateCCTPTransfer(\n params: TInitiateTransferRequest\n ): Promise;\n}\n\nexport class CrossChainCore {\n readonly _dappConfig: CrossChainDappConfig | undefined;\n\n constructor(args: { dappConfig: CrossChainDappConfig }) {\n this._dappConfig = args.dappConfig;\n }\n\n getProvider(providerType: CCTPProviders): CrossChainProvider {\n switch (providerType) {\n case \"Wormhole\":\n return new WormholeProvider(this) as CrossChainProvider<\n WormholeQuoteRequest,\n WormholeQuoteResponse,\n WormholeInitiateTransferRequest,\n WormholeInitiateTransferResponse\n >;\n default:\n throw new Error(`Unknown provider: ${providerType}`);\n }\n }\n}\n"],"mappings":"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","names":["import_ts_sdk","AptosNetwork","aptos","import_web3","signAndSendTransaction","rpcProvider","fee","signAndSendTransaction","signAndSendTransaction","signAndSendTransaction","Context","aptos","solana","evm","import_ts_sdk"]} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/index.mjs b/packages/cross-chain/cross-chain-core/dist/index.mjs deleted file mode 100644 index 1149a566..00000000 --- a/packages/cross-chain/cross-chain-core/dist/index.mjs +++ /dev/null @@ -1,874 +0,0 @@ -// src/providers/wormhole/index.ts -import { - chainToPlatform, - routes, - Wormhole, - wormhole, - TransferState -} from "@wormhole-foundation/sdk"; -import aptos from "@wormhole-foundation/sdk/aptos"; -import solana from "@wormhole-foundation/sdk/solana"; -import evm from "@wormhole-foundation/sdk/evm"; - -// src/utils/logger.ts -var logger = { - log: (...args) => { - if (process.env.NODE_ENV === "development") { - console.log(...args); - } - }, - warn: (...args) => { - if (process.env.NODE_ENV === "development") { - console.warn(...args); - } - }, - error: (...args) => { - if (process.env.NODE_ENV === "development") { - console.error(...args); - } - } -}; - -// src/providers/wormhole/index.ts -import { - Network, - sleep as sleep2 -} from "@aptos-labs/ts-sdk"; - -// src/providers/wormhole/signers/AptosLocalSigner.ts -import { - Aptos, - AptosConfig, - Network as AptosNetwork -} from "@aptos-labs/ts-sdk"; -var AptosLocalSigner = class { - constructor(chain, options, wallet, feePayerAccount) { - this._chain = chain; - this._options = options; - this._wallet = wallet; - this._sponsorAccount = feePayerAccount; - this._claimedTransactionHashes = ""; - } - chain() { - return this._chain; - } - address() { - return this._wallet.accountAddress.toString(); - } - claimedTransactionHashes() { - return this._claimedTransactionHashes; - } - async signAndSend(txs) { - console.log("Signer signAndSend txs", txs); - const txHashes = []; - for (const tx of txs) { - const txId = await signAndSendTransaction( - tx, - this._wallet, - this._sponsorAccount - ); - txHashes.push(txId); - this._claimedTransactionHashes = txId; - } - return txHashes; - } -}; -async function signAndSendTransaction(request, wallet, sponsorAccount) { - if (!wallet) { - throw new Error("Wallet is undefined"); - } - const payload = request.transaction; - payload.functionArguments = payload.functionArguments.map((a) => { - if (a instanceof Uint8Array) { - return Array.from(a); - } else if (typeof a === "bigint") { - return a.toString(); - } else { - return a; - } - }); - const aptosConfig = new AptosConfig({ - network: AptosNetwork.TESTNET - }); - const aptos2 = new Aptos(aptosConfig); - const txnToSign = await aptos2.transaction.build.simple({ - data: payload, - sender: wallet.accountAddress.toString(), - withFeePayer: sponsorAccount ? true : false - }); - const senderAuthenticator = await aptos2.transaction.sign({ - signer: wallet, - transaction: txnToSign - }); - const txnToSubmit = { - transaction: txnToSign, - senderAuthenticator - }; - if (sponsorAccount) { - const feePayerSignerAuthenticator = aptos2.transaction.signAsFeePayer({ - signer: sponsorAccount, - transaction: txnToSign - }); - txnToSubmit.feePayerAuthenticator = feePayerSignerAuthenticator; - } - const response = await aptos2.transaction.submit.simple(txnToSubmit); - const tx = await aptos2.waitForTransaction({ - transactionHash: response.hash - }); - return tx.hash; -} - -// src/providers/wormhole/signers/SolanaSigner.ts -import { - ComputeBudgetProgram, - LAMPORTS_PER_SOL -} from "@solana/web3.js"; -import { - determinePriorityFee, - determinePriorityFeeTritonOne -} from "@wormhole-foundation/sdk-solana"; -import { Connection } from "@solana/web3.js"; -async function signAndSendTransaction2(request, wallet, options) { - var _a; - if (!wallet) - throw new Error("Wallet not found"); - const commitment = (_a = options == null ? void 0 : options.commitment) != null ? _a : "finalized"; - const connection = new Connection("https://api.devnet.solana.com"); - const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(commitment); - const transaction = request.transaction.transaction; - const unsignedTx = await setPriorityFeeInstructions( - connection, - blockhash, - lastValidBlockHeight, - request - ); - let confirmTransactionPromise = null; - let confirmedTx = null; - let txSendAttempts = 1; - let signature = ""; - const tx = await wallet.signTransaction(unsignedTx); - const serializedTx = tx.serialize(); - const sendOptions = { - skipPreflight: true, - maxRetries: 0, - preFlightCommitment: commitment - }; - signature = await connection.sendRawTransaction(serializedTx, sendOptions); - confirmTransactionPromise = connection.confirmTransaction( - { - signature, - blockhash, - lastValidBlockHeight - }, - commitment - ); - const txRetryInterval = 5e3; - while (!confirmedTx) { - confirmedTx = await Promise.race([ - confirmTransactionPromise, - new Promise( - (resolve) => setTimeout(() => { - resolve(null); - }, txRetryInterval) - ) - ]); - if (confirmedTx) { - break; - } - console.log( - `Tx not confirmed after ${txRetryInterval * txSendAttempts++}ms, resending` - ); - try { - await connection.sendRawTransaction(serializedTx, sendOptions); - } catch (e) { - console.error("Failed to resend transaction:", e); - } - } - if (confirmedTx.value.err) { - let errorMessage = `Transaction failed: ${confirmedTx.value.err}`; - if (typeof confirmedTx.value.err === "object") { - try { - errorMessage = `Transaction failed: ${JSON.stringify( - confirmedTx.value.err, - (_key, value) => typeof value === "bigint" ? value.toString() : value - )}`; - } catch (e) { - errorMessage = `Transaction failed: Unknown error`; - } - } - throw new Error(`Transaction failed: ${errorMessage}`); - } - return signature; -} -async function setPriorityFeeInstructions(connection, blockhash, lastValidBlockHeight, request) { - const unsignedTx = request.transaction.transaction; - const computeBudgetIxFilter = (ix) => ix.programId.toString() !== "ComputeBudget111111111111111111111111111111"; - unsignedTx.recentBlockhash = blockhash; - unsignedTx.lastValidBlockHeight = lastValidBlockHeight; - unsignedTx.instructions = unsignedTx.instructions.filter( - computeBudgetIxFilter - ); - unsignedTx.add( - ...await createPriorityFeeInstructions(connection, unsignedTx) - ); - if (request.transaction.signers) { - unsignedTx.partialSign(...request.transaction.signers); - } - return unsignedTx; -} -async function createPriorityFeeInstructions(connection, transaction, commitment) { - let unitsUsed = 2e5; - let simulationAttempts = 0; - simulationLoop: - while (true) { - const response = await connection.simulateTransaction( - transaction - ); - if (response.value.err) { - if (checkKnownSimulationError(response.value)) { - if (simulationAttempts < 5) { - simulationAttempts++; - await sleep(1e3); - continue simulationLoop; - } - } else if (simulationAttempts < 3) { - simulationAttempts++; - await sleep(1e3); - continue simulationLoop; - } - throw new Error( - `Simulation failed: ${JSON.stringify(response.value.err)} -Logs: -${(response.value.logs || []).join("\n ")}` - ); - } else { - if (response.value.unitsConsumed) { - unitsUsed = response.value.unitsConsumed; - } - break; - } - } - const unitBudget = Math.floor(unitsUsed * 1.2); - const instructions = []; - instructions.push( - ComputeBudgetProgram.setComputeUnitLimit({ - units: unitBudget - }) - ); - const percentile = 0.9; - const percentileMultiple = 1; - const min = 1e5; - const max = 1e8; - const calculateFee = async (rpcProvider2) => { - if (rpcProvider2 === "triton") { - try { - const fee2 = await determinePriorityFeeTritonOne( - connection, - transaction, - percentile, - percentileMultiple, - min, - max - ); - return { - fee: fee2, - methodUsed: "triton" - }; - } catch (e) { - console.warn(`Failed to determine priority fee using Triton RPC:`, e); - } - } - try { - const fee2 = await determinePriorityFee( - connection, - transaction, - percentile, - percentileMultiple, - min, - max - ); - return { - fee: fee2, - methodUsed: "default" - }; - } catch (e) { - console.warn(`Failed to determine priority fee using Triton RPC:`, e); - return { - fee: min, - methodUsed: "minimum" - }; - } - }; - const rpcProvider = determineRpcProvider(connection.rpcEndpoint); - const { fee, methodUsed } = await calculateFee(rpcProvider); - const maxFeeInSol = fee / 1e6 / LAMPORTS_PER_SOL * unitBudget; - console.table({ - "RPC Provider": rpcProvider, - "Method used": methodUsed, - "Percentile used": percentile, - "Multiple used": percentileMultiple, - "Compute budget": unitBudget, - "Priority fee": fee, - "Max fee in SOL": maxFeeInSol - }); - instructions.push( - ComputeBudgetProgram.setComputeUnitPrice({ microLamports: fee }) - ); - return instructions; -} -function checkKnownSimulationError(response) { - const errors = {}; - if (response.err === "BlockhashNotFound") { - errors["BlockhashNotFound"] = "Blockhash not found during simulation. Trying again."; - } - if (response.logs) { - for (const line of response.logs) { - if (line.includes("SlippageToleranceExceeded")) { - errors["SlippageToleranceExceeded"] = "Slippage failure during simulation. Trying again."; - } - if (line.includes("RequireGteViolated")) { - errors["RequireGteViolated"] = "Swap instruction failure during simulation. Trying again."; - } - } - } - if (isEmptyObject(errors)) { - return false; - } - console.table(errors); - return true; -} -async function sleep(timeout) { - return new Promise((resolve) => setTimeout(resolve, timeout)); -} -var isEmptyObject = (value) => { - if (value === null || value === void 0) { - return true; - } - for (const key in value) { - if (value.hasOwnProperty.call(value, key)) { - return false; - } - } - return true; -}; -function determineRpcProvider(endpoint) { - if (endpoint.includes("rpcpool.com")) { - return "triton"; - } else if (endpoint.includes("helius-rpc.com")) { - return "helius"; - } else if (endpoint.includes("rpc.ankr.com")) { - return "ankr"; - } else { - return "unknown"; - } -} - -// src/providers/wormhole/signers/EthereumSigner.ts -import { getBigInt } from "ethers"; -async function signAndSendTransaction3(request, wallet, chainName, options) { - if (!wallet || !wallet.sendTransaction) { - throw new Error("wallet.sendTransaction is undefined"); - } - const actualChainId = await wallet.getConnectedNetwork(); - if (!actualChainId) - throw new Error("No signer found for chain" + chainName); - const expectedChainId = request.transaction.chainId ? getBigInt(request.transaction.chainId) : void 0; - if (!actualChainId || !expectedChainId || BigInt(actualChainId) !== expectedChainId) { - throw new Error( - `Signer is not connected to the right chain. Expected ${expectedChainId}, got ${actualChainId}` - ); - } - const txHash = await wallet.sendTransaction(request.transaction); - return txHash; -} - -// src/providers/wormhole/signers/SuiSigner.ts -async function signAndSendTransaction4(request, wallet) { - if (!wallet || !wallet.sendTransaction) { - throw new Error("wallet.sendTransaction is undefined"); - } - const response = await wallet.sendTransaction({ - transactionBlock: request.transaction - }); - return response == null ? void 0 : response.id; -} - -// src/providers/wormhole/signers/index.ts -var Signer = class { - constructor(chain, address, options, wallet) { - this._chain = chain; - this._address = address; - this._options = options; - this._wallet = wallet; - } - chain() { - return this._chain.displayName; - } - address() { - return this._address; - } - async signAndSend(txs) { - const txHashes = []; - for (const tx of txs) { - const txId = await signAndSendTransaction5( - this._chain, - tx, - this._wallet, - this._options - ); - txHashes.push(txId); - } - return txHashes; - } -}; -var signAndSendTransaction5 = async (chain, request, wallet, options = {}) => { - if (!wallet) { - throw new Error("wallet is undefined"); - } - if (chain.context === "Solana") { - const signature = await signAndSendTransaction2( - request, - wallet, - options - ); - return signature; - } else if (chain.context === "Ethereum") { - const tx = await signAndSendTransaction3( - request, - wallet, - chain.displayName, - options - ); - return tx; - } else if (chain.context === "Sui") { - const tx = await signAndSendTransaction4( - request, - wallet - ); - return tx; - } else { - throw new Error(`Unsupported chain: ${chain}`); - } -}; - -// src/providers/wormhole/config/types.ts -var Context = /* @__PURE__ */ ((Context2) => { - Context2["ETH"] = "Ethereum"; - Context2["TERRA"] = "Terra"; - Context2["XPLA"] = "XPLA"; - Context2["SOLANA"] = "Solana"; - Context2["ALGORAND"] = "Algorand"; - Context2["NEAR"] = "Near"; - Context2["APTOS"] = "Aptos"; - Context2["SUI"] = "Sui"; - Context2["OTHER"] = "OTHER"; - return Context2; -})(Context || {}); - -// src/providers/wormhole/config/testnet/chains.ts -var testnetChains = { - Sepolia: { - key: "Sepolia", - id: 10002, - context: "Ethereum" /* ETH */, - finalityThreshold: 0, - displayName: "Sepolia", - explorerUrl: "https://sepolia.etherscan.io/", - explorerName: "Etherscan", - gasToken: "ETHsepolia", - chainId: 11155111, - icon: "Ethereum", - maxBlockSearch: 2e3, - symbol: "ETH", - sdkName: "Sepolia", - wrappedGasToken: "0xeef12A83EE5b7161D3873317c8E0E7B76e0B5D9c" - }, - Solana: { - key: "Solana", - id: 1, - context: "Solana" /* SOLANA */, - finalityThreshold: 32, - displayName: "Solana", - explorerUrl: "https://explorer.solana.com/", - explorerName: "Solana Explorer", - gasToken: "SOL", - chainId: 0, - icon: "Solana", - maxBlockSearch: 2e3, - symbol: "SOL", - sdkName: "Solana", - wrappedGasToken: "So11111111111111111111111111111111111111112" - } -}; -var AptosTestnetChain = { - key: "Aptos", - id: 22, - context: "Aptos" /* APTOS */, - finalityThreshold: 0, - displayName: "Aptos", - explorerUrl: "https://explorer.aptoslabs.com?network=testnet", - explorerName: "Aptos Explorer", - gasToken: "APT", - chainId: 0, - icon: "Aptos", - maxBlockSearch: 0, - symbol: "APT", - sdkName: "Aptos" -}; - -// src/providers/wormhole/config/testnet/tokens.ts -var testnetTokens = { - Avalanche: { - symbol: "USDC", - icon: "USDC", - decimals: 6, - tokenId: { - chain: "Avalanche", - address: "0x5425890298aed601595a70AB815c96711a31Bc65" - } - }, - Sepolia: { - symbol: "USDC", - icon: "USDC", - decimals: 6, - tokenId: { - chain: "Sepolia", - address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238" - } - }, - Solana: { - symbol: "USDC", - tokenId: { - chain: "Solana", - address: "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU" - }, - icon: "USDC", - decimals: 6 - }, - Sui: { - symbol: "USDC", - tokenId: { - chain: "Sui", - address: "0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC" - }, - icon: "USDC", - decimals: 6 - } -}; -var AptosTestnetUSDCToken = { - symbol: "USDC", - decimals: 6, - tokenId: { - chain: "Aptos", - address: "0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832" - }, - icon: "USDC" -}; - -// src/providers/wormhole/config/mainnet/chains.ts -var mainnetChains = { - Ethereum: { - key: "Ethereum", - id: 2, - context: "Ethereum" /* ETH */, - finalityThreshold: 64, - displayName: "Ethereum", - explorerUrl: "https://etherscan.io/", - explorerName: "Etherscan", - gasToken: "ETH", - chainId: 1, - icon: "Ethereum", - maxBlockSearch: 2e3, - symbol: "ETH", - sdkName: "Ethereum" - }, - Solana: { - key: "Solana", - id: 1, - context: "Solana" /* SOLANA */, - finalityThreshold: 32, - displayName: "Solana", - explorerUrl: "https://explorer.solana.com/", - explorerName: "Solana Explorer", - gasToken: "SOL", - chainId: 0, - icon: "Solana", - maxBlockSearch: 2e3, - symbol: "SOL", - sdkName: "Solana" - } -}; -var AptosMainnetChain = { - key: "Aptos", - id: 22, - context: "Aptos", - finalityThreshold: 0, - displayName: "Aptos", - explorerUrl: "https://explorer.aptoslabs.com/", - explorerName: "Aptos Explorer", - gasToken: "APT", - chainId: 0, - icon: "Aptos", - maxBlockSearch: 0, - symbol: "APT" -}; - -// src/providers/wormhole/config/mainnet/tokens.ts -var mainnetTokens = { - Ethereum: { - symbol: "USDC", - tokenId: { - chain: "Ethereum", - address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" - }, - icon: "USDC", - decimals: 6 - }, - Solana: { - symbol: "USDC", - tokenId: { - chain: "Solana", - address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" - }, - icon: "USDC", - decimals: 6 - }, - Sui: { - symbol: "USDC", - decimals: 6, - tokenId: { - chain: "Sui", - address: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC" - }, - icon: "USDC" - } -}; -var AptosMainnetUSDCToken = { - symbol: "USDC", - tokenId: { - chain: "Aptos", - address: "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b" - }, - icon: "USDC", - decimals: 6 -}; - -// src/providers/wormhole/index.ts -var WormholeProvider = class { - constructor(core) { - this.CHAINS = testnetChains; - this.TOKENS = testnetTokens; - this.APTOS_TOKEN = AptosTestnetUSDCToken; - var _a; - this.crossChainCore = core; - if (((_a = core._dappConfig) == null ? void 0 : _a.network) === Network.MAINNET) { - this.CHAINS = mainnetChains; - this.TOKENS = mainnetTokens; - this.APTOS_TOKEN = AptosMainnetUSDCToken; - } else { - this.CHAINS = testnetChains; - this.TOKENS = testnetTokens; - this.APTOS_TOKEN = AptosTestnetUSDCToken; - } - } - get wormholeContext() { - return this._wormholeContext; - } - async setWormholeContext(sourceChain) { - var _a; - const dappNetwork = (_a = this.crossChainCore._dappConfig) == null ? void 0 : _a.network; - if (dappNetwork === Network.DEVNET) { - throw new Error("Devnet is not supported on Wormhole"); - } - if (!sourceChain) { - throw new Error("Origin chain not selected"); - } - const isMainnet = dappNetwork === Network.MAINNET; - const platforms = [aptos, solana, evm]; - const wh = await wormhole(isMainnet ? "Mainnet" : "Testnet", platforms); - this._wormholeContext = wh; - } - async getWormholeCctpRoute(sourceChain) { - if (!this._wormholeContext) { - throw new Error("Wormhole context not initialized"); - } - const { sourceToken, destToken } = this.getTokenInfo(sourceChain); - const sourceContext = this._wormholeContext.getPlatform(chainToPlatform(sourceChain)).getChain(sourceChain); - logger.log("sourceContext", sourceContext); - const destContext = this._wormholeContext.getPlatform(chainToPlatform("Aptos")).getChain("Aptos"); - logger.log("destContext", destContext); - const req = await routes.RouteTransferRequest.create( - this._wormholeContext, - { - source: sourceToken, - destination: destToken - }, - sourceContext, - destContext - ); - const resolver = this._wormholeContext.resolver([ - routes.CCTPRoute - ]); - const route = await resolver.findRoutes(req); - const cctpRoute = route[0]; - return { route: cctpRoute, request: req }; - } - async getQuote(input) { - const { amount, sourceChain } = input; - if (!this._wormholeContext) { - await this.setWormholeContext(sourceChain); - } - const { route, request } = await this.getWormholeCctpRoute(sourceChain); - this.wormholeRoute = route; - this.wormholeRequest = request; - const transferParams = { amount, options: { nativeGas: 0 } }; - const validated = await route.validate(request, transferParams); - if (!validated.valid) { - logger.log("invalid", validated.valid); - throw validated.error; - } - const quote = await route.quote(request, validated.params); - if (!quote.success) { - logger.log("quote failed", quote.success); - throw quote.error; - } - this.wormholeQuote = quote; - logger.log("quote", quote); - return quote; - } - async startCCTPTransfer(input) { - const { sourceChain, wallet, destinationAddress } = input; - if (!this._wormholeContext) { - await this.setWormholeContext(sourceChain); - } - if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) { - throw new Error("Wormhole route, request, or quote not initialized"); - } - let signerAddress; - const chainContext = this.getChainConfig(sourceChain).context; - const currentAccount = await wallet.getAccount(); - if (chainContext === "Solana") { - signerAddress = currentAccount.publicKey.toString(); - } else { - signerAddress = currentAccount.address; - } - logger.log("signerAddress", signerAddress); - const signer = new Signer( - this.getChainConfig(sourceChain), - signerAddress, - {}, - wallet - ); - let receipt = await this.wormholeRoute.initiate( - this.wormholeRequest, - signer, - this.wormholeQuote, - Wormhole.chainAddress("Aptos", destinationAddress.toString()) - ); - const originChainTxnId = "originTxs" in receipt ? receipt.originTxs[receipt.originTxs.length - 1].txid : void 0; - return { originChainTxnId: originChainTxnId || "", receipt }; - } - async initiateCCTPTransfer(input) { - var _a; - if (((_a = this.crossChainCore._dappConfig) == null ? void 0 : _a.network) === Network.DEVNET) { - throw new Error("Devnet is not supported on Wormhole"); - } - if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) { - throw new Error("Wormhole route, request, or quote not initialized"); - } - let { originChainTxnId, receipt } = await this.startCCTPTransfer(input); - const { mainSigner, sponsorAccount } = input; - logger.log("mainSigner", mainSigner.accountAddress.toString()); - let retries = 0; - const maxRetries = 5; - const baseDelay = 1e3; - while (retries < maxRetries) { - try { - for await (receipt of this.wormholeRoute.track(receipt, 120 * 1e3)) { - if (receipt.state >= TransferState.SourceInitiated) { - logger.log("Receipt is on track ", receipt); - try { - const signer = new AptosLocalSigner( - "Aptos", - {}, - mainSigner, - sponsorAccount ? sponsorAccount : void 0 - ); - if (routes.isManual(this.wormholeRoute)) { - const circleAttestationReceipt = await this.wormholeRoute.complete(signer, receipt); - logger.log("Claim receipt: ", circleAttestationReceipt); - const destinationChainTxnId = signer.claimedTransactionHashes(); - return { destinationChainTxnId, originChainTxnId }; - } else { - return { destinationChainTxnId: "", originChainTxnId }; - } - } catch (e) { - console.error("Failed to claim", e); - return { destinationChainTxnId: "", originChainTxnId }; - } - } - } - } catch (e) { - console.error( - `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`, - e - ); - const delay = baseDelay * Math.pow(2, retries); - await sleep2(delay); - retries++; - } - } - return { destinationChainTxnId: "", originChainTxnId }; - } - getChainConfig(chain) { - const chainConfig = this.CHAINS[chain]; - if (!chainConfig) { - throw new Error(`Chain config not found for chain: ${chain}`); - } - return chainConfig; - } - getTokenInfo(sourceChain) { - const sourceToken = Wormhole.tokenId( - this.TOKENS[sourceChain].tokenId.chain, - this.TOKENS[sourceChain].tokenId.address - ); - const destToken = Wormhole.tokenId( - this.APTOS_TOKEN.tokenId.chain, - this.APTOS_TOKEN.tokenId.address - ); - return { sourceToken, destToken }; - } -}; - -// src/CrossChainCore.ts -var CrossChainCore = class { - constructor(args) { - this._dappConfig = args.dappConfig; - } - getProvider(providerType) { - switch (providerType) { - case "Wormhole": - return new WormholeProvider(this); - default: - throw new Error(`Unknown provider: ${providerType}`); - } - } -}; - -// src/index.ts -import { Network as Network2 } from "@aptos-labs/ts-sdk"; -export { - AptosMainnetChain, - AptosMainnetUSDCToken, - AptosTestnetChain, - AptosTestnetUSDCToken, - Context, - CrossChainCore, - Network2 as Network, - WormholeProvider, - mainnetChains, - mainnetTokens, - testnetChains, - testnetTokens -}; -//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/index.mjs.map b/packages/cross-chain/cross-chain-core/dist/index.mjs.map deleted file mode 100644 index 4e3d924d..00000000 --- a/packages/cross-chain/cross-chain-core/dist/index.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/providers/wormhole/index.ts","../src/utils/logger.ts","../src/providers/wormhole/signers/AptosLocalSigner.ts","../src/providers/wormhole/signers/SolanaSigner.ts","../src/providers/wormhole/signers/EthereumSigner.ts","../src/providers/wormhole/signers/SuiSigner.ts","../src/providers/wormhole/signers/index.ts","../src/providers/wormhole/config/types.ts","../src/providers/wormhole/config/testnet/chains.ts","../src/providers/wormhole/config/testnet/tokens.ts","../src/providers/wormhole/config/mainnet/chains.ts","../src/providers/wormhole/config/mainnet/tokens.ts","../src/CrossChainCore.ts","../src/index.ts"],"sourcesContent":["import { Chain, CrossChainProvider } from \"../../CrossChainCore\";\n\nimport {\n chainToPlatform,\n routes,\n TokenId,\n Wormhole,\n wormhole,\n PlatformLoader,\n TransferState,\n AttestationReceipt,\n} from \"@wormhole-foundation/sdk\";\n\nimport aptos from \"@wormhole-foundation/sdk/aptos\";\nimport solana from \"@wormhole-foundation/sdk/solana\";\nimport evm from \"@wormhole-foundation/sdk/evm\";\nimport sui from \"@wormhole-foundation/sdk/sui\";\n\nimport { CrossChainCore } from \"../../CrossChainCore\";\nimport { logger } from \"../../utils/logger\";\nimport {\n Account,\n AccountAddressInput,\n Ed25519PrivateKey,\n Network,\n sleep,\n} from \"@aptos-labs/ts-sdk\";\nimport { AptosLocalSigner } from \"./signers/AptosLocalSigner\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { Signer } from \"./signers\";\nimport {\n ChainsConfig,\n testnetChains,\n testnetTokens,\n mainnetChains,\n mainnetTokens,\n TokenConfig,\n AptosTestnetUSDCToken,\n AptosMainnetUSDCToken,\n ChainConfig,\n} from \"./config\";\n\nexport type WormholeRouteResponse = routes.Route<\n \"Mainnet\" | \"Testnet\",\n routes.Options,\n routes.ValidatedTransferParams,\n routes.Receipt\n>;\n\nexport type WormholeRequest = routes.RouteTransferRequest<\n \"Mainnet\" | \"Testnet\"\n>;\n\nexport type WormholeQuoteResponse = routes.Quote<\n routes.Options,\n routes.ValidatedTransferParams,\n any\n>;\n\nexport interface WormholeQuoteRequest {\n amount: string;\n sourceChain: Chain;\n}\n\nexport interface WormholeInitiateTransferRequest {\n sourceChain: Chain;\n wallet: AdapterWallet;\n destinationAddress: AccountAddressInput;\n mainSigner: Account;\n sponsorAccount?: Account | Partial>;\n}\n\nexport interface WormholeInitiateTransferResponse {\n destinationChainTxnId: string;\n originChainTxnId: string;\n}\n\nexport interface WormholeStartTransferResponse {\n originChainTxnId: string;\n receipt: routes.Receipt;\n}\n\nexport class WormholeProvider\n implements\n CrossChainProvider<\n WormholeQuoteRequest,\n WormholeQuoteResponse,\n WormholeInitiateTransferRequest,\n WormholeInitiateTransferResponse\n >\n{\n private crossChainCore: CrossChainCore;\n\n private _wormholeContext: Wormhole<\"Mainnet\" | \"Testnet\"> | undefined;\n\n private wormholeRoute: WormholeRouteResponse | undefined;\n private wormholeRequest: WormholeRequest | undefined;\n private wormholeQuote: WormholeQuoteResponse | undefined;\n\n readonly CHAINS: ChainsConfig = testnetChains;\n readonly TOKENS: Record = testnetTokens;\n\n readonly APTOS_TOKEN: TokenConfig = AptosTestnetUSDCToken;\n\n constructor(core: CrossChainCore) {\n this.crossChainCore = core;\n if (core._dappConfig?.network === Network.MAINNET) {\n this.CHAINS = mainnetChains;\n this.TOKENS = mainnetTokens;\n this.APTOS_TOKEN = AptosMainnetUSDCToken;\n } else {\n this.CHAINS = testnetChains;\n this.TOKENS = testnetTokens;\n this.APTOS_TOKEN = AptosTestnetUSDCToken;\n }\n }\n\n get wormholeContext(): Wormhole<\"Mainnet\" | \"Testnet\"> | undefined {\n return this._wormholeContext;\n }\n\n async setWormholeContext(sourceChain: Chain) {\n const dappNetwork = this.crossChainCore._dappConfig?.network;\n if (dappNetwork === Network.DEVNET) {\n throw new Error(\"Devnet is not supported on Wormhole\");\n }\n if (!sourceChain) {\n throw new Error(\"Origin chain not selected\");\n }\n const isMainnet = dappNetwork === Network.MAINNET;\n const platforms: PlatformLoader[] = [aptos, solana, evm];\n const wh = await wormhole(isMainnet ? \"Mainnet\" : \"Testnet\", platforms);\n this._wormholeContext = wh;\n }\n\n async getWormholeCctpRoute(sourceChain: Chain): Promise<{\n route: WormholeRouteResponse;\n request: WormholeRequest;\n }> {\n if (!this._wormholeContext) {\n throw new Error(\"Wormhole context not initialized\");\n }\n\n const { sourceToken, destToken } = this.getTokenInfo(sourceChain);\n\n const sourceContext = this._wormholeContext\n .getPlatform(chainToPlatform(sourceChain))\n .getChain(sourceChain);\n\n logger.log(\"sourceContext\", sourceContext);\n\n const destContext = this._wormholeContext\n .getPlatform(chainToPlatform(\"Aptos\"))\n .getChain(\"Aptos\");\n\n logger.log(\"destContext\", destContext);\n\n const req = await routes.RouteTransferRequest.create(\n this._wormholeContext,\n {\n source: sourceToken,\n destination: destToken,\n },\n sourceContext,\n destContext\n );\n\n const resolver = this._wormholeContext.resolver([\n routes.CCTPRoute, // manual CCTP\n ]);\n\n const route = await resolver.findRoutes(req);\n const cctpRoute = route[0];\n\n return { route: cctpRoute, request: req };\n }\n\n async getQuote(input: WormholeQuoteRequest): Promise {\n const { amount, sourceChain } = input;\n\n if (!this._wormholeContext) {\n await this.setWormholeContext(sourceChain);\n }\n\n const { route, request } = await this.getWormholeCctpRoute(sourceChain);\n this.wormholeRoute = route;\n this.wormholeRequest = request;\n\n // TODO what is nativeGas for?\n const transferParams = { amount, options: { nativeGas: 0 } };\n\n const validated = await route.validate(request, transferParams);\n if (!validated.valid) {\n logger.log(\"invalid\", validated.valid);\n throw validated.error;\n }\n const quote = await route.quote(request, validated.params);\n if (!quote.success) {\n logger.log(\"quote failed\", quote.success);\n throw quote.error;\n }\n this.wormholeQuote = quote;\n logger.log(\"quote\", quote);\n return quote;\n }\n\n async startCCTPTransfer(\n input: WormholeInitiateTransferRequest\n ): Promise {\n const { sourceChain, wallet, destinationAddress } = input;\n\n if (!this._wormholeContext) {\n await this.setWormholeContext(sourceChain);\n }\n if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) {\n throw new Error(\"Wormhole route, request, or quote not initialized\");\n }\n\n let signerAddress: string;\n\n const chainContext = this.getChainConfig(sourceChain).context;\n\n const currentAccount = await wallet.getAccount();\n if (chainContext === \"Solana\") {\n signerAddress = currentAccount.publicKey.toString();\n } else {\n signerAddress = currentAccount.address;\n }\n logger.log(\"signerAddress\", signerAddress);\n\n const signer = new Signer(\n this.getChainConfig(sourceChain),\n signerAddress,\n {},\n wallet\n );\n\n let receipt = await this.wormholeRoute.initiate(\n this.wormholeRequest,\n signer,\n this.wormholeQuote,\n Wormhole.chainAddress(\"Aptos\", destinationAddress.toString())\n );\n\n const originChainTxnId =\n \"originTxs\" in receipt\n ? receipt.originTxs[receipt.originTxs.length - 1].txid\n : undefined;\n\n return { originChainTxnId: originChainTxnId || \"\", receipt };\n }\n\n async initiateCCTPTransfer(\n input: WormholeInitiateTransferRequest\n ): Promise {\n if (this.crossChainCore._dappConfig?.network === Network.DEVNET) {\n throw new Error(\"Devnet is not supported on Wormhole\");\n }\n if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) {\n throw new Error(\"Wormhole route, request, or quote not initialized\");\n }\n let { originChainTxnId, receipt } = await this.startCCTPTransfer(input);\n // should come from transaction signer worker\n const { mainSigner, sponsorAccount } = input;\n\n logger.log(\"mainSigner\", mainSigner.accountAddress.toString());\n\n let retries = 0;\n const maxRetries = 5;\n const baseDelay = 1000; // Initial delay of 1 second\n\n while (retries < maxRetries) {\n try {\n for await (receipt of this.wormholeRoute.track(receipt, 120 * 1000)) {\n if (receipt.state >= TransferState.SourceInitiated) {\n logger.log(\"Receipt is on track \", receipt);\n\n try {\n const signer = new AptosLocalSigner(\n \"Aptos\",\n {},\n mainSigner, // the account that signs the \"claim\" transaction\n sponsorAccount ? sponsorAccount : undefined // the fee payer account\n );\n\n if (routes.isManual(this.wormholeRoute)) {\n const circleAttestationReceipt =\n await this.wormholeRoute.complete(signer, receipt);\n logger.log(\"Claim receipt: \", circleAttestationReceipt);\n const destinationChainTxnId = signer.claimedTransactionHashes();\n return { destinationChainTxnId, originChainTxnId };\n } else {\n // Should be unreachable\n return { destinationChainTxnId: \"\", originChainTxnId };\n }\n } catch (e) {\n console.error(\"Failed to claim\", e);\n return { destinationChainTxnId: \"\", originChainTxnId };\n }\n }\n }\n } catch (e) {\n console.error(\n `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`,\n e\n );\n const delay = baseDelay * Math.pow(2, retries); // Exponential backoff\n await sleep(delay);\n retries++;\n }\n }\n // Should be unreachable\n return { destinationChainTxnId: \"\", originChainTxnId };\n }\n\n getChainConfig(chain: Chain): ChainConfig {\n const chainConfig = this.CHAINS[chain as keyof typeof this.CHAINS];\n if (!chainConfig) {\n throw new Error(`Chain config not found for chain: ${chain}`);\n }\n return chainConfig;\n }\n\n getTokenInfo(sourceChain: Chain): {\n sourceToken: TokenId;\n destToken: TokenId;\n } {\n const sourceToken: TokenId = Wormhole.tokenId(\n this.TOKENS[sourceChain].tokenId.chain as Chain,\n this.TOKENS[sourceChain].tokenId.address\n );\n\n const destToken: TokenId = Wormhole.tokenId(\n this.APTOS_TOKEN.tokenId.chain as Chain,\n this.APTOS_TOKEN.tokenId.address\n );\n\n return { sourceToken, destToken };\n }\n}\n","export const logger = {\n log: (...args: any[]) => {\n if (process.env.NODE_ENV === \"development\") {\n console.log(...args);\n }\n },\n warn: (...args: any[]) => {\n if (process.env.NODE_ENV === \"development\") {\n console.warn(...args);\n }\n },\n error: (...args: any[]) => {\n if (process.env.NODE_ENV === \"development\") {\n console.error(...args);\n }\n },\n};\n","import {\n AccountAuthenticator,\n AnyRawTransaction,\n Aptos,\n AptosConfig,\n Network as AptosNetwork,\n Account,\n} from \"@aptos-labs/ts-sdk\";\n\nimport {\n Chain,\n Network,\n SignAndSendSigner,\n TxHash,\n UnsignedTransaction,\n} from \"@wormhole-foundation/sdk\";\nimport {\n AptosUnsignedTransaction,\n AptosChains,\n} from \"@wormhole-foundation/sdk-aptos\";\n\nexport class AptosLocalSigner\n implements SignAndSendSigner\n{\n _chain: C;\n _options: any;\n _wallet: Account;\n _sponsorAccount: Account | Partial> | undefined;\n _claimedTransactionHashes: string;\n\n constructor(\n chain: C,\n options: any,\n wallet: Account,\n feePayerAccount: Account | Partial> | undefined\n ) {\n this._chain = chain;\n this._options = options;\n this._wallet = wallet;\n this._sponsorAccount = feePayerAccount;\n this._claimedTransactionHashes = \"\";\n }\n\n chain(): C {\n return this._chain;\n }\n address(): string {\n return this._wallet.accountAddress.toString();\n }\n\n claimedTransactionHashes(): string {\n return this._claimedTransactionHashes;\n }\n /* other methods... */\n\n async signAndSend(txs: UnsignedTransaction[]): Promise {\n console.log(\"Signer signAndSend txs\", txs);\n const txHashes: TxHash[] = [];\n\n for (const tx of txs) {\n const txId = await signAndSendTransaction(\n tx as AptosUnsignedTransaction,\n this._wallet,\n this._sponsorAccount\n );\n txHashes.push(txId);\n this._claimedTransactionHashes = txId;\n }\n return txHashes;\n }\n}\n\nexport async function signAndSendTransaction(\n request: UnsignedTransaction,\n wallet: Account,\n sponsorAccount: Account | Partial> | undefined\n) {\n if (!wallet) {\n throw new Error(\"Wallet is undefined\");\n }\n\n const payload = request.transaction;\n // The wallets do not handle Uint8Array serialization\n payload.functionArguments = payload.functionArguments.map((a: any) => {\n if (a instanceof Uint8Array) {\n return Array.from(a);\n } else if (typeof a === \"bigint\") {\n return a.toString();\n } else {\n return a;\n }\n });\n\n const aptosConfig = new AptosConfig({\n network: AptosNetwork.TESTNET,\n });\n const aptos = new Aptos(aptosConfig);\n\n const txnToSign = await aptos.transaction.build.simple({\n data: payload,\n sender: wallet.accountAddress.toString(),\n withFeePayer: sponsorAccount ? true : false,\n });\n const senderAuthenticator = await aptos.transaction.sign({\n signer: wallet,\n transaction: txnToSign,\n });\n\n const txnToSubmit: {\n transaction: AnyRawTransaction;\n senderAuthenticator: AccountAuthenticator;\n feePayerAuthenticator?: AccountAuthenticator;\n } = {\n transaction: txnToSign,\n senderAuthenticator,\n };\n\n if (sponsorAccount) {\n const feePayerSignerAuthenticator = aptos.transaction.signAsFeePayer({\n // TODO: handles sponsor account coming from gas station\n signer: sponsorAccount as Account,\n transaction: txnToSign,\n });\n txnToSubmit.feePayerAuthenticator = feePayerSignerAuthenticator;\n }\n\n const response = await aptos.transaction.submit.simple(txnToSubmit);\n\n const tx = await aptos.waitForTransaction({\n transactionHash: response.hash,\n });\n\n return tx.hash;\n}\n","// This function signs and sends the transaction while constantly checking for confirmation\n// and resending the transaction if it hasn't been confirmed after the specified interval\n\nimport {\n AddressLookupTableAccount,\n Commitment,\n ComputeBudgetProgram,\n ConfirmOptions,\n LAMPORTS_PER_SOL,\n SimulatedTransactionResponse,\n TransactionInstruction,\n TransactionMessage,\n VersionedTransaction,\n} from \"@solana/web3.js\";\n\nimport { Transaction } from \"@solana/web3.js\";\nimport { RpcResponseAndContext, SignatureResult } from \"@solana/web3.js\";\nimport {\n determinePriorityFee,\n determinePriorityFeeTritonOne,\n isVersionedTransaction,\n SolanaUnsignedTransaction,\n} from \"@wormhole-foundation/sdk-solana\";\n\nimport { Connection } from \"@solana/web3.js\";\nimport { Network } from \"@wormhole-foundation/sdk\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\n\nexport type SolanaRpcProvider = \"triton\" | \"helius\" | \"ankr\" | \"unknown\";\n\n// See https://docs.triton.one/chains/solana/sending-txs for more information\nexport async function signAndSendTransaction(\n request: SolanaUnsignedTransaction,\n wallet: AdapterWallet | undefined,\n options?: ConfirmOptions\n) {\n if (!wallet) throw new Error(\"Wallet not found\");\n\n const commitment = options?.commitment ?? \"finalized\";\n // Solana rpc should come from dapp config\n const connection = new Connection(\"https://api.devnet.solana.com\");\n const { blockhash, lastValidBlockHeight } =\n await connection.getLatestBlockhash(commitment);\n\n // Circle Manual CCTP on Wormhole is always of a Trnasaction type\n // https://github.com/wormhole-foundation/wormhole-sdk-ts/blob/f7d992e04f844edcc4128659f12f75ade3553717/platforms/solana/protocols/cctp/src/circleBridge.ts#L173\n const transaction = request.transaction.transaction as Transaction;\n\n /**\n * TODO: Priority Fee is supported, but needs to come from dapp config\n */\n const unsignedTx = await setPriorityFeeInstructions(\n connection,\n blockhash,\n lastValidBlockHeight,\n request\n );\n\n let confirmTransactionPromise: Promise<\n RpcResponseAndContext\n > | null = null;\n let confirmedTx: RpcResponseAndContext | null = null;\n let txSendAttempts = 1;\n let signature = \"\";\n\n // transaction.recentBlockhash = blockhash;\n // if (request.transaction.signers) {\n // transaction.partialSign(...request.transaction.signers);\n // }\n\n const tx = await wallet.signTransaction(unsignedTx);\n const serializedTx = tx.serialize();\n const sendOptions = {\n skipPreflight: true,\n maxRetries: 0,\n preFlightCommitment: commitment, // See PR and linked issue for why setting this matters: https://github.com/anza-xyz/agave/pull/483\n };\n signature = await connection.sendRawTransaction(serializedTx, sendOptions);\n confirmTransactionPromise = connection.confirmTransaction(\n {\n signature,\n blockhash,\n lastValidBlockHeight,\n },\n commitment\n );\n\n // This loop will break once the transaction has been confirmed or the block height is exceeded.\n // An exception will be thrown if the block height is exceeded by the confirmTransactionPromise.\n // The transaction will be resent if it hasn't been confirmed after the interval.\n const txRetryInterval = 5000;\n while (!confirmedTx) {\n confirmedTx = await Promise.race([\n confirmTransactionPromise,\n new Promise((resolve) =>\n setTimeout(() => {\n resolve(null);\n }, txRetryInterval)\n ),\n ]);\n if (confirmedTx) {\n break;\n }\n console.log(\n `Tx not confirmed after ${\n txRetryInterval * txSendAttempts++\n }ms, resending`\n );\n try {\n await connection.sendRawTransaction(serializedTx, sendOptions);\n } catch (e) {\n console.error(\"Failed to resend transaction:\", e);\n }\n }\n\n if (confirmedTx.value.err) {\n let errorMessage = `Transaction failed: ${confirmedTx.value.err}`;\n if (typeof confirmedTx.value.err === \"object\") {\n try {\n errorMessage = `Transaction failed: ${JSON.stringify(\n confirmedTx.value.err,\n (_key, value) =>\n typeof value === \"bigint\" ? value.toString() : value // Handle bigint props\n )}`;\n } catch (e: unknown) {\n // Most likely a circular reference error, we can't stringify this error object.\n // See for more details:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#exceptions\n errorMessage = `Transaction failed: Unknown error`;\n }\n }\n throw new Error(`Transaction failed: ${errorMessage}`);\n }\n\n return signature;\n}\n\nexport async function setPriorityFeeInstructions(\n connection: Connection,\n blockhash: string,\n lastValidBlockHeight: number,\n request: SolanaUnsignedTransaction\n): Promise {\n const unsignedTx = request.transaction.transaction as Transaction;\n\n const computeBudgetIxFilter = (ix: TransactionInstruction) =>\n ix.programId.toString() !== \"ComputeBudget111111111111111111111111111111\";\n\n unsignedTx.recentBlockhash = blockhash;\n unsignedTx.lastValidBlockHeight = lastValidBlockHeight;\n\n // Remove existing compute budget instructions if they were added by the SDK\n unsignedTx.instructions = unsignedTx.instructions.filter(\n computeBudgetIxFilter\n );\n unsignedTx.add(\n ...(await createPriorityFeeInstructions(connection, unsignedTx))\n );\n if (request.transaction.signers) {\n unsignedTx.partialSign(...request.transaction.signers);\n }\n\n return unsignedTx;\n}\n\n// This will throw if the simulation fails\nasync function createPriorityFeeInstructions(\n connection: Connection,\n transaction: Transaction | VersionedTransaction,\n commitment?: Commitment\n) {\n let unitsUsed = 200_000;\n let simulationAttempts = 0;\n\n simulationLoop: while (true) {\n const response = await connection.simulateTransaction(\n transaction as Transaction\n );\n\n if (response.value.err) {\n if (checkKnownSimulationError(response.value)) {\n // Number of attempts will be at most 5 for known errors\n if (simulationAttempts < 5) {\n simulationAttempts++;\n await sleep(1000);\n continue simulationLoop;\n }\n } else if (simulationAttempts < 3) {\n // Number of attempts will be at most 3 for unknown errors\n simulationAttempts++;\n await sleep(1000);\n continue simulationLoop;\n }\n\n // Still failing after multiple attempts for both known and unknown errors\n // We should throw in that case\n throw new Error(\n `Simulation failed: ${JSON.stringify(response.value.err)}\\nLogs:\\n${(\n response.value.logs || []\n ).join(\"\\n \")}`\n );\n } else {\n // Simulation was successful\n if (response.value.unitsConsumed) {\n unitsUsed = response.value.unitsConsumed;\n }\n break;\n }\n }\n\n const unitBudget = Math.floor(unitsUsed * 1.2); // Budget in 20% headroom\n\n const instructions: TransactionInstruction[] = [];\n instructions.push(\n ComputeBudgetProgram.setComputeUnitLimit({\n // Set compute budget to 120% of the units used in the simulated transaction\n units: unitBudget,\n })\n );\n\n // const priorityFeeConfig =\n // config.transactionSettings?.Solana?.priorityFee || {};\n\n // const {\n // percentile = 0.9,\n // percentileMultiple = 1,\n // min = 100_000,\n // max = 100_000_000,\n // } = priorityFeeConfig;\n const percentile = 0.9;\n const percentileMultiple = 1;\n const min = 100_000;\n const max = 100_000_000;\n\n const calculateFee = async (\n rpcProvider?: SolanaRpcProvider\n ): Promise<{ fee: number; methodUsed: \"triton\" | \"default\" | \"minimum\" }> => {\n if (rpcProvider === \"triton\") {\n // Triton has an experimental RPC method that accepts a percentile paramater\n // and usually gives more accurate fee numbers.\n try {\n const fee = await determinePriorityFeeTritonOne(\n connection,\n transaction,\n percentile,\n percentileMultiple,\n min,\n max\n );\n\n return {\n fee,\n methodUsed: \"triton\",\n };\n } catch (e) {\n console.warn(`Failed to determine priority fee using Triton RPC:`, e);\n }\n }\n\n try {\n // By default, use generic Solana RPC method\n const fee = await determinePriorityFee(\n connection,\n transaction,\n percentile,\n percentileMultiple,\n min,\n max\n );\n\n return {\n fee,\n methodUsed: \"default\",\n };\n } catch (e) {\n console.warn(`Failed to determine priority fee using Triton RPC:`, e);\n\n return {\n fee: min,\n methodUsed: \"minimum\",\n };\n }\n };\n\n const rpcProvider = determineRpcProvider(connection.rpcEndpoint);\n\n const { fee, methodUsed } = await calculateFee(rpcProvider);\n\n const maxFeeInSol =\n (fee /\n // convert microlamports to lamports\n 1e6 /\n // convert lamports to SOL\n LAMPORTS_PER_SOL) *\n // multiply by maximum compute units used\n unitBudget;\n\n console.table({\n \"RPC Provider\": rpcProvider,\n \"Method used\": methodUsed,\n \"Percentile used\": percentile,\n \"Multiple used\": percentileMultiple,\n \"Compute budget\": unitBudget,\n \"Priority fee\": fee,\n \"Max fee in SOL\": maxFeeInSol,\n });\n\n instructions.push(\n ComputeBudgetProgram.setComputeUnitPrice({ microLamports: fee })\n );\n return instructions;\n}\n\n// Checks response logs for known errors.\n// Returns when the first error is encountered.\nfunction checkKnownSimulationError(\n response: SimulatedTransactionResponse\n): boolean {\n const errors = {} as any;\n\n // This error occur when the blockhash included in a transaction is not deemed to be valid\n // when a validator processes a transaction. We can retry the simulation to get a valid blockhash.\n if (response.err === \"BlockhashNotFound\") {\n errors[\"BlockhashNotFound\"] =\n \"Blockhash not found during simulation. Trying again.\";\n }\n\n // Check the response logs for any known errors\n if (response.logs) {\n for (const line of response.logs) {\n // In some cases which aren't deterministic, like a slippage error, we can retry the\n // simulation a few times to get a successful response.\n if (line.includes(\"SlippageToleranceExceeded\")) {\n errors[\"SlippageToleranceExceeded\"] =\n \"Slippage failure during simulation. Trying again.\";\n }\n\n // In this case a require_gte expression was violated during a Swap instruction.\n // We can retry the simulation to get a successful response.\n if (line.includes(\"RequireGteViolated\")) {\n errors[\"RequireGteViolated\"] =\n \"Swap instruction failure during simulation. Trying again.\";\n }\n }\n }\n\n // No known simulation errors found\n if (isEmptyObject(errors)) {\n return false;\n }\n\n console.table(errors);\n return true;\n}\n\nexport async function sleep(timeout: number) {\n return new Promise((resolve) => setTimeout(resolve, timeout));\n}\n\n/**\n * Checks whether an object is empty.\n *\n * isEmptyObject(null)\n * // => true\n *\n * isEmptyObject(undefined)\n * // => true\n *\n * isEmptyObject({})\n * // => true\n *\n * isEmptyObject({ 'a': 1 })\n * // => false\n */\nexport const isEmptyObject = (value: object | null | undefined) => {\n if (value === null || value === undefined) {\n return true;\n }\n\n // Check all property keys for any own prop\n for (const key in value) {\n if (value.hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n\n return true;\n};\n\nfunction determineRpcProvider(endpoint: string): SolanaRpcProvider {\n if (endpoint.includes(\"rpcpool.com\")) {\n return \"triton\";\n } else if (endpoint.includes(\"helius-rpc.com\")) {\n return \"helius\";\n } else if (endpoint.includes(\"rpc.ankr.com\")) {\n return \"ankr\";\n } else {\n return \"unknown\";\n }\n}\n","import {\n EvmUnsignedTransaction,\n EvmChains,\n} from \"@wormhole-foundation/sdk-evm\";\nimport { Network } from \"@wormhole-foundation/sdk\";\nimport { getBigInt } from \"ethers\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nexport async function signAndSendTransaction(\n request: EvmUnsignedTransaction,\n wallet: AdapterWallet,\n chainName: string,\n options: any\n): Promise {\n if (!wallet || !wallet.sendTransaction) {\n throw new Error(\"wallet.sendTransaction is undefined\");\n }\n // Ensure the signer is connected to the correct chain\n const actualChainId = await wallet.getConnectedNetwork();\n\n if (!actualChainId) throw new Error(\"No signer found for chain\" + chainName);\n const expectedChainId = request.transaction.chainId\n ? getBigInt(request.transaction.chainId)\n : undefined;\n\n if (\n !actualChainId ||\n !expectedChainId ||\n BigInt(actualChainId) !== expectedChainId\n ) {\n throw new Error(\n `Signer is not connected to the right chain. Expected ${expectedChainId}, got ${actualChainId}`\n );\n }\n\n const txHash = await wallet.sendTransaction(request.transaction);\n\n return txHash;\n}\n","import {\n SuiChains,\n SuiUnsignedTransaction,\n} from \"@wormhole-foundation/sdk-sui\";\nimport { Network } from \"@wormhole-foundation/sdk\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\n\nexport async function signAndSendTransaction(\n request: SuiUnsignedTransaction,\n wallet: AdapterWallet\n): Promise {\n if (!wallet || !wallet.sendTransaction) {\n throw new Error(\"wallet.sendTransaction is undefined\");\n }\n\n const response = await wallet.sendTransaction({\n /* @ts-ignore */\n transactionBlock: request.transaction as TransactionBlock,\n });\n\n return response?.id;\n}\n","import {\n UnsignedTransaction,\n Network,\n Chain,\n TxHash,\n SignAndSendSigner,\n} from \"@wormhole-foundation/sdk\";\nimport { SolanaUnsignedTransaction } from \"@wormhole-foundation/sdk-solana\";\nimport {\n SuiChains,\n SuiUnsignedTransaction,\n} from \"@wormhole-foundation/sdk-sui\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport {\n EvmUnsignedTransaction,\n EvmChains,\n} from \"@wormhole-foundation/sdk-evm\";\n\nimport * as solanaSigner from \"./SolanaSigner\";\nimport * as ethereumSigner from \"./EthereumSigner\";\nimport * as suiSigner from \"./SuiSigner\";\n\nimport { ChainConfig } from \"../config\";\nexport class Signer\n implements SignAndSendSigner\n{\n _chain: ChainConfig;\n _address: string;\n _options: any;\n _wallet: AdapterWallet;\n\n constructor(\n chain: ChainConfig,\n address: string,\n options: any,\n wallet: AdapterWallet\n ) {\n this._chain = chain;\n this._address = address;\n this._options = options;\n this._wallet = wallet;\n }\n\n chain(): C {\n return this._chain.displayName as C;\n }\n address(): string {\n return this._address;\n }\n\n async signAndSend(txs: UnsignedTransaction[]): Promise {\n const txHashes: TxHash[] = [];\n\n for (const tx of txs) {\n const txId = await signAndSendTransaction(\n this._chain,\n tx,\n this._wallet,\n this._options\n );\n txHashes.push(txId);\n }\n return txHashes;\n }\n}\n\nexport const signAndSendTransaction = async (\n chain: ChainConfig,\n request: UnsignedTransaction,\n wallet: AdapterWallet,\n options: any = {}\n): Promise => {\n if (!wallet) {\n throw new Error(\"wallet is undefined\");\n }\n\n if (chain.context === \"Solana\") {\n const signature = await solanaSigner.signAndSendTransaction(\n request as SolanaUnsignedTransaction,\n wallet,\n options\n );\n return signature;\n } else if (chain.context === \"Ethereum\") {\n const tx = await ethereumSigner.signAndSendTransaction(\n request as EvmUnsignedTransaction,\n wallet,\n chain.displayName,\n options\n );\n return tx;\n } else if (chain.context === \"Sui\") {\n const tx = await suiSigner.signAndSendTransaction(\n request as SuiUnsignedTransaction,\n wallet\n );\n return tx;\n } else {\n throw new Error(`Unsupported chain: ${chain}`);\n }\n};\n","import { Chain, ChainId } from \"@wormhole-foundation/sdk\";\n\nexport enum Context {\n ETH = \"Ethereum\",\n TERRA = \"Terra\",\n XPLA = \"XPLA\",\n SOLANA = \"Solana\",\n ALGORAND = \"Algorand\",\n NEAR = \"Near\",\n APTOS = \"Aptos\",\n SUI = \"Sui\",\n OTHER = \"OTHER\",\n}\n\nexport type BaseChainConfig = {\n key: Chain;\n id: ChainId;\n context: Context;\n finalityThreshold: number;\n disabledAsSource?: boolean;\n disabledAsDestination?: boolean;\n};\n\nexport interface ChainConfig extends BaseChainConfig {\n sdkName: Chain;\n displayName: string;\n explorerUrl: string;\n explorerName: string;\n gasToken: string;\n wrappedGasToken?: string;\n chainId: number | string;\n icon: Chain;\n maxBlockSearch: number;\n symbol?: string;\n}\n\nexport type ChainsConfig = {\n [chain in Chain]?: ChainConfig;\n};\n\nexport type TokenConfig = {\n symbol: string;\n name?: string;\n decimals: number;\n icon: string;\n tokenId: {\n chain: Chain;\n address: string;\n };\n};\n","import { Context } from \"../types\";\n\nimport { ChainsConfig } from \"../types\";\n\nexport const testnetChains: ChainsConfig = {\n // Avalanche: {\n // key: \"Avalanche\",\n // id: 6,\n // context: \"Ethereum\",\n // finalityThreshold: 1,\n // displayName: \"Fuji\",\n // explorerUrl: \"https://testnet.avascan.info/blockchain/c/\",\n // explorerName: \"Avascan\",\n // gasToken: \"AVAX\",\n // chainId: 43113,\n // icon: \"Avalanche\",\n // maxBlockSearch: 2000,\n // symbol: \"AVAX\",\n // sdkName: \"Avalanche\",\n // wrappedGasToken: \"0xd00ae08403B9bbb9124bB305C09058E32C39A48c\",\n // },\n Sepolia: {\n key: \"Sepolia\",\n id: 10002,\n context: Context.ETH,\n finalityThreshold: 0,\n displayName: \"Sepolia\",\n explorerUrl: \"https://sepolia.etherscan.io/\",\n explorerName: \"Etherscan\",\n gasToken: \"ETHsepolia\",\n chainId: 11155111,\n icon: \"Ethereum\",\n maxBlockSearch: 2000,\n symbol: \"ETH\",\n sdkName: \"Sepolia\",\n wrappedGasToken: \"0xeef12A83EE5b7161D3873317c8E0E7B76e0B5D9c\",\n },\n Solana: {\n key: \"Solana\",\n id: 1,\n context: Context.SOLANA,\n finalityThreshold: 32,\n displayName: \"Solana\",\n explorerUrl: \"https://explorer.solana.com/\",\n explorerName: \"Solana Explorer\",\n gasToken: \"SOL\",\n chainId: 0,\n icon: \"Solana\",\n maxBlockSearch: 2000,\n symbol: \"SOL\",\n sdkName: \"Solana\",\n wrappedGasToken: \"So11111111111111111111111111111111111111112\",\n },\n // Sui: {\n // key: \"Sui\",\n // id: 21,\n // context: Context.SUI,\n // finalityThreshold: 0,\n // displayName: \"Sui\",\n // explorerUrl: \"https://suiscan.xyz/testnet/\",\n // explorerName: \"Suiscan\",\n // gasToken: \"SUI\",\n // chainId: 0,\n // icon: \"Sui\",\n // maxBlockSearch: 0,\n // symbol: \"SUI\",\n // sdkName: \"Sui\",\n // },\n};\n\nexport const AptosTestnetChain = {\n key: \"Aptos\",\n id: 22,\n context: Context.APTOS,\n finalityThreshold: 0,\n displayName: \"Aptos\",\n explorerUrl: \"https://explorer.aptoslabs.com?network=testnet\",\n explorerName: \"Aptos Explorer\",\n gasToken: \"APT\",\n chainId: 0,\n icon: \"Aptos\",\n maxBlockSearch: 0,\n symbol: \"APT\",\n sdkName: \"Aptos\",\n};\n","import { TokenConfig } from \"../types\";\n\nexport const testnetTokens: Record = {\n Avalanche: {\n symbol: \"USDC\",\n icon: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Avalanche\",\n address: \"0x5425890298aed601595a70AB815c96711a31Bc65\",\n },\n },\n Sepolia: {\n symbol: \"USDC\",\n icon: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Sepolia\",\n address: \"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238\",\n },\n },\n Solana: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Solana\",\n address: \"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n Sui: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Sui\",\n address:\n \"0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n};\n\nexport const AptosTestnetUSDCToken: TokenConfig = {\n symbol: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Aptos\",\n address:\n \"0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832\",\n },\n icon: \"USDC\",\n};\n","import { Context } from \"../types\";\n\nimport { ChainsConfig } from \"../types\";\n\nexport const mainnetChains: ChainsConfig = {\n Ethereum: {\n key: \"Ethereum\",\n id: 2,\n context: Context.ETH,\n finalityThreshold: 64,\n displayName: \"Ethereum\",\n explorerUrl: \"https://etherscan.io/\",\n explorerName: \"Etherscan\",\n gasToken: \"ETH\",\n chainId: 1,\n icon: \"Ethereum\",\n maxBlockSearch: 2000,\n symbol: \"ETH\",\n sdkName: \"Ethereum\",\n },\n Solana: {\n key: \"Solana\",\n id: 1,\n context: Context.SOLANA,\n finalityThreshold: 32,\n displayName: \"Solana\",\n explorerUrl: \"https://explorer.solana.com/\",\n explorerName: \"Solana Explorer\",\n gasToken: \"SOL\",\n chainId: 0,\n icon: \"Solana\",\n maxBlockSearch: 2000,\n symbol: \"SOL\",\n sdkName: \"Solana\",\n },\n // Sui: {\n // key: \"Sui\",\n // id: 21,\n // context: Context.SUI,\n // finalityThreshold: 0,\n // displayName: \"Sui\",\n // sdkName: \"Sui\",\n // explorerUrl: \"https://suiscan.xyz/\",\n // explorerName: \"Suiscan\",\n // gasToken: \"SUI\",\n // chainId: 0,\n // icon: \"Sui\",\n // maxBlockSearch: 0,\n // symbol: \"SUI\",\n // },\n};\n\nexport const AptosMainnetChain = {\n key: \"Aptos\",\n id: 22,\n context: \"Aptos\",\n finalityThreshold: 0,\n displayName: \"Aptos\",\n explorerUrl: \"https://explorer.aptoslabs.com/\",\n explorerName: \"Aptos Explorer\",\n gasToken: \"APT\",\n chainId: 0,\n icon: \"Aptos\",\n maxBlockSearch: 0,\n symbol: \"APT\",\n};\n","import { TokenConfig } from \"../types\";\n\nexport const mainnetTokens: Record = {\n Ethereum: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Ethereum\",\n address: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n Solana: {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Solana\",\n address: \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\",\n },\n icon: \"USDC\",\n decimals: 6,\n },\n Sui: {\n symbol: \"USDC\",\n decimals: 6,\n tokenId: {\n chain: \"Sui\",\n address:\n \"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC\",\n },\n icon: \"USDC\",\n },\n};\n\nexport const AptosMainnetUSDCToken: TokenConfig = {\n symbol: \"USDC\",\n tokenId: {\n chain: \"Aptos\",\n address:\n \"0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b\",\n },\n icon: \"USDC\",\n decimals: 6,\n};\n","import { Account, Network } from \"@aptos-labs/ts-sdk\";\n\nimport {\n WormholeInitiateTransferRequest,\n WormholeInitiateTransferResponse,\n WormholeProvider,\n WormholeQuoteRequest,\n WormholeQuoteResponse,\n} from \"./providers/wormhole\";\n\nexport interface CrossChainDappConfig {\n network: Network;\n disableTelemetry?: boolean;\n}\n\nexport type AptosAccount = Account;\n\nexport type Chain = \"Solana\" | \"Ethereum\" | \"Aptos\";\n\nexport type CCTPProviders = \"Wormhole\";\n\nexport type UsdcBalance = {\n amount: string;\n decimal: number;\n display: string;\n};\n\nexport interface CrossChainProvider<\n TQuoteRequest = any,\n TQuoteResponse = any,\n TInitiateTransferRequest = any,\n TInitiateTransferResponse = any,\n> {\n getQuote(params: TQuoteRequest): Promise;\n initiateCCTPTransfer(\n params: TInitiateTransferRequest\n ): Promise;\n}\n\nexport class CrossChainCore {\n readonly _dappConfig: CrossChainDappConfig | undefined;\n\n constructor(args: { dappConfig: CrossChainDappConfig }) {\n this._dappConfig = args.dappConfig;\n }\n\n getProvider(providerType: CCTPProviders): CrossChainProvider {\n switch (providerType) {\n case \"Wormhole\":\n return new WormholeProvider(this) as CrossChainProvider<\n WormholeQuoteRequest,\n WormholeQuoteResponse,\n WormholeInitiateTransferRequest,\n WormholeInitiateTransferResponse\n >;\n default:\n throw new Error(`Unknown provider: ${providerType}`);\n }\n }\n}\n","export * from \"./CrossChainCore\";\nexport * from \"./providers/wormhole/config\";\nexport * from \"./providers/wormhole/index\";\nexport { Network } from \"@aptos-labs/ts-sdk\";\n"],"mappings":"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","names":["sleep","aptos","signAndSendTransaction","rpcProvider","fee","signAndSendTransaction","signAndSendTransaction","signAndSendTransaction","Context","sleep","Network"]} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts.map deleted file mode 100644 index dcc608f2..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts deleted file mode 100644 index be14776f..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { ChainsConfig } from "../types"; -export declare const mainnetChains: ChainsConfig; -export declare const AptosMainnetChain: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; -}; -//# sourceMappingURL=chains.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts.map deleted file mode 100644 index 7013f513..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/chains.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/config/mainnet/chains.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,aAAa,EAAE,YA8C3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAa7B,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts.map deleted file mode 100644 index 40011941..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/config/mainnet/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts deleted file mode 100644 index 8a04405c..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { TokenConfig } from "../types"; -export declare const mainnetTokens: Record; -export declare const AptosMainnetUSDCToken: TokenConfig; -//# sourceMappingURL=tokens.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts.map deleted file mode 100644 index 2f305f80..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/tokens.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/config/mainnet/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA6BrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,WASnC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts deleted file mode 100644 index ed032918..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Context } from "../types"; -import { ChainsConfig } from "../types"; -export declare const testnetChains: ChainsConfig; -export declare const AptosTestnetChain: { - key: string; - id: number; - context: Context; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - sdkName: string; -}; -//# sourceMappingURL=chains.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts.map deleted file mode 100644 index f450af10..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/chains.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/config/testnet/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,aAAa,EAAE,YAgE3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAc7B,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts.map deleted file mode 100644 index 12b133b9..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/config/testnet/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts deleted file mode 100644 index 50d969ba..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { TokenConfig } from "../types"; -export declare const testnetTokens: Record; -export declare const AptosTestnetUSDCToken: TokenConfig; -//# sourceMappingURL=tokens.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts.map deleted file mode 100644 index 1110011d..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/tokens.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/config/testnet/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAsCrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,WASnC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts deleted file mode 100644 index 7f25d624..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Chain, ChainId } from "@wormhole-foundation/sdk"; -export declare enum Context { - ETH = "Ethereum", - TERRA = "Terra", - XPLA = "XPLA", - SOLANA = "Solana", - ALGORAND = "Algorand", - NEAR = "Near", - APTOS = "Aptos", - SUI = "Sui", - OTHER = "OTHER" -} -export type BaseChainConfig = { - key: Chain; - id: ChainId; - context: Context; - finalityThreshold: number; - disabledAsSource?: boolean; - disabledAsDestination?: boolean; -}; -export interface ChainConfig extends BaseChainConfig { - sdkName: Chain; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - wrappedGasToken?: string; - chainId: number | string; - icon: Chain; - maxBlockSearch: number; - symbol?: string; -} -export type ChainsConfig = { - [chain in Chain]?: ChainConfig; -}; -export type TokenConfig = { - symbol: string; - name?: string; - decimals: number; - icon: string; - tokenId: { - chain: Chain; - address: string; - }; -}; -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts.map deleted file mode 100644 index 80d20e1f..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAE1D,oBAAY,OAAO;IACjB,GAAG,aAAa;IAChB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,KAAK,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,OAAO,EAAE,KAAK,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,KAAK,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG;KACxB,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,WAAW;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,KAAK,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts deleted file mode 100644 index 8f48bf0d..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Chain, CrossChainProvider } from "../../CrossChainCore"; -import { routes, TokenId, Wormhole, AttestationReceipt } from "@wormhole-foundation/sdk"; -import { CrossChainCore } from "../../CrossChainCore"; -import { Account, AccountAddressInput, Network } from "@aptos-labs/ts-sdk"; -import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; -import { ChainsConfig, TokenConfig, ChainConfig } from "./config"; -export type WormholeRouteResponse = routes.Route<"Mainnet" | "Testnet", routes.Options, routes.ValidatedTransferParams, routes.Receipt>; -export type WormholeRequest = routes.RouteTransferRequest<"Mainnet" | "Testnet">; -export type WormholeQuoteResponse = routes.Quote, any>; -export interface WormholeQuoteRequest { - amount: string; - sourceChain: Chain; -} -export interface WormholeInitiateTransferRequest { - sourceChain: Chain; - wallet: AdapterWallet; - destinationAddress: AccountAddressInput; - mainSigner: Account; - sponsorAccount?: Account | Partial>; -} -export interface WormholeInitiateTransferResponse { - destinationChainTxnId: string; - originChainTxnId: string; -} -export interface WormholeStartTransferResponse { - originChainTxnId: string; - receipt: routes.Receipt; -} -export declare class WormholeProvider implements CrossChainProvider { - private crossChainCore; - private _wormholeContext; - private wormholeRoute; - private wormholeRequest; - private wormholeQuote; - readonly CHAINS: ChainsConfig; - readonly TOKENS: Record; - readonly APTOS_TOKEN: TokenConfig; - constructor(core: CrossChainCore); - get wormholeContext(): Wormhole<"Mainnet" | "Testnet"> | undefined; - setWormholeContext(sourceChain: Chain): Promise; - getWormholeCctpRoute(sourceChain: Chain): Promise<{ - route: WormholeRouteResponse; - request: WormholeRequest; - }>; - getQuote(input: WormholeQuoteRequest): Promise; - startCCTPTransfer(input: WormholeInitiateTransferRequest): Promise; - initiateCCTPTransfer(input: WormholeInitiateTransferRequest): Promise; - getChainConfig(chain: Chain): ChainConfig; - getTokenInfo(sourceChain: Chain): { - sourceToken: TokenId; - destToken: TokenId; - }; -} -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts.map deleted file mode 100644 index 9a48ed98..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/wormhole/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts deleted file mode 100644 index 29bbe9ba..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Network as AptosNetwork, Account } from "@aptos-labs/ts-sdk"; -import { Chain, Network, SignAndSendSigner, TxHash, UnsignedTransaction } from "@wormhole-foundation/sdk"; -import { AptosChains } from "@wormhole-foundation/sdk-aptos"; -export declare class AptosLocalSigner implements SignAndSendSigner { - _chain: C; - _options: any; - _wallet: Account; - _sponsorAccount: Account | Partial> | undefined; - _claimedTransactionHashes: string; - constructor(chain: C, options: any, wallet: Account, feePayerAccount: Account | Partial> | undefined); - chain(): C; - address(): string; - claimedTransactionHashes(): string; - signAndSend(txs: UnsignedTransaction[]): Promise; -} -export declare function signAndSendTransaction(request: UnsignedTransaction, wallet: Account, sponsorAccount: Account | Partial> | undefined): Promise; -//# sourceMappingURL=AptosLocalSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts.map deleted file mode 100644 index 6753b14d..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/AptosLocalSigner.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"AptosLocalSigner.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/signers/AptosLocalSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,OAAO,IAAI,YAAY,EACvB,OAAO,EACR,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,qBAAa,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,CAC9D,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAC7E,yBAAyB,EAAE,MAAM,CAAC;gBAGhC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,OAAO,EACf,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS;IAS9E,KAAK,IAAI,CAAC;IAGV,OAAO,IAAI,MAAM;IAIjB,wBAAwB,IAAI,MAAM;IAK5B,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAevE;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,EAClD,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,mBA0D5E"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts deleted file mode 100644 index 87a52419..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { EvmUnsignedTransaction, EvmChains } from "@wormhole-foundation/sdk-evm"; -import { Network } from "@wormhole-foundation/sdk"; -import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; -export declare function signAndSendTransaction(request: EvmUnsignedTransaction, wallet: AdapterWallet, chainName: string, options: any): Promise; -//# sourceMappingURL=EthereumSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts.map deleted file mode 100644 index 8ed3b4ab..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/EthereumSigner.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"EthereumSigner.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/signers/EthereumSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,SAAS,EACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,EACnD,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,MAAM,CAAC,CAyBjB"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts deleted file mode 100644 index 1e9b3f6f..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { ConfirmOptions, VersionedTransaction } from "@solana/web3.js"; -import { Transaction } from "@solana/web3.js"; -import { SolanaUnsignedTransaction } from "@wormhole-foundation/sdk-solana"; -import { Connection } from "@solana/web3.js"; -import { Network } from "@wormhole-foundation/sdk"; -import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; -export type SolanaRpcProvider = "triton" | "helius" | "ankr" | "unknown"; -export declare function signAndSendTransaction(request: SolanaUnsignedTransaction, wallet: AdapterWallet | undefined, options?: ConfirmOptions): Promise; -export declare function setPriorityFeeInstructions(connection: Connection, blockhash: string, lastValidBlockHeight: number, request: SolanaUnsignedTransaction): Promise; -export declare function sleep(timeout: number): Promise; -/** - * Checks whether an object is empty. - * - * isEmptyObject(null) - * // => true - * - * isEmptyObject(undefined) - * // => true - * - * isEmptyObject({}) - * // => true - * - * isEmptyObject({ 'a': 1 }) - * // => false - */ -export declare const isEmptyObject: (value: object | null | undefined) => boolean; -//# sourceMappingURL=SolanaSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts.map deleted file mode 100644 index 75377e83..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SolanaSigner.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SolanaSigner.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/signers/SolanaSigner.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,cAAc,EAKd,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAIL,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAGzE,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,EAC3C,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,cAAc,mBAqGzB;AAED,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC1C,OAAO,CAAC,WAAW,GAAG,oBAAoB,CAAC,CAqB7C;AAgMD,wBAAsB,KAAK,CAAC,OAAO,EAAE,MAAM,oBAE1C;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,IAAI,GAAG,SAAS,YAa7D,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts deleted file mode 100644 index 8d56e21a..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { SuiChains, SuiUnsignedTransaction } from "@wormhole-foundation/sdk-sui"; -import { Network } from "@wormhole-foundation/sdk"; -import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; -export declare function signAndSendTransaction(request: SuiUnsignedTransaction, wallet: AdapterWallet): Promise; -//# sourceMappingURL=SuiSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts.map deleted file mode 100644 index 97c737ec..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/SuiSigner.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SuiSigner.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/signers/SuiSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,EACnD,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts deleted file mode 100644 index 69e8807f..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { UnsignedTransaction, Network, Chain, TxHash, SignAndSendSigner } from "@wormhole-foundation/sdk"; -import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; -import { ChainConfig } from "../config"; -export declare class Signer implements SignAndSendSigner { - _chain: ChainConfig; - _address: string; - _options: any; - _wallet: AdapterWallet; - constructor(chain: ChainConfig, address: string, options: any, wallet: AdapterWallet); - chain(): C; - address(): string; - signAndSend(txs: UnsignedTransaction[]): Promise; -} -export declare const signAndSendTransaction: (chain: ChainConfig, request: UnsignedTransaction, wallet: AdapterWallet, options?: any) => Promise; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts.map deleted file mode 100644 index ae34a485..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/signers/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/wormhole/signers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,MAAM,EACN,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAU3E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,qBAAa,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,CACpD,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,aAAa,CAAC;gBAGrB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,aAAa;IAQvB,KAAK,IAAI,CAAC;IAGV,OAAO,IAAI,MAAM;IAIX,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAcvE;AAED,eAAO,MAAM,sBAAsB,UAC1B,WAAW,WACT,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,UACpC,aAAa,YACZ,GAAG,KACX,OAAO,CAAC,MAAM,CA6BhB,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts deleted file mode 100644 index 47ec2875..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./mainnet"; -export * from "./testnet"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts.map deleted file mode 100644 index 9809d660..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/utils/chains/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts deleted file mode 100644 index 38b38ceb..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts +++ /dev/null @@ -1,60 +0,0 @@ -export declare const mainnetChains: { - Ethereum: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - }; - Solana: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - }; - Sui: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - sdkName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - }; -}; -export declare const AptosMainnetChain: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; -}; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts.map deleted file mode 100644 index 01defa06..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/mainnet/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/wormhole/utils/chains/mainnet/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CzB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAa7B,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts deleted file mode 100644 index 07fbc430..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts +++ /dev/null @@ -1,65 +0,0 @@ -export declare const testnetChains: { - Sepolia: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - sdkName: string; - wrappedGasToken: string; - }; - Solana: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - sdkName: string; - wrappedGasToken: string; - }; - Sui: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - sdkName: string; - }; -}; -export declare const AptosTestnetChain: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - sdkName: string; -}; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts.map deleted file mode 100644 index 94490250..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/chains/testnet/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/providers/wormhole/utils/chains/testnet/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEzB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAc7B,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts deleted file mode 100644 index 47ec2875..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./mainnet"; -export * from "./testnet"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts.map deleted file mode 100644 index ffcd6861..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/utils/tokens/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts deleted file mode 100644 index e9c58246..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -export declare const mainnetChainTokens: Record; -export declare const AptosMainnetUSDCToken: { - key: string; - symbol: string; - nativeChain: string; - tokenId: { - chain: string; - address: string; - }; - icon: string; - coinGeckoId: string; - color: string; - decimals: number; -}; -//# sourceMappingURL=mainnet.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts.map deleted file mode 100644 index bdb587d0..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/mainnet.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"mainnet.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/utils/tokens/mainnet.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAqClD,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;CAajC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts deleted file mode 100644 index ecf54cbb..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -export declare const testnetChainTokens: Record; -export declare const AptosTestnetUSDCToken: { - symbol: string; - decimals: number; - tokenId: { - chain: string; - address: string; - }; - icon: string; -}; -//# sourceMappingURL=testnet.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts.map b/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts.map deleted file mode 100644 index 7b12c055..00000000 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/utils/tokens/testnet.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"testnet.d.ts","sourceRoot":"","sources":["../../../../../src/providers/wormhole/utils/tokens/testnet.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAsClD,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;CASjC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts deleted file mode 100644 index 72d4f157..00000000 --- a/packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Ed25519Account } from "@aptos-labs/ts-sdk"; -import { Chain, Network, SignAndSendSigner, TxHash, UnsignedTransaction } from "@wormhole-foundation/sdk"; -import { AptosChains } from "@wormhole-foundation/sdk-aptos"; -export declare class AptosLocalSigner implements SignAndSendSigner { - _chain: C; - _options: any; - _wallet: Ed25519Account; - _feePayerAccount: Ed25519Account | undefined; - _claimedTransactionHashes: string; - constructor(chain: C, options: any, wallet: Ed25519Account, feePayerAccount: Ed25519Account | undefined); - chain(): C; - address(): string; - claimedTransactionHashes(): string; - signAndSend(txs: UnsignedTransaction[]): Promise; -} -export declare function signAndSendTransaction(request: UnsignedTransaction, wallet: Ed25519Account, feePayerAccount: Ed25519Account | undefined): Promise; -//# sourceMappingURL=AptosLocalSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts.map deleted file mode 100644 index f49dc57a..00000000 --- a/packages/cross-chain/cross-chain-core/dist/signers/AptosLocalSigner.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"AptosLocalSigner.d.ts","sourceRoot":"","sources":["../../src/signers/AptosLocalSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,qBAAa,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,CAC9D,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,gBAAgB,EAAE,cAAc,GAAG,SAAS,CAAC;IAC7C,yBAAyB,EAAE,MAAM,CAAC;gBAGhC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,cAAc,GAAG,SAAS;IAS7C,KAAK,IAAI,CAAC;IAGV,OAAO,IAAI,MAAM;IAIjB,wBAAwB,IAAI,MAAM;IAK5B,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAevE;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,EAClD,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,cAAc,GAAG,SAAS,mBA0D5C"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts deleted file mode 100644 index b26e9f35..00000000 --- a/packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { EvmUnsignedTransaction, EvmChains } from "@wormhole-foundation/sdk-evm"; -import { Network } from "@wormhole-foundation/sdk"; -import { Eip6963Wallet } from "@xlabs-libs/wallet-aggregator-evm"; -export declare function signAndSendTransaction(request: EvmUnsignedTransaction, wallet: Eip6963Wallet, chainName: string, options: any): Promise; -//# sourceMappingURL=EthereumSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts.map deleted file mode 100644 index 967db907..00000000 --- a/packages/cross-chain/cross-chain-core/dist/signers/EthereumSigner.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"EthereumSigner.d.ts","sourceRoot":"","sources":["../../src/signers/EthereumSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,SAAS,EACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGlE,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,EACnD,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,MAAM,CAAC,CA2BjB"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts b/packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts deleted file mode 100644 index 853a0b2e..00000000 --- a/packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { SolanaWallet } from "@xlabs-libs/wallet-aggregator-solana"; -import { ConfirmOptions, VersionedTransaction } from "@solana/web3.js"; -import { Transaction } from "@solana/web3.js"; -import { SolanaUnsignedTransaction } from "@wormhole-foundation/sdk-solana"; -import { Connection } from "@solana/web3.js"; -import { Network } from "@wormhole-foundation/sdk"; -export type SolanaRpcProvider = "triton" | "helius" | "ankr" | "unknown"; -export declare function signAndSendTransaction(request: SolanaUnsignedTransaction, wallet: SolanaWallet | undefined, options?: ConfirmOptions): Promise; -export declare function setPriorityFeeInstructions(connection: Connection, blockhash: string, lastValidBlockHeight: number, request: SolanaUnsignedTransaction): Promise; -export declare function sleep(timeout: number): Promise; -/** - * Checks whether an object is empty. - * - * isEmptyObject(null) - * // => true - * - * isEmptyObject(undefined) - * // => true - * - * isEmptyObject({}) - * // => true - * - * isEmptyObject({ 'a': 1 }) - * // => false - */ -export declare const isEmptyObject: (value: object | null | undefined) => boolean; -//# sourceMappingURL=SolanaSigner.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts.map b/packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts.map deleted file mode 100644 index dc57ceed..00000000 --- a/packages/cross-chain/cross-chain-core/dist/signers/SolanaSigner.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SolanaSigner.d.ts","sourceRoot":"","sources":["../../src/signers/SolanaSigner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EAIL,cAAc,EAKd,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAIL,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAGzE,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,EAC3C,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,cAAc,mBA0FzB;AAED,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC1C,OAAO,CAAC,WAAW,GAAG,oBAAoB,CAAC,CAgD7C;AA6MD,wBAAsB,KAAK,CAAC,OAAO,EAAE,MAAM,oBAE1C;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,IAAI,GAAG,SAAS,YAa7D,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/index.d.ts b/packages/cross-chain/cross-chain-core/dist/signers/index.d.ts deleted file mode 100644 index 73e1dfaf..00000000 --- a/packages/cross-chain/cross-chain-core/dist/signers/index.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { UnsignedTransaction, Network, Chain, TxHash, SignAndSendSigner } from "@wormhole-foundation/sdk"; -import { Wallet } from "@xlabs-libs/wallet-aggregator-core"; -export declare class Signer implements SignAndSendSigner { - _chain: C; - _address: string; - _options: any; - _wallet: Wallet; - constructor(chain: C, address: string, options: any, wallet: Wallet); - chain(): C; - address(): string; - signAndSend(txs: UnsignedTransaction[]): Promise; -} -export declare const signAndSendTransaction: (chain: Chain, request: UnsignedTransaction, wallet: Wallet, options?: any) => Promise; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/signers/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/signers/index.d.ts.map deleted file mode 100644 index dda35969..00000000 --- a/packages/cross-chain/cross-chain-core/dist/signers/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,MAAM,EACN,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAc5D,qBAAa,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,CACpD,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;gBAEJ,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;IAOnE,KAAK,IAAI,CAAC;IAGV,OAAO,IAAI,MAAM;IAKX,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAevE;AAED,eAAO,MAAM,sBAAsB,UAC1B,KAAK,WACH,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,UACpC,MAAM,YACL,GAAG,KACX,OAAO,CAAC,MAAM,CA2BhB,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts b/packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts deleted file mode 100644 index 47ec2875..00000000 --- a/packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./mainnet"; -export * from "./testnet"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts.map deleted file mode 100644 index 8b5e80f8..00000000 --- a/packages/cross-chain/cross-chain-core/dist/utils/chains/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/chains/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts b/packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts deleted file mode 100644 index 5fc283fb..00000000 --- a/packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts +++ /dev/null @@ -1,45 +0,0 @@ -export declare const mainnetChains: { - Ethereum: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - }; - Solana: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - }; -}; -export declare const AptosMainnetChain: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; -}; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts.map deleted file mode 100644 index 19ba945a..00000000 --- a/packages/cross-chain/cross-chain-core/dist/utils/chains/mainnet/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/chains/mainnet/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BzB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAa7B,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts b/packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts deleted file mode 100644 index 55cfb8ae..00000000 --- a/packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -export declare const testnetChains: { - Sepolia: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - sdkName: string; - wrappedGasToken: string; - }; - Solana: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - sdkName: string; - wrappedGasToken: string; - }; -}; -export declare const AptosTestnetChain: { - key: string; - id: number; - context: string; - finalityThreshold: number; - displayName: string; - explorerUrl: string; - explorerName: string; - gasToken: string; - chainId: number; - icon: string; - maxBlockSearch: number; - symbol: string; - sdkName: string; -}; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts.map deleted file mode 100644 index 1b413a23..00000000 --- a/packages/cross-chain/cross-chain-core/dist/utils/chains/testnet/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/chains/testnet/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDzB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAc7B,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts b/packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts deleted file mode 100644 index 6bb5e3ec..00000000 --- a/packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export declare const logger: { - log: (...args: any[]) => void; - warn: (...args: any[]) => void; - error: (...args: any[]) => void; -}; -//# sourceMappingURL=logger.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts.map b/packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts.map deleted file mode 100644 index e7c4a8df..00000000 --- a/packages/cross-chain/cross-chain-core/dist/utils/logger.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;mBACF,GAAG,EAAE;oBAKJ,GAAG,EAAE;qBAKJ,GAAG,EAAE;CAKvB,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts b/packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts deleted file mode 100644 index e9c58246..00000000 --- a/packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -export declare const mainnetChainTokens: Record; -export declare const AptosMainnetUSDCToken: { - key: string; - symbol: string; - nativeChain: string; - tokenId: { - chain: string; - address: string; - }; - icon: string; - coinGeckoId: string; - color: string; - decimals: number; -}; -//# sourceMappingURL=mainnet.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts.map b/packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts.map deleted file mode 100644 index 64954cd1..00000000 --- a/packages/cross-chain/cross-chain-core/dist/utils/tokens/mainnet.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"mainnet.d.ts","sourceRoot":"","sources":["../../../src/utils/tokens/mainnet.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CA2BlD,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;CAajC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts b/packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts deleted file mode 100644 index ecf54cbb..00000000 --- a/packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -export declare const testnetChainTokens: Record; -export declare const AptosTestnetUSDCToken: { - symbol: string; - decimals: number; - tokenId: { - chain: string; - address: string; - }; - icon: string; -}; -//# sourceMappingURL=testnet.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts.map b/packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts.map deleted file mode 100644 index 6d567232..00000000 --- a/packages/cross-chain/cross-chain-core/dist/utils/tokens/testnet.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"testnet.d.ts","sourceRoot":"","sources":["../../../src/utils/tokens/testnet.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CA4BlD,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;CASjC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/version.d.ts b/packages/cross-chain/cross-chain-core/dist/version.d.ts deleted file mode 100644 index 21f77da0..00000000 --- a/packages/cross-chain/cross-chain-core/dist/version.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const CROSS_CHAIN_CORE_VERSION = "4.23.0"; -//# sourceMappingURL=version.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/version.d.ts.map b/packages/cross-chain/cross-chain-core/dist/version.d.ts.map deleted file mode 100644 index 96135975..00000000 --- a/packages/cross-chain/cross-chain-core/dist/version.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts b/packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts deleted file mode 100644 index e6c66add..00000000 --- a/packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Network } from "@aptos-labs/ts-sdk"; -import { AptosWallet as AptosWalletAggregator } from "@xlabs-libs/wallet-aggregator-aptos"; -type DappConfig = { - network: Network; -}; -export declare function getAptosStandardWallets(aptosWalletConfig: DappConfig): AptosWallet[]; -export declare class AptosWallet extends AptosWalletAggregator { -} -export {}; -//# sourceMappingURL=aptos.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts.map b/packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts.map deleted file mode 100644 index b9f1ce33..00000000 --- a/packages/cross-chain/cross-chain-core/dist/wallets/aptos.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"aptos.d.ts","sourceRoot":"","sources":["../../src/wallets/aptos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE3F,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,iBAAiB,EAAE,UAAU,GAC5B,WAAW,EAAE,CASf;AAED,qBAAa,WAAY,SAAQ,qBAAqB;CAAG"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts b/packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts deleted file mode 100644 index 629dd7f7..00000000 --- a/packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts +++ /dev/null @@ -1 +0,0 @@ -//# sourceMappingURL=core.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts.map b/packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts.map deleted file mode 100644 index 5015f8b7..00000000 --- a/packages/cross-chain/cross-chain-core/dist/wallets/core.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/wallets/core.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts b/packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts deleted file mode 100644 index d3a21a99..00000000 --- a/packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts +++ /dev/null @@ -1 +0,0 @@ -//# sourceMappingURL=evm.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts.map b/packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts.map deleted file mode 100644 index 678677e4..00000000 --- a/packages/cross-chain/cross-chain-core/dist/wallets/evm.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/wallets/evm.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts b/packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts deleted file mode 100644 index f36479a7..00000000 --- a/packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts.map b/packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts.map deleted file mode 100644 index a102f601..00000000 --- a/packages/cross-chain/cross-chain-core/dist/wallets/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallets/index.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts b/packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts deleted file mode 100644 index cf609754..00000000 --- a/packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts +++ /dev/null @@ -1 +0,0 @@ -//# sourceMappingURL=solana.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts.map b/packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts.map deleted file mode 100644 index 1190bcf3..00000000 --- a/packages/cross-chain/cross-chain-core/dist/wallets/solana.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/wallets/solana.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts b/packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts deleted file mode 100644 index 458b3905..00000000 --- a/packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts +++ /dev/null @@ -1 +0,0 @@ -//# sourceMappingURL=sui.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts.map b/packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts.map deleted file mode 100644 index 4fc9a8af..00000000 --- a/packages/cross-chain/cross-chain-core/dist/wallets/sui.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../src/wallets/sui.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/package.json b/packages/cross-chain/cross-chain-core/package.json new file mode 100644 index 00000000..57d4d9b4 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/package.json @@ -0,0 +1,80 @@ +{ + "name": "@aptos-labs/cross-chain-core", + "version": "4.23.0", + "description": "Aptos Cross Chain Core", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "license": "Apache-2.0", + "exports": { + "require": "./dist/index.js", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + }, + "repository": { + "type": "git", + "url": "https://github.com/aptos-labs/aptos-wallet-adapter.git" + }, + "homepage": "https://github.com/aptos-labs/aptos-wallet-adapter", + "bugs": { + "url": "https://github.com/aptos-labs/aptos-wallet-adapter/issues" + }, + "author": "aptoslabs.com", + "keywords": [ + "Aptos", + "Aptos Labs", + "Wallet", + "Wallet Adapter", + "Aptos Wallet" + ], + "scripts": { + "update-version": "node -p \"'export const CROSS_CHAIN_CORE_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts", + "build-package": "export $(cat .env | xargs) && pnpm build:bundle && pnpm build:declarations", + "build:bundle": "tsup src/index.ts --format cjs,esm --sourcemap --env.GAID $GAID", + "build:declarations": "tsc --emitDeclarationOnly --declaration --declarationMap", + "build": "pnpm run update-version && pnpm run build-package", + "dev": "export $(cat .env | xargs) && tsup src/index.ts --format esm,cjs --watch --dts --env.GAID $GAID", + "test": "jest", + "lint": "TIMING=1 eslint \"src/**/*.ts*\"", + "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist" + }, + "devDependencies": { + "@aptos-labs/eslint-config-adapter": "workspace:*", + "@aptos-labs/wallet-adapter-tsconfig": "workspace:*", + "@types/jest": "^29.2.4", + "@types/node": "^20.10.4", + "eslint": "^8.15.0", + "jest": "^29.3.1", + "ts-jest": "^29.0.3", + "tsup": "^5.10.1" + }, + "dependencies": { + "@aptos-labs/wallet-adapter-aggregator-core": "workspace:*", + "@mysten/sui": "^1.21.2", + "@mysten/wallet-standard": "^0.13.26", + "@solana/spl-token": "^0.4.12", + "@solana/wallet-adapter-base": "^0.9.23", + "@solana/wallet-standard-wallet-adapter-base": "^1.1.4", + "@solana/web3.js": "^1.95.8", + "@wallet-standard/app": "^1.1.0", + "@wormhole-foundation/sdk": "1.5.2", + "@wormhole-foundation/sdk-aptos": "^1.5.2", + "@wormhole-foundation/sdk-evm": "^1.5.2", + "@wormhole-foundation/sdk-solana": "^1.5.2", + "@wormhole-foundation/sdk-sui": "^1.10.0", + "buffer": "^6.0.3", + "ethers": "^6.13.5", + "eventemitter3": "^4.0.7", + "evm": "link:@wormhole-foundation/sdk/evm", + "solana": "link:@wormhole-foundation/sdk/solana", + "tweetnacl": "^1.0.3", + "typescript": "^5.7.3" + }, + "peerDependencies": { + "@aptos-labs/ts-sdk": "^1.34.0" + }, + "files": [ + "dist", + "src" + ] +} diff --git a/packages/cross-chain/cross-chain-core/src/CrossChainCore.ts b/packages/cross-chain/cross-chain-core/src/CrossChainCore.ts new file mode 100644 index 00000000..e445ab8a --- /dev/null +++ b/packages/cross-chain/cross-chain-core/src/CrossChainCore.ts @@ -0,0 +1,60 @@ +import { Account, Network } from "@aptos-labs/ts-sdk"; + +import { + WormholeInitiateTransferRequest, + WormholeInitiateTransferResponse, + WormholeProvider, + WormholeQuoteRequest, + WormholeQuoteResponse, +} from "./providers/wormhole"; + +export interface CrossChainDappConfig { + network: Network; + disableTelemetry?: boolean; +} + +export type AptosAccount = Account; + +export type Chain = "Solana" | "Ethereum" | "Aptos"; + +export type CCTPProviders = "Wormhole"; + +export type UsdcBalance = { + amount: string; + decimal: number; + display: string; +}; + +export interface CrossChainProvider< + TQuoteRequest = any, + TQuoteResponse = any, + TInitiateTransferRequest = any, + TInitiateTransferResponse = any, +> { + getQuote(params: TQuoteRequest): Promise; + initiateCCTPTransfer( + params: TInitiateTransferRequest + ): Promise; +} + +export class CrossChainCore { + readonly _dappConfig: CrossChainDappConfig | undefined; + + constructor(args: { dappConfig: CrossChainDappConfig }) { + this._dappConfig = args.dappConfig; + } + + getProvider(providerType: CCTPProviders): CrossChainProvider { + switch (providerType) { + case "Wormhole": + return new WormholeProvider(this) as CrossChainProvider< + WormholeQuoteRequest, + WormholeQuoteResponse, + WormholeInitiateTransferRequest, + WormholeInitiateTransferResponse + >; + default: + throw new Error(`Unknown provider: ${providerType}`); + } + } +} diff --git a/packages/cross-chain/cross-chain-core/dist/index.d.ts b/packages/cross-chain/cross-chain-core/src/index.ts similarity index 82% rename from packages/cross-chain/cross-chain-core/dist/index.d.ts rename to packages/cross-chain/cross-chain-core/src/index.ts index bb31cd3c..822d03d3 100644 --- a/packages/cross-chain/cross-chain-core/dist/index.d.ts +++ b/packages/cross-chain/cross-chain-core/src/index.ts @@ -2,4 +2,3 @@ export * from "./CrossChainCore"; export * from "./providers/wormhole/config"; export * from "./providers/wormhole/index"; export { Network } from "@aptos-labs/ts-sdk"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/index.ts similarity index 69% rename from packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts rename to packages/cross-chain/cross-chain-core/src/providers/wormhole/config/index.ts index b29bd05a..98ac9694 100644 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/index.d.ts +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/index.ts @@ -1,4 +1,3 @@ export * from "./testnet"; export * from "./mainnet"; export * from "./types"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-swap/src/utils/chains/mainnet/index.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/mainnet/chains.ts similarity index 60% rename from packages/wallet-adapter-swap/src/utils/chains/mainnet/index.ts rename to packages/cross-chain/cross-chain-core/src/providers/wormhole/config/mainnet/chains.ts index a3ddd9c9..6deb1ced 100644 --- a/packages/wallet-adapter-swap/src/utils/chains/mainnet/index.ts +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/mainnet/chains.ts @@ -1,8 +1,12 @@ -export const mainnetChains = { +import { Context } from "../types"; + +import { ChainsConfig } from "../types"; + +export const mainnetChains: ChainsConfig = { Ethereum: { key: "Ethereum", id: 2, - context: "Ethereum", + context: Context.ETH, finalityThreshold: 64, displayName: "Ethereum", explorerUrl: "https://etherscan.io/", @@ -12,11 +16,12 @@ export const mainnetChains = { icon: "Ethereum", maxBlockSearch: 2000, symbol: "ETH", + sdkName: "Ethereum", }, Solana: { key: "Solana", id: 1, - context: "Solana", + context: Context.SOLANA, finalityThreshold: 32, displayName: "Solana", explorerUrl: "https://explorer.solana.com/", @@ -26,7 +31,23 @@ export const mainnetChains = { icon: "Solana", maxBlockSearch: 2000, symbol: "SOL", + sdkName: "Solana", }, + // Sui: { + // key: "Sui", + // id: 21, + // context: Context.SUI, + // finalityThreshold: 0, + // displayName: "Sui", + // sdkName: "Sui", + // explorerUrl: "https://suiscan.xyz/", + // explorerName: "Suiscan", + // gasToken: "SUI", + // chainId: 0, + // icon: "Sui", + // maxBlockSearch: 0, + // symbol: "SUI", + // }, }; export const AptosMainnetChain = { diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/mainnet/index.ts similarity index 59% rename from packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts rename to packages/cross-chain/cross-chain-core/src/providers/wormhole/config/mainnet/index.ts index 8d9dbfea..975bcd0c 100644 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/mainnet/index.d.ts +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/mainnet/index.ts @@ -1,3 +1,2 @@ export * from "./chains"; export * from "./tokens"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-swap/src/utils/tokens/mainnet.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/mainnet/tokens.ts similarity index 58% rename from packages/wallet-adapter-swap/src/utils/tokens/mainnet.ts rename to packages/cross-chain/cross-chain-core/src/providers/wormhole/config/mainnet/tokens.ts index 5ff2e857..d308d32a 100644 --- a/packages/wallet-adapter-swap/src/utils/tokens/mainnet.ts +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/mainnet/tokens.ts @@ -1,43 +1,43 @@ -export const mainnetChainTokens: Record = { +import { TokenConfig } from "../types"; + +export const mainnetTokens: Record = { Ethereum: { - key: "USDCeth", symbol: "USDC", - nativeChain: "Ethereum", tokenId: { chain: "Ethereum", address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", }, icon: "USDC", - coinGeckoId: "usd-coin", - color: "#ffffff", decimals: 6, }, Solana: { - key: "USDCsol", symbol: "USDC", - nativeChain: "Solana", tokenId: { chain: "Solana", address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", }, icon: "USDC", - coinGeckoId: "usd-coin", - color: "#2774CA", decimals: 6, }, + Sui: { + symbol: "USDC", + decimals: 6, + tokenId: { + chain: "Sui", + address: + "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC", + }, + icon: "USDC", + }, }; -export const AptosMainnetUSDCToken = { - key: "USDCapt", +export const AptosMainnetUSDCToken: TokenConfig = { symbol: "USDC", - nativeChain: "Aptos", tokenId: { chain: "Aptos", address: "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b", }, icon: "USDC", - coinGeckoId: "usd-coin", - color: "#2774CA", decimals: 6, }; diff --git a/packages/wallet-adapter-swap/src/utils/chains/testnet/index.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/testnet/chains.ts similarity index 70% rename from packages/wallet-adapter-swap/src/utils/chains/testnet/index.ts rename to packages/cross-chain/cross-chain-core/src/providers/wormhole/config/testnet/chains.ts index b69c7b10..de233d81 100644 --- a/packages/wallet-adapter-swap/src/utils/chains/testnet/index.ts +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/testnet/chains.ts @@ -1,4 +1,8 @@ -export const testnetChains = { +import { Context } from "../types"; + +import { ChainsConfig } from "../types"; + +export const testnetChains: ChainsConfig = { // Avalanche: { // key: "Avalanche", // id: 6, @@ -18,7 +22,7 @@ export const testnetChains = { Sepolia: { key: "Sepolia", id: 10002, - context: "Ethereum", + context: Context.ETH, finalityThreshold: 0, displayName: "Sepolia", explorerUrl: "https://sepolia.etherscan.io/", @@ -34,7 +38,7 @@ export const testnetChains = { Solana: { key: "Solana", id: 1, - context: "Solana", + context: Context.SOLANA, finalityThreshold: 32, displayName: "Solana", explorerUrl: "https://explorer.solana.com/", @@ -47,15 +51,30 @@ export const testnetChains = { sdkName: "Solana", wrappedGasToken: "So11111111111111111111111111111111111111112", }, + // Sui: { + // key: "Sui", + // id: 21, + // context: Context.SUI, + // finalityThreshold: 0, + // displayName: "Sui", + // explorerUrl: "https://suiscan.xyz/testnet/", + // explorerName: "Suiscan", + // gasToken: "SUI", + // chainId: 0, + // icon: "Sui", + // maxBlockSearch: 0, + // symbol: "SUI", + // sdkName: "Sui", + // }, }; export const AptosTestnetChain = { key: "Aptos", id: 22, - context: "Aptos", + context: Context.APTOS, finalityThreshold: 0, displayName: "Aptos", - explorerUrl: "https://explorer.aptoslabs.com/", + explorerUrl: "https://explorer.aptoslabs.com?network=testnet", explorerName: "Aptos Explorer", gasToken: "APT", chainId: 0, diff --git a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/testnet/index.ts similarity index 59% rename from packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts rename to packages/cross-chain/cross-chain-core/src/providers/wormhole/config/testnet/index.ts index 8d9dbfea..975bcd0c 100644 --- a/packages/cross-chain/cross-chain-core/dist/providers/wormhole/config/testnet/index.d.ts +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/testnet/index.ts @@ -1,3 +1,2 @@ export * from "./chains"; export * from "./tokens"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-swap/src/utils/tokens/testnet.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/testnet/tokens.ts similarity index 66% rename from packages/wallet-adapter-swap/src/utils/tokens/testnet.ts rename to packages/cross-chain/cross-chain-core/src/providers/wormhole/config/testnet/tokens.ts index a577a239..0b51931f 100644 --- a/packages/wallet-adapter-swap/src/utils/tokens/testnet.ts +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/testnet/tokens.ts @@ -1,4 +1,6 @@ -export const testnetChainTokens: Record = { +import { TokenConfig } from "../types"; + +export const testnetTokens: Record = { Avalanche: { symbol: "USDC", icon: "USDC", @@ -26,9 +28,19 @@ export const testnetChainTokens: Record = { icon: "USDC", decimals: 6, }, + Sui: { + symbol: "USDC", + tokenId: { + chain: "Sui", + address: + "0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC", + }, + icon: "USDC", + decimals: 6, + }, }; -export const AptosTestnetUSDCToken = { +export const AptosTestnetUSDCToken: TokenConfig = { symbol: "USDC", decimals: 6, tokenId: { diff --git a/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/types.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/types.ts new file mode 100644 index 00000000..53883ba7 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/config/types.ts @@ -0,0 +1,50 @@ +import { Chain, ChainId } from "@wormhole-foundation/sdk"; + +export enum Context { + ETH = "Ethereum", + TERRA = "Terra", + XPLA = "XPLA", + SOLANA = "Solana", + ALGORAND = "Algorand", + NEAR = "Near", + APTOS = "Aptos", + SUI = "Sui", + OTHER = "OTHER", +} + +export type BaseChainConfig = { + key: Chain; + id: ChainId; + context: Context; + finalityThreshold: number; + disabledAsSource?: boolean; + disabledAsDestination?: boolean; +}; + +export interface ChainConfig extends BaseChainConfig { + sdkName: Chain; + displayName: string; + explorerUrl: string; + explorerName: string; + gasToken: string; + wrappedGasToken?: string; + chainId: number | string; + icon: Chain; + maxBlockSearch: number; + symbol?: string; +} + +export type ChainsConfig = { + [chain in Chain]?: ChainConfig; +}; + +export type TokenConfig = { + symbol: string; + name?: string; + decimals: number; + icon: string; + tokenId: { + chain: Chain; + address: string; + }; +}; diff --git a/packages/cross-chain/cross-chain-core/src/providers/wormhole/index.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/index.ts new file mode 100644 index 00000000..14e7f0c9 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/index.ts @@ -0,0 +1,340 @@ +import { Chain, CrossChainProvider } from "../../CrossChainCore"; + +import { + chainToPlatform, + routes, + TokenId, + Wormhole, + wormhole, + PlatformLoader, + TransferState, + AttestationReceipt, +} from "@wormhole-foundation/sdk"; + +import aptos from "@wormhole-foundation/sdk/aptos"; +import solana from "@wormhole-foundation/sdk/solana"; +import evm from "@wormhole-foundation/sdk/evm"; +import sui from "@wormhole-foundation/sdk/sui"; + +import { CrossChainCore } from "../../CrossChainCore"; +import { logger } from "../../utils/logger"; +import { + Account, + AccountAddressInput, + Ed25519PrivateKey, + Network, + sleep, +} from "@aptos-labs/ts-sdk"; +import { AptosLocalSigner } from "./signers/AptosLocalSigner"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; +import { Signer } from "./signers"; +import { + ChainsConfig, + testnetChains, + testnetTokens, + mainnetChains, + mainnetTokens, + TokenConfig, + AptosTestnetUSDCToken, + AptosMainnetUSDCToken, + ChainConfig, +} from "./config"; + +export type WormholeRouteResponse = routes.Route< + "Mainnet" | "Testnet", + routes.Options, + routes.ValidatedTransferParams, + routes.Receipt +>; + +export type WormholeRequest = routes.RouteTransferRequest< + "Mainnet" | "Testnet" +>; + +export type WormholeQuoteResponse = routes.Quote< + routes.Options, + routes.ValidatedTransferParams, + any +>; + +export interface WormholeQuoteRequest { + amount: string; + sourceChain: Chain; +} + +export interface WormholeInitiateTransferRequest { + sourceChain: Chain; + wallet: AdapterWallet; + destinationAddress: AccountAddressInput; + mainSigner: Account; + sponsorAccount?: Account | Partial>; +} + +export interface WormholeInitiateTransferResponse { + destinationChainTxnId: string; + originChainTxnId: string; +} + +export interface WormholeStartTransferResponse { + originChainTxnId: string; + receipt: routes.Receipt; +} + +export class WormholeProvider + implements + CrossChainProvider< + WormholeQuoteRequest, + WormholeQuoteResponse, + WormholeInitiateTransferRequest, + WormholeInitiateTransferResponse + > +{ + private crossChainCore: CrossChainCore; + + private _wormholeContext: Wormhole<"Mainnet" | "Testnet"> | undefined; + + private wormholeRoute: WormholeRouteResponse | undefined; + private wormholeRequest: WormholeRequest | undefined; + private wormholeQuote: WormholeQuoteResponse | undefined; + + readonly CHAINS: ChainsConfig = testnetChains; + readonly TOKENS: Record = testnetTokens; + + readonly APTOS_TOKEN: TokenConfig = AptosTestnetUSDCToken; + + constructor(core: CrossChainCore) { + this.crossChainCore = core; + if (core._dappConfig?.network === Network.MAINNET) { + this.CHAINS = mainnetChains; + this.TOKENS = mainnetTokens; + this.APTOS_TOKEN = AptosMainnetUSDCToken; + } else { + this.CHAINS = testnetChains; + this.TOKENS = testnetTokens; + this.APTOS_TOKEN = AptosTestnetUSDCToken; + } + } + + get wormholeContext(): Wormhole<"Mainnet" | "Testnet"> | undefined { + return this._wormholeContext; + } + + async setWormholeContext(sourceChain: Chain) { + const dappNetwork = this.crossChainCore._dappConfig?.network; + if (dappNetwork === Network.DEVNET) { + throw new Error("Devnet is not supported on Wormhole"); + } + if (!sourceChain) { + throw new Error("Origin chain not selected"); + } + const isMainnet = dappNetwork === Network.MAINNET; + const platforms: PlatformLoader[] = [aptos, solana, evm]; + const wh = await wormhole(isMainnet ? "Mainnet" : "Testnet", platforms); + this._wormholeContext = wh; + } + + async getWormholeCctpRoute(sourceChain: Chain): Promise<{ + route: WormholeRouteResponse; + request: WormholeRequest; + }> { + if (!this._wormholeContext) { + throw new Error("Wormhole context not initialized"); + } + + const { sourceToken, destToken } = this.getTokenInfo(sourceChain); + + const sourceContext = this._wormholeContext + .getPlatform(chainToPlatform(sourceChain)) + .getChain(sourceChain); + + logger.log("sourceContext", sourceContext); + + const destContext = this._wormholeContext + .getPlatform(chainToPlatform("Aptos")) + .getChain("Aptos"); + + logger.log("destContext", destContext); + + const req = await routes.RouteTransferRequest.create( + this._wormholeContext, + { + source: sourceToken, + destination: destToken, + }, + sourceContext, + destContext + ); + + const resolver = this._wormholeContext.resolver([ + routes.CCTPRoute, // manual CCTP + ]); + + const route = await resolver.findRoutes(req); + const cctpRoute = route[0]; + + return { route: cctpRoute, request: req }; + } + + async getQuote(input: WormholeQuoteRequest): Promise { + const { amount, sourceChain } = input; + + if (!this._wormholeContext) { + await this.setWormholeContext(sourceChain); + } + + const { route, request } = await this.getWormholeCctpRoute(sourceChain); + this.wormholeRoute = route; + this.wormholeRequest = request; + + // TODO what is nativeGas for? + const transferParams = { amount, options: { nativeGas: 0 } }; + + const validated = await route.validate(request, transferParams); + if (!validated.valid) { + logger.log("invalid", validated.valid); + throw validated.error; + } + const quote = await route.quote(request, validated.params); + if (!quote.success) { + logger.log("quote failed", quote.success); + throw quote.error; + } + this.wormholeQuote = quote; + logger.log("quote", quote); + return quote; + } + + async startCCTPTransfer( + input: WormholeInitiateTransferRequest + ): Promise { + const { sourceChain, wallet, destinationAddress } = input; + + if (!this._wormholeContext) { + await this.setWormholeContext(sourceChain); + } + if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) { + throw new Error("Wormhole route, request, or quote not initialized"); + } + + let signerAddress: string; + + const chainContext = this.getChainConfig(sourceChain).context; + + const currentAccount = await wallet.getAccount(); + if (chainContext === "Solana") { + signerAddress = currentAccount.publicKey.toString(); + } else { + signerAddress = currentAccount.address; + } + logger.log("signerAddress", signerAddress); + + const signer = new Signer( + this.getChainConfig(sourceChain), + signerAddress, + {}, + wallet + ); + + let receipt = await this.wormholeRoute.initiate( + this.wormholeRequest, + signer, + this.wormholeQuote, + Wormhole.chainAddress("Aptos", destinationAddress.toString()) + ); + + const originChainTxnId = + "originTxs" in receipt + ? receipt.originTxs[receipt.originTxs.length - 1].txid + : undefined; + + return { originChainTxnId: originChainTxnId || "", receipt }; + } + + async initiateCCTPTransfer( + input: WormholeInitiateTransferRequest + ): Promise { + if (this.crossChainCore._dappConfig?.network === Network.DEVNET) { + throw new Error("Devnet is not supported on Wormhole"); + } + if (!this.wormholeRoute || !this.wormholeRequest || !this.wormholeQuote) { + throw new Error("Wormhole route, request, or quote not initialized"); + } + let { originChainTxnId, receipt } = await this.startCCTPTransfer(input); + // should come from transaction signer worker + const { mainSigner, sponsorAccount } = input; + + logger.log("mainSigner", mainSigner.accountAddress.toString()); + + let retries = 0; + const maxRetries = 5; + const baseDelay = 1000; // Initial delay of 1 second + + while (retries < maxRetries) { + try { + for await (receipt of this.wormholeRoute.track(receipt, 120 * 1000)) { + if (receipt.state >= TransferState.SourceInitiated) { + logger.log("Receipt is on track ", receipt); + + try { + const signer = new AptosLocalSigner( + "Aptos", + {}, + mainSigner, // the account that signs the "claim" transaction + sponsorAccount ? sponsorAccount : undefined // the fee payer account + ); + + if (routes.isManual(this.wormholeRoute)) { + const circleAttestationReceipt = + await this.wormholeRoute.complete(signer, receipt); + logger.log("Claim receipt: ", circleAttestationReceipt); + const destinationChainTxnId = signer.claimedTransactionHashes(); + return { destinationChainTxnId, originChainTxnId }; + } else { + // Should be unreachable + return { destinationChainTxnId: "", originChainTxnId }; + } + } catch (e) { + console.error("Failed to claim", e); + return { destinationChainTxnId: "", originChainTxnId }; + } + } + } + } catch (e) { + console.error( + `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`, + e + ); + const delay = baseDelay * Math.pow(2, retries); // Exponential backoff + await sleep(delay); + retries++; + } + } + // Should be unreachable + return { destinationChainTxnId: "", originChainTxnId }; + } + + getChainConfig(chain: Chain): ChainConfig { + const chainConfig = this.CHAINS[chain as keyof typeof this.CHAINS]; + if (!chainConfig) { + throw new Error(`Chain config not found for chain: ${chain}`); + } + return chainConfig; + } + + getTokenInfo(sourceChain: Chain): { + sourceToken: TokenId; + destToken: TokenId; + } { + const sourceToken: TokenId = Wormhole.tokenId( + this.TOKENS[sourceChain].tokenId.chain as Chain, + this.TOKENS[sourceChain].tokenId.address + ); + + const destToken: TokenId = Wormhole.tokenId( + this.APTOS_TOKEN.tokenId.chain as Chain, + this.APTOS_TOKEN.tokenId.address + ); + + return { sourceToken, destToken }; + } +} diff --git a/packages/wallet-adapter-swap/src/signer/AptosLocalSigner.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/AptosLocalSigner.ts similarity index 70% rename from packages/wallet-adapter-swap/src/signer/AptosLocalSigner.ts rename to packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/AptosLocalSigner.ts index fad504da..8976f20c 100644 --- a/packages/wallet-adapter-swap/src/signer/AptosLocalSigner.ts +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/AptosLocalSigner.ts @@ -1,13 +1,10 @@ -import { AptosWallet } from "@xlabs-libs/wallet-aggregator-aptos"; import { - Account, AccountAuthenticator, AnyRawTransaction, Aptos, AptosConfig, Network as AptosNetwork, - Ed25519Account, - Ed25519PrivateKey, + Account, } from "@aptos-labs/ts-sdk"; import { @@ -21,28 +18,27 @@ import { AptosUnsignedTransaction, AptosChains, } from "@wormhole-foundation/sdk-aptos"; -import { WalletContextState } from "@aptos-labs/wallet-adapter-react"; export class AptosLocalSigner implements SignAndSendSigner { _chain: C; _options: any; - _wallet: Ed25519Account; - _feePayerAccount: Ed25519Account | undefined; - _claimedTransactionHashes: string[]; + _wallet: Account; + _sponsorAccount: Account | Partial> | undefined; + _claimedTransactionHashes: string; constructor( chain: C, options: any, - wallet: Ed25519Account, - feePayerAccount: Ed25519Account | undefined + wallet: Account, + feePayerAccount: Account | Partial> | undefined ) { this._chain = chain; this._options = options; this._wallet = wallet; - this._feePayerAccount = feePayerAccount; - this._claimedTransactionHashes = []; + this._sponsorAccount = feePayerAccount; + this._claimedTransactionHashes = ""; } chain(): C { @@ -52,7 +48,7 @@ export class AptosLocalSigner return this._wallet.accountAddress.toString(); } - claimedTransactionHashes(): string[] { + claimedTransactionHashes(): string { return this._claimedTransactionHashes; } /* other methods... */ @@ -65,32 +61,19 @@ export class AptosLocalSigner const txId = await signAndSendTransaction( tx as AptosUnsignedTransaction, this._wallet, - this._feePayerAccount + this._sponsorAccount ); txHashes.push(txId); - this._claimedTransactionHashes.push(txId); + this._claimedTransactionHashes = txId; } return txHashes; } } -export function fetchOptions() { - const aptosWallets: Record = {}; - const walletCore = AptosWallet.walletCoreFactory( - { network: AptosNetwork.TESTNET }, - true, - [] - ); - walletCore.wallets.forEach((wallet) => { - aptosWallets[wallet.name] = new AptosWallet(wallet, walletCore); - }); - return aptosWallets; -} - export async function signAndSendTransaction( request: UnsignedTransaction, - wallet: Ed25519Account, - feePayerAccount: Ed25519Account | undefined + wallet: Account, + sponsorAccount: Account | Partial> | undefined ) { if (!wallet) { throw new Error("Wallet is undefined"); @@ -116,7 +99,7 @@ export async function signAndSendTransaction( const txnToSign = await aptos.transaction.build.simple({ data: payload, sender: wallet.accountAddress.toString(), - withFeePayer: feePayerAccount ? true : false, + withFeePayer: sponsorAccount ? true : false, }); const senderAuthenticator = await aptos.transaction.sign({ signer: wallet, @@ -132,16 +115,16 @@ export async function signAndSendTransaction( senderAuthenticator, }; - if (feePayerAccount) { + if (sponsorAccount) { const feePayerSignerAuthenticator = aptos.transaction.signAsFeePayer({ - signer: feePayerAccount, + // TODO: handles sponsor account coming from gas station + signer: sponsorAccount as Account, transaction: txnToSign, }); txnToSubmit.feePayerAuthenticator = feePayerSignerAuthenticator; } const response = await aptos.transaction.submit.simple(txnToSubmit); - console.log("response", response.hash); const tx = await aptos.waitForTransaction({ transactionHash: response.hash, diff --git a/packages/wallet-adapter-swap/src/signer/EthereumSigner.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/EthereumSigner.ts similarity index 54% rename from packages/wallet-adapter-swap/src/signer/EthereumSigner.ts rename to packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/EthereumSigner.ts index fe60ecb0..1b0bcb02 100644 --- a/packages/wallet-adapter-swap/src/signer/EthereumSigner.ts +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/EthereumSigner.ts @@ -3,26 +3,25 @@ import { EvmChains, } from "@wormhole-foundation/sdk-evm"; import { Network } from "@wormhole-foundation/sdk"; -import { Eip6963Wallet } from "@xlabs-libs/wallet-aggregator-evm"; import { getBigInt } from "ethers"; - +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; export async function signAndSendTransaction( request: EvmUnsignedTransaction, - wallet: Eip6963Wallet, + wallet: AdapterWallet, chainName: string, - options: any // TODO ?!?!!?!? + options: any ): Promise { + if (!wallet || !wallet.sendTransaction) { + throw new Error("wallet.sendTransaction is undefined"); + } // Ensure the signer is connected to the correct chain - console.log("wallet", wallet); - const provider = await wallet.getNetworkInfo(); - console.log("provider", provider); - if (!provider) throw new Error("No signer found for chain" + chainName); + const actualChainId = await wallet.getConnectedNetwork(); + + if (!actualChainId) throw new Error("No signer found for chain" + chainName); const expectedChainId = request.transaction.chainId ? getBigInt(request.transaction.chainId) : undefined; - const actualChainId = provider?.chainId; - console.log("actualChainId", actualChainId); - console.log("expectedChainId", expectedChainId); + if ( !actualChainId || !expectedChainId || @@ -33,9 +32,7 @@ export async function signAndSendTransaction( ); } - const tx = await wallet.sendTransaction(request.transaction); - //const result = await tx.wait(); - console.log("tx.hash", tx.id); + const txHash = await wallet.sendTransaction(request.transaction); - return tx.id; + return txHash; } diff --git a/packages/wallet-adapter-swap/src/signer/SolanaSigner.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/SolanaSigner.ts similarity index 78% rename from packages/wallet-adapter-swap/src/signer/SolanaSigner.ts rename to packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/SolanaSigner.ts index 8eebb55c..f5cd550c 100644 --- a/packages/wallet-adapter-swap/src/signer/SolanaSigner.ts +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/SolanaSigner.ts @@ -1,8 +1,6 @@ // This function signs and sends the transaction while constantly checking for confirmation // and resending the transaction if it hasn't been confirmed after the specified interval -import { SolanaWallet } from "@xlabs-libs/wallet-aggregator-solana"; - import { AddressLookupTableAccount, Commitment, @@ -26,24 +24,31 @@ import { import { Connection } from "@solana/web3.js"; import { Network } from "@wormhole-foundation/sdk"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; export type SolanaRpcProvider = "triton" | "helius" | "ankr" | "unknown"; // See https://docs.triton.one/chains/solana/sending-txs for more information export async function signAndSendTransaction( request: SolanaUnsignedTransaction, - wallet: SolanaWallet | undefined, + wallet: AdapterWallet | undefined, options?: ConfirmOptions ) { if (!wallet) throw new Error("Wallet not found"); - // if (!config.rpcs.Solana) throw new Error('Solana RPC not found'); const commitment = options?.commitment ?? "finalized"; - console.log("SolanaSigner", wallet); - const connection = new Connection((wallet as any).connection._rpcEndpoint); + // Solana rpc should come from dapp config + const connection = new Connection("https://api.devnet.solana.com"); const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(commitment); + // Circle Manual CCTP on Wormhole is always of a Trnasaction type + // https://github.com/wormhole-foundation/wormhole-sdk-ts/blob/f7d992e04f844edcc4128659f12f75ade3553717/platforms/solana/protocols/cctp/src/circleBridge.ts#L173 + const transaction = request.transaction.transaction as Transaction; + + /** + * TODO: Priority Fee is supported, but needs to come from dapp config + */ const unsignedTx = await setPriorityFeeInstructions( connection, blockhash, @@ -57,8 +62,13 @@ export async function signAndSendTransaction( let confirmedTx: RpcResponseAndContext | null = null; let txSendAttempts = 1; let signature = ""; - // TODO: VersionedTransaction is supported, but the interface needs to be updated - const tx = await wallet.signTransaction(unsignedTx as Transaction); + + // transaction.recentBlockhash = blockhash; + // if (request.transaction.signers) { + // transaction.partialSign(...request.transaction.signers); + // } + + const tx = await wallet.signTransaction(unsignedTx); const serializedTx = tx.serialize(); const sendOptions = { skipPreflight: true, @@ -131,50 +141,23 @@ export async function setPriorityFeeInstructions( lastValidBlockHeight: number, request: SolanaUnsignedTransaction ): Promise { - const unsignedTx = request.transaction.transaction; + const unsignedTx = request.transaction.transaction as Transaction; const computeBudgetIxFilter = (ix: TransactionInstruction) => ix.programId.toString() !== "ComputeBudget111111111111111111111111111111"; - if (isVersionedTransaction(unsignedTx)) { - const luts = ( - await Promise.all( - unsignedTx.message.addressTableLookups.map((acc) => - connection.getAddressLookupTable(acc.accountKey) - ) - ) - ) - .map((lut) => lut.value) - .filter((lut) => lut !== null) as AddressLookupTableAccount[]; - - const message = TransactionMessage.decompile(unsignedTx.message, { - addressLookupTableAccounts: luts, - }); - message.recentBlockhash = blockhash; - unsignedTx.message.recentBlockhash = blockhash; - - // Remove existing compute budget instructions if they were added by the SDK - message.instructions = message.instructions.filter(computeBudgetIxFilter); - message.instructions.push( - ...(await createPriorityFeeInstructions(connection, unsignedTx)) - ); - - unsignedTx.message = message.compileToV0Message(luts); - unsignedTx.sign(request.transaction.signers ?? []); - } else { - unsignedTx.recentBlockhash = blockhash; - unsignedTx.lastValidBlockHeight = lastValidBlockHeight; + unsignedTx.recentBlockhash = blockhash; + unsignedTx.lastValidBlockHeight = lastValidBlockHeight; - // Remove existing compute budget instructions if they were added by the SDK - unsignedTx.instructions = unsignedTx.instructions.filter( - computeBudgetIxFilter - ); - unsignedTx.add( - ...(await createPriorityFeeInstructions(connection, unsignedTx)) - ); - if (request.transaction.signers) { - unsignedTx.partialSign(...request.transaction.signers); - } + // Remove existing compute budget instructions if they were added by the SDK + unsignedTx.instructions = unsignedTx.instructions.filter( + computeBudgetIxFilter + ); + unsignedTx.add( + ...(await createPriorityFeeInstructions(connection, unsignedTx)) + ); + if (request.transaction.signers) { + unsignedTx.partialSign(...request.transaction.signers); } return unsignedTx; @@ -190,22 +173,9 @@ async function createPriorityFeeInstructions( let simulationAttempts = 0; simulationLoop: while (true) { - if ( - isVersionedTransaction(transaction) && - !transaction.message.recentBlockhash - ) { - // This is required for versioned transactions - // SimulateTransaction throws if recentBlockhash is an empty string - const { blockhash } = await connection.getLatestBlockhash(commitment); - transaction.message.recentBlockhash = blockhash; - } - - const response = await (isVersionedTransaction(transaction) - ? connection.simulateTransaction(transaction, { - commitment, - replaceRecentBlockhash: true, - }) - : connection.simulateTransaction(transaction)); + const response = await connection.simulateTransaction( + transaction as Transaction + ); if (response.value.err) { if (checkKnownSimulationError(response.value)) { @@ -418,13 +388,19 @@ export const isEmptyObject = (value: object | null | undefined) => { }; function determineRpcProvider(endpoint: string): SolanaRpcProvider { - if (endpoint.includes("rpcpool.com")) { - return "triton"; - } else if (endpoint.includes("helius-rpc.com")) { - return "helius"; - } else if (endpoint.includes("rpc.ankr.com")) { - return "ankr"; - } else { + try { + const url = new URL(endpoint); + const hostname = url.hostname; + if (hostname === "rpcpool.com") { + return "triton"; + } else if (hostname === "helius-rpc.com") { + return "helius"; + } else if (hostname === "rpc.ankr.com") { + return "ankr"; + } else { + return "unknown"; + } + } catch (e) { return "unknown"; } } diff --git a/packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/SuiSigner.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/SuiSigner.ts new file mode 100644 index 00000000..f6b3347c --- /dev/null +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/SuiSigner.ts @@ -0,0 +1,22 @@ +import { + SuiChains, + SuiUnsignedTransaction, +} from "@wormhole-foundation/sdk-sui"; +import { Network } from "@wormhole-foundation/sdk"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; + +export async function signAndSendTransaction( + request: SuiUnsignedTransaction, + wallet: AdapterWallet +): Promise { + if (!wallet || !wallet.sendTransaction) { + throw new Error("wallet.sendTransaction is undefined"); + } + + const response = await wallet.sendTransaction({ + /* @ts-ignore */ + transactionBlock: request.transaction as TransactionBlock, + }); + + return response?.id; +} diff --git a/packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/index.ts b/packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/index.ts new file mode 100644 index 00000000..304dec55 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/src/providers/wormhole/signers/index.ts @@ -0,0 +1,101 @@ +import { + UnsignedTransaction, + Network, + Chain, + TxHash, + SignAndSendSigner, +} from "@wormhole-foundation/sdk"; +import { SolanaUnsignedTransaction } from "@wormhole-foundation/sdk-solana"; +import { + SuiChains, + SuiUnsignedTransaction, +} from "@wormhole-foundation/sdk-sui"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; +import { + EvmUnsignedTransaction, + EvmChains, +} from "@wormhole-foundation/sdk-evm"; + +import * as solanaSigner from "./SolanaSigner"; +import * as ethereumSigner from "./EthereumSigner"; +import * as suiSigner from "./SuiSigner"; + +import { ChainConfig } from "../config"; +export class Signer + implements SignAndSendSigner +{ + _chain: ChainConfig; + _address: string; + _options: any; + _wallet: AdapterWallet; + + constructor( + chain: ChainConfig, + address: string, + options: any, + wallet: AdapterWallet + ) { + this._chain = chain; + this._address = address; + this._options = options; + this._wallet = wallet; + } + + chain(): C { + return this._chain.displayName as C; + } + address(): string { + return this._address; + } + + async signAndSend(txs: UnsignedTransaction[]): Promise { + const txHashes: TxHash[] = []; + + for (const tx of txs) { + const txId = await signAndSendTransaction( + this._chain, + tx, + this._wallet, + this._options + ); + txHashes.push(txId); + } + return txHashes; + } +} + +export const signAndSendTransaction = async ( + chain: ChainConfig, + request: UnsignedTransaction, + wallet: AdapterWallet, + options: any = {} +): Promise => { + if (!wallet) { + throw new Error("wallet is undefined"); + } + + if (chain.context === "Solana") { + const signature = await solanaSigner.signAndSendTransaction( + request as SolanaUnsignedTransaction, + wallet, + options + ); + return signature; + } else if (chain.context === "Ethereum") { + const tx = await ethereumSigner.signAndSendTransaction( + request as EvmUnsignedTransaction, + wallet, + chain.displayName, + options + ); + return tx; + } else if (chain.context === "Sui") { + const tx = await suiSigner.signAndSendTransaction( + request as SuiUnsignedTransaction, + wallet + ); + return tx; + } else { + throw new Error(`Unsupported chain: ${chain}`); + } +}; diff --git a/packages/wallet-adapter-swap/src/utils/logger.ts b/packages/cross-chain/cross-chain-core/src/utils/logger.ts similarity index 100% rename from packages/wallet-adapter-swap/src/utils/logger.ts rename to packages/cross-chain/cross-chain-core/src/utils/logger.ts diff --git a/packages/cross-chain/cross-chain-core/src/wallets/sui.ts b/packages/cross-chain/cross-chain-core/src/wallets/sui.ts new file mode 100644 index 00000000..5fc98cbb --- /dev/null +++ b/packages/cross-chain/cross-chain-core/src/wallets/sui.ts @@ -0,0 +1,112 @@ +// import { +// AttestationReceipt, +// Chain, +// Wormhole, +// routes, +// } from "@wormhole-foundation/sdk"; +// import { getFullnodeUrl, SuiClient } from "@mysten/sui/client"; + +// import { UsdcBalance, WormholeRequest } from "../CrossChainCore"; + +// import { WormholeRouteResponse } from "../CrossChainCore"; +// import { WormholeQuote } from "../CrossChainCore"; +// import { Signer } from "../providers/wormhole/signers"; + +// import { CrossChainWallet } from "./core"; +// import { +// isWalletWithRequiredFeatureSet, +// MinimallyRequiredFeatures, +// Wallet as StandardWallet, +// WalletWithFeatures, +// getWallets, +// } from "@mysten/wallet-standard"; + +// import { SuiWallet } from "@xlabs-libs/wallet-aggregator-sui"; +// import { InputTransactionData } from "./solana"; + +// const supportsSui = (wallet: StandardWallet): boolean => { +// const { features } = wallet; + +// return Object.entries(features).some(([featureName]) => +// featureName.startsWith("sui:") +// ); +// }; + +// export const getSuiStandardWallets = (): AptosSuiWallet[] => { +// const walletsApi = getWallets(); +// const wallets = walletsApi.get(); + +// const suiWallets = wallets.filter(supportsSui); +// return suiWallets.map((wallet) => new AptosSuiWallet(wallet)); + +// // return getWallets() +// // .get() +// // .map((wallet) => { +// // if (isWalletWithRequiredFeatureSet(wallet)) { +// // return new AptosSuiWallet(wallet); +// // } +// // }); +// }; + +// export class AptosSuiWallet extends SuiWallet implements CrossChainWallet { +// constructor(wallet: StandardWallet) { +// super(wallet); +// } + +// async CCTPTransfer( +// chain: Chain, +// route: WormholeRouteResponse, +// request: WormholeRequest, +// quote: WormholeQuote +// ): Promise<{ +// originChainTxnId: string; +// receipt: routes.Receipt; +// }> { +// // should be derived from hash(domain_name + source_chain_address + domain_separator) +// const destinationAccountAddress = +// "0x38383091fdd9325e0b8ada990c474da8c7f5aa51580b65eb477885b6ce0a36b7"; + +// const signer = new Signer( +// chain, // for now, it is always "Sui" +// this.getAddress()!, +// {}, +// this +// ); + +// let receipt = await route.initiate( +// request, +// signer, +// quote, +// Wormhole.chainAddress("Aptos", destinationAccountAddress) +// ); + +// const originChainTxnId = +// "originTxs" in receipt +// ? receipt.originTxs[receipt.originTxs.length - 1].txid +// : undefined; + +// return { originChainTxnId: originChainTxnId || "", receipt }; +// } + +// async signAndSubmitTransaction( +// transaction: InputTransactionData +// ): Promise { +// console.log("solana not yet implemented, waiting for dAA", transaction); +// return ""; +// } + +// async getUsdcBalance(): Promise { +// const rpc = new SuiClient({ url: getFullnodeUrl("testnet") }); +// const { totalBalance } = await rpc.getBalance({ +// owner: this.getAddress()!, +// coinType: +// "0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC", +// }); +// const humanReadable = parseInt(totalBalance, 10) / Math.pow(10, 6); +// return { +// amount: totalBalance.toString(), +// decimal: 6, +// display: humanReadable.toFixed(1), +// }; +// } +// } diff --git a/packages/cross-chain/cross-chain-core/tsconfig.json b/packages/cross-chain/cross-chain-core/tsconfig.json new file mode 100644 index 00000000..76b194e9 --- /dev/null +++ b/packages/cross-chain/cross-chain-core/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "@aptos-labs/wallet-adapter-tsconfig/base.json", + "include": ["."], + "exclude": ["dist", "build", "node_modules"], + "compilerOptions": { + "target": "es5", + "lib": ["es2020", "dom"], + "rootDir": "src", + "outDir": "dist", + "skipLibCheck": true + } +} diff --git a/packages/cross-chain/cross-chain-react/.eslintrc.js b/packages/cross-chain/cross-chain-react/.eslintrc.js new file mode 100644 index 00000000..9ca9f6a5 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ["@aptos-labs/eslint-config-adapter"], +}; diff --git a/packages/wallet-adapter-swap/.gitignore b/packages/cross-chain/cross-chain-react/.gitignore similarity index 100% rename from packages/wallet-adapter-swap/.gitignore rename to packages/cross-chain/cross-chain-react/.gitignore diff --git a/packages/wallet-adapter-swap/.npmignore b/packages/cross-chain/cross-chain-react/.npmignore similarity index 100% rename from packages/wallet-adapter-swap/.npmignore rename to packages/cross-chain/cross-chain-react/.npmignore diff --git a/packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts b/packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts deleted file mode 100644 index af69c543..00000000 --- a/packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { FC, ReactNode } from "react"; -import { CrossChainDappConfig, WormholeQuoteResponse, WormholeInitiateTransferResponse } from "@aptos-labs/cross-chain-core"; -import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; -export interface AptosCrossChainWalletProviderProps { - children: ReactNode; - dappConfig: CrossChainDappConfig; - disableTelemetry?: boolean; - onError?: (error: any) => void; -} -export type { AdapterWallet }; -export type QuoteResponse = WormholeQuoteResponse; -export type InitiateTransferResponse = WormholeInitiateTransferResponse; -export declare const AptosCrossChainWalletProvider: FC; -//# sourceMappingURL=WalletProvider.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts.map b/packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts.map deleted file mode 100644 index efc005d9..00000000 --- a/packages/cross-chain/cross-chain-react/dist/WalletProvider.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../src/WalletProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE3D,OAAO,EAGL,oBAAoB,EAEpB,qBAAqB,EACrB,gCAAgC,EAGjC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAI3E,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,oBAAoB,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC;AAED,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAElD,MAAM,MAAM,wBAAwB,GAAG,gCAAgC,CAAC;AAgBxE,eAAO,MAAM,6BAA6B,EAAE,EAAE,CAC5C,kCAAkC,CAyJnC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts b/packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts deleted file mode 100644 index 23cb5e02..00000000 --- a/packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts +++ /dev/null @@ -1 +0,0 @@ -//# sourceMappingURL=EthereumWalletItem.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts.map b/packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts.map deleted file mode 100644 index c5436ae4..00000000 --- a/packages/cross-chain/cross-chain-react/dist/components/EthereumWalletItem.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"EthereumWalletItem.d.ts","sourceRoot":"","sources":["../../src/components/EthereumWalletItem.tsx"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts b/packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts deleted file mode 100644 index 6ba8ade7..00000000 --- a/packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts +++ /dev/null @@ -1 +0,0 @@ -//# sourceMappingURL=SolanaWalletItem.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts.map b/packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts.map deleted file mode 100644 index fc7faca5..00000000 --- a/packages/cross-chain/cross-chain-react/dist/components/SolanaWalletItem.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SolanaWalletItem.d.ts","sourceRoot":"","sources":["../../src/components/SolanaWalletItem.tsx"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/index.d.ts.map b/packages/cross-chain/cross-chain-react/dist/index.d.ts.map deleted file mode 100644 index 43270eea..00000000 --- a/packages/cross-chain/cross-chain-react/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/index.js b/packages/cross-chain/cross-chain-react/dist/index.js deleted file mode 100644 index 38e668f1..00000000 --- a/packages/cross-chain/cross-chain-react/dist/index.js +++ /dev/null @@ -1,192 +0,0 @@ -"use strict"; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.tsx -var src_exports = {}; -__export(src_exports, { - AptosCrossChainWalletProvider: () => AptosCrossChainWalletProvider, - WalletContext: () => WalletContext, - useCrossChainWallet: () => useCrossChainWallet -}); -module.exports = __toCommonJS(src_exports); -__reExport(src_exports, require("@aptos-labs/cross-chain-core"), module.exports); - -// src/WalletProvider.tsx -var import_react2 = require("react"); - -// src/useWallet.tsx -var import_react = require("react"); -var DEFAULT_CONTEXT = { - connected: false -}; -var WalletContext = (0, import_react.createContext)( - DEFAULT_CONTEXT -); -function useCrossChainWallet() { - const context = (0, import_react.useContext)(WalletContext); - if (!context) { - throw new Error("useWallet must be used within a WalletContextState"); - } - return context; -} - -// src/WalletProvider.tsx -var import_cross_chain_core = require("@aptos-labs/cross-chain-core"); -var import_wallet_adapter_aggregator_solana = require("@aptos-labs/wallet-adapter-aggregator-solana"); -var import_wallet_adapter_aggregator_eip6963 = require("@aptos-labs/wallet-adapter-aggregator-eip6963"); -var import_wallet_adapter_aggregator_aptos = require("@aptos-labs/wallet-adapter-aggregator-aptos"); -var import_jsx_runtime = require("react/jsx-runtime"); -var initialState = { - connected: false, - account: null, - wallet: null, - sourceChain: null, - setSourceChain: () => { - } -}; -var AptosCrossChainWalletProvider = ({ children, dappConfig, disableTelemetry, onError }) => { - const [{ connected, wallet, account, sourceChain }, setState] = (0, import_react2.useState)(initialState); - const [provider, setProvider] = (0, import_react2.useState)(); - const setSourceChain = (chain) => { - setState((prev) => ({ ...prev, sourceChain: chain })); - }; - const [crossChainCore, setCrossChainCore] = (0, import_react2.useState)(); - (0, import_react2.useEffect)(() => { - const crossChainCore2 = new import_cross_chain_core.CrossChainCore({ dappConfig }); - setCrossChainCore(crossChainCore2); - }, []); - const getSolanaWallets = () => { - return (0, import_wallet_adapter_aggregator_solana.getSolanaStandardWallets)(); - }; - const getEthereumWallets = () => { - return (0, import_wallet_adapter_aggregator_eip6963.fetchEthereumWallets)(); - }; - const getAptosWallets = () => { - return (0, import_wallet_adapter_aggregator_aptos.getAptosWallets)(); - }; - (0, import_react2.useEffect)(() => { - if (!wallet) - return; - const handleAccountChange = (newAccount) => { - setState((prev) => ({ ...prev, account: newAccount })); - }; - const handleNetworkChange = (newNetwork) => { - console.log("handleNetworkChange not implemented"); - }; - wallet.on("accountChange", handleAccountChange); - wallet.on("networkChange", handleNetworkChange); - return () => { - wallet.off("accountChange", handleAccountChange); - wallet.off("networkChange", handleNetworkChange); - }; - }, [wallet]); - const getQuote = async (amount, sourceChain2) => { - try { - const provider2 = crossChainCore == null ? void 0 : crossChainCore.getProvider("Wormhole"); - if (!provider2) { - throw new Error("Provider not found"); - } - setProvider(provider2); - const quote = await (provider2 == null ? void 0 : provider2.getQuote({ - amount, - sourceChain: sourceChain2 - })); - return quote; - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const initiateTransfer = async (sourceChain2, mainSigner, sponsorAccount) => { - try { - if (!provider) { - throw new Error("Provider is not set"); - } - const { originChainTxnId, destinationChainTxnId } = await provider.initiateCCTPTransfer({ - sourceChain: sourceChain2, - wallet, - destinationAddress: "0x38383091fdd9325e0b8ada990c474da8c7f5aa51580b65eb477885b6ce0a36b7", - mainSigner, - sponsorAccount - }); - return { originChainTxnId, destinationChainTxnId }; - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const connect = async (wallet2) => { - try { - const response = await wallet2.connect(); - console.log("WalletProvider connect response", response); - setState((state) => ({ - ...state, - connected: true, - wallet: wallet2, - account: response - })); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const disconnect = async () => { - try { - await (wallet == null ? void 0 : wallet.disconnect()); - setState((state) => ({ - ...state, - connected: false, - wallet: null - })); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WalletContext.Provider, { - value: { - connected, - account, - isLoading: false, - getSolanaWallets, - getEthereumWallets, - getAptosWallets, - connect, - disconnect, - wallet, - getQuote, - initiateTransfer, - sourceChain, - setSourceChain - }, - children - }); -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - AptosCrossChainWalletProvider, - WalletContext, - useCrossChainWallet -}); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/index.js.map b/packages/cross-chain/cross-chain-react/dist/index.js.map deleted file mode 100644 index 8eb3d894..00000000 --- a/packages/cross-chain/cross-chain-react/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.tsx","../src/WalletProvider.tsx","../src/useWallet.tsx"],"sourcesContent":["export * from \"@aptos-labs/cross-chain-core\";\nexport * from \"./WalletProvider\";\nexport * from \"./useWallet\";\n","import { FC, ReactNode, useEffect, useState } from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport {\n Chain,\n CrossChainCore,\n CrossChainDappConfig,\n Network,\n WormholeQuoteResponse,\n WormholeInitiateTransferResponse,\n CrossChainProvider,\n AptosAccount,\n} from \"@aptos-labs/cross-chain-core\";\nimport { AccountInfo, NetworkInfo } from \"@aptos-labs/wallet-standard\";\nimport { getSolanaStandardWallets } from \"@aptos-labs/wallet-adapter-aggregator-solana\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { fetchEthereumWallets as fetchEthereumWalletsAggregator } from \"@aptos-labs/wallet-adapter-aggregator-eip6963\";\nimport { getAptosWallets as getAptosStandardWallets } from \"@aptos-labs/wallet-adapter-aggregator-aptos\";\n\nexport interface AptosCrossChainWalletProviderProps {\n children: ReactNode;\n dappConfig: CrossChainDappConfig;\n disableTelemetry?: boolean;\n onError?: (error: any) => void;\n}\n\nexport type { AdapterWallet };\n\nexport type QuoteResponse = WormholeQuoteResponse;\n\nexport type InitiateTransferResponse = WormholeInitiateTransferResponse;\n\nconst initialState: {\n connected: boolean;\n account: AccountInfo | null;\n wallet: AdapterWallet | null;\n sourceChain: Chain | null;\n setSourceChain: (chain: Chain) => void;\n} = {\n connected: false,\n account: null,\n wallet: null,\n sourceChain: null,\n setSourceChain: () => {},\n};\n\nexport const AptosCrossChainWalletProvider: FC<\n AptosCrossChainWalletProviderProps\n> = ({ children, dappConfig, disableTelemetry, onError }) => {\n const [{ connected, wallet, account, sourceChain }, setState] =\n useState(initialState);\n\n const [provider, setProvider] = useState();\n\n const setSourceChain = (chain: Chain) => {\n setState((prev) => ({ ...prev, sourceChain: chain }));\n };\n\n const [crossChainCore, setCrossChainCore] = useState();\n\n useEffect(() => {\n const crossChainCore = new CrossChainCore({ dappConfig });\n setCrossChainCore(crossChainCore);\n }, []);\n\n // TODO fix me, on first load I get an empty array\n const getSolanaWallets = (): ReadonlyArray => {\n return getSolanaStandardWallets();\n };\n\n const getEthereumWallets = (): ReadonlyArray => {\n return fetchEthereumWalletsAggregator();\n };\n\n const getAptosWallets = (): ReadonlyArray => {\n //console.log(\"getAptosStandardWallets\", getAptosStandardWallets());\n return getAptosStandardWallets();\n };\n\n useEffect(() => {\n if (!wallet) return;\n\n const handleAccountChange = (newAccount: AccountInfo | null) => {\n setState((prev) => ({ ...prev, account: newAccount }));\n };\n\n const handleNetworkChange = (newNetwork: NetworkInfo | null) => {\n //setState((prev) => ({ ...prev, sourceChain: newNetwork.name }));\n console.log(\"handleNetworkChange not implemented\");\n };\n\n // Register the listener\n wallet.on(\"accountChange\", handleAccountChange);\n wallet.on(\"networkChange\", handleNetworkChange);\n return () => {\n wallet.off(\"accountChange\", handleAccountChange);\n wallet.off(\"networkChange\", handleNetworkChange);\n };\n }, [wallet]);\n\n const getQuote = async (\n amount: string,\n sourceChain: Chain\n ): Promise => {\n try {\n const provider = crossChainCore?.getProvider(\"Wormhole\");\n\n if (!provider) {\n throw new Error(\"Provider not found\");\n }\n setProvider(provider);\n\n const quote = await provider?.getQuote({\n amount,\n sourceChain,\n });\n\n return quote;\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const initiateTransfer = async (\n sourceChain: Chain,\n mainSigner: AptosAccount,\n sponsorAccount?: AptosAccount | Partial>\n ): Promise<{ originChainTxnId: string; destinationChainTxnId: string }> => {\n try {\n if (!provider) {\n throw new Error(\"Provider is not set\");\n }\n const { originChainTxnId, destinationChainTxnId } =\n await provider.initiateCCTPTransfer({\n sourceChain,\n wallet,\n destinationAddress:\n \"0x38383091fdd9325e0b8ada990c474da8c7f5aa51580b65eb477885b6ce0a36b7\",\n mainSigner,\n sponsorAccount,\n });\n\n return { originChainTxnId, destinationChainTxnId };\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const connect = async (wallet: AdapterWallet): Promise => {\n try {\n const response = await wallet.connect();\n console.log(\"WalletProvider connect response\", response);\n setState((state) => ({\n ...state,\n connected: true,\n wallet: wallet,\n account: response,\n }));\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const disconnect = async () => {\n try {\n await wallet?.disconnect();\n setState((state) => ({\n ...state,\n connected: false,\n wallet: null,\n }));\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n return (\n \n {children}\n \n );\n};\n","import {\n Chain,\n Network,\n UsdcBalance,\n WormholeQuoteResponse,\n AptosAccount,\n} from \"@aptos-labs/cross-chain-core\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { AccountInfo } from \"@aptos-labs/wallet-standard\";\nimport { createContext, useContext } from \"react\";\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n wallet: AdapterWallet | null;\n account: AccountInfo | null;\n getSolanaWallets: () => ReadonlyArray;\n getEthereumWallets: () => ReadonlyArray;\n getAptosWallets: () => ReadonlyArray;\n connect: (wallet: AdapterWallet) => Promise;\n disconnect: () => Promise;\n getQuote: (\n amount: string,\n sourceChain: Chain\n ) => Promise;\n initiateTransfer: (\n sourceChain: Chain,\n mainSigner: AptosAccount,\n sponsorAccount?: AptosAccount | Partial>\n ) => Promise<{ originChainTxnId: string; destinationChainTxnId: string }>;\n sourceChain: Chain | null;\n setSourceChain: (chain: Chain) => void;\n}\n\nexport const WalletContext = createContext(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useCrossChainWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n"],"mappings":"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","names":["import_react","crossChainCore","fetchEthereumWalletsAggregator","getAptosStandardWallets","sourceChain","provider","wallet"]} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/index.mjs b/packages/cross-chain/cross-chain-react/dist/index.mjs deleted file mode 100644 index 1b8e4690..00000000 --- a/packages/cross-chain/cross-chain-react/dist/index.mjs +++ /dev/null @@ -1,166 +0,0 @@ -// src/index.tsx -export * from "@aptos-labs/cross-chain-core"; - -// src/WalletProvider.tsx -import { useEffect, useState } from "react"; - -// src/useWallet.tsx -import { createContext, useContext } from "react"; -var DEFAULT_CONTEXT = { - connected: false -}; -var WalletContext = createContext( - DEFAULT_CONTEXT -); -function useCrossChainWallet() { - const context = useContext(WalletContext); - if (!context) { - throw new Error("useWallet must be used within a WalletContextState"); - } - return context; -} - -// src/WalletProvider.tsx -import { - CrossChainCore -} from "@aptos-labs/cross-chain-core"; -import { getSolanaStandardWallets } from "@aptos-labs/wallet-adapter-aggregator-solana"; -import { fetchEthereumWallets as fetchEthereumWalletsAggregator } from "@aptos-labs/wallet-adapter-aggregator-eip6963"; -import { getAptosWallets as getAptosStandardWallets } from "@aptos-labs/wallet-adapter-aggregator-aptos"; -import { jsx } from "react/jsx-runtime"; -var initialState = { - connected: false, - account: null, - wallet: null, - sourceChain: null, - setSourceChain: () => { - } -}; -var AptosCrossChainWalletProvider = ({ children, dappConfig, disableTelemetry, onError }) => { - const [{ connected, wallet, account, sourceChain }, setState] = useState(initialState); - const [provider, setProvider] = useState(); - const setSourceChain = (chain) => { - setState((prev) => ({ ...prev, sourceChain: chain })); - }; - const [crossChainCore, setCrossChainCore] = useState(); - useEffect(() => { - const crossChainCore2 = new CrossChainCore({ dappConfig }); - setCrossChainCore(crossChainCore2); - }, []); - const getSolanaWallets = () => { - return getSolanaStandardWallets(); - }; - const getEthereumWallets = () => { - return fetchEthereumWalletsAggregator(); - }; - const getAptosWallets = () => { - return getAptosStandardWallets(); - }; - useEffect(() => { - if (!wallet) - return; - const handleAccountChange = (newAccount) => { - setState((prev) => ({ ...prev, account: newAccount })); - }; - const handleNetworkChange = (newNetwork) => { - console.log("handleNetworkChange not implemented"); - }; - wallet.on("accountChange", handleAccountChange); - wallet.on("networkChange", handleNetworkChange); - return () => { - wallet.off("accountChange", handleAccountChange); - wallet.off("networkChange", handleNetworkChange); - }; - }, [wallet]); - const getQuote = async (amount, sourceChain2) => { - try { - const provider2 = crossChainCore == null ? void 0 : crossChainCore.getProvider("Wormhole"); - if (!provider2) { - throw new Error("Provider not found"); - } - setProvider(provider2); - const quote = await (provider2 == null ? void 0 : provider2.getQuote({ - amount, - sourceChain: sourceChain2 - })); - return quote; - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const initiateTransfer = async (sourceChain2, mainSigner, sponsorAccount) => { - try { - if (!provider) { - throw new Error("Provider is not set"); - } - const { originChainTxnId, destinationChainTxnId } = await provider.initiateCCTPTransfer({ - sourceChain: sourceChain2, - wallet, - destinationAddress: "0x38383091fdd9325e0b8ada990c474da8c7f5aa51580b65eb477885b6ce0a36b7", - mainSigner, - sponsorAccount - }); - return { originChainTxnId, destinationChainTxnId }; - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const connect = async (wallet2) => { - try { - const response = await wallet2.connect(); - console.log("WalletProvider connect response", response); - setState((state) => ({ - ...state, - connected: true, - wallet: wallet2, - account: response - })); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - const disconnect = async () => { - try { - await (wallet == null ? void 0 : wallet.disconnect()); - setState((state) => ({ - ...state, - connected: false, - wallet: null - })); - } catch (error) { - if (onError) - onError(error); - return Promise.reject(error); - } - }; - return /* @__PURE__ */ jsx(WalletContext.Provider, { - value: { - connected, - account, - isLoading: false, - getSolanaWallets, - getEthereumWallets, - getAptosWallets, - connect, - disconnect, - wallet, - getQuote, - initiateTransfer, - sourceChain, - setSourceChain - }, - children - }); -}; -export { - AptosCrossChainWalletProvider, - WalletContext, - useCrossChainWallet -}; -//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/index.mjs.map b/packages/cross-chain/cross-chain-react/dist/index.mjs.map deleted file mode 100644 index 26b041c8..00000000 --- a/packages/cross-chain/cross-chain-react/dist/index.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.tsx","../src/WalletProvider.tsx","../src/useWallet.tsx"],"sourcesContent":["export * from \"@aptos-labs/cross-chain-core\";\nexport * from \"./WalletProvider\";\nexport * from \"./useWallet\";\n","import { FC, ReactNode, useEffect, useState } from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport {\n Chain,\n CrossChainCore,\n CrossChainDappConfig,\n Network,\n WormholeQuoteResponse,\n WormholeInitiateTransferResponse,\n CrossChainProvider,\n AptosAccount,\n} from \"@aptos-labs/cross-chain-core\";\nimport { AccountInfo, NetworkInfo } from \"@aptos-labs/wallet-standard\";\nimport { getSolanaStandardWallets } from \"@aptos-labs/wallet-adapter-aggregator-solana\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { fetchEthereumWallets as fetchEthereumWalletsAggregator } from \"@aptos-labs/wallet-adapter-aggregator-eip6963\";\nimport { getAptosWallets as getAptosStandardWallets } from \"@aptos-labs/wallet-adapter-aggregator-aptos\";\n\nexport interface AptosCrossChainWalletProviderProps {\n children: ReactNode;\n dappConfig: CrossChainDappConfig;\n disableTelemetry?: boolean;\n onError?: (error: any) => void;\n}\n\nexport type { AdapterWallet };\n\nexport type QuoteResponse = WormholeQuoteResponse;\n\nexport type InitiateTransferResponse = WormholeInitiateTransferResponse;\n\nconst initialState: {\n connected: boolean;\n account: AccountInfo | null;\n wallet: AdapterWallet | null;\n sourceChain: Chain | null;\n setSourceChain: (chain: Chain) => void;\n} = {\n connected: false,\n account: null,\n wallet: null,\n sourceChain: null,\n setSourceChain: () => {},\n};\n\nexport const AptosCrossChainWalletProvider: FC<\n AptosCrossChainWalletProviderProps\n> = ({ children, dappConfig, disableTelemetry, onError }) => {\n const [{ connected, wallet, account, sourceChain }, setState] =\n useState(initialState);\n\n const [provider, setProvider] = useState();\n\n const setSourceChain = (chain: Chain) => {\n setState((prev) => ({ ...prev, sourceChain: chain }));\n };\n\n const [crossChainCore, setCrossChainCore] = useState();\n\n useEffect(() => {\n const crossChainCore = new CrossChainCore({ dappConfig });\n setCrossChainCore(crossChainCore);\n }, []);\n\n // TODO fix me, on first load I get an empty array\n const getSolanaWallets = (): ReadonlyArray => {\n return getSolanaStandardWallets();\n };\n\n const getEthereumWallets = (): ReadonlyArray => {\n return fetchEthereumWalletsAggregator();\n };\n\n const getAptosWallets = (): ReadonlyArray => {\n //console.log(\"getAptosStandardWallets\", getAptosStandardWallets());\n return getAptosStandardWallets();\n };\n\n useEffect(() => {\n if (!wallet) return;\n\n const handleAccountChange = (newAccount: AccountInfo | null) => {\n setState((prev) => ({ ...prev, account: newAccount }));\n };\n\n const handleNetworkChange = (newNetwork: NetworkInfo | null) => {\n //setState((prev) => ({ ...prev, sourceChain: newNetwork.name }));\n console.log(\"handleNetworkChange not implemented\");\n };\n\n // Register the listener\n wallet.on(\"accountChange\", handleAccountChange);\n wallet.on(\"networkChange\", handleNetworkChange);\n return () => {\n wallet.off(\"accountChange\", handleAccountChange);\n wallet.off(\"networkChange\", handleNetworkChange);\n };\n }, [wallet]);\n\n const getQuote = async (\n amount: string,\n sourceChain: Chain\n ): Promise => {\n try {\n const provider = crossChainCore?.getProvider(\"Wormhole\");\n\n if (!provider) {\n throw new Error(\"Provider not found\");\n }\n setProvider(provider);\n\n const quote = await provider?.getQuote({\n amount,\n sourceChain,\n });\n\n return quote;\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const initiateTransfer = async (\n sourceChain: Chain,\n mainSigner: AptosAccount,\n sponsorAccount?: AptosAccount | Partial>\n ): Promise<{ originChainTxnId: string; destinationChainTxnId: string }> => {\n try {\n if (!provider) {\n throw new Error(\"Provider is not set\");\n }\n const { originChainTxnId, destinationChainTxnId } =\n await provider.initiateCCTPTransfer({\n sourceChain,\n wallet,\n destinationAddress:\n \"0x38383091fdd9325e0b8ada990c474da8c7f5aa51580b65eb477885b6ce0a36b7\",\n mainSigner,\n sponsorAccount,\n });\n\n return { originChainTxnId, destinationChainTxnId };\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const connect = async (wallet: AdapterWallet): Promise => {\n try {\n const response = await wallet.connect();\n console.log(\"WalletProvider connect response\", response);\n setState((state) => ({\n ...state,\n connected: true,\n wallet: wallet,\n account: response,\n }));\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const disconnect = async () => {\n try {\n await wallet?.disconnect();\n setState((state) => ({\n ...state,\n connected: false,\n wallet: null,\n }));\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n return (\n \n {children}\n \n );\n};\n","import {\n Chain,\n Network,\n UsdcBalance,\n WormholeQuoteResponse,\n AptosAccount,\n} from \"@aptos-labs/cross-chain-core\";\nimport { AdapterWallet } from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { AccountInfo } from \"@aptos-labs/wallet-standard\";\nimport { createContext, useContext } from \"react\";\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n wallet: AdapterWallet | null;\n account: AccountInfo | null;\n getSolanaWallets: () => ReadonlyArray;\n getEthereumWallets: () => ReadonlyArray;\n getAptosWallets: () => ReadonlyArray;\n connect: (wallet: AdapterWallet) => Promise;\n disconnect: () => Promise;\n getQuote: (\n amount: string,\n sourceChain: Chain\n ) => Promise;\n initiateTransfer: (\n sourceChain: Chain,\n mainSigner: AptosAccount,\n sponsorAccount?: AptosAccount | Partial>\n ) => Promise<{ originChainTxnId: string; destinationChainTxnId: string }>;\n sourceChain: Chain | null;\n setSourceChain: (chain: Chain) => void;\n}\n\nexport const WalletContext = createContext(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useCrossChainWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n"],"mappings":"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","names":["crossChainCore","sourceChain","provider","wallet"]} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/useWallet.d.ts b/packages/cross-chain/cross-chain-react/dist/useWallet.d.ts deleted file mode 100644 index dd7eed39..00000000 --- a/packages/cross-chain/cross-chain-react/dist/useWallet.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Chain, Network, WormholeQuoteResponse, AptosAccount } from "@aptos-labs/cross-chain-core"; -import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; -import { AccountInfo } from "@aptos-labs/wallet-standard"; -export interface WalletContextState { - connected: boolean; - isLoading: boolean; - wallet: AdapterWallet | null; - account: AccountInfo | null; - getSolanaWallets: () => ReadonlyArray; - getEthereumWallets: () => ReadonlyArray; - getAptosWallets: () => ReadonlyArray; - connect: (wallet: AdapterWallet) => Promise; - disconnect: () => Promise; - getQuote: (amount: string, sourceChain: Chain) => Promise; - initiateTransfer: (sourceChain: Chain, mainSigner: AptosAccount, sponsorAccount?: AptosAccount | Partial>) => Promise<{ - originChainTxnId: string; - destinationChainTxnId: string; - }>; - sourceChain: Chain | null; - setSourceChain: (chain: Chain) => void; -} -export declare const WalletContext: import("react").Context; -export declare function useCrossChainWallet(): WalletContextState; -//# sourceMappingURL=useWallet.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/dist/useWallet.d.ts.map b/packages/cross-chain/cross-chain-react/dist/useWallet.d.ts.map deleted file mode 100644 index ee15ba16..00000000 --- a/packages/cross-chain/cross-chain-react/dist/useWallet.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"useWallet.d.ts","sourceRoot":"","sources":["../src/useWallet.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EAEP,qBAAqB,EACrB,YAAY,EACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAO1D,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;IACrD,kBAAkB,EAAE,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;IACvD,eAAe,EAAE,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;IACpD,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,QAAQ,EAAE,CACR,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,KAAK,KACf,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC,gBAAgB,EAAE,CAChB,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,YAAY,EACxB,cAAc,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,KAC7D,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1E,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACxC;AAED,eAAO,MAAM,aAAa,6CAEzB,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,kBAAkB,CAMxD"} \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/package.json b/packages/cross-chain/cross-chain-react/package.json new file mode 100644 index 00000000..3035fe75 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/package.json @@ -0,0 +1,63 @@ +{ + "name": "@aptos-labs/cross-chain-react", + "version": "0.0.1", + "description": "Aptos Cross Chain React Provider", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "license": "Apache-2.0", + "exports": { + "require": "./dist/index.js", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + }, + "repository": { + "type": "git", + "url": "https://github.com/aptos-labs/aptos-wallet-adapter.git" + }, + "homepage": "https://github.com/aptos-labs/aptos-wallet-adapter", + "bugs": { + "url": "https://github.com/aptos-labs/aptos-wallet-adapter/issues" + }, + "author": "aptoslabs.com", + "keywords": [ + "Aptos", + "Aptos Labs", + "Wallet", + "Wallet Adapter", + "Wallet Adapter Provider", + "React" + ], + "scripts": { + "build:bundle": "tsup src/index.tsx --format esm,cjs --sourcemap", + "build:declarations": "tsc --emitDeclarationOnly --declaration --declarationMap", + "build": "pnpm build:bundle && pnpm build:declarations", + "dev": "tsup src/index.tsx --format esm,cjs --watch", + "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", + "lint": "TIMING=1 eslint \"src/**/*.ts*\"" + }, + "devDependencies": { + "@aptos-labs/wallet-adapter-tsconfig": "workspace:*", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "eslint": "^8.15.0", + "tsup": "^5.10.1", + "typescript": "^5.7.3" + }, + "dependencies": { + "@aptos-labs/cross-chain-core": "workspace:*", + "@aptos-labs/wallet-adapter-aggregator-core": "workspace:*", + "@aptos-labs/wallet-adapter-aggregator-eip6963": "workspace:*", + "@aptos-labs/wallet-adapter-aggregator-solana": "workspace:*", + "@aptos-labs/wallet-adapter-aggregator-aptos": "workspace:*", + "@aptos-labs/wallet-standard": "^0.3.0", + "ethers": "^6.13.5" + }, + "peerDependencies": { + "react": "^18" + }, + "files": [ + "dist", + "src" + ] +} diff --git a/packages/cross-chain/cross-chain-react/src/WalletProvider.tsx b/packages/cross-chain/cross-chain-react/src/WalletProvider.tsx new file mode 100644 index 00000000..45ff2045 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/src/WalletProvider.tsx @@ -0,0 +1,217 @@ +import { FC, ReactNode, useEffect, useState } from "react"; +import { WalletContext } from "./useWallet"; +import { + Chain, + CrossChainCore, + CrossChainDappConfig, + Network, + WormholeQuoteResponse, + WormholeInitiateTransferResponse, + CrossChainProvider, + AptosAccount, +} from "@aptos-labs/cross-chain-core"; +import { AccountInfo, NetworkInfo } from "@aptos-labs/wallet-standard"; +import { getSolanaStandardWallets } from "@aptos-labs/wallet-adapter-aggregator-solana"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; +import { fetchEthereumWallets as fetchEthereumWalletsAggregator } from "@aptos-labs/wallet-adapter-aggregator-eip6963"; +import { getAptosWallets as getAptosStandardWallets } from "@aptos-labs/wallet-adapter-aggregator-aptos"; + +export interface AptosCrossChainWalletProviderProps { + children: ReactNode; + dappConfig: CrossChainDappConfig; + disableTelemetry?: boolean; + onError?: (error: any) => void; +} + +export type { AdapterWallet }; + +export type QuoteResponse = WormholeQuoteResponse; + +export type InitiateTransferResponse = WormholeInitiateTransferResponse; + +const initialState: { + connected: boolean; + account: AccountInfo | null; + wallet: AdapterWallet | null; + sourceChain: Chain | null; + setSourceChain: (chain: Chain) => void; +} = { + connected: false, + account: null, + wallet: null, + sourceChain: null, + setSourceChain: () => {}, +}; + +export const AptosCrossChainWalletProvider: FC< + AptosCrossChainWalletProviderProps +> = ({ children, dappConfig, disableTelemetry, onError }) => { + const [{ connected, wallet, account, sourceChain }, setState] = + useState(initialState); + + const [provider, setProvider] = useState(); + + const setSourceChain = (chain: Chain) => { + setState((prev) => ({ ...prev, sourceChain: chain })); + }; + + const [crossChainCore, setCrossChainCore] = useState(); + + useEffect(() => { + const crossChainCore = new CrossChainCore({ dappConfig }); + setCrossChainCore(crossChainCore); + }, []); + + // TODO fix me, on first load I get an empty array + const getSolanaWallets = (): ReadonlyArray => { + return getSolanaStandardWallets(); + }; + + const getEthereumWallets = (): ReadonlyArray => { + return fetchEthereumWalletsAggregator(); + }; + + const getAptosWallets = (): ReadonlyArray => { + return getAptosStandardWallets(); + }; + + useEffect(() => { + if (!wallet) return; + + const handleAccountChange = (newAccount: AccountInfo | null) => { + setState((prev) => ({ ...prev, account: newAccount })); + }; + + const handleNetworkChange = (newNetwork: NetworkInfo | null) => { + //setState((prev) => ({ ...prev, sourceChain: newNetwork.name })); + console.log("handleNetworkChange not implemented"); + }; + + // Register the listener + wallet.on("accountChange", handleAccountChange); + wallet.on("networkChange", handleNetworkChange); + return () => { + wallet.off("accountChange", handleAccountChange); + wallet.off("networkChange", handleNetworkChange); + }; + }, [wallet]); + + const getQuote = async ( + amount: string, + sourceChain: Chain + ): Promise => { + try { + const provider = crossChainCore?.getProvider("Wormhole"); + + if (!provider) { + throw new Error("Provider not found"); + } + setProvider(provider); + + const quote = await provider?.getQuote({ + amount, + sourceChain, + }); + + return quote; + } catch (error) { + if (onError) onError(error); + return Promise.reject(error); + } + }; + + const initiateTransfer = async ( + sourceChain: Chain, + mainSigner: AptosAccount, + sponsorAccount?: AptosAccount | Partial> + ): Promise<{ originChainTxnId: string; destinationChainTxnId: string }> => { + try { + if (!provider) { + throw new Error("Provider is not set"); + } + const { originChainTxnId, destinationChainTxnId } = + await provider.initiateCCTPTransfer({ + sourceChain, + wallet, + // TODO: should be set by the dapp, ideally it is be the DAA address + destinationAddress: + "0x38383091fdd9325e0b8ada990c474da8c7f5aa51580b65eb477885b6ce0a36b7", + mainSigner, + sponsorAccount, + }); + + return { originChainTxnId, destinationChainTxnId }; + } catch (error) { + if (onError) onError(error); + return Promise.reject(error); + } + }; + + const connect = async (wallet: AdapterWallet): Promise => { + try { + const response = await wallet.connect(); + setState((state) => ({ + ...state, + connected: true, + wallet: wallet, + account: response, + })); + } catch (error) { + if (onError) onError(error); + return Promise.reject(error); + } + }; + + const disconnect = async () => { + try { + await wallet?.disconnect(); + setState((state) => ({ + ...state, + connected: false, + wallet: null, + })); + } catch (error) { + if (onError) onError(error); + return Promise.reject(error); + } + }; + + const signInWith = async () => { + try { + if (!wallet) { + throw new Error("Wallet is not connected"); + } + if (!wallet.signIn) { + throw new Error("Wallet does not support signIn"); + } + const response = await wallet.signIn(); + console.log("WalletProvider signInWithWallet response", response); + } catch (error) { + if (onError) onError(error); + return Promise.reject(error); + } + }; + + return ( + + {children} + + ); +}; diff --git a/packages/cross-chain/cross-chain-react/dist/index.d.ts b/packages/cross-chain/cross-chain-react/src/index.tsx similarity index 75% rename from packages/cross-chain/cross-chain-react/dist/index.d.ts rename to packages/cross-chain/cross-chain-react/src/index.tsx index c1f358ab..994e30a4 100644 --- a/packages/cross-chain/cross-chain-react/dist/index.d.ts +++ b/packages/cross-chain/cross-chain-react/src/index.tsx @@ -1,4 +1,3 @@ export * from "@aptos-labs/cross-chain-core"; export * from "./WalletProvider"; export * from "./useWallet"; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/cross-chain-react/src/useWallet.tsx b/packages/cross-chain/cross-chain-react/src/useWallet.tsx new file mode 100644 index 00000000..7e463361 --- /dev/null +++ b/packages/cross-chain/cross-chain-react/src/useWallet.tsx @@ -0,0 +1,50 @@ +import { + Chain, + Network, + UsdcBalance, + WormholeQuoteResponse, + AptosAccount, +} from "@aptos-labs/cross-chain-core"; +import { AdapterWallet } from "@aptos-labs/wallet-adapter-aggregator-core"; +import { AccountInfo } from "@aptos-labs/wallet-standard"; +import { createContext, useContext } from "react"; + +const DEFAULT_CONTEXT = { + connected: false, +}; + +export interface WalletContextState { + connected: boolean; + isLoading: boolean; + wallet: AdapterWallet | null; + account: AccountInfo | null; + getSolanaWallets: () => ReadonlyArray; + getEthereumWallets: () => ReadonlyArray; + getAptosWallets: () => ReadonlyArray; + connect: (wallet: AdapterWallet) => Promise; + disconnect: () => Promise; + signInWith: () => Promise; + getQuote: ( + amount: string, + sourceChain: Chain + ) => Promise; + initiateTransfer: ( + sourceChain: Chain, + mainSigner: AptosAccount, + sponsorAccount?: AptosAccount | Partial> + ) => Promise<{ originChainTxnId: string; destinationChainTxnId: string }>; + sourceChain: Chain | null; + setSourceChain: (chain: Chain) => void; +} + +export const WalletContext = createContext( + DEFAULT_CONTEXT as WalletContextState +); + +export function useCrossChainWallet(): WalletContextState { + const context = useContext(WalletContext); + if (!context) { + throw new Error("useWallet must be used within a WalletContextState"); + } + return context; +} diff --git a/packages/cross-chain/cross-chain-react/tsconfig.json b/packages/cross-chain/cross-chain-react/tsconfig.json new file mode 100644 index 00000000..3d316f5b --- /dev/null +++ b/packages/cross-chain/cross-chain-react/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@aptos-labs/wallet-adapter-tsconfig/react-library.json", + "include": ["."], + "exclude": ["dist", "build", "node_modules"], + "compilerOptions": { + "rootDir": "src", + "outDir": "dist" + } +} diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/.eslintrc.js b/packages/cross-chain/wallet-adapter-aggregator/aptos/.eslintrc.js new file mode 100644 index 00000000..9ca9f6a5 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/aptos/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ["@aptos-labs/eslint-config-adapter"], +}; diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/.gitignore b/packages/cross-chain/wallet-adapter-aggregator/aptos/.gitignore new file mode 100644 index 00000000..53c37a16 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/aptos/.gitignore @@ -0,0 +1 @@ +dist \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/.npmignore b/packages/cross-chain/wallet-adapter-aggregator/aptos/.npmignore new file mode 100644 index 00000000..1087c0ce --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/aptos/.npmignore @@ -0,0 +1,4 @@ +node_modules +.turbo +.eslintrc.js +tsconfig.json \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts deleted file mode 100644 index 45426ed4..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { AdapterWallet, WalletReadyState } from "@aptos-labs/wallet-adapter-aggregator-core"; -import { AccountInfo, NetworkInfo, WalletCore, AdapterWallet as AptosBaseWallet, AnyRawTransaction, InputTransactionData, AccountAuthenticator } from "@aptos-labs/wallet-adapter-core"; -import { AptosSignMessageInput, AptosSignMessageOutput, WalletAccount } from "@aptos-labs/wallet-standard"; -export declare const getAptosWallets: () => AptosWallet[]; -export declare class AptosWallet extends AdapterWallet { - readonly aptosWallet: AptosBaseWallet; - readonly walletCore: WalletCore; - readonly version = "1.0.0"; - accounts: WalletAccount[]; - connected: boolean; - constructor(aptosWallet: AptosBaseWallet, walletCore: WalletCore); - get icon(): `data:image/svg+xml;base64,${string}` | `data:image/webp;base64,${string}` | `data:image/png;base64,${string}` | `data:image/gif;base64,${string}`; - get name(): string; - get url(): string; - get readyState(): WalletReadyState; - get chains(): readonly ["aptos:devnet", "aptos:testnet", "aptos:localnet", "aptos:mainnet"]; - get isConnected(): boolean; - getAccount(): Promise; - getConnectedNetwork(): Promise; - connect(): Promise; - disconnect(): Promise; - signMessage(message: AptosSignMessageInput): Promise; - signTransaction(args: { - transactionOrPayload: AnyRawTransaction | InputTransactionData; - asFeePayer?: boolean; - }): Promise<{ - authenticator: AccountAuthenticator; - rawTransaction: Uint8Array; - }>; - onAccountChange(): void; - onNetworkChange(callback: (network: NetworkInfo) => void): Promise; -} -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts.map deleted file mode 100644 index 3adfc271..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,aAAa,IAAI,eAAe,EAChC,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,eAAe,QAAO,WAAW,EAM7C,CAAC;AAEF,qBAAa,WAAY,SAAQ,aAAa,CAC5C,WAAW,EACX,WAAW,EACX,WAAW,GAAG,IAAI,EAClB,qBAAqB,EACrB,sBAAsB,EACtB;IACE,oBAAoB,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,EACD;IACE,aAAa,EAAE,oBAAoB,CAAC;IACpC,cAAc,EAAE,UAAU,CAAC;CAC5B,EACD,WAAW,EACX,WAAW,CACZ;IACC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,OAAO,WAAW;IAE3B,QAAQ,EAAE,aAAa,EAAE,CAAM;IAE/B,SAAS,EAAE,OAAO,CAAS;gBAEf,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU;IAMhE,IAAI,IAAI,uJAEP;IACD,IAAI,IAAI,WAEP;IACD,IAAI,GAAG,WAEN;IAED,IAAI,UAAU,qBAEb;IAED,IAAI,MAAM,kFAET;IAED,IAAI,WAAW,YAEd;IAEK,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAQlC,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAQ3C,OAAO,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAOtC,UAAU;IASV,WAAW,CAAC,OAAO,EAAE,qBAAqB;IAK1C,eAAe,CAAC,IAAI,EAAE;QAC1B,oBAAoB,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;QAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC;QACV,aAAa,EAAE,oBAAoB,CAAC;QACpC,cAAc,EAAE,UAAU,CAAC;KAC5B,CAAC;IAKF,eAAe;IAUT,eAAe,CACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GACvC,OAAO,CAAC,IAAI,CAAC;CAGjB"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js deleted file mode 100644 index a40f2982..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js +++ /dev/null @@ -1,118 +0,0 @@ -"use strict"; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AptosWallet: () => AptosWallet, - getAptosWallets: () => getAptosWallets -}); -module.exports = __toCommonJS(src_exports); -var import_wallet_adapter_aggregator_core = require("@aptos-labs/wallet-adapter-aggregator-core"); -var import_wallet_adapter_core = require("@aptos-labs/wallet-adapter-core"); -var import_wallet_standard = require("@aptos-labs/wallet-standard"); -var getAptosWallets = () => { - const walletCore = new import_wallet_adapter_core.WalletCore(); - const wallets = walletCore.wallets.map( - (wallet) => new AptosWallet(wallet, walletCore) - ); - return wallets; -}; -var AptosWallet = class extends import_wallet_adapter_aggregator_core.AdapterWallet { - constructor(aptosWallet, walletCore) { - super(); - this.version = "1.0.0"; - this.accounts = []; - this.connected = false; - this.aptosWallet = aptosWallet; - this.walletCore = walletCore; - } - get icon() { - return this.aptosWallet.icon; - } - get name() { - return this.aptosWallet.name; - } - get url() { - return this.aptosWallet.url; - } - get readyState() { - return import_wallet_adapter_aggregator_core.WalletReadyState.Installed; - } - get chains() { - return import_wallet_standard.APTOS_CHAINS; - } - get isConnected() { - return this.connected; - } - async getAccount() { - const account = await this.walletCore.account; - if (!account) { - throw new Error("Account not found"); - } - return account; - } - async getConnectedNetwork() { - const network = await this.walletCore.network; - if (!network) { - throw new Error("Network not found"); - } - return network; - } - async connect() { - await this.walletCore.connect(this.name); - this.onAccountChange(); - this.connected = true; - return this.walletCore.account; - } - async disconnect() { - if (!this.connected) { - return; - } - this.walletCore.off("accountChange"); - await this.walletCore.disconnect(); - this.connected = false; - } - async signMessage(message) { - const result = await this.walletCore.signMessage(message); - return result; - } - async signTransaction(args) { - const result = await this.walletCore.signTransaction(args); - return result; - } - onAccountChange() { - this.walletCore.onAccountChange(); - this.walletCore.on( - "accountChange", - async (accountInfo) => { - this.emit("accountChange", accountInfo); - } - ); - } - async onNetworkChange(callback) { - await this.walletCore.onNetworkChange(); - } -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - AptosWallet, - getAptosWallets -}); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js.map b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js.map deleted file mode 100644 index 63fd7b52..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n AdapterWallet,\n WalletReadyState,\n} from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport {\n AccountInfo,\n NetworkInfo,\n WalletCore,\n AdapterWallet as AptosBaseWallet,\n AnyRawTransaction,\n InputTransactionData,\n AccountAuthenticator,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport {\n APTOS_CHAINS,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\n\nexport const getAptosWallets = (): AptosWallet[] => {\n const walletCore = new WalletCore();\n const wallets = walletCore.wallets.map(\n (wallet) => new AptosWallet(wallet, walletCore)\n );\n return wallets;\n};\n\nexport class AptosWallet extends AdapterWallet<\n AccountInfo,\n NetworkInfo,\n AccountInfo | null,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n {\n transactionOrPayload: AnyRawTransaction | InputTransactionData;\n asFeePayer?: boolean;\n },\n {\n authenticator: AccountAuthenticator;\n rawTransaction: Uint8Array;\n },\n AccountInfo,\n NetworkInfo\n> {\n readonly aptosWallet: AptosBaseWallet;\n readonly walletCore: WalletCore;\n readonly version = \"1.0.0\";\n\n accounts: WalletAccount[] = [];\n\n connected: boolean = false;\n\n constructor(aptosWallet: AptosBaseWallet, walletCore: WalletCore) {\n super();\n this.aptosWallet = aptosWallet;\n this.walletCore = walletCore;\n }\n\n get icon() {\n return this.aptosWallet.icon;\n }\n get name() {\n return this.aptosWallet.name;\n }\n get url() {\n return this.aptosWallet.url;\n }\n\n get readyState() {\n return WalletReadyState.Installed;\n }\n\n get chains() {\n return APTOS_CHAINS;\n }\n\n get isConnected() {\n return this.connected;\n }\n\n async getAccount(): Promise {\n const account = await this.walletCore.account;\n if (!account) {\n throw new Error(\"Account not found\");\n }\n return account;\n }\n\n async getConnectedNetwork(): Promise {\n const network = await this.walletCore.network;\n if (!network) {\n throw new Error(\"Network not found\");\n }\n return network;\n }\n\n async connect(): Promise {\n await this.walletCore.connect(this.name);\n this.onAccountChange();\n this.connected = true;\n return this.walletCore.account;\n }\n\n async disconnect() {\n if (!this.connected) {\n return;\n }\n this.walletCore.off(\"accountChange\");\n await this.walletCore.disconnect();\n this.connected = false;\n }\n\n async signMessage(message: AptosSignMessageInput) {\n const result = await this.walletCore.signMessage(message);\n return result;\n }\n\n async signTransaction(args: {\n transactionOrPayload: AnyRawTransaction | InputTransactionData;\n asFeePayer?: boolean;\n }): Promise<{\n authenticator: AccountAuthenticator;\n rawTransaction: Uint8Array;\n }> {\n const result = await this.walletCore.signTransaction(args);\n return result;\n }\n\n onAccountChange() {\n this.walletCore.onAccountChange();\n this.walletCore.on(\n \"accountChange\",\n async (accountInfo: AccountInfo | null) => {\n this.emit(\"accountChange\", accountInfo);\n }\n );\n }\n\n async onNetworkChange(\n callback: (network: NetworkInfo) => void\n ): Promise {\n await this.walletCore.onNetworkChange();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4CAGO;AACP,iCAQO;AACP,6BAKO;AAEA,IAAM,kBAAkB,MAAqB;AAClD,QAAM,aAAa,IAAI,sCAAW;AAClC,QAAM,UAAU,WAAW,QAAQ;AAAA,IACjC,CAAC,WAAW,IAAI,YAAY,QAAQ,UAAU;AAAA,EAChD;AACA,SAAO;AACT;AAEO,IAAM,cAAN,cAA0B,oDAgB/B;AAAA,EASA,YAAY,aAA8B,YAAwB;AAChE,UAAM;AAPR,SAAS,UAAU;AAEnB,oBAA4B,CAAC;AAE7B,qBAAqB;AAInB,SAAK,cAAc;AACnB,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EACA,IAAI,OAAO;AACT,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EACA,IAAI,MAAM;AACR,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,uDAAiB;AAAA,EAC1B;AAAA,EAEA,IAAI,SAAS;AACX,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,aAAmC;AACvC,UAAM,UAAU,MAAM,KAAK,WAAW;AACtC,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,sBAA4C;AAChD,UAAM,UAAU,MAAM,KAAK,WAAW;AACtC,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAAuC;AAC3C,UAAM,KAAK,WAAW,QAAQ,KAAK,IAAI;AACvC,SAAK,gBAAgB;AACrB,SAAK,YAAY;AACjB,WAAO,KAAK,WAAW;AAAA,EACzB;AAAA,EAEA,MAAM,aAAa;AACjB,QAAI,CAAC,KAAK,WAAW;AACnB;AAAA,IACF;AACA,SAAK,WAAW,IAAI,eAAe;AACnC,UAAM,KAAK,WAAW,WAAW;AACjC,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,MAAM,YAAY,SAAgC;AAChD,UAAM,SAAS,MAAM,KAAK,WAAW,YAAY,OAAO;AACxD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,gBAAgB,MAMnB;AACD,UAAM,SAAS,MAAM,KAAK,WAAW,gBAAgB,IAAI;AACzD,WAAO;AAAA,EACT;AAAA,EAEA,kBAAkB;AAChB,SAAK,WAAW,gBAAgB;AAChC,SAAK,WAAW;AAAA,MACd;AAAA,MACA,OAAO,gBAAoC;AACzC,aAAK,KAAK,iBAAiB,WAAW;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,gBACJ,UACe;AACf,UAAM,KAAK,WAAW,gBAAgB;AAAA,EACxC;AACF;","names":[]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs deleted file mode 100644 index 6b7efb45..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs +++ /dev/null @@ -1,99 +0,0 @@ -// src/index.ts -import { - AdapterWallet, - WalletReadyState -} from "@aptos-labs/wallet-adapter-aggregator-core"; -import { - WalletCore -} from "@aptos-labs/wallet-adapter-core"; -import { - APTOS_CHAINS -} from "@aptos-labs/wallet-standard"; -var getAptosWallets = () => { - const walletCore = new WalletCore(); - const wallets = walletCore.wallets.map( - (wallet) => new AptosWallet(wallet, walletCore) - ); - return wallets; -}; -var AptosWallet = class extends AdapterWallet { - constructor(aptosWallet, walletCore) { - super(); - this.version = "1.0.0"; - this.accounts = []; - this.connected = false; - this.aptosWallet = aptosWallet; - this.walletCore = walletCore; - } - get icon() { - return this.aptosWallet.icon; - } - get name() { - return this.aptosWallet.name; - } - get url() { - return this.aptosWallet.url; - } - get readyState() { - return WalletReadyState.Installed; - } - get chains() { - return APTOS_CHAINS; - } - get isConnected() { - return this.connected; - } - async getAccount() { - const account = await this.walletCore.account; - if (!account) { - throw new Error("Account not found"); - } - return account; - } - async getConnectedNetwork() { - const network = await this.walletCore.network; - if (!network) { - throw new Error("Network not found"); - } - return network; - } - async connect() { - await this.walletCore.connect(this.name); - this.onAccountChange(); - this.connected = true; - return this.walletCore.account; - } - async disconnect() { - if (!this.connected) { - return; - } - this.walletCore.off("accountChange"); - await this.walletCore.disconnect(); - this.connected = false; - } - async signMessage(message) { - const result = await this.walletCore.signMessage(message); - return result; - } - async signTransaction(args) { - const result = await this.walletCore.signTransaction(args); - return result; - } - onAccountChange() { - this.walletCore.onAccountChange(); - this.walletCore.on( - "accountChange", - async (accountInfo) => { - this.emit("accountChange", accountInfo); - } - ); - } - async onNetworkChange(callback) { - await this.walletCore.onNetworkChange(); - } -}; -export { - AptosWallet, - getAptosWallets -}; -//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs.map b/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs.map deleted file mode 100644 index ca48b5ed..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/aptos/dist/index.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n AdapterWallet,\n WalletReadyState,\n} from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport {\n AccountInfo,\n NetworkInfo,\n WalletCore,\n AdapterWallet as AptosBaseWallet,\n AnyRawTransaction,\n InputTransactionData,\n AccountAuthenticator,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport {\n APTOS_CHAINS,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\n\nexport const getAptosWallets = (): AptosWallet[] => {\n const walletCore = new WalletCore();\n const wallets = walletCore.wallets.map(\n (wallet) => new AptosWallet(wallet, walletCore)\n );\n return wallets;\n};\n\nexport class AptosWallet extends AdapterWallet<\n AccountInfo,\n NetworkInfo,\n AccountInfo | null,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n {\n transactionOrPayload: AnyRawTransaction | InputTransactionData;\n asFeePayer?: boolean;\n },\n {\n authenticator: AccountAuthenticator;\n rawTransaction: Uint8Array;\n },\n AccountInfo,\n NetworkInfo\n> {\n readonly aptosWallet: AptosBaseWallet;\n readonly walletCore: WalletCore;\n readonly version = \"1.0.0\";\n\n accounts: WalletAccount[] = [];\n\n connected: boolean = false;\n\n constructor(aptosWallet: AptosBaseWallet, walletCore: WalletCore) {\n super();\n this.aptosWallet = aptosWallet;\n this.walletCore = walletCore;\n }\n\n get icon() {\n return this.aptosWallet.icon;\n }\n get name() {\n return this.aptosWallet.name;\n }\n get url() {\n return this.aptosWallet.url;\n }\n\n get readyState() {\n return WalletReadyState.Installed;\n }\n\n get chains() {\n return APTOS_CHAINS;\n }\n\n get isConnected() {\n return this.connected;\n }\n\n async getAccount(): Promise {\n const account = await this.walletCore.account;\n if (!account) {\n throw new Error(\"Account not found\");\n }\n return account;\n }\n\n async getConnectedNetwork(): Promise {\n const network = await this.walletCore.network;\n if (!network) {\n throw new Error(\"Network not found\");\n }\n return network;\n }\n\n async connect(): Promise {\n await this.walletCore.connect(this.name);\n this.onAccountChange();\n this.connected = true;\n return this.walletCore.account;\n }\n\n async disconnect() {\n if (!this.connected) {\n return;\n }\n this.walletCore.off(\"accountChange\");\n await this.walletCore.disconnect();\n this.connected = false;\n }\n\n async signMessage(message: AptosSignMessageInput) {\n const result = await this.walletCore.signMessage(message);\n return result;\n }\n\n async signTransaction(args: {\n transactionOrPayload: AnyRawTransaction | InputTransactionData;\n asFeePayer?: boolean;\n }): Promise<{\n authenticator: AccountAuthenticator;\n rawTransaction: Uint8Array;\n }> {\n const result = await this.walletCore.signTransaction(args);\n return result;\n }\n\n onAccountChange() {\n this.walletCore.onAccountChange();\n this.walletCore.on(\n \"accountChange\",\n async (accountInfo: AccountInfo | null) => {\n this.emit(\"accountChange\", accountInfo);\n }\n );\n }\n\n async onNetworkChange(\n callback: (network: NetworkInfo) => void\n ): Promise {\n await this.walletCore.onNetworkChange();\n }\n}\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EAGE;AAAA,OAKK;AACP;AAAA,EACE;AAAA,OAIK;AAEA,IAAM,kBAAkB,MAAqB;AAClD,QAAM,aAAa,IAAI,WAAW;AAClC,QAAM,UAAU,WAAW,QAAQ;AAAA,IACjC,CAAC,WAAW,IAAI,YAAY,QAAQ,UAAU;AAAA,EAChD;AACA,SAAO;AACT;AAEO,IAAM,cAAN,cAA0B,cAgB/B;AAAA,EASA,YAAY,aAA8B,YAAwB;AAChE,UAAM;AAPR,SAAS,UAAU;AAEnB,oBAA4B,CAAC;AAE7B,qBAAqB;AAInB,SAAK,cAAc;AACnB,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EACA,IAAI,OAAO;AACT,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EACA,IAAI,MAAM;AACR,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,iBAAiB;AAAA,EAC1B;AAAA,EAEA,IAAI,SAAS;AACX,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,aAAmC;AACvC,UAAM,UAAU,MAAM,KAAK,WAAW;AACtC,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,sBAA4C;AAChD,UAAM,UAAU,MAAM,KAAK,WAAW;AACtC,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,UAAuC;AAC3C,UAAM,KAAK,WAAW,QAAQ,KAAK,IAAI;AACvC,SAAK,gBAAgB;AACrB,SAAK,YAAY;AACjB,WAAO,KAAK,WAAW;AAAA,EACzB;AAAA,EAEA,MAAM,aAAa;AACjB,QAAI,CAAC,KAAK,WAAW;AACnB;AAAA,IACF;AACA,SAAK,WAAW,IAAI,eAAe;AACnC,UAAM,KAAK,WAAW,WAAW;AACjC,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,MAAM,YAAY,SAAgC;AAChD,UAAM,SAAS,MAAM,KAAK,WAAW,YAAY,OAAO;AACxD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,gBAAgB,MAMnB;AACD,UAAM,SAAS,MAAM,KAAK,WAAW,gBAAgB,IAAI;AACzD,WAAO;AAAA,EACT;AAAA,EAEA,kBAAkB;AAChB,SAAK,WAAW,gBAAgB;AAChC,SAAK,WAAW;AAAA,MACd;AAAA,MACA,OAAO,gBAAoC;AACzC,aAAK,KAAK,iBAAiB,WAAW;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,gBACJ,UACe;AACf,UAAM,KAAK,WAAW,gBAAgB;AAAA,EACxC;AACF;","names":[]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/package.json b/packages/cross-chain/wallet-adapter-aggregator/aptos/package.json new file mode 100644 index 00000000..0307ae14 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/aptos/package.json @@ -0,0 +1,56 @@ +{ + "name": "@aptos-labs/wallet-adapter-aggregator-aptos", + "version": "0.0.1", + "description": "Aptos Wallet Adapter Aggregator for Aptos", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "license": "Apache-2.0", + "exports": { + "require": "./dist/index.js", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + }, + "repository": { + "type": "git", + "url": "https://github.com/aptos-labs/aptos-wallet-adapter.git" + }, + "homepage": "https://github.com/aptos-labs/aptos-wallet-adapter", + "bugs": { + "url": "https://github.com/aptos-labs/aptos-wallet-adapter/issues" + }, + "author": "aptoslabs.com", + "keywords": [ + "Aptos", + "Aptos Labs", + "Wallet", + "Wallet Adapter", + "Wallet Adapter Aggregator", + "Aptos" + ], + "scripts": { + "build:bundle": "tsup src/index.ts --format esm,cjs --sourcemap", + "build:declarations": "tsc --emitDeclarationOnly --declaration --declarationMap", + "build": "pnpm build:bundle && pnpm build:declarations", + "dev": "tsup src/index.ts --format esm,cjs --watch", + "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", + "lint": "TIMING=1 eslint \"src/**/*.ts*\"" + }, + "devDependencies": { + "@aptos-labs/wallet-adapter-tsconfig": "workspace:*", + "eslint": "^8.15.0", + "tsup": "^5.10.1", + "typescript": "^5.7.3" + }, + "dependencies": { + "@aptos-labs/wallet-adapter-aggregator-core": "workspace:*", + "@aptos-labs/wallet-adapter-core": "workspace:*", + "@aptos-labs/ts-sdk": "^1.35.0", + "@aptos-labs/wallet-standard": "^0.3.0", + "eventemitter3": "^4.0.7" + }, + "files": [ + "dist", + "src" + ] +} diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/src/index.ts b/packages/cross-chain/wallet-adapter-aggregator/aptos/src/index.ts new file mode 100644 index 00000000..b86ae915 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/aptos/src/index.ts @@ -0,0 +1,156 @@ +import { + AdapterWallet, + WalletReadyState, +} from "@aptos-labs/wallet-adapter-aggregator-core"; +import { + AccountInfo, + NetworkInfo, + WalletCore, + AdapterWallet as AptosBaseWallet, + AnyRawTransaction, + InputTransactionData, + AccountAuthenticator, +} from "@aptos-labs/wallet-adapter-core"; +import { + APTOS_CHAINS, + AptosSignInInput, + AptosSignInOutput, + AptosSignMessageInput, + AptosSignMessageOutput, + WalletAccount, +} from "@aptos-labs/wallet-standard"; + +export const getAptosWallets = (): AptosWallet[] => { + const walletCore = new WalletCore(); + const wallets = walletCore.wallets.map( + (wallet) => new AptosWallet(wallet, walletCore) + ); + return wallets; +}; + +export class AptosWallet extends AdapterWallet< + AccountInfo, + NetworkInfo, + AccountInfo | null, + AptosSignMessageInput, + AptosSignMessageOutput, + { + transactionOrPayload: AnyRawTransaction | InputTransactionData; + asFeePayer?: boolean; + }, + { + authenticator: AccountAuthenticator; + rawTransaction: Uint8Array; + }, + AccountInfo, + NetworkInfo, + AptosSignInOutput +> { + readonly aptosWallet: AptosBaseWallet; + readonly walletCore: WalletCore; + readonly version = "1.0.0"; + + accounts: WalletAccount[] = []; + + connected: boolean = false; + + constructor(aptosWallet: AptosBaseWallet, walletCore: WalletCore) { + super(); + this.aptosWallet = aptosWallet; + this.walletCore = walletCore; + } + + get icon() { + return this.aptosWallet.icon; + } + get name() { + return this.aptosWallet.name; + } + get url() { + return this.aptosWallet.url; + } + + get readyState() { + return WalletReadyState.Installed; + } + + get chains() { + return APTOS_CHAINS; + } + + get isConnected() { + return this.connected; + } + + async getAccount(): Promise { + const account = await this.walletCore.account; + if (!account) { + throw new Error("Account not found"); + } + return account; + } + + async getConnectedNetwork(): Promise { + const network = await this.walletCore.network; + if (!network) { + throw new Error("Network not found"); + } + return network; + } + + async connect(): Promise { + await this.walletCore.connect(this.name); + this.onAccountChange(); + this.connected = true; + return this.walletCore.account; + } + + async disconnect() { + if (!this.connected) { + return; + } + this.walletCore.off("accountChange"); + await this.walletCore.disconnect(); + this.connected = false; + } + + async signMessage(message: AptosSignMessageInput) { + const result = await this.walletCore.signMessage(message); + return result; + } + + async signTransaction(args: { + transactionOrPayload: AnyRawTransaction | InputTransactionData; + asFeePayer?: boolean; + }): Promise<{ + authenticator: AccountAuthenticator; + rawTransaction: Uint8Array; + }> { + const result = await this.walletCore.signTransaction(args); + return result; + } + + async signIn(input: { message?: string }): Promise { + const result = await this.walletCore.signIn({ + input: { nonce: Math.random().toString(16) }, + walletName: this.name, + }); + return result; + } + + onAccountChange() { + this.walletCore.onAccountChange(); + this.walletCore.on( + "accountChange", + async (accountInfo: AccountInfo | null) => { + this.emit("accountChange", accountInfo); + } + ); + } + + async onNetworkChange( + callback: (network: NetworkInfo) => void + ): Promise { + await this.walletCore.onNetworkChange(); + } +} diff --git a/packages/cross-chain/wallet-adapter-aggregator/aptos/tsconfig.json b/packages/cross-chain/wallet-adapter-aggregator/aptos/tsconfig.json new file mode 100644 index 00000000..3d316f5b --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/aptos/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@aptos-labs/wallet-adapter-tsconfig/react-library.json", + "include": ["."], + "exclude": ["dist", "build", "node_modules"], + "compilerOptions": { + "rootDir": "src", + "outDir": "dist" + } +} diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/.eslintrc.js b/packages/cross-chain/wallet-adapter-aggregator/core/.eslintrc.js new file mode 100644 index 00000000..9ca9f6a5 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/core/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ["@aptos-labs/eslint-config-adapter"], +}; diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/.gitignore b/packages/cross-chain/wallet-adapter-aggregator/core/.gitignore new file mode 100644 index 00000000..53c37a16 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/core/.gitignore @@ -0,0 +1 @@ +dist \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/.npmignore b/packages/cross-chain/wallet-adapter-aggregator/core/.npmignore new file mode 100644 index 00000000..1087c0ce --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/core/.npmignore @@ -0,0 +1,4 @@ +node_modules +.turbo +.eslintrc.js +tsconfig.json \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts deleted file mode 100644 index f0a8b82c..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import EventEmitter from "eventemitter3"; -import { AccountInfo, NetworkInfo, WalletAccount } from "@aptos-labs/wallet-standard"; -export type UsdcBalance = { - amount: string; - decimal: number; - display: string; -}; -export declare enum WalletReadyState { - /** - * Wallet can only be in one of two states - installed or not installed - * Installed: wallets are detected by the browser event listeners and means they are installed on the user's browser. - * NotDetected: wallets are not detected by the browser event listeners and means they are not installed on the user's browser. - */ - Installed = "Installed", - NotDetected = "NotDetected" -} -export declare interface WalletEvents { - connect(account: AccountInfo | null): void; - disconnect(): void; - networkChange(network: NetworkInfo | null): void; - accountChange(account: AccountInfo | null): void; -} -export declare abstract class AdapterWallet extends EventEmitter { - abstract readonly version: "1.0.0"; - abstract accounts: WalletAccount[]; - abstract get name(): string; - abstract get icon(): any; - abstract get url(): string; - abstract get readyState(): WalletReadyState; - abstract getAccount(): Promise; - abstract getConnectedNetwork(): Promise; - abstract connect(): Promise; - abstract disconnect(): Promise; - abstract signMessage(message: SignMessageInput): Promise; - abstract signTransaction(transaction: SignTransactionInput): Promise; - abstract onAccountChange(callback: (account: OnAccountChangeInput) => void): void; - abstract onNetworkChange(callback: (network: OnNetworkChangeInput) => void): void; - sendTransaction?(transaction: SendTransactionInput): Promise; - getAccountUsdcBalance?(): Promise; -} -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts.map deleted file mode 100644 index 295a1fc1..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,gBAAgB;IAC1B;;;;OAIG;IACH,SAAS,cAAc;IACvB,WAAW,gBAAgB;CAC5B;AAED,MAAM,CAAC,OAAO,WAAW,YAAY;IACnC,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3C,UAAU,IAAI,IAAI,CAAC;IACnB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;IACjD,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;CAClD;AAED,8BAAsB,aAAa,CACjC,gBAAgB,GAAG,GAAG,EACtB,yBAAyB,GAAG,GAAG,EAC/B,aAAa,GAAG,GAAG,EACnB,gBAAgB,GAAG,GAAG,EACtB,iBAAiB,GAAG,GAAG,EACvB,oBAAoB,GAAG,GAAG,EAC1B,qBAAqB,GAAG,GAAG,EAC3B,oBAAoB,GAAG,GAAG,EAC1B,oBAAoB,GAAG,GAAG,EAC1B,oBAAoB,GAAG,GAAG,EAC1B,qBAAqB,GAAG,GAAG,CAC3B,SAAQ,YAAY,CAAC,YAAY,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;IACnC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAC5B,QAAQ,KAAK,IAAI,IAAI,GAAG,CAAC;IACzB,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAC;IAC3B,QAAQ,KAAK,UAAU,IAAI,gBAAgB,CAAC;IAE5C,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAChD,QAAQ,CAAC,mBAAmB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAClE,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAC1C,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAC3E,QAAQ,CAAC,eAAe,CACtB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,qBAAqB,CAAC;IACjC,QAAQ,CAAC,eAAe,CACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,GAChD,IAAI;IACP,QAAQ,CAAC,eAAe,CACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,GAChD,IAAI;IACP,eAAe,CAAC,CACd,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,qBAAqB,CAAC;IAGjC,qBAAqB,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC;CAG/C"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js deleted file mode 100644 index 206f91ee..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict"; -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - AdapterWallet: () => AdapterWallet, - WalletReadyState: () => WalletReadyState -}); -module.exports = __toCommonJS(src_exports); -var import_eventemitter3 = __toESM(require("eventemitter3")); -var WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => { - WalletReadyState2["Installed"] = "Installed"; - WalletReadyState2["NotDetected"] = "NotDetected"; - return WalletReadyState2; -})(WalletReadyState || {}); -var AdapterWallet = class extends import_eventemitter3.default { - sendTransaction(transaction) { - throw new Error("Not implemented"); - } - getAccountUsdcBalance() { - throw new Error("Not implemented"); - } -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - AdapterWallet, - WalletReadyState -}); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js.map b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js.map deleted file mode 100644 index f5f503a9..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import EventEmitter from \"eventemitter3\";\nimport {\n AccountInfo,\n NetworkInfo,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\n\nexport type UsdcBalance = {\n amount: string;\n decimal: number;\n display: string;\n};\n\nexport enum WalletReadyState {\n /**\n * Wallet can only be in one of two states - installed or not installed\n * Installed: wallets are detected by the browser event listeners and means they are installed on the user's browser.\n * NotDetected: wallets are not detected by the browser event listeners and means they are not installed on the user's browser.\n */\n Installed = \"Installed\",\n NotDetected = \"NotDetected\",\n}\n\nexport declare interface WalletEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport abstract class AdapterWallet<\n GetAccountOutput = any,\n GetConnectedNetworkOutput = any,\n ConnectOutput = any,\n SignMessageInput = any,\n SignMessageOutput = any,\n SignTransactionInput = any,\n SignTransactionOutput = any,\n OnAccountChangeInput = any,\n OnNetworkChangeInput = any,\n SendTransactionInput = any,\n SendTransactionOutput = any,\n> extends EventEmitter {\n abstract readonly version: \"1.0.0\";\n abstract accounts: WalletAccount[];\n abstract get name(): string;\n abstract get icon(): any;\n abstract get url(): string;\n abstract get readyState(): WalletReadyState;\n\n abstract getAccount(): Promise;\n abstract getConnectedNetwork(): Promise;\n abstract connect(): Promise;\n abstract disconnect(): Promise;\n abstract signMessage(message: SignMessageInput): Promise;\n abstract signTransaction(\n transaction: SignTransactionInput\n ): Promise;\n abstract onAccountChange(\n callback: (account: OnAccountChangeInput) => void\n ): void;\n abstract onNetworkChange(\n callback: (network: OnNetworkChangeInput) => void\n ): void;\n sendTransaction?(\n transaction: SendTransactionInput\n ): Promise {\n throw new Error(\"Not implemented\");\n }\n getAccountUsdcBalance?(): Promise {\n throw new Error(\"Not implemented\");\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAyB;AAalB,IAAK,mBAAL,kBAAKA,sBAAL;AAML,EAAAA,kBAAA,eAAY;AACZ,EAAAA,kBAAA,iBAAc;AAPJ,SAAAA;AAAA,GAAA;AAiBL,IAAe,gBAAf,cAYG,qBAAAC,QAA2B;AAAA,EAsBnC,gBACE,aACgC;AAChC,UAAM,IAAI,MAAM,iBAAiB;AAAA,EACnC;AAAA,EACA,wBAA+C;AAC7C,UAAM,IAAI,MAAM,iBAAiB;AAAA,EACnC;AACF;","names":["WalletReadyState","EventEmitter"]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs deleted file mode 100644 index 6c55adf3..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs +++ /dev/null @@ -1,20 +0,0 @@ -// src/index.ts -import EventEmitter from "eventemitter3"; -var WalletReadyState = /* @__PURE__ */ ((WalletReadyState2) => { - WalletReadyState2["Installed"] = "Installed"; - WalletReadyState2["NotDetected"] = "NotDetected"; - return WalletReadyState2; -})(WalletReadyState || {}); -var AdapterWallet = class extends EventEmitter { - sendTransaction(transaction) { - throw new Error("Not implemented"); - } - getAccountUsdcBalance() { - throw new Error("Not implemented"); - } -}; -export { - AdapterWallet, - WalletReadyState -}; -//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs.map b/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs.map deleted file mode 100644 index 5a7ef143..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/core/dist/index.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import EventEmitter from \"eventemitter3\";\nimport {\n AccountInfo,\n NetworkInfo,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\n\nexport type UsdcBalance = {\n amount: string;\n decimal: number;\n display: string;\n};\n\nexport enum WalletReadyState {\n /**\n * Wallet can only be in one of two states - installed or not installed\n * Installed: wallets are detected by the browser event listeners and means they are installed on the user's browser.\n * NotDetected: wallets are not detected by the browser event listeners and means they are not installed on the user's browser.\n */\n Installed = \"Installed\",\n NotDetected = \"NotDetected\",\n}\n\nexport declare interface WalletEvents {\n connect(account: AccountInfo | null): void;\n disconnect(): void;\n networkChange(network: NetworkInfo | null): void;\n accountChange(account: AccountInfo | null): void;\n}\n\nexport abstract class AdapterWallet<\n GetAccountOutput = any,\n GetConnectedNetworkOutput = any,\n ConnectOutput = any,\n SignMessageInput = any,\n SignMessageOutput = any,\n SignTransactionInput = any,\n SignTransactionOutput = any,\n OnAccountChangeInput = any,\n OnNetworkChangeInput = any,\n SendTransactionInput = any,\n SendTransactionOutput = any,\n> extends EventEmitter {\n abstract readonly version: \"1.0.0\";\n abstract accounts: WalletAccount[];\n abstract get name(): string;\n abstract get icon(): any;\n abstract get url(): string;\n abstract get readyState(): WalletReadyState;\n\n abstract getAccount(): Promise;\n abstract getConnectedNetwork(): Promise;\n abstract connect(): Promise;\n abstract disconnect(): Promise;\n abstract signMessage(message: SignMessageInput): Promise;\n abstract signTransaction(\n transaction: SignTransactionInput\n ): Promise;\n abstract onAccountChange(\n callback: (account: OnAccountChangeInput) => void\n ): void;\n abstract onNetworkChange(\n callback: (network: OnNetworkChangeInput) => void\n ): void;\n sendTransaction?(\n transaction: SendTransactionInput\n ): Promise {\n throw new Error(\"Not implemented\");\n }\n getAccountUsdcBalance?(): Promise {\n throw new Error(\"Not implemented\");\n }\n}\n"],"mappings":";AAAA,OAAO,kBAAkB;AAalB,IAAK,mBAAL,kBAAKA,sBAAL;AAML,EAAAA,kBAAA,eAAY;AACZ,EAAAA,kBAAA,iBAAc;AAPJ,SAAAA;AAAA,GAAA;AAiBL,IAAe,gBAAf,cAYG,aAA2B;AAAA,EAsBnC,gBACE,aACgC;AAChC,UAAM,IAAI,MAAM,iBAAiB;AAAA,EACnC;AAAA,EACA,wBAA+C;AAC7C,UAAM,IAAI,MAAM,iBAAiB;AAAA,EACnC;AACF;","names":["WalletReadyState"]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/package.json b/packages/cross-chain/wallet-adapter-aggregator/core/package.json new file mode 100644 index 00000000..7662b269 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/core/package.json @@ -0,0 +1,54 @@ +{ + "name": "@aptos-labs/wallet-adapter-aggregator-core", + "version": "0.0.1", + "description": "Aptos Wallet Adapter Aggregator Core", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "license": "Apache-2.0", + "exports": { + "require": "./dist/index.js", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + }, + "repository": { + "type": "git", + "url": "https://github.com/aptos-labs/aptos-wallet-adapter.git" + }, + "homepage": "https://github.com/aptos-labs/aptos-wallet-adapter", + "bugs": { + "url": "https://github.com/aptos-labs/aptos-wallet-adapter/issues" + }, + "author": "aptoslabs.com", + "keywords": [ + "Aptos", + "Aptos Labs", + "Wallet", + "Wallet Adapter", + "Wallet Adapter Aggregator" + ], + "scripts": { + "build:bundle": "tsup src/index.ts --format esm,cjs --sourcemap", + "build:declarations": "tsc --emitDeclarationOnly --declaration --declarationMap", + "build": "pnpm build:bundle && pnpm build:declarations", + "dev": "tsup src/index.ts --format esm,cjs --watch", + "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", + "lint": "TIMING=1 eslint \"src/**/*.ts*\"" + }, + "devDependencies": { + "@aptos-labs/wallet-adapter-tsconfig": "workspace:*", + "eslint": "^8.15.0", + "tsup": "^5.10.1", + "typescript": "^5.7.3" + }, + "dependencies": { + "@aptos-labs/ts-sdk": "^1.35.0", + "@aptos-labs/wallet-standard": "^0.3.0", + "@wallet-standard/app": "^1.1.0", + "eventemitter3": "^4.0.7" + }, + "files": [ + "dist", + "src" + ] +} diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/src/index.ts b/packages/cross-chain/wallet-adapter-aggregator/core/src/index.ts new file mode 100644 index 00000000..76828f09 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/core/src/index.ts @@ -0,0 +1,74 @@ +import EventEmitter from "eventemitter3"; +import { + AccountInfo, + AptosSignInInput, + AptosSignInOutput, + NetworkInfo, + WalletAccount, +} from "@aptos-labs/wallet-standard"; + +export type UsdcBalance = { + amount: string; + decimal: number; + display: string; +}; + +export enum WalletReadyState { + /** + * Wallet can only be in one of two states - installed or not installed + * Installed: wallets are detected by the browser event listeners and means they are installed on the user's browser. + * NotDetected: wallets are not detected by the browser event listeners and means they are not installed on the user's browser. + */ + Installed = "Installed", + NotDetected = "NotDetected", +} + +export declare interface WalletEvents { + connect(account: AccountInfo | null): void; + disconnect(): void; + networkChange(network: NetworkInfo | null): void; + accountChange(account: AccountInfo | null): void; +} + +export abstract class AdapterWallet< + GetAccountOutput = any, + GetConnectedNetworkOutput = any, + ConnectOutput = any, + SignMessageInput = any, + SignMessageOutput = any, + SignTransactionInput = any, + SignTransactionOutput = any, + OnAccountChangeInput = any, + OnNetworkChangeInput = any, + SendTransactionInput = any, + SendTransactionOutput = any, + SignInOutput = any, +> extends EventEmitter { + abstract readonly version: "1.0.0"; + abstract accounts: WalletAccount[]; + abstract get name(): string; + abstract get icon(): any; + abstract get url(): string; + abstract get readyState(): WalletReadyState; + + abstract getAccount(): Promise; + abstract getConnectedNetwork(): Promise; + abstract connect(): Promise; + abstract disconnect(): Promise; + abstract signMessage(message: SignMessageInput): Promise; + abstract signTransaction( + transaction: SignTransactionInput + ): Promise; + abstract onAccountChange( + callback: (account: OnAccountChangeInput) => void + ): void; + abstract onNetworkChange( + callback: (network: OnNetworkChangeInput) => void + ): void; + signIn?(input?: { message?: string }): Promise; + sendTransaction?( + transaction: SendTransactionInput + ): Promise { + throw new Error("Not implemented"); + } +} diff --git a/packages/cross-chain/wallet-adapter-aggregator/core/tsconfig.json b/packages/cross-chain/wallet-adapter-aggregator/core/tsconfig.json new file mode 100644 index 00000000..3d316f5b --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/core/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@aptos-labs/wallet-adapter-tsconfig/react-library.json", + "include": ["."], + "exclude": ["dist", "build", "node_modules"], + "compilerOptions": { + "rootDir": "src", + "outDir": "dist" + } +} diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/.eslintrc.js b/packages/cross-chain/wallet-adapter-aggregator/eip6963/.eslintrc.js new file mode 100644 index 00000000..9ca9f6a5 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ["@aptos-labs/eslint-config-adapter"], +}; diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/.gitignore b/packages/cross-chain/wallet-adapter-aggregator/eip6963/.gitignore new file mode 100644 index 00000000..53c37a16 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/.gitignore @@ -0,0 +1 @@ +dist \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/.npmignore b/packages/cross-chain/wallet-adapter-aggregator/eip6963/.npmignore new file mode 100644 index 00000000..1087c0ce --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/.npmignore @@ -0,0 +1,4 @@ +node_modules +.turbo +.eslintrc.js +tsconfig.json \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts deleted file mode 100644 index b5bc4b8e..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { AptosSignMessageInput, AptosSignMessageOutput, AptosWallet, NetworkInfo, UserResponse, WalletAccount } from "@aptos-labs/wallet-standard"; -import { ethers, TransactionRequest } from "ethers"; -import { AdapterWallet, WalletReadyState } from "@aptos-labs/wallet-adapter-aggregator-core"; -export type EIP6963ProviderInfo = { - info: { - uuid: string; - name: string; - icon: `data:image/svg+xml;base64,${string}`; - rdns: string; - }; - provider: any; -}; -export declare enum Eip6963Wallets { - PhantomWallet = "Phantom", - MetaMaskWallet = "MetaMask", - BackpackWallet = "Backpack", - CoinbaseWallet = "Coinbase Wallet", - NightlyWallet = "Nightly", - RabbyWallet = "Rabby Wallet" -} -export declare const Eip6963WalletUrls: Record; -export declare function fetchEthereumWallets(): AdapterWallet[]; -export type Eip6963AccountInfo = { - address: string; - publicKey: Uint8Array; -}; -export type Eip6963Features = { - "eip6963:connect": { - connect: () => Promise>; - version: string; - }; - "eip6963:account": { - account: () => Promise; - version: string; - }; - "eip6963:sendTransaction": { - sendTransaction: (transaction: TransactionRequest, provider: ethers.BrowserProvider) => Promise>; - version: string; - }; - "eip6963:onAccountChange": { - onAccountChange: (callback: (newAccount: Eip6963AccountInfo) => void) => void; - version: string; - }; -}; -export type Eip6963BaseWallet = AptosWallet & { - features: Eip6963Features; -}; -export declare class Eip6963Wallet extends AdapterWallet { - readonly eip6963Wallet: Eip6963BaseWallet; - readonly eip6963WalletProvider: EIP6963ProviderInfo; - readonly version = "1.0.0"; - private provider?; - accounts: WalletAccount[]; - connected: boolean; - constructor(eip6963Wallet: Eip6963BaseWallet, eip6963WalletProvider: EIP6963ProviderInfo); - get icon(): `data:image/svg+xml;base64,${string}` | `data:image/webp;base64,${string}` | `data:image/png;base64,${string}` | `data:image/gif;base64,${string}`; - get name(): string; - get url(): string; - get readyState(): WalletReadyState; - get chains(): readonly ["aptos:devnet", "aptos:testnet", "aptos:localnet", "aptos:mainnet"]; - get isConnected(): boolean; - getAccount(): Promise; - getConnectedNetwork(): Promise; - connect(): Promise; - disconnect(): Promise; - signMessage(message: AptosSignMessageInput): Promise; - signTransaction(transaction: TransactionRequest): Promise; - sendTransaction(transaction: TransactionRequest): Promise; - onAccountChange(): Promise; - onNetworkChange(): Promise; -} -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts.map deleted file mode 100644 index 880ede03..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js deleted file mode 100644 index 4b08398e..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js +++ /dev/null @@ -1,348 +0,0 @@ -"use strict"; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - Eip6963Wallet: () => Eip6963Wallet, - Eip6963WalletUrls: () => Eip6963WalletUrls, - Eip6963Wallets: () => Eip6963Wallets2, - fetchEthereumWallets: () => fetchEthereumWallets -}); -module.exports = __toCommonJS(src_exports); -var import_wallet_standard2 = require("@aptos-labs/wallet-standard"); -var import_ethers2 = require("ethers"); -var import_wallet_adapter_aggregator_core = require("@aptos-labs/wallet-adapter-aggregator-core"); - -// src/utils.ts -var import_wallet_standard = require("@aptos-labs/wallet-standard"); -var import_ethers = require("ethers"); -var convertEip6963WalletToAptosWallet = (eip6963Wallet) => { - const wallet = { - accounts: [], - chains: import_wallet_standard.APTOS_CHAINS, - features: { - ...APTOS_REQUIRED_FEATURES(eip6963Wallet), - ...EIP6963_ADDITIONAL_FEATURES(eip6963Wallet) - }, - icon: eip6963Wallet.info.icon, - name: eip6963Wallet.info.name, - url: Eip6963WalletUrls[eip6963Wallet.info.name], - version: "1.0.0" - }; - return wallet; -}; -var APTOS_REQUIRED_FEATURES = (eip6963Wallet) => { - return { - "aptos:account": { - account: async () => { - throw new Error("Not yet implemented"); - }, - version: "1.0.0" - }, - "aptos:connect": { - connect: async () => { - throw new Error("Not yet implemented"); - }, - version: "1.0.0" - }, - "aptos:disconnect": { - disconnect: async () => { - try { - eip6963Wallet.provider.on("disconnect", (error) => { - console.error("EIP-6963 wallet disconnected", error); - }); - } catch (error) { - throw new Error("Failed to disconnect").message; - } - }, - version: "1.0.0" - }, - "aptos:network": { - network: async () => { - const chainId = await eip6963Wallet.provider.request({ - method: "eth_chainId" - }); - return { name: parseInt(chainId, 16), chainId }; - }, - version: "1.0.0" - }, - "aptos:signMessage": { - signMessage: async (message) => { - const accounts = await eip6963Wallet.provider.request({ method: "eth_requestAccounts" }).catch(console.error); - const signature = await eip6963Wallet.provider.request({ - method: "personal_sign", - params: [message.message, accounts[0]] - }); - const response = { - fullMessage: message.message, - message: message.message, - nonce: message.nonce, - prefix: "APTOS", - signature - }; - return { - status: import_wallet_standard.UserResponseStatus.APPROVED, - args: response - }; - }, - version: "1.0.0" - }, - "aptos:signTransaction": { - signTransaction: async (transaction) => { - throw new Error("Not yet implemented"); - }, - version: "1.0.0" - }, - "aptos:onAccountChange": { - onAccountChange: async (callback) => { - throw new Error("Not yet implemented"); - }, - version: "1.0.0" - }, - "aptos:onNetworkChange": { - onNetworkChange: async (callback) => { - eip6963Wallet.provider.on("chainChanged", (chainId) => { - console.log("chainId", chainId); - callback({ - name: parseInt(chainId), - chainId: parseInt(chainId) - }); - }); - }, - version: "1.0.0" - } - }; -}; -var EIP6963_ADDITIONAL_FEATURES = (eip6963Wallet) => { - const features = { - "eip6963:account": { - account: async () => { - const accounts = await eip6963Wallet.provider.request({ method: "eth_requestAccounts" }).catch(console.error); - return { - address: accounts[0], - publicKey: import_ethers.ethers.getBytes(accounts[0]) - }; - }, - version: "1.0.0" - }, - "eip6963:connect": { - connect: async () => { - try { - const accounts = await eip6963Wallet.provider.request({ method: "eth_requestAccounts" }).catch((error) => { - throw new Error("Error connecting to wallet" + error).message; - }); - return { - args: { - address: accounts[0], - publicKey: import_ethers.ethers.getBytes(accounts[0]) - }, - status: import_wallet_standard.UserResponseStatus.APPROVED - }; - } catch (error) { - if (error instanceof Error && error.message.includes("refused connection")) { - return { - status: import_wallet_standard.UserResponseStatus.REJECTED - }; - } - throw error; - } - }, - version: "1.0.0" - }, - "eip6963:sendTransaction": { - sendTransaction: async (transaction, provider) => { - try { - const signer = await provider.getSigner(); - if (!signer) { - throw new Error("No signer found"); - } - const response = await signer.sendTransaction(transaction); - const receipt = await response.wait(); - return { - status: import_wallet_standard.UserResponseStatus.APPROVED, - args: (receipt == null ? void 0 : receipt.hash) || "" - }; - } catch (error) { - if (error instanceof Error && error.message.includes("rejected")) { - return { - status: import_wallet_standard.UserResponseStatus.REJECTED - }; - } - throw new Error(error).message; - } - }, - version: "1.0.0" - }, - "eip6963:onAccountChange": { - onAccountChange: async (callback) => { - eip6963Wallet.provider.on( - "accountsChanged", - (accounts) => { - const accountInfo = { - address: accounts[0], - publicKey: import_ethers.ethers.getBytes(accounts[0]) - }; - callback(accountInfo); - } - ); - }, - version: "1.0.0" - } - }; - return features; -}; - -// src/index.ts -var Eip6963Wallets2 = /* @__PURE__ */ ((Eip6963Wallets3) => { - Eip6963Wallets3["PhantomWallet"] = "Phantom"; - Eip6963Wallets3["MetaMaskWallet"] = "MetaMask"; - Eip6963Wallets3["BackpackWallet"] = "Backpack"; - Eip6963Wallets3["CoinbaseWallet"] = "Coinbase Wallet"; - Eip6963Wallets3["NightlyWallet"] = "Nightly"; - Eip6963Wallets3["RabbyWallet"] = "Rabby Wallet"; - return Eip6963Wallets3; -})(Eip6963Wallets2 || {}); -var Eip6963WalletUrls = { - ["Phantom" /* PhantomWallet */]: "https://phantom.app/", - ["MetaMask" /* MetaMaskWallet */]: "https://metamask.io/", - ["Backpack" /* BackpackWallet */]: "https://www.backpack.app/", - ["Coinbase Wallet" /* CoinbaseWallet */]: "https://www.coinbase.com/wallet", - ["Nightly" /* NightlyWallet */]: "https://nightly.app/", - ["Rabby Wallet" /* RabbyWallet */]: "https://rabby.io/" -}; -function fetchEthereumWallets() { - const wallets = []; - const convertedWallets = []; - const handleWalletDiscovery = (event) => { - const wallet = event.detail; - if (!wallets.some((w) => w.info.uuid === wallet.info.uuid)) { - wallets.push(wallet); - convertedWallets.push( - new Eip6963Wallet(convertEip6963WalletToAptosWallet(wallet), wallet) - ); - } - }; - window.addEventListener("eip6963:announceProvider", (event) => { - handleWalletDiscovery(event); - }); - window.dispatchEvent(new Event("eip6963:requestProvider")); - return convertedWallets; -} -var Eip6963Wallet = class extends import_wallet_adapter_aggregator_core.AdapterWallet { - constructor(eip6963Wallet, eip6963WalletProvider) { - super(); - this.version = "1.0.0"; - this.accounts = []; - this.connected = false; - this.eip6963Wallet = eip6963Wallet; - this.eip6963WalletProvider = eip6963WalletProvider; - } - get icon() { - return this.eip6963Wallet.icon; - } - get name() { - return this.eip6963Wallet.name; - } - get url() { - return Eip6963WalletUrls[this.eip6963Wallet.name]; - } - get readyState() { - return import_wallet_adapter_aggregator_core.WalletReadyState.Installed; - } - get chains() { - return import_wallet_standard2.APTOS_CHAINS; - } - get isConnected() { - return this.connected; - } - async getAccount() { - return await this.eip6963Wallet.features["eip6963:account"].account(); - } - async getConnectedNetwork() { - return await this.eip6963Wallet.features["aptos:network"].network(); - } - async connect() { - const result = await this.eip6963Wallet.features["eip6963:connect"].connect(); - if (result.status === import_wallet_standard2.UserResponseStatus.REJECTED) { - throw new Error("User rejected the request").message; - } - await this.onAccountChange(); - await this.onNetworkChange(); - this.provider = new import_ethers2.ethers.BrowserProvider( - await this.eip6963WalletProvider.provider, - "any" - ); - this.connected = true; - return result.args; - } - async disconnect() { - try { - if (!this.connected) { - return; - } - await this.eip6963Wallet.features["aptos:disconnect"].disconnect(); - this.connected = false; - } catch (error) { - throw new Error(error).message; - } - } - async signMessage(message) { - const result = await this.eip6963Wallet.features["aptos:signMessage"].signMessage( - message - ); - if (result.status === import_wallet_standard2.UserResponseStatus.REJECTED) { - throw new Error("User rejected the request").message; - } - return result.args; - } - async signTransaction(transaction) { - throw new Error("Not implemented"); - } - async sendTransaction(transaction) { - if (!this.provider) { - throw new Error("Provider not connected"); - } - const result = await this.eip6963Wallet.features["eip6963:sendTransaction"].sendTransaction(transaction, this.provider); - if (result.status === import_wallet_standard2.UserResponseStatus.REJECTED) { - throw new Error("User rejected the request").message; - } - return result.args; - } - async onAccountChange() { - await this.eip6963Wallet.features["eip6963:onAccountChange"].onAccountChange((account) => { - this.emit("accountChange", account); - }); - } - async onNetworkChange() { - await this.eip6963Wallet.features["aptos:onNetworkChange"].onNetworkChange( - (newNetwork) => { - this.emit("networkChange", newNetwork); - } - ); - } -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - Eip6963Wallet, - Eip6963WalletUrls, - Eip6963Wallets, - fetchEthereumWallets -}); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js.map b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js.map deleted file mode 100644 index 24d4d027..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts","../src/utils.ts"],"sourcesContent":["import {\n APTOS_CHAINS,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosWallet,\n NetworkInfo,\n UserResponse,\n UserResponseStatus,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\nimport { ethers, TransactionRequest } from \"ethers\";\nimport {\n AdapterWallet,\n WalletReadyState,\n UsdcBalance,\n} from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { convertEip6963WalletToAptosWallet } from \"./utils\";\n\nexport type EIP6963ProviderInfo = {\n info: {\n uuid: string;\n name: string;\n icon: `data:image/svg+xml;base64,${string}`;\n rdns: string;\n };\n provider: any;\n};\n\nexport enum Eip6963Wallets {\n PhantomWallet = \"Phantom\",\n MetaMaskWallet = \"MetaMask\",\n BackpackWallet = \"Backpack\",\n CoinbaseWallet = \"Coinbase Wallet\",\n NightlyWallet = \"Nightly\",\n RabbyWallet = \"Rabby Wallet\",\n}\n\nexport const Eip6963WalletUrls: Record = {\n [Eip6963Wallets.PhantomWallet]: \"https://phantom.app/\",\n [Eip6963Wallets.MetaMaskWallet]: \"https://metamask.io/\",\n [Eip6963Wallets.BackpackWallet]: \"https://www.backpack.app/\",\n [Eip6963Wallets.CoinbaseWallet]: \"https://www.coinbase.com/wallet\",\n [Eip6963Wallets.NightlyWallet]: \"https://nightly.app/\",\n [Eip6963Wallets.RabbyWallet]: \"https://rabby.io/\",\n};\n\nexport function fetchEthereumWallets(): AdapterWallet[] {\n const wallets: EIP6963ProviderInfo[] = [];\n const convertedWallets: AdapterWallet[] = [];\n\n const handleWalletDiscovery = (event: CustomEvent) => {\n const wallet = event.detail as EIP6963ProviderInfo;\n\n // Avoid duplicates\n if (!wallets.some((w) => w.info.uuid === wallet.info.uuid)) {\n wallets.push(wallet);\n convertedWallets.push(\n new Eip6963Wallet(convertEip6963WalletToAptosWallet(wallet), wallet)\n );\n }\n };\n\n window.addEventListener(\"eip6963:announceProvider\", (event) => {\n handleWalletDiscovery(event as CustomEvent);\n });\n // Request wallets to announce themselves\n window.dispatchEvent(new Event(\"eip6963:requestProvider\"));\n\n return convertedWallets;\n}\n\nexport type Eip6963AccountInfo = {\n address: string;\n publicKey: Uint8Array;\n};\n\nexport type Eip6963Features = {\n \"eip6963:connect\": {\n connect: () => Promise>;\n version: string;\n };\n \"eip6963:account\": {\n account: () => Promise;\n version: string;\n };\n \"eip6963:sendTransaction\": {\n sendTransaction: (\n transaction: TransactionRequest,\n provider: ethers.BrowserProvider\n ) => Promise>;\n version: string;\n };\n \"eip6963:onAccountChange\": {\n onAccountChange: (\n callback: (newAccount: Eip6963AccountInfo) => void\n ) => void;\n version: string;\n };\n};\n\nexport type Eip6963BaseWallet = AptosWallet & {\n features: Eip6963Features;\n};\n\nexport class Eip6963Wallet extends AdapterWallet<\n Eip6963AccountInfo,\n NetworkInfo,\n Eip6963AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n TransactionRequest,\n TransactionRequest,\n Eip6963AccountInfo,\n NetworkInfo,\n TransactionRequest,\n string\n> {\n readonly eip6963Wallet: Eip6963BaseWallet;\n readonly eip6963WalletProvider: EIP6963ProviderInfo;\n readonly version = \"1.0.0\";\n private provider?: ethers.BrowserProvider;\n\n accounts: WalletAccount[] = [];\n\n connected: boolean = false;\n\n constructor(\n eip6963Wallet: Eip6963BaseWallet,\n eip6963WalletProvider: EIP6963ProviderInfo\n ) {\n super();\n this.eip6963Wallet = eip6963Wallet;\n this.eip6963WalletProvider = eip6963WalletProvider;\n }\n\n get icon() {\n return this.eip6963Wallet.icon;\n }\n get name() {\n return this.eip6963Wallet.name;\n }\n get url() {\n return Eip6963WalletUrls[this.eip6963Wallet.name as Eip6963Wallets];\n }\n get readyState() {\n return WalletReadyState.Installed;\n }\n get chains() {\n return APTOS_CHAINS;\n }\n\n get isConnected() {\n return this.connected;\n }\n\n async getAccount() {\n return await this.eip6963Wallet.features[\"eip6963:account\"].account();\n }\n\n async getConnectedNetwork() {\n return await this.eip6963Wallet.features[\"aptos:network\"].network();\n }\n\n async connect() {\n const result =\n await this.eip6963Wallet.features[\"eip6963:connect\"].connect();\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n await this.onAccountChange();\n await this.onNetworkChange();\n this.provider = new ethers.BrowserProvider(\n (await this.eip6963WalletProvider.provider) as ethers.Eip1193Provider,\n \"any\"\n );\n this.connected = true;\n return result.args;\n }\n\n async disconnect() {\n try {\n if (!this.connected) {\n return;\n }\n await this.eip6963Wallet.features[\"aptos:disconnect\"].disconnect();\n this.connected = false;\n } catch (error: any) {\n throw new Error(error).message;\n }\n }\n\n async signMessage(message: AptosSignMessageInput) {\n const result =\n await this.eip6963Wallet.features[\"aptos:signMessage\"].signMessage(\n message\n );\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n return result.args;\n }\n\n async signTransaction(\n transaction: TransactionRequest\n ): Promise {\n throw new Error(\"Not implemented\");\n }\n\n async sendTransaction(transaction: TransactionRequest): Promise {\n if (!this.provider) {\n throw new Error(\"Provider not connected\");\n }\n const result = await this.eip6963Wallet.features[\n \"eip6963:sendTransaction\"\n ].sendTransaction(transaction, this.provider);\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n return result.args;\n }\n\n async onAccountChange() {\n await this.eip6963Wallet.features[\n \"eip6963:onAccountChange\"\n ].onAccountChange((account) => {\n // @ts-ignore-next-line\n this.emit(\"accountChange\", account);\n });\n }\n\n async onNetworkChange() {\n await this.eip6963Wallet.features[\"aptos:onNetworkChange\"].onNetworkChange(\n (newNetwork) => {\n this.emit(\"networkChange\", newNetwork);\n }\n );\n }\n}\n","import {\n APTOS_CHAINS,\n AptosFeatures,\n AptosOnAccountChangeInput,\n AptosOnNetworkChangeInput,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n UserResponse,\n UserResponseStatus,\n} from \"@aptos-labs/wallet-standard\";\nimport { AnyRawTransaction } from \"@aptos-labs/ts-sdk\";\nimport { ethers, TransactionRequest, version } from \"ethers\";\nimport {\n Eip6963BaseWallet,\n Eip6963Features,\n EIP6963ProviderInfo,\n Eip6963Wallets,\n Eip6963WalletUrls,\n} from \".\";\n\nexport const convertEip6963WalletToAptosWallet = (\n eip6963Wallet: EIP6963ProviderInfo\n) => {\n const wallet: Eip6963BaseWallet = {\n accounts: [],\n chains: APTOS_CHAINS,\n features: {\n ...APTOS_REQUIRED_FEATURES(eip6963Wallet),\n ...EIP6963_ADDITIONAL_FEATURES(eip6963Wallet),\n },\n icon: eip6963Wallet.info.icon,\n name: eip6963Wallet.info.name,\n url: Eip6963WalletUrls[eip6963Wallet.info.name as Eip6963Wallets],\n version: \"1.0.0\",\n };\n return wallet;\n};\n\nconst APTOS_REQUIRED_FEATURES = (\n eip6963Wallet: EIP6963ProviderInfo\n): AptosFeatures => {\n return {\n \"aptos:account\": {\n account: async () => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:connect\": {\n connect: async () => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:disconnect\": {\n disconnect: async () => {\n try {\n eip6963Wallet.provider.on(\"disconnect\", (error: any) => {\n console.error(\"EIP-6963 wallet disconnected\", error);\n });\n } catch (error) {\n throw new Error(\"Failed to disconnect\").message;\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:network\": {\n network: async () => {\n const chainId = await eip6963Wallet.provider.request({\n method: \"eth_chainId\",\n });\n /**\n * The returned chain ID is in hexadecimal, need to convert to decimal.\n */\n // TODO: create an internal chainId->name mapping database\n return { name: parseInt(chainId, 16) as any, chainId };\n },\n version: \"1.0.0\",\n },\n \"aptos:signMessage\": {\n signMessage: async (message: AptosSignMessageInput) => {\n const accounts = await eip6963Wallet.provider\n .request({ method: \"eth_requestAccounts\" })\n .catch(console.error);\n const signature = await eip6963Wallet.provider.request({\n method: \"personal_sign\",\n params: [message.message, accounts[0]],\n });\n const response: AptosSignMessageOutput = {\n // address?: string;\n // application?: string;\n // chainId?: number;\n fullMessage: message.message,\n message: message.message,\n nonce: message.nonce,\n prefix: \"APTOS\",\n signature: signature as any,\n };\n return {\n status: UserResponseStatus.APPROVED,\n args: response,\n };\n },\n version: \"1.0.0\",\n },\n \"aptos:signTransaction\": {\n signTransaction: async (transaction: AnyRawTransaction) => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:onAccountChange\": {\n onAccountChange: async (callback: AptosOnAccountChangeInput) => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:onNetworkChange\": {\n onNetworkChange: async (callback: AptosOnNetworkChangeInput) => {\n eip6963Wallet.provider.on(\"chainChanged\", (chainId: string) => {\n console.log(\"chainId\", chainId);\n callback({\n // TODO: create an internal chainId->name mapping database\n name: parseInt(chainId) as any,\n chainId: parseInt(chainId),\n });\n });\n },\n version: \"1.0.0\",\n },\n };\n};\n\nconst EIP6963_ADDITIONAL_FEATURES = (\n eip6963Wallet: EIP6963ProviderInfo\n): Eip6963Features => {\n const features: Eip6963Features = {\n \"eip6963:account\": {\n account: async () => {\n const accounts = await eip6963Wallet.provider\n .request({ method: \"eth_requestAccounts\" })\n .catch(console.error);\n return {\n address: accounts[0],\n publicKey: ethers.getBytes(accounts[0]),\n };\n },\n version: \"1.0.0\",\n },\n \"eip6963:connect\": {\n connect: async () => {\n try {\n const accounts = await eip6963Wallet.provider\n .request({ method: \"eth_requestAccounts\" })\n .catch((error: any) => {\n throw new Error(\"Error connecting to wallet\" + error).message;\n });\n\n return {\n args: {\n address: accounts[0],\n publicKey: ethers.getBytes(accounts[0]),\n },\n status: UserResponseStatus.APPROVED,\n };\n } catch (error) {\n if (\n error instanceof Error &&\n error.message.includes(\"refused connection\")\n ) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw error;\n }\n },\n version: \"1.0.0\",\n },\n \"eip6963:sendTransaction\": {\n sendTransaction: async (\n transaction: TransactionRequest,\n provider: ethers.BrowserProvider\n ): Promise> => {\n try {\n const signer = await provider.getSigner();\n if (!signer) {\n throw new Error(\"No signer found\");\n }\n const response = await signer.sendTransaction(transaction);\n const receipt = await response.wait();\n return {\n status: UserResponseStatus.APPROVED,\n args: receipt?.hash || \"\",\n };\n } catch (error: any) {\n if (error instanceof Error && error.message.includes(\"rejected\")) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw new Error(error).message;\n }\n },\n version: \"1.0.0\",\n },\n \"eip6963:onAccountChange\": {\n onAccountChange: async (\n callback: (newAccount: {\n address: string;\n publicKey: Uint8Array;\n }) => void\n ) => {\n eip6963Wallet.provider.on(\n \"accountsChanged\",\n (accounts: Array) => {\n const accountInfo = {\n address: accounts[0],\n publicKey: ethers.getBytes(accounts[0]),\n };\n callback(accountInfo);\n }\n );\n },\n version: \"1.0.0\",\n },\n };\n return features;\n};\n"],"mappings":"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","names":["Eip6963Wallets","import_wallet_standard","import_ethers","Eip6963Wallets"]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs deleted file mode 100644 index b29088d9..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs +++ /dev/null @@ -1,329 +0,0 @@ -// src/index.ts -import { - APTOS_CHAINS as APTOS_CHAINS2, - UserResponseStatus as UserResponseStatus2 -} from "@aptos-labs/wallet-standard"; -import { ethers as ethers2 } from "ethers"; -import { - AdapterWallet, - WalletReadyState -} from "@aptos-labs/wallet-adapter-aggregator-core"; - -// src/utils.ts -import { - APTOS_CHAINS, - UserResponseStatus -} from "@aptos-labs/wallet-standard"; -import { ethers } from "ethers"; -var convertEip6963WalletToAptosWallet = (eip6963Wallet) => { - const wallet = { - accounts: [], - chains: APTOS_CHAINS, - features: { - ...APTOS_REQUIRED_FEATURES(eip6963Wallet), - ...EIP6963_ADDITIONAL_FEATURES(eip6963Wallet) - }, - icon: eip6963Wallet.info.icon, - name: eip6963Wallet.info.name, - url: Eip6963WalletUrls[eip6963Wallet.info.name], - version: "1.0.0" - }; - return wallet; -}; -var APTOS_REQUIRED_FEATURES = (eip6963Wallet) => { - return { - "aptos:account": { - account: async () => { - throw new Error("Not yet implemented"); - }, - version: "1.0.0" - }, - "aptos:connect": { - connect: async () => { - throw new Error("Not yet implemented"); - }, - version: "1.0.0" - }, - "aptos:disconnect": { - disconnect: async () => { - try { - eip6963Wallet.provider.on("disconnect", (error) => { - console.error("EIP-6963 wallet disconnected", error); - }); - } catch (error) { - throw new Error("Failed to disconnect").message; - } - }, - version: "1.0.0" - }, - "aptos:network": { - network: async () => { - const chainId = await eip6963Wallet.provider.request({ - method: "eth_chainId" - }); - return { name: parseInt(chainId, 16), chainId }; - }, - version: "1.0.0" - }, - "aptos:signMessage": { - signMessage: async (message) => { - const accounts = await eip6963Wallet.provider.request({ method: "eth_requestAccounts" }).catch(console.error); - const signature = await eip6963Wallet.provider.request({ - method: "personal_sign", - params: [message.message, accounts[0]] - }); - const response = { - fullMessage: message.message, - message: message.message, - nonce: message.nonce, - prefix: "APTOS", - signature - }; - return { - status: UserResponseStatus.APPROVED, - args: response - }; - }, - version: "1.0.0" - }, - "aptos:signTransaction": { - signTransaction: async (transaction) => { - throw new Error("Not yet implemented"); - }, - version: "1.0.0" - }, - "aptos:onAccountChange": { - onAccountChange: async (callback) => { - throw new Error("Not yet implemented"); - }, - version: "1.0.0" - }, - "aptos:onNetworkChange": { - onNetworkChange: async (callback) => { - eip6963Wallet.provider.on("chainChanged", (chainId) => { - console.log("chainId", chainId); - callback({ - name: parseInt(chainId), - chainId: parseInt(chainId) - }); - }); - }, - version: "1.0.0" - } - }; -}; -var EIP6963_ADDITIONAL_FEATURES = (eip6963Wallet) => { - const features = { - "eip6963:account": { - account: async () => { - const accounts = await eip6963Wallet.provider.request({ method: "eth_requestAccounts" }).catch(console.error); - return { - address: accounts[0], - publicKey: ethers.getBytes(accounts[0]) - }; - }, - version: "1.0.0" - }, - "eip6963:connect": { - connect: async () => { - try { - const accounts = await eip6963Wallet.provider.request({ method: "eth_requestAccounts" }).catch((error) => { - throw new Error("Error connecting to wallet" + error).message; - }); - return { - args: { - address: accounts[0], - publicKey: ethers.getBytes(accounts[0]) - }, - status: UserResponseStatus.APPROVED - }; - } catch (error) { - if (error instanceof Error && error.message.includes("refused connection")) { - return { - status: UserResponseStatus.REJECTED - }; - } - throw error; - } - }, - version: "1.0.0" - }, - "eip6963:sendTransaction": { - sendTransaction: async (transaction, provider) => { - try { - const signer = await provider.getSigner(); - if (!signer) { - throw new Error("No signer found"); - } - const response = await signer.sendTransaction(transaction); - const receipt = await response.wait(); - return { - status: UserResponseStatus.APPROVED, - args: (receipt == null ? void 0 : receipt.hash) || "" - }; - } catch (error) { - if (error instanceof Error && error.message.includes("rejected")) { - return { - status: UserResponseStatus.REJECTED - }; - } - throw new Error(error).message; - } - }, - version: "1.0.0" - }, - "eip6963:onAccountChange": { - onAccountChange: async (callback) => { - eip6963Wallet.provider.on( - "accountsChanged", - (accounts) => { - const accountInfo = { - address: accounts[0], - publicKey: ethers.getBytes(accounts[0]) - }; - callback(accountInfo); - } - ); - }, - version: "1.0.0" - } - }; - return features; -}; - -// src/index.ts -var Eip6963Wallets2 = /* @__PURE__ */ ((Eip6963Wallets3) => { - Eip6963Wallets3["PhantomWallet"] = "Phantom"; - Eip6963Wallets3["MetaMaskWallet"] = "MetaMask"; - Eip6963Wallets3["BackpackWallet"] = "Backpack"; - Eip6963Wallets3["CoinbaseWallet"] = "Coinbase Wallet"; - Eip6963Wallets3["NightlyWallet"] = "Nightly"; - Eip6963Wallets3["RabbyWallet"] = "Rabby Wallet"; - return Eip6963Wallets3; -})(Eip6963Wallets2 || {}); -var Eip6963WalletUrls = { - ["Phantom" /* PhantomWallet */]: "https://phantom.app/", - ["MetaMask" /* MetaMaskWallet */]: "https://metamask.io/", - ["Backpack" /* BackpackWallet */]: "https://www.backpack.app/", - ["Coinbase Wallet" /* CoinbaseWallet */]: "https://www.coinbase.com/wallet", - ["Nightly" /* NightlyWallet */]: "https://nightly.app/", - ["Rabby Wallet" /* RabbyWallet */]: "https://rabby.io/" -}; -function fetchEthereumWallets() { - const wallets = []; - const convertedWallets = []; - const handleWalletDiscovery = (event) => { - const wallet = event.detail; - if (!wallets.some((w) => w.info.uuid === wallet.info.uuid)) { - wallets.push(wallet); - convertedWallets.push( - new Eip6963Wallet(convertEip6963WalletToAptosWallet(wallet), wallet) - ); - } - }; - window.addEventListener("eip6963:announceProvider", (event) => { - handleWalletDiscovery(event); - }); - window.dispatchEvent(new Event("eip6963:requestProvider")); - return convertedWallets; -} -var Eip6963Wallet = class extends AdapterWallet { - constructor(eip6963Wallet, eip6963WalletProvider) { - super(); - this.version = "1.0.0"; - this.accounts = []; - this.connected = false; - this.eip6963Wallet = eip6963Wallet; - this.eip6963WalletProvider = eip6963WalletProvider; - } - get icon() { - return this.eip6963Wallet.icon; - } - get name() { - return this.eip6963Wallet.name; - } - get url() { - return Eip6963WalletUrls[this.eip6963Wallet.name]; - } - get readyState() { - return WalletReadyState.Installed; - } - get chains() { - return APTOS_CHAINS2; - } - get isConnected() { - return this.connected; - } - async getAccount() { - return await this.eip6963Wallet.features["eip6963:account"].account(); - } - async getConnectedNetwork() { - return await this.eip6963Wallet.features["aptos:network"].network(); - } - async connect() { - const result = await this.eip6963Wallet.features["eip6963:connect"].connect(); - if (result.status === UserResponseStatus2.REJECTED) { - throw new Error("User rejected the request").message; - } - await this.onAccountChange(); - await this.onNetworkChange(); - this.provider = new ethers2.BrowserProvider( - await this.eip6963WalletProvider.provider, - "any" - ); - this.connected = true; - return result.args; - } - async disconnect() { - try { - if (!this.connected) { - return; - } - await this.eip6963Wallet.features["aptos:disconnect"].disconnect(); - this.connected = false; - } catch (error) { - throw new Error(error).message; - } - } - async signMessage(message) { - const result = await this.eip6963Wallet.features["aptos:signMessage"].signMessage( - message - ); - if (result.status === UserResponseStatus2.REJECTED) { - throw new Error("User rejected the request").message; - } - return result.args; - } - async signTransaction(transaction) { - throw new Error("Not implemented"); - } - async sendTransaction(transaction) { - if (!this.provider) { - throw new Error("Provider not connected"); - } - const result = await this.eip6963Wallet.features["eip6963:sendTransaction"].sendTransaction(transaction, this.provider); - if (result.status === UserResponseStatus2.REJECTED) { - throw new Error("User rejected the request").message; - } - return result.args; - } - async onAccountChange() { - await this.eip6963Wallet.features["eip6963:onAccountChange"].onAccountChange((account) => { - this.emit("accountChange", account); - }); - } - async onNetworkChange() { - await this.eip6963Wallet.features["aptos:onNetworkChange"].onNetworkChange( - (newNetwork) => { - this.emit("networkChange", newNetwork); - } - ); - } -}; -export { - Eip6963Wallet, - Eip6963WalletUrls, - Eip6963Wallets2 as Eip6963Wallets, - fetchEthereumWallets -}; -//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs.map b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs.map deleted file mode 100644 index 919b593e..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts","../src/utils.ts"],"sourcesContent":["import {\n APTOS_CHAINS,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosWallet,\n NetworkInfo,\n UserResponse,\n UserResponseStatus,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\nimport { ethers, TransactionRequest } from \"ethers\";\nimport {\n AdapterWallet,\n WalletReadyState,\n UsdcBalance,\n} from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { convertEip6963WalletToAptosWallet } from \"./utils\";\n\nexport type EIP6963ProviderInfo = {\n info: {\n uuid: string;\n name: string;\n icon: `data:image/svg+xml;base64,${string}`;\n rdns: string;\n };\n provider: any;\n};\n\nexport enum Eip6963Wallets {\n PhantomWallet = \"Phantom\",\n MetaMaskWallet = \"MetaMask\",\n BackpackWallet = \"Backpack\",\n CoinbaseWallet = \"Coinbase Wallet\",\n NightlyWallet = \"Nightly\",\n RabbyWallet = \"Rabby Wallet\",\n}\n\nexport const Eip6963WalletUrls: Record = {\n [Eip6963Wallets.PhantomWallet]: \"https://phantom.app/\",\n [Eip6963Wallets.MetaMaskWallet]: \"https://metamask.io/\",\n [Eip6963Wallets.BackpackWallet]: \"https://www.backpack.app/\",\n [Eip6963Wallets.CoinbaseWallet]: \"https://www.coinbase.com/wallet\",\n [Eip6963Wallets.NightlyWallet]: \"https://nightly.app/\",\n [Eip6963Wallets.RabbyWallet]: \"https://rabby.io/\",\n};\n\nexport function fetchEthereumWallets(): AdapterWallet[] {\n const wallets: EIP6963ProviderInfo[] = [];\n const convertedWallets: AdapterWallet[] = [];\n\n const handleWalletDiscovery = (event: CustomEvent) => {\n const wallet = event.detail as EIP6963ProviderInfo;\n\n // Avoid duplicates\n if (!wallets.some((w) => w.info.uuid === wallet.info.uuid)) {\n wallets.push(wallet);\n convertedWallets.push(\n new Eip6963Wallet(convertEip6963WalletToAptosWallet(wallet), wallet)\n );\n }\n };\n\n window.addEventListener(\"eip6963:announceProvider\", (event) => {\n handleWalletDiscovery(event as CustomEvent);\n });\n // Request wallets to announce themselves\n window.dispatchEvent(new Event(\"eip6963:requestProvider\"));\n\n return convertedWallets;\n}\n\nexport type Eip6963AccountInfo = {\n address: string;\n publicKey: Uint8Array;\n};\n\nexport type Eip6963Features = {\n \"eip6963:connect\": {\n connect: () => Promise>;\n version: string;\n };\n \"eip6963:account\": {\n account: () => Promise;\n version: string;\n };\n \"eip6963:sendTransaction\": {\n sendTransaction: (\n transaction: TransactionRequest,\n provider: ethers.BrowserProvider\n ) => Promise>;\n version: string;\n };\n \"eip6963:onAccountChange\": {\n onAccountChange: (\n callback: (newAccount: Eip6963AccountInfo) => void\n ) => void;\n version: string;\n };\n};\n\nexport type Eip6963BaseWallet = AptosWallet & {\n features: Eip6963Features;\n};\n\nexport class Eip6963Wallet extends AdapterWallet<\n Eip6963AccountInfo,\n NetworkInfo,\n Eip6963AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n TransactionRequest,\n TransactionRequest,\n Eip6963AccountInfo,\n NetworkInfo,\n TransactionRequest,\n string\n> {\n readonly eip6963Wallet: Eip6963BaseWallet;\n readonly eip6963WalletProvider: EIP6963ProviderInfo;\n readonly version = \"1.0.0\";\n private provider?: ethers.BrowserProvider;\n\n accounts: WalletAccount[] = [];\n\n connected: boolean = false;\n\n constructor(\n eip6963Wallet: Eip6963BaseWallet,\n eip6963WalletProvider: EIP6963ProviderInfo\n ) {\n super();\n this.eip6963Wallet = eip6963Wallet;\n this.eip6963WalletProvider = eip6963WalletProvider;\n }\n\n get icon() {\n return this.eip6963Wallet.icon;\n }\n get name() {\n return this.eip6963Wallet.name;\n }\n get url() {\n return Eip6963WalletUrls[this.eip6963Wallet.name as Eip6963Wallets];\n }\n get readyState() {\n return WalletReadyState.Installed;\n }\n get chains() {\n return APTOS_CHAINS;\n }\n\n get isConnected() {\n return this.connected;\n }\n\n async getAccount() {\n return await this.eip6963Wallet.features[\"eip6963:account\"].account();\n }\n\n async getConnectedNetwork() {\n return await this.eip6963Wallet.features[\"aptos:network\"].network();\n }\n\n async connect() {\n const result =\n await this.eip6963Wallet.features[\"eip6963:connect\"].connect();\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n await this.onAccountChange();\n await this.onNetworkChange();\n this.provider = new ethers.BrowserProvider(\n (await this.eip6963WalletProvider.provider) as ethers.Eip1193Provider,\n \"any\"\n );\n this.connected = true;\n return result.args;\n }\n\n async disconnect() {\n try {\n if (!this.connected) {\n return;\n }\n await this.eip6963Wallet.features[\"aptos:disconnect\"].disconnect();\n this.connected = false;\n } catch (error: any) {\n throw new Error(error).message;\n }\n }\n\n async signMessage(message: AptosSignMessageInput) {\n const result =\n await this.eip6963Wallet.features[\"aptos:signMessage\"].signMessage(\n message\n );\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n return result.args;\n }\n\n async signTransaction(\n transaction: TransactionRequest\n ): Promise {\n throw new Error(\"Not implemented\");\n }\n\n async sendTransaction(transaction: TransactionRequest): Promise {\n if (!this.provider) {\n throw new Error(\"Provider not connected\");\n }\n const result = await this.eip6963Wallet.features[\n \"eip6963:sendTransaction\"\n ].sendTransaction(transaction, this.provider);\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n return result.args;\n }\n\n async onAccountChange() {\n await this.eip6963Wallet.features[\n \"eip6963:onAccountChange\"\n ].onAccountChange((account) => {\n // @ts-ignore-next-line\n this.emit(\"accountChange\", account);\n });\n }\n\n async onNetworkChange() {\n await this.eip6963Wallet.features[\"aptos:onNetworkChange\"].onNetworkChange(\n (newNetwork) => {\n this.emit(\"networkChange\", newNetwork);\n }\n );\n }\n}\n","import {\n APTOS_CHAINS,\n AptosFeatures,\n AptosOnAccountChangeInput,\n AptosOnNetworkChangeInput,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n UserResponse,\n UserResponseStatus,\n} from \"@aptos-labs/wallet-standard\";\nimport { AnyRawTransaction } from \"@aptos-labs/ts-sdk\";\nimport { ethers, TransactionRequest, version } from \"ethers\";\nimport {\n Eip6963BaseWallet,\n Eip6963Features,\n EIP6963ProviderInfo,\n Eip6963Wallets,\n Eip6963WalletUrls,\n} from \".\";\n\nexport const convertEip6963WalletToAptosWallet = (\n eip6963Wallet: EIP6963ProviderInfo\n) => {\n const wallet: Eip6963BaseWallet = {\n accounts: [],\n chains: APTOS_CHAINS,\n features: {\n ...APTOS_REQUIRED_FEATURES(eip6963Wallet),\n ...EIP6963_ADDITIONAL_FEATURES(eip6963Wallet),\n },\n icon: eip6963Wallet.info.icon,\n name: eip6963Wallet.info.name,\n url: Eip6963WalletUrls[eip6963Wallet.info.name as Eip6963Wallets],\n version: \"1.0.0\",\n };\n return wallet;\n};\n\nconst APTOS_REQUIRED_FEATURES = (\n eip6963Wallet: EIP6963ProviderInfo\n): AptosFeatures => {\n return {\n \"aptos:account\": {\n account: async () => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:connect\": {\n connect: async () => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:disconnect\": {\n disconnect: async () => {\n try {\n eip6963Wallet.provider.on(\"disconnect\", (error: any) => {\n console.error(\"EIP-6963 wallet disconnected\", error);\n });\n } catch (error) {\n throw new Error(\"Failed to disconnect\").message;\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:network\": {\n network: async () => {\n const chainId = await eip6963Wallet.provider.request({\n method: \"eth_chainId\",\n });\n /**\n * The returned chain ID is in hexadecimal, need to convert to decimal.\n */\n // TODO: create an internal chainId->name mapping database\n return { name: parseInt(chainId, 16) as any, chainId };\n },\n version: \"1.0.0\",\n },\n \"aptos:signMessage\": {\n signMessage: async (message: AptosSignMessageInput) => {\n const accounts = await eip6963Wallet.provider\n .request({ method: \"eth_requestAccounts\" })\n .catch(console.error);\n const signature = await eip6963Wallet.provider.request({\n method: \"personal_sign\",\n params: [message.message, accounts[0]],\n });\n const response: AptosSignMessageOutput = {\n // address?: string;\n // application?: string;\n // chainId?: number;\n fullMessage: message.message,\n message: message.message,\n nonce: message.nonce,\n prefix: \"APTOS\",\n signature: signature as any,\n };\n return {\n status: UserResponseStatus.APPROVED,\n args: response,\n };\n },\n version: \"1.0.0\",\n },\n \"aptos:signTransaction\": {\n signTransaction: async (transaction: AnyRawTransaction) => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:onAccountChange\": {\n onAccountChange: async (callback: AptosOnAccountChangeInput) => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:onNetworkChange\": {\n onNetworkChange: async (callback: AptosOnNetworkChangeInput) => {\n eip6963Wallet.provider.on(\"chainChanged\", (chainId: string) => {\n console.log(\"chainId\", chainId);\n callback({\n // TODO: create an internal chainId->name mapping database\n name: parseInt(chainId) as any,\n chainId: parseInt(chainId),\n });\n });\n },\n version: \"1.0.0\",\n },\n };\n};\n\nconst EIP6963_ADDITIONAL_FEATURES = (\n eip6963Wallet: EIP6963ProviderInfo\n): Eip6963Features => {\n const features: Eip6963Features = {\n \"eip6963:account\": {\n account: async () => {\n const accounts = await eip6963Wallet.provider\n .request({ method: \"eth_requestAccounts\" })\n .catch(console.error);\n return {\n address: accounts[0],\n publicKey: ethers.getBytes(accounts[0]),\n };\n },\n version: \"1.0.0\",\n },\n \"eip6963:connect\": {\n connect: async () => {\n try {\n const accounts = await eip6963Wallet.provider\n .request({ method: \"eth_requestAccounts\" })\n .catch((error: any) => {\n throw new Error(\"Error connecting to wallet\" + error).message;\n });\n\n return {\n args: {\n address: accounts[0],\n publicKey: ethers.getBytes(accounts[0]),\n },\n status: UserResponseStatus.APPROVED,\n };\n } catch (error) {\n if (\n error instanceof Error &&\n error.message.includes(\"refused connection\")\n ) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw error;\n }\n },\n version: \"1.0.0\",\n },\n \"eip6963:sendTransaction\": {\n sendTransaction: async (\n transaction: TransactionRequest,\n provider: ethers.BrowserProvider\n ): Promise> => {\n try {\n const signer = await provider.getSigner();\n if (!signer) {\n throw new Error(\"No signer found\");\n }\n const response = await signer.sendTransaction(transaction);\n const receipt = await response.wait();\n return {\n status: UserResponseStatus.APPROVED,\n args: receipt?.hash || \"\",\n };\n } catch (error: any) {\n if (error instanceof Error && error.message.includes(\"rejected\")) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw new Error(error).message;\n }\n },\n version: \"1.0.0\",\n },\n \"eip6963:onAccountChange\": {\n onAccountChange: async (\n callback: (newAccount: {\n address: string;\n publicKey: Uint8Array;\n }) => void\n ) => {\n eip6963Wallet.provider.on(\n \"accountsChanged\",\n (accounts: Array) => {\n const accountInfo = {\n address: accounts[0],\n publicKey: ethers.getBytes(accounts[0]),\n };\n callback(accountInfo);\n }\n );\n },\n version: \"1.0.0\",\n },\n };\n return features;\n};\n"],"mappings":"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","names":["APTOS_CHAINS","UserResponseStatus","ethers","Eip6963Wallets","APTOS_CHAINS","UserResponseStatus","ethers"]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts deleted file mode 100644 index 7621b6ea..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { AptosFeatures, WalletAccount } from "@aptos-labs/wallet-standard"; -import { AdapterWallet, WalletReadyState } from "@aptos-labs/wallet-adapter-aggregator-core"; -export type EIP6963ProviderInfo = { - info: { - uuid: string; - name: string; - icon: `data:image/svg+xml;base64,${string}`; - rdns: string; - }; - provider: any; -}; -export declare function fetchEthereumWallets(): AdapterWallet[]; -export declare class Eip6963Wallet extends AdapterWallet { - readonly eip6963Wallet: EIP6963ProviderInfo; - private provider?; - readonly version = "1.0.0"; - accounts: WalletAccount[]; - constructor(eip6963Wallet: EIP6963ProviderInfo); - get icon(): `data:image/svg+xml;base64,${string}`; - get name(): string; - get url(): string; - get readyState(): WalletReadyState; - get chains(): readonly ["aptos:devnet", "aptos:testnet", "aptos:localnet", "aptos:mainnet"]; - get features(): AptosFeatures; -} -//# sourceMappingURL=index2.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts.map deleted file mode 100644 index 83dfb3b1..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/index2.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index2.d.ts","sourceRoot":"","sources":["../src/index2.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EAKb,aAAa,EACd,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,4CAA4C,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,6BAA6B,MAAM,EAAE,CAAC;QAC5C,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE,GAAG,CAAC;CACf,CAAC;AAoBF,wBAAgB,oBAAoB,IAAI,aAAa,EAAE,CAqBtD;AAED,qBAAa,aAAc,SAAQ,aAAa;IAC9C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,CAAyB;IAE1C,QAAQ,CAAC,OAAO,WAAW;IAE3B,QAAQ,EAAE,aAAa,EAAE,CAAM;gBAEnB,aAAa,EAAE,mBAAmB;IAK9C,IAAI,IAAI,0CAEP;IACD,IAAI,IAAI,WAEP;IACD,IAAI,GAAG,WAEN;IACD,IAAI,UAAU,qBAEb;IACD,IAAI,MAAM,kFAET;IAED,IAAI,QAAQ,IAAI,aAAa,CAwJ5B;CACF"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts deleted file mode 100644 index c87d4e09..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Eip6963BaseWallet, EIP6963ProviderInfo } from "."; -export declare const convertEip6963WalletToAptosWallet: (eip6963Wallet: EIP6963ProviderInfo) => Eip6963BaseWallet; -//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts.map deleted file mode 100644 index 78c966c9..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/eip6963/dist/utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,iBAAiB,EAEjB,mBAAmB,EAGpB,MAAM,GAAG,CAAC;AAEX,eAAO,MAAM,iCAAiC,kBAC7B,mBAAmB,sBAenC,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/package.json b/packages/cross-chain/wallet-adapter-aggregator/eip6963/package.json new file mode 100644 index 00000000..af8ef8fd --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/package.json @@ -0,0 +1,56 @@ +{ + "name": "@aptos-labs/wallet-adapter-aggregator-eip6963", + "version": "0.0.1", + "description": "Aptos Wallet Adapter Aggregator for EIP-6963", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "license": "Apache-2.0", + "exports": { + "require": "./dist/index.js", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + }, + "repository": { + "type": "git", + "url": "https://github.com/aptos-labs/aptos-wallet-adapter.git" + }, + "homepage": "https://github.com/aptos-labs/aptos-wallet-adapter", + "bugs": { + "url": "https://github.com/aptos-labs/aptos-wallet-adapter/issues" + }, + "author": "aptoslabs.com", + "keywords": [ + "Aptos", + "Aptos Labs", + "Wallet", + "Wallet Adapter", + "Wallet Adapter Aggregator", + "Ethereum", + "EIP-6963" + ], + "scripts": { + "build:bundle": "tsup src/index.ts --format esm,cjs --sourcemap", + "build:declarations": "tsc --emitDeclarationOnly --declaration --declarationMap", + "build": "pnpm build:bundle && pnpm build:declarations", + "dev": "tsup src/index.ts --format esm,cjs --watch", + "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", + "lint": "TIMING=1 eslint \"src/**/*.ts*\"" + }, + "devDependencies": { + "@aptos-labs/wallet-adapter-tsconfig": "workspace:*", + "eslint": "^8.15.0", + "tsup": "^5.10.1", + "typescript": "^5.7.3" + }, + "dependencies": { + "@aptos-labs/wallet-adapter-aggregator-core": "workspace:*", + "@aptos-labs/ts-sdk": "^1.35.0", + "@aptos-labs/wallet-standard": "^0.3.0", + "ethers": "^6.13.5" + }, + "files": [ + "dist", + "src" + ] +} diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/index.ts b/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/index.ts new file mode 100644 index 00000000..fe1e6f9b --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/index.ts @@ -0,0 +1,238 @@ +import { + APTOS_CHAINS, + AptosSignMessageInput, + AptosSignMessageOutput, + AptosWallet, + NetworkInfo, + UserResponse, + UserResponseStatus, + WalletAccount, +} from "@aptos-labs/wallet-standard"; +import { ethers, TransactionRequest } from "ethers"; +import { + AdapterWallet, + WalletReadyState, + UsdcBalance, +} from "@aptos-labs/wallet-adapter-aggregator-core"; +import { convertEip6963WalletToAptosWallet } from "./utils"; + +export type EIP6963ProviderInfo = { + info: { + uuid: string; + name: string; + icon: `data:image/svg+xml;base64,${string}`; + rdns: string; + }; + provider: any; +}; + +export enum Eip6963Wallets { + PhantomWallet = "Phantom", + MetaMaskWallet = "MetaMask", + BackpackWallet = "Backpack", + CoinbaseWallet = "Coinbase Wallet", + NightlyWallet = "Nightly", + RabbyWallet = "Rabby Wallet", +} + +export const Eip6963WalletUrls: Record = { + [Eip6963Wallets.PhantomWallet]: "https://phantom.app/", + [Eip6963Wallets.MetaMaskWallet]: "https://metamask.io/", + [Eip6963Wallets.BackpackWallet]: "https://www.backpack.app/", + [Eip6963Wallets.CoinbaseWallet]: "https://www.coinbase.com/wallet", + [Eip6963Wallets.NightlyWallet]: "https://nightly.app/", + [Eip6963Wallets.RabbyWallet]: "https://rabby.io/", +}; + +export function fetchEthereumWallets(): AdapterWallet[] { + const wallets: EIP6963ProviderInfo[] = []; + const convertedWallets: AdapterWallet[] = []; + + const handleWalletDiscovery = (event: CustomEvent) => { + const wallet = event.detail as EIP6963ProviderInfo; + + // Avoid duplicates + if (!wallets.some((w) => w.info.uuid === wallet.info.uuid)) { + wallets.push(wallet); + convertedWallets.push( + new Eip6963Wallet(convertEip6963WalletToAptosWallet(wallet), wallet) + ); + } + }; + + window.addEventListener("eip6963:announceProvider", (event) => { + handleWalletDiscovery(event as CustomEvent); + }); + // Request wallets to announce themselves + window.dispatchEvent(new Event("eip6963:requestProvider")); + + return convertedWallets; +} + +export type Eip6963AccountInfo = { + address: string; + publicKey: Uint8Array; +}; + +export type Eip6963Features = { + "eip6963:connect": { + connect: () => Promise>; + version: string; + }; + "eip6963:account": { + account: () => Promise; + version: string; + }; + "eip6963:sendTransaction": { + sendTransaction: ( + transaction: TransactionRequest, + provider: ethers.BrowserProvider + ) => Promise>; + version: string; + }; + "eip6963:onAccountChange": { + onAccountChange: ( + callback: (newAccount: Eip6963AccountInfo) => void + ) => void; + version: string; + }; +}; + +export type Eip6963BaseWallet = AptosWallet & { + features: Eip6963Features; +}; + +export class Eip6963Wallet extends AdapterWallet< + Eip6963AccountInfo, + NetworkInfo, + Eip6963AccountInfo, + AptosSignMessageInput, + AptosSignMessageOutput, + TransactionRequest, + TransactionRequest, + Eip6963AccountInfo, + NetworkInfo, + TransactionRequest, + string +> { + readonly eip6963Wallet: Eip6963BaseWallet; + readonly eip6963WalletProvider: EIP6963ProviderInfo; + readonly version = "1.0.0"; + private provider?: ethers.BrowserProvider; + + accounts: WalletAccount[] = []; + + connected: boolean = false; + + constructor( + eip6963Wallet: Eip6963BaseWallet, + eip6963WalletProvider: EIP6963ProviderInfo + ) { + super(); + this.eip6963Wallet = eip6963Wallet; + this.eip6963WalletProvider = eip6963WalletProvider; + } + + get icon() { + return this.eip6963Wallet.icon; + } + get name() { + return this.eip6963Wallet.name; + } + get url() { + return Eip6963WalletUrls[this.eip6963Wallet.name as Eip6963Wallets]; + } + get readyState() { + return WalletReadyState.Installed; + } + get chains() { + return APTOS_CHAINS; + } + + get isConnected() { + return this.connected; + } + + async getAccount() { + return await this.eip6963Wallet.features["eip6963:account"].account(); + } + + async getConnectedNetwork() { + return await this.eip6963Wallet.features["aptos:network"].network(); + } + + async connect() { + const result = + await this.eip6963Wallet.features["eip6963:connect"].connect(); + if (result.status === UserResponseStatus.REJECTED) { + throw new Error("User rejected the request").message; + } + await this.onAccountChange(); + await this.onNetworkChange(); + this.provider = new ethers.BrowserProvider( + (await this.eip6963WalletProvider.provider) as ethers.Eip1193Provider, + "any" + ); + this.connected = true; + return result.args; + } + + async disconnect() { + try { + if (!this.connected) { + return; + } + await this.eip6963Wallet.features["aptos:disconnect"].disconnect(); + this.connected = false; + } catch (error: any) { + throw new Error(error).message; + } + } + + async signMessage(message: AptosSignMessageInput) { + const result = + await this.eip6963Wallet.features["aptos:signMessage"].signMessage( + message + ); + if (result.status === UserResponseStatus.REJECTED) { + throw new Error("User rejected the request").message; + } + return result.args; + } + + async signTransaction( + transaction: TransactionRequest + ): Promise { + throw new Error("Not implemented"); + } + + async sendTransaction(transaction: TransactionRequest): Promise { + if (!this.provider) { + throw new Error("Provider not connected"); + } + const result = await this.eip6963Wallet.features[ + "eip6963:sendTransaction" + ].sendTransaction(transaction, this.provider); + if (result.status === UserResponseStatus.REJECTED) { + throw new Error("User rejected the request").message; + } + return result.args; + } + + async onAccountChange() { + await this.eip6963Wallet.features[ + "eip6963:onAccountChange" + ].onAccountChange((account) => { + // @ts-ignore-next-line + this.emit("accountChange", account); + }); + } + + async onNetworkChange() { + await this.eip6963Wallet.features["aptos:onNetworkChange"].onNetworkChange( + (newNetwork) => { + this.emit("networkChange", newNetwork); + } + ); + } +} diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/utils.ts b/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/utils.ts new file mode 100644 index 00000000..8a8f296b --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/utils.ts @@ -0,0 +1,229 @@ +import { + APTOS_CHAINS, + AptosFeatures, + AptosOnAccountChangeInput, + AptosOnNetworkChangeInput, + AptosSignMessageInput, + AptosSignMessageOutput, + UserResponse, + UserResponseStatus, +} from "@aptos-labs/wallet-standard"; +import { AnyRawTransaction } from "@aptos-labs/ts-sdk"; +import { ethers, TransactionRequest, version } from "ethers"; +import { + Eip6963BaseWallet, + Eip6963Features, + EIP6963ProviderInfo, + Eip6963Wallets, + Eip6963WalletUrls, +} from "."; + +export const convertEip6963WalletToAptosWallet = ( + eip6963Wallet: EIP6963ProviderInfo +) => { + const wallet: Eip6963BaseWallet = { + accounts: [], + chains: APTOS_CHAINS, + features: { + ...APTOS_REQUIRED_FEATURES(eip6963Wallet), + ...EIP6963_ADDITIONAL_FEATURES(eip6963Wallet), + }, + icon: eip6963Wallet.info.icon, + name: eip6963Wallet.info.name, + url: Eip6963WalletUrls[eip6963Wallet.info.name as Eip6963Wallets], + version: "1.0.0", + }; + return wallet; +}; + +const APTOS_REQUIRED_FEATURES = ( + eip6963Wallet: EIP6963ProviderInfo +): AptosFeatures => { + return { + "aptos:account": { + account: async () => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0", + }, + "aptos:connect": { + connect: async () => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0", + }, + "aptos:disconnect": { + disconnect: async () => { + try { + eip6963Wallet.provider.on("disconnect", (error: any) => { + console.error("EIP-6963 wallet disconnected", error); + }); + } catch (error) { + throw new Error("Failed to disconnect").message; + } + }, + version: "1.0.0", + }, + "aptos:network": { + network: async () => { + const chainId = await eip6963Wallet.provider.request({ + method: "eth_chainId", + }); + /** + * The returned chain ID is in hexadecimal, need to convert to decimal. + */ + // TODO: create an internal chainId->name mapping database + return { name: parseInt(chainId, 16) as any, chainId }; + }, + version: "1.0.0", + }, + "aptos:signMessage": { + signMessage: async (message: AptosSignMessageInput) => { + const accounts = await eip6963Wallet.provider + .request({ method: "eth_requestAccounts" }) + .catch(console.error); + const signature = await eip6963Wallet.provider.request({ + method: "personal_sign", + params: [message.message, accounts[0]], + }); + const response: AptosSignMessageOutput = { + // address?: string; + // application?: string; + // chainId?: number; + fullMessage: message.message, + message: message.message, + nonce: message.nonce, + prefix: "APTOS", + signature: signature as any, + }; + return { + status: UserResponseStatus.APPROVED, + args: response, + }; + }, + version: "1.0.0", + }, + "aptos:signTransaction": { + signTransaction: async (transaction: AnyRawTransaction) => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0", + }, + "aptos:onAccountChange": { + onAccountChange: async (callback: AptosOnAccountChangeInput) => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0", + }, + "aptos:onNetworkChange": { + onNetworkChange: async (callback: AptosOnNetworkChangeInput) => { + eip6963Wallet.provider.on("chainChanged", (chainId: string) => { + console.log("chainId", chainId); + callback({ + // TODO: create an internal chainId->name mapping database + name: parseInt(chainId) as any, + chainId: parseInt(chainId), + }); + }); + }, + version: "1.0.0", + }, + }; +}; + +const EIP6963_ADDITIONAL_FEATURES = ( + eip6963Wallet: EIP6963ProviderInfo +): Eip6963Features => { + const features: Eip6963Features = { + "eip6963:account": { + account: async () => { + const accounts = await eip6963Wallet.provider + .request({ method: "eth_requestAccounts" }) + .catch(console.error); + return { + address: accounts[0], + publicKey: ethers.getBytes(accounts[0]), + }; + }, + version: "1.0.0", + }, + "eip6963:connect": { + connect: async () => { + try { + const accounts = await eip6963Wallet.provider + .request({ method: "eth_requestAccounts" }) + .catch((error: any) => { + throw new Error("Error connecting to wallet" + error).message; + }); + + return { + args: { + address: accounts[0], + publicKey: ethers.getBytes(accounts[0]), + }, + status: UserResponseStatus.APPROVED, + }; + } catch (error) { + if ( + error instanceof Error && + error.message.includes("refused connection") + ) { + return { + status: UserResponseStatus.REJECTED, + }; + } + throw error; + } + }, + version: "1.0.0", + }, + "eip6963:sendTransaction": { + sendTransaction: async ( + transaction: TransactionRequest, + provider: ethers.BrowserProvider + ): Promise> => { + try { + const signer = await provider.getSigner(); + if (!signer) { + throw new Error("No signer found"); + } + const response = await signer.sendTransaction(transaction); + const receipt = await response.wait(); + return { + status: UserResponseStatus.APPROVED, + args: receipt?.hash || "", + }; + } catch (error: any) { + if (error instanceof Error && error.message.includes("rejected")) { + return { + status: UserResponseStatus.REJECTED, + }; + } + throw new Error(error).message; + } + }, + version: "1.0.0", + }, + "eip6963:onAccountChange": { + onAccountChange: async ( + callback: (newAccount: { + address: string; + publicKey: Uint8Array; + }) => void + ) => { + eip6963Wallet.provider.on( + "accountsChanged", + (accounts: Array) => { + const accountInfo = { + address: accounts[0], + publicKey: ethers.getBytes(accounts[0]), + }; + callback(accountInfo); + } + ); + }, + version: "1.0.0", + }, + }; + return features; +}; diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/tsconfig.json b/packages/cross-chain/wallet-adapter-aggregator/eip6963/tsconfig.json new file mode 100644 index 00000000..3d316f5b --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@aptos-labs/wallet-adapter-tsconfig/react-library.json", + "include": ["."], + "exclude": ["dist", "build", "node_modules"], + "compilerOptions": { + "rootDir": "src", + "outDir": "dist" + } +} diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/.eslintrc.js b/packages/cross-chain/wallet-adapter-aggregator/solana/.eslintrc.js new file mode 100644 index 00000000..9ca9f6a5 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: ["@aptos-labs/eslint-config-adapter"], +}; diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/.gitignore b/packages/cross-chain/wallet-adapter-aggregator/solana/.gitignore new file mode 100644 index 00000000..53c37a16 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/.gitignore @@ -0,0 +1 @@ +dist \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/.npmignore b/packages/cross-chain/wallet-adapter-aggregator/solana/.npmignore new file mode 100644 index 00000000..1087c0ce --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/.npmignore @@ -0,0 +1,4 @@ +node_modules +.turbo +.eslintrc.js +tsconfig.json \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts deleted file mode 100644 index d4d4d127..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { AccountInfo, AptosSignMessageInput, AptosSignMessageOutput, AptosWallet, NetworkInfo, UserResponse, WalletAccount } from "@aptos-labs/wallet-standard"; -import { Transaction } from "@solana/web3.js"; -import { AdapterWallet, WalletReadyState } from "@aptos-labs/wallet-adapter-aggregator-core"; -export type SolanaUnsignedTransaction = Transaction | Transaction[]; -export type SolanaSignedTransaction = Transaction | Transaction[]; -export declare function getSolanaStandardWallets(): AdapterWallet[]; -export type SolanaFeatures = { - "solana:signTransaction": { - signTransaction: (transaction: Transaction) => Promise>; - version: string; - }; -}; -export type SolanaBaseWallet = AptosWallet & { - features: SolanaFeatures; -}; -export declare class SolanaWallet extends AdapterWallet { - readonly solanaWallet: SolanaBaseWallet; - readonly version = "1.0.0"; - accounts: WalletAccount[]; - connected: boolean; - constructor(solanaWallet: SolanaBaseWallet); - get icon(): `data:image/svg+xml;base64,${string}` | `data:image/webp;base64,${string}` | `data:image/png;base64,${string}` | `data:image/gif;base64,${string}`; - get name(): string; - get url(): string; - get readyState(): WalletReadyState; - get chains(): readonly ["aptos:devnet", "aptos:testnet", "aptos:localnet", "aptos:mainnet"]; - get isConnected(): boolean; - getAccount(): Promise; - getConnectedNetwork(): Promise; - connect(): Promise; - disconnect(): Promise; - signMessage(message: AptosSignMessageInput): Promise; - signTransaction(transaction: Transaction): Promise; - onAccountChange(): Promise; - onNetworkChange(callback: (network: NetworkInfo) => void): Promise; -} -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts.map deleted file mode 100644 index 39eded43..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,YAAY,EAEZ,aAAa,EACd,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,4CAA4C,CAAC;AAGpD,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC;AACpE,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC;AAElE,wBAAgB,wBAAwB,IAAI,aAAa,EAAE,CAa1D;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,wBAAwB,EAAE;QACxB,eAAe,EAAE,CACf,WAAW,EAAE,WAAW,KACrB,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAC3C,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,qBAAa,YAAa,SAAQ,aAAa,CAC7C,WAAW,EACX,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,CACZ;IACC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,OAAO,WAAW;IAE3B,QAAQ,EAAE,aAAa,EAAE,CAAM;IAE/B,SAAS,EAAE,OAAO,CAAS;gBAEf,YAAY,EAAE,gBAAgB;IAK1C,IAAI,IAAI,uJAEP;IACD,IAAI,IAAI,WAEP;IACD,IAAI,GAAG,WAEN;IAED,IAAI,UAAU,qBAEb;IAED,IAAI,MAAM,kFAET;IAED,IAAI,WAAW,YAEd;IAEK,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAIlC,mBAAmB;IAInB,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC;IAU/B,UAAU;IAQV,WAAW,CAAC,OAAO,EAAE,qBAAqB;IAW1C,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAW/D,eAAe;IAQf,eAAe,CACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GACvC,OAAO,CAAC,IAAI,CAAC;CAKjB"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js deleted file mode 100644 index 5ab90525..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js +++ /dev/null @@ -1,292 +0,0 @@ -"use strict"; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// src/index.ts -var src_exports = {}; -__export(src_exports, { - SolanaWallet: () => SolanaWallet, - getSolanaStandardWallets: () => getSolanaStandardWallets -}); -module.exports = __toCommonJS(src_exports); -var import_wallet_standard2 = require("@aptos-labs/wallet-standard"); -var import_wallet_adapter_base2 = require("@solana/wallet-adapter-base"); -var import_app = require("@wallet-standard/app"); -var import_wallet_standard_wallet_adapter_base = require("@solana/wallet-standard-wallet-adapter-base"); -var import_wallet_adapter_aggregator_core = require("@aptos-labs/wallet-adapter-aggregator-core"); - -// src/utils.ts -var import_ts_sdk = require("@aptos-labs/ts-sdk"); -var import_wallet_standard = require("@aptos-labs/wallet-standard"); -var import_web3 = require("@solana/web3.js"); -var import_wallet_adapter_base = require("@solana/wallet-adapter-base"); -var deriveAccountInfoFromSolanaPublicKey = (solanaPublicKey) => { - const publicKey = new import_ts_sdk.Ed25519PublicKey(solanaPublicKey.toBytes()); - const address = publicKey.authKey().derivedAddress(); - return new import_wallet_standard.AccountInfo({ address, publicKey }); -}; -var convertSolanaWalletToAptosWallet = (solanaWallet) => { - const wallet = { - accounts: [], - chains: import_wallet_standard.APTOS_CHAINS, - features: { - ...APTOS_REQUIRED_FEATURES(solanaWallet), - ...SOLANA_ADDITIONAL_FEATURES(solanaWallet) - }, - icon: solanaWallet.icon, - name: solanaWallet.name, - url: solanaWallet.url, - version: "1.0.0" - }; - return wallet; -}; -var APTOS_REQUIRED_FEATURES = (solanaWallet) => { - return { - "aptos:account": { - account: async () => { - if (!solanaWallet.publicKey) { - throw new Error("Disconnected"); - } - return deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey); - }, - version: "1.0.0" - }, - "aptos:connect": { - connect: async () => { - try { - await solanaWallet.connect(); - if (!solanaWallet.publicKey) { - return { status: import_wallet_standard.UserResponseStatus.REJECTED }; - } - return { - args: deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey), - status: import_wallet_standard.UserResponseStatus.APPROVED - }; - } catch (e) { - console.log("e", e); - if (e instanceof import_wallet_adapter_base.WalletConnectionError) { - return { - status: import_wallet_standard.UserResponseStatus.REJECTED - }; - } - throw e; - } - }, - version: "1.0.0" - }, - "aptos:disconnect": { - disconnect: async () => { - try { - await solanaWallet.disconnect(); - } catch (e) { - throw new Error("Failed to disconnect"); - } - }, - version: "1.0.0" - }, - "aptos:network": { - network: async () => { - throw new Error( - "Fetch network info not supported by Solana wallet adapter" - ); - }, - version: "1.0.0" - }, - "aptos:signMessage": { - signMessage: async (message) => { - if (!solanaWallet.signMessage) - throw new Error("Not supported"); - try { - const messageToSign = new TextEncoder().encode(message.message); - const signature = await solanaWallet.signMessage(messageToSign); - const response = { - fullMessage: message.message, - message: message.message, - nonce: message.nonce, - prefix: "APTOS", - signature: new import_ts_sdk.Ed25519Signature(signature) - }; - return { - status: import_wallet_standard.UserResponseStatus.APPROVED, - args: response - }; - } catch (e) { - if (e instanceof Error && e.message.includes("rejected")) { - return { - status: import_wallet_standard.UserResponseStatus.REJECTED - }; - } - throw e; - } - }, - version: "1.0.0" - }, - "aptos:signTransaction": { - signTransaction: async (transaction) => { - throw new Error("Not yet implemented"); - }, - version: "1.0.0" - }, - "aptos:onAccountChange": { - onAccountChange: async (callback) => { - if (solanaWallet.wallet.features["standard:events"]) { - solanaWallet.wallet.features["standard:events"].on( - "change", - (account) => { - if (!account.accounts || account.accounts.length === 0) { - return; - } - const accountInfo = deriveAccountInfoFromSolanaPublicKey( - new import_web3.PublicKey(account.accounts[0].publicKey) - ); - callback(accountInfo); - } - ); - } - }, - version: "1.0.0" - }, - "aptos:onNetworkChange": { - onNetworkChange: async () => { - throw new Error( - "onNetworkChange not yet implemented in solana wallet adapter" - ); - }, - version: "1.0.0" - } - }; -}; -var SOLANA_ADDITIONAL_FEATURES = (solanaWallet) => { - return { - "solana:signTransaction": { - signTransaction: async (transaction) => { - if (!solanaWallet.signTransaction) - throw new Error("Not supported"); - try { - const signature = await solanaWallet.signTransaction(transaction); - return { - status: import_wallet_standard.UserResponseStatus.APPROVED, - args: signature - }; - } catch (e) { - if (e instanceof Error && e.message.includes("rejected")) { - return { - status: import_wallet_standard.UserResponseStatus.REJECTED - }; - } - throw e; - } - }, - version: "1.0.0" - } - }; -}; - -// src/index.ts -function getSolanaStandardWallets() { - return (0, import_app.getWallets)().get().filter(import_wallet_adapter_base2.isWalletAdapterCompatibleStandardWallet).map( - (wallet) => new SolanaWallet( - convertSolanaWalletToAptosWallet( - new import_wallet_standard_wallet_adapter_base.StandardWalletAdapter({ wallet }) - ) - ) - ); -} -var SolanaWallet = class extends import_wallet_adapter_aggregator_core.AdapterWallet { - constructor(solanaWallet) { - super(); - this.version = "1.0.0"; - this.accounts = []; - this.connected = false; - this.solanaWallet = solanaWallet; - } - get icon() { - return this.solanaWallet.icon; - } - get name() { - return this.solanaWallet.name; - } - get url() { - return this.solanaWallet.url; - } - get readyState() { - return import_wallet_adapter_aggregator_core.WalletReadyState.Installed; - } - get chains() { - return import_wallet_standard2.APTOS_CHAINS; - } - get isConnected() { - return this.connected; - } - async getAccount() { - return await this.solanaWallet.features["aptos:account"].account(); - } - async getConnectedNetwork() { - return await this.solanaWallet.features["aptos:network"].network(); - } - async connect() { - const result = await this.solanaWallet.features["aptos:connect"].connect(); - if (result.status === import_wallet_standard2.UserResponseStatus.REJECTED) { - throw new Error("User rejected the request").message; - } - await this.onAccountChange(); - this.connected = true; - return result.args; - } - async disconnect() { - if (!this.connected) { - return; - } - await this.solanaWallet.features["aptos:disconnect"].disconnect(); - this.connected = false; - } - async signMessage(message) { - const result = await this.solanaWallet.features["aptos:signMessage"].signMessage( - message - ); - if (result.status === import_wallet_standard2.UserResponseStatus.REJECTED) { - throw new Error("User rejected the request").message; - } - return result.args; - } - async signTransaction(transaction) { - const result = await this.solanaWallet.features["solana:signTransaction"].signTransaction(transaction); - if (result.status === import_wallet_standard2.UserResponseStatus.REJECTED) { - throw new Error("User rejected"); - } - return result.args; - } - async onAccountChange() { - await this.solanaWallet.features["aptos:onAccountChange"].onAccountChange( - async (account) => { - this.emit("accountChange", account); - } - ); - } - async onNetworkChange(callback) { - await this.solanaWallet.features["aptos:onNetworkChange"].onNetworkChange( - callback - ); - } -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - SolanaWallet, - getSolanaStandardWallets -}); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js.map b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js.map deleted file mode 100644 index 750ae363..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts","../src/utils.ts"],"sourcesContent":["import {\n AccountInfo,\n APTOS_CHAINS,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosWallet,\n NetworkInfo,\n UserResponse,\n UserResponseStatus,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\nimport { isWalletAdapterCompatibleStandardWallet } from \"@solana/wallet-adapter-base\";\nimport { getWallets } from \"@wallet-standard/app\";\nimport { Transaction } from \"@solana/web3.js\";\nimport { StandardWalletAdapter } from \"@solana/wallet-standard-wallet-adapter-base\";\nimport {\n AdapterWallet,\n WalletReadyState,\n} from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { convertSolanaWalletToAptosWallet } from \"./utils\";\n\nexport type SolanaUnsignedTransaction = Transaction | Transaction[];\nexport type SolanaSignedTransaction = Transaction | Transaction[];\n\nexport function getSolanaStandardWallets(): AdapterWallet[] {\n // from https://github.com/solana-labs/wallet-standard/blob/c68c26604e0b9624e924292e243df44c742d1c00/packages/wallet-adapter/react/src/useStandardWalletAdapters.ts#L78\n return getWallets()\n .get()\n .filter(isWalletAdapterCompatibleStandardWallet)\n .map(\n (wallet) =>\n new SolanaWallet(\n convertSolanaWalletToAptosWallet(\n new StandardWalletAdapter({ wallet })\n )\n )\n );\n}\n\nexport type SolanaFeatures = {\n \"solana:signTransaction\": {\n signTransaction: (\n transaction: Transaction\n ) => Promise>;\n version: string;\n };\n};\n\nexport type SolanaBaseWallet = AptosWallet & {\n features: SolanaFeatures;\n};\n\nexport class SolanaWallet extends AdapterWallet<\n AccountInfo,\n NetworkInfo,\n AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n Transaction,\n Transaction,\n AccountInfo,\n NetworkInfo\n> {\n readonly solanaWallet: SolanaBaseWallet;\n readonly version = \"1.0.0\";\n\n accounts: WalletAccount[] = [];\n\n connected: boolean = false;\n\n constructor(solanaWallet: SolanaBaseWallet) {\n super();\n this.solanaWallet = solanaWallet;\n }\n\n get icon() {\n return this.solanaWallet.icon;\n }\n get name() {\n return this.solanaWallet.name;\n }\n get url() {\n return this.solanaWallet.url;\n }\n\n get readyState() {\n return WalletReadyState.Installed;\n }\n\n get chains() {\n return APTOS_CHAINS;\n }\n\n get isConnected() {\n return this.connected;\n }\n\n async getAccount(): Promise {\n return await this.solanaWallet.features[\"aptos:account\"].account();\n }\n\n async getConnectedNetwork() {\n return await this.solanaWallet.features[\"aptos:network\"].network();\n }\n\n async connect(): Promise {\n const result = await this.solanaWallet.features[\"aptos:connect\"].connect();\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n await this.onAccountChange();\n this.connected = true;\n return result.args;\n }\n\n async disconnect() {\n if (!this.connected) {\n return;\n }\n await this.solanaWallet.features[\"aptos:disconnect\"].disconnect();\n this.connected = false;\n }\n\n async signMessage(message: AptosSignMessageInput) {\n const result =\n await this.solanaWallet.features[\"aptos:signMessage\"].signMessage(\n message\n );\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n return result.args;\n }\n\n async signTransaction(transaction: Transaction): Promise {\n const result =\n await this.solanaWallet.features[\n \"solana:signTransaction\"\n ].signTransaction(transaction);\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected\");\n }\n return result.args;\n }\n\n async onAccountChange() {\n await this.solanaWallet.features[\"aptos:onAccountChange\"].onAccountChange(\n async (account: AccountInfo) => {\n this.emit(\"accountChange\", account);\n }\n );\n }\n\n async onNetworkChange(\n callback: (network: NetworkInfo) => void\n ): Promise {\n await this.solanaWallet.features[\"aptos:onNetworkChange\"].onNetworkChange(\n callback\n );\n }\n}\n","import {\n AnyRawTransaction,\n Ed25519PublicKey,\n Ed25519Signature,\n} from \"@aptos-labs/ts-sdk\";\nimport {\n AccountInfo,\n APTOS_CHAINS,\n AptosFeatures,\n AptosOnAccountChangeInput,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n UserResponse,\n UserResponseStatus,\n} from \"@aptos-labs/wallet-standard\";\n\nimport {\n PublicKey,\n PublicKey as SolanaPublicKey,\n Transaction,\n} from \"@solana/web3.js\";\nimport { StandardWalletAdapter } from \"@solana/wallet-standard-wallet-adapter-base\";\nimport { SolanaBaseWallet, SolanaFeatures } from \".\";\nimport { WalletConnectionError } from \"@solana/wallet-adapter-base\";\n\nconst deriveAccountInfoFromSolanaPublicKey = (\n solanaPublicKey: SolanaPublicKey\n) => {\n const publicKey = new Ed25519PublicKey(solanaPublicKey.toBytes());\n const address = publicKey.authKey().derivedAddress();\n return new AccountInfo({ address, publicKey });\n};\n\nexport const convertSolanaWalletToAptosWallet = (\n solanaWallet: StandardWalletAdapter\n): SolanaBaseWallet => {\n const wallet: SolanaBaseWallet = {\n accounts: [],\n chains: APTOS_CHAINS,\n features: {\n ...APTOS_REQUIRED_FEATURES(solanaWallet),\n ...SOLANA_ADDITIONAL_FEATURES(solanaWallet),\n },\n icon: solanaWallet.icon,\n name: solanaWallet.name,\n url: solanaWallet.url,\n version: \"1.0.0\",\n };\n return wallet;\n};\n\nconst APTOS_REQUIRED_FEATURES = (\n solanaWallet: StandardWalletAdapter\n): AptosFeatures => {\n return {\n \"aptos:account\": {\n account: async () => {\n if (!solanaWallet.publicKey) {\n throw new Error(\"Disconnected\");\n }\n return deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey);\n },\n version: \"1.0.0\",\n },\n \"aptos:connect\": {\n connect: async () => {\n try {\n await solanaWallet.connect();\n if (!solanaWallet.publicKey) {\n return { status: UserResponseStatus.REJECTED };\n }\n\n return {\n args: deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey),\n status: UserResponseStatus.APPROVED,\n };\n } catch (e) {\n console.log(\"e\", e);\n if (e instanceof WalletConnectionError) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw e;\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:disconnect\": {\n disconnect: async () => {\n try {\n await solanaWallet.disconnect();\n } catch (e) {\n throw new Error(\"Failed to disconnect\");\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:network\": {\n network: async () => {\n throw new Error(\n \"Fetch network info not supported by Solana wallet adapter\"\n );\n },\n version: \"1.0.0\",\n },\n \"aptos:signMessage\": {\n signMessage: async (message: AptosSignMessageInput) => {\n if (!solanaWallet.signMessage) throw new Error(\"Not supported\");\n try {\n const messageToSign = new TextEncoder().encode(message.message);\n const signature = await solanaWallet.signMessage(messageToSign);\n const response: AptosSignMessageOutput = {\n // address?: string;\n // application?: string;\n // chainId?: number;\n fullMessage: message.message,\n message: message.message,\n nonce: message.nonce,\n prefix: \"APTOS\",\n signature: new Ed25519Signature(signature),\n };\n return {\n status: UserResponseStatus.APPROVED,\n args: response,\n };\n } catch (e) {\n if (e instanceof Error && e.message.includes(\"rejected\")) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw e;\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:signTransaction\": {\n signTransaction: async (transaction: AnyRawTransaction) => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:onAccountChange\": {\n onAccountChange: async (callback: AptosOnAccountChangeInput) => {\n if (solanaWallet.wallet.features[\"standard:events\"]) {\n solanaWallet.wallet.features[\"standard:events\"].on(\n \"change\",\n (account) => {\n if (!account.accounts || account.accounts.length === 0) {\n return;\n }\n const accountInfo = deriveAccountInfoFromSolanaPublicKey(\n new PublicKey(account.accounts[0].publicKey)\n );\n callback(accountInfo);\n }\n );\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:onNetworkChange\": {\n onNetworkChange: async () => {\n throw new Error(\n \"onNetworkChange not yet implemented in solana wallet adapter\"\n );\n },\n version: \"1.0.0\",\n },\n };\n};\n\nconst SOLANA_ADDITIONAL_FEATURES = (\n solanaWallet: StandardWalletAdapter\n): SolanaFeatures => {\n return {\n \"solana:signTransaction\": {\n signTransaction: async (\n transaction: Transaction\n ): Promise> => {\n if (!solanaWallet.signTransaction) throw new Error(\"Not supported\");\n try {\n const signature = await solanaWallet.signTransaction(transaction);\n return {\n status: UserResponseStatus.APPROVED,\n args: signature,\n };\n } catch (e) {\n if (e instanceof Error && e.message.includes(\"rejected\")) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw e;\n }\n },\n version: \"1.0.0\",\n },\n };\n};\n"],"mappings":"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","names":["import_wallet_standard","import_wallet_adapter_base"]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs deleted file mode 100644 index e6907078..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs +++ /dev/null @@ -1,281 +0,0 @@ -// src/index.ts -import { - APTOS_CHAINS as APTOS_CHAINS2, - UserResponseStatus as UserResponseStatus2 -} from "@aptos-labs/wallet-standard"; -import { isWalletAdapterCompatibleStandardWallet } from "@solana/wallet-adapter-base"; -import { getWallets } from "@wallet-standard/app"; -import { StandardWalletAdapter } from "@solana/wallet-standard-wallet-adapter-base"; -import { - AdapterWallet, - WalletReadyState -} from "@aptos-labs/wallet-adapter-aggregator-core"; - -// src/utils.ts -import { - Ed25519PublicKey, - Ed25519Signature -} from "@aptos-labs/ts-sdk"; -import { - AccountInfo, - APTOS_CHAINS, - UserResponseStatus -} from "@aptos-labs/wallet-standard"; -import { - PublicKey -} from "@solana/web3.js"; -import { WalletConnectionError } from "@solana/wallet-adapter-base"; -var deriveAccountInfoFromSolanaPublicKey = (solanaPublicKey) => { - const publicKey = new Ed25519PublicKey(solanaPublicKey.toBytes()); - const address = publicKey.authKey().derivedAddress(); - return new AccountInfo({ address, publicKey }); -}; -var convertSolanaWalletToAptosWallet = (solanaWallet) => { - const wallet = { - accounts: [], - chains: APTOS_CHAINS, - features: { - ...APTOS_REQUIRED_FEATURES(solanaWallet), - ...SOLANA_ADDITIONAL_FEATURES(solanaWallet) - }, - icon: solanaWallet.icon, - name: solanaWallet.name, - url: solanaWallet.url, - version: "1.0.0" - }; - return wallet; -}; -var APTOS_REQUIRED_FEATURES = (solanaWallet) => { - return { - "aptos:account": { - account: async () => { - if (!solanaWallet.publicKey) { - throw new Error("Disconnected"); - } - return deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey); - }, - version: "1.0.0" - }, - "aptos:connect": { - connect: async () => { - try { - await solanaWallet.connect(); - if (!solanaWallet.publicKey) { - return { status: UserResponseStatus.REJECTED }; - } - return { - args: deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey), - status: UserResponseStatus.APPROVED - }; - } catch (e) { - console.log("e", e); - if (e instanceof WalletConnectionError) { - return { - status: UserResponseStatus.REJECTED - }; - } - throw e; - } - }, - version: "1.0.0" - }, - "aptos:disconnect": { - disconnect: async () => { - try { - await solanaWallet.disconnect(); - } catch (e) { - throw new Error("Failed to disconnect"); - } - }, - version: "1.0.0" - }, - "aptos:network": { - network: async () => { - throw new Error( - "Fetch network info not supported by Solana wallet adapter" - ); - }, - version: "1.0.0" - }, - "aptos:signMessage": { - signMessage: async (message) => { - if (!solanaWallet.signMessage) - throw new Error("Not supported"); - try { - const messageToSign = new TextEncoder().encode(message.message); - const signature = await solanaWallet.signMessage(messageToSign); - const response = { - fullMessage: message.message, - message: message.message, - nonce: message.nonce, - prefix: "APTOS", - signature: new Ed25519Signature(signature) - }; - return { - status: UserResponseStatus.APPROVED, - args: response - }; - } catch (e) { - if (e instanceof Error && e.message.includes("rejected")) { - return { - status: UserResponseStatus.REJECTED - }; - } - throw e; - } - }, - version: "1.0.0" - }, - "aptos:signTransaction": { - signTransaction: async (transaction) => { - throw new Error("Not yet implemented"); - }, - version: "1.0.0" - }, - "aptos:onAccountChange": { - onAccountChange: async (callback) => { - if (solanaWallet.wallet.features["standard:events"]) { - solanaWallet.wallet.features["standard:events"].on( - "change", - (account) => { - if (!account.accounts || account.accounts.length === 0) { - return; - } - const accountInfo = deriveAccountInfoFromSolanaPublicKey( - new PublicKey(account.accounts[0].publicKey) - ); - callback(accountInfo); - } - ); - } - }, - version: "1.0.0" - }, - "aptos:onNetworkChange": { - onNetworkChange: async () => { - throw new Error( - "onNetworkChange not yet implemented in solana wallet adapter" - ); - }, - version: "1.0.0" - } - }; -}; -var SOLANA_ADDITIONAL_FEATURES = (solanaWallet) => { - return { - "solana:signTransaction": { - signTransaction: async (transaction) => { - if (!solanaWallet.signTransaction) - throw new Error("Not supported"); - try { - const signature = await solanaWallet.signTransaction(transaction); - return { - status: UserResponseStatus.APPROVED, - args: signature - }; - } catch (e) { - if (e instanceof Error && e.message.includes("rejected")) { - return { - status: UserResponseStatus.REJECTED - }; - } - throw e; - } - }, - version: "1.0.0" - } - }; -}; - -// src/index.ts -function getSolanaStandardWallets() { - return getWallets().get().filter(isWalletAdapterCompatibleStandardWallet).map( - (wallet) => new SolanaWallet( - convertSolanaWalletToAptosWallet( - new StandardWalletAdapter({ wallet }) - ) - ) - ); -} -var SolanaWallet = class extends AdapterWallet { - constructor(solanaWallet) { - super(); - this.version = "1.0.0"; - this.accounts = []; - this.connected = false; - this.solanaWallet = solanaWallet; - } - get icon() { - return this.solanaWallet.icon; - } - get name() { - return this.solanaWallet.name; - } - get url() { - return this.solanaWallet.url; - } - get readyState() { - return WalletReadyState.Installed; - } - get chains() { - return APTOS_CHAINS2; - } - get isConnected() { - return this.connected; - } - async getAccount() { - return await this.solanaWallet.features["aptos:account"].account(); - } - async getConnectedNetwork() { - return await this.solanaWallet.features["aptos:network"].network(); - } - async connect() { - const result = await this.solanaWallet.features["aptos:connect"].connect(); - if (result.status === UserResponseStatus2.REJECTED) { - throw new Error("User rejected the request").message; - } - await this.onAccountChange(); - this.connected = true; - return result.args; - } - async disconnect() { - if (!this.connected) { - return; - } - await this.solanaWallet.features["aptos:disconnect"].disconnect(); - this.connected = false; - } - async signMessage(message) { - const result = await this.solanaWallet.features["aptos:signMessage"].signMessage( - message - ); - if (result.status === UserResponseStatus2.REJECTED) { - throw new Error("User rejected the request").message; - } - return result.args; - } - async signTransaction(transaction) { - const result = await this.solanaWallet.features["solana:signTransaction"].signTransaction(transaction); - if (result.status === UserResponseStatus2.REJECTED) { - throw new Error("User rejected"); - } - return result.args; - } - async onAccountChange() { - await this.solanaWallet.features["aptos:onAccountChange"].onAccountChange( - async (account) => { - this.emit("accountChange", account); - } - ); - } - async onNetworkChange(callback) { - await this.solanaWallet.features["aptos:onNetworkChange"].onNetworkChange( - callback - ); - } -}; -export { - SolanaWallet, - getSolanaStandardWallets -}; -//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs.map b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs.map deleted file mode 100644 index 79fbd69e..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/index.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.ts","../src/utils.ts"],"sourcesContent":["import {\n AccountInfo,\n APTOS_CHAINS,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n AptosWallet,\n NetworkInfo,\n UserResponse,\n UserResponseStatus,\n WalletAccount,\n} from \"@aptos-labs/wallet-standard\";\nimport { isWalletAdapterCompatibleStandardWallet } from \"@solana/wallet-adapter-base\";\nimport { getWallets } from \"@wallet-standard/app\";\nimport { Transaction } from \"@solana/web3.js\";\nimport { StandardWalletAdapter } from \"@solana/wallet-standard-wallet-adapter-base\";\nimport {\n AdapterWallet,\n WalletReadyState,\n} from \"@aptos-labs/wallet-adapter-aggregator-core\";\nimport { convertSolanaWalletToAptosWallet } from \"./utils\";\n\nexport type SolanaUnsignedTransaction = Transaction | Transaction[];\nexport type SolanaSignedTransaction = Transaction | Transaction[];\n\nexport function getSolanaStandardWallets(): AdapterWallet[] {\n // from https://github.com/solana-labs/wallet-standard/blob/c68c26604e0b9624e924292e243df44c742d1c00/packages/wallet-adapter/react/src/useStandardWalletAdapters.ts#L78\n return getWallets()\n .get()\n .filter(isWalletAdapterCompatibleStandardWallet)\n .map(\n (wallet) =>\n new SolanaWallet(\n convertSolanaWalletToAptosWallet(\n new StandardWalletAdapter({ wallet })\n )\n )\n );\n}\n\nexport type SolanaFeatures = {\n \"solana:signTransaction\": {\n signTransaction: (\n transaction: Transaction\n ) => Promise>;\n version: string;\n };\n};\n\nexport type SolanaBaseWallet = AptosWallet & {\n features: SolanaFeatures;\n};\n\nexport class SolanaWallet extends AdapterWallet<\n AccountInfo,\n NetworkInfo,\n AccountInfo,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n Transaction,\n Transaction,\n AccountInfo,\n NetworkInfo\n> {\n readonly solanaWallet: SolanaBaseWallet;\n readonly version = \"1.0.0\";\n\n accounts: WalletAccount[] = [];\n\n connected: boolean = false;\n\n constructor(solanaWallet: SolanaBaseWallet) {\n super();\n this.solanaWallet = solanaWallet;\n }\n\n get icon() {\n return this.solanaWallet.icon;\n }\n get name() {\n return this.solanaWallet.name;\n }\n get url() {\n return this.solanaWallet.url;\n }\n\n get readyState() {\n return WalletReadyState.Installed;\n }\n\n get chains() {\n return APTOS_CHAINS;\n }\n\n get isConnected() {\n return this.connected;\n }\n\n async getAccount(): Promise {\n return await this.solanaWallet.features[\"aptos:account\"].account();\n }\n\n async getConnectedNetwork() {\n return await this.solanaWallet.features[\"aptos:network\"].network();\n }\n\n async connect(): Promise {\n const result = await this.solanaWallet.features[\"aptos:connect\"].connect();\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n await this.onAccountChange();\n this.connected = true;\n return result.args;\n }\n\n async disconnect() {\n if (!this.connected) {\n return;\n }\n await this.solanaWallet.features[\"aptos:disconnect\"].disconnect();\n this.connected = false;\n }\n\n async signMessage(message: AptosSignMessageInput) {\n const result =\n await this.solanaWallet.features[\"aptos:signMessage\"].signMessage(\n message\n );\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected the request\").message;\n }\n return result.args;\n }\n\n async signTransaction(transaction: Transaction): Promise {\n const result =\n await this.solanaWallet.features[\n \"solana:signTransaction\"\n ].signTransaction(transaction);\n if (result.status === UserResponseStatus.REJECTED) {\n throw new Error(\"User rejected\");\n }\n return result.args;\n }\n\n async onAccountChange() {\n await this.solanaWallet.features[\"aptos:onAccountChange\"].onAccountChange(\n async (account: AccountInfo) => {\n this.emit(\"accountChange\", account);\n }\n );\n }\n\n async onNetworkChange(\n callback: (network: NetworkInfo) => void\n ): Promise {\n await this.solanaWallet.features[\"aptos:onNetworkChange\"].onNetworkChange(\n callback\n );\n }\n}\n","import {\n AnyRawTransaction,\n Ed25519PublicKey,\n Ed25519Signature,\n} from \"@aptos-labs/ts-sdk\";\nimport {\n AccountInfo,\n APTOS_CHAINS,\n AptosFeatures,\n AptosOnAccountChangeInput,\n AptosSignMessageInput,\n AptosSignMessageOutput,\n UserResponse,\n UserResponseStatus,\n} from \"@aptos-labs/wallet-standard\";\n\nimport {\n PublicKey,\n PublicKey as SolanaPublicKey,\n Transaction,\n} from \"@solana/web3.js\";\nimport { StandardWalletAdapter } from \"@solana/wallet-standard-wallet-adapter-base\";\nimport { SolanaBaseWallet, SolanaFeatures } from \".\";\nimport { WalletConnectionError } from \"@solana/wallet-adapter-base\";\n\nconst deriveAccountInfoFromSolanaPublicKey = (\n solanaPublicKey: SolanaPublicKey\n) => {\n const publicKey = new Ed25519PublicKey(solanaPublicKey.toBytes());\n const address = publicKey.authKey().derivedAddress();\n return new AccountInfo({ address, publicKey });\n};\n\nexport const convertSolanaWalletToAptosWallet = (\n solanaWallet: StandardWalletAdapter\n): SolanaBaseWallet => {\n const wallet: SolanaBaseWallet = {\n accounts: [],\n chains: APTOS_CHAINS,\n features: {\n ...APTOS_REQUIRED_FEATURES(solanaWallet),\n ...SOLANA_ADDITIONAL_FEATURES(solanaWallet),\n },\n icon: solanaWallet.icon,\n name: solanaWallet.name,\n url: solanaWallet.url,\n version: \"1.0.0\",\n };\n return wallet;\n};\n\nconst APTOS_REQUIRED_FEATURES = (\n solanaWallet: StandardWalletAdapter\n): AptosFeatures => {\n return {\n \"aptos:account\": {\n account: async () => {\n if (!solanaWallet.publicKey) {\n throw new Error(\"Disconnected\");\n }\n return deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey);\n },\n version: \"1.0.0\",\n },\n \"aptos:connect\": {\n connect: async () => {\n try {\n await solanaWallet.connect();\n if (!solanaWallet.publicKey) {\n return { status: UserResponseStatus.REJECTED };\n }\n\n return {\n args: deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey),\n status: UserResponseStatus.APPROVED,\n };\n } catch (e) {\n console.log(\"e\", e);\n if (e instanceof WalletConnectionError) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw e;\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:disconnect\": {\n disconnect: async () => {\n try {\n await solanaWallet.disconnect();\n } catch (e) {\n throw new Error(\"Failed to disconnect\");\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:network\": {\n network: async () => {\n throw new Error(\n \"Fetch network info not supported by Solana wallet adapter\"\n );\n },\n version: \"1.0.0\",\n },\n \"aptos:signMessage\": {\n signMessage: async (message: AptosSignMessageInput) => {\n if (!solanaWallet.signMessage) throw new Error(\"Not supported\");\n try {\n const messageToSign = new TextEncoder().encode(message.message);\n const signature = await solanaWallet.signMessage(messageToSign);\n const response: AptosSignMessageOutput = {\n // address?: string;\n // application?: string;\n // chainId?: number;\n fullMessage: message.message,\n message: message.message,\n nonce: message.nonce,\n prefix: \"APTOS\",\n signature: new Ed25519Signature(signature),\n };\n return {\n status: UserResponseStatus.APPROVED,\n args: response,\n };\n } catch (e) {\n if (e instanceof Error && e.message.includes(\"rejected\")) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw e;\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:signTransaction\": {\n signTransaction: async (transaction: AnyRawTransaction) => {\n throw new Error(\"Not yet implemented\");\n },\n version: \"1.0.0\",\n },\n \"aptos:onAccountChange\": {\n onAccountChange: async (callback: AptosOnAccountChangeInput) => {\n if (solanaWallet.wallet.features[\"standard:events\"]) {\n solanaWallet.wallet.features[\"standard:events\"].on(\n \"change\",\n (account) => {\n if (!account.accounts || account.accounts.length === 0) {\n return;\n }\n const accountInfo = deriveAccountInfoFromSolanaPublicKey(\n new PublicKey(account.accounts[0].publicKey)\n );\n callback(accountInfo);\n }\n );\n }\n },\n version: \"1.0.0\",\n },\n \"aptos:onNetworkChange\": {\n onNetworkChange: async () => {\n throw new Error(\n \"onNetworkChange not yet implemented in solana wallet adapter\"\n );\n },\n version: \"1.0.0\",\n },\n };\n};\n\nconst SOLANA_ADDITIONAL_FEATURES = (\n solanaWallet: StandardWalletAdapter\n): SolanaFeatures => {\n return {\n \"solana:signTransaction\": {\n signTransaction: async (\n transaction: Transaction\n ): Promise> => {\n if (!solanaWallet.signTransaction) throw new Error(\"Not supported\");\n try {\n const signature = await solanaWallet.signTransaction(transaction);\n return {\n status: UserResponseStatus.APPROVED,\n args: signature,\n };\n } catch (e) {\n if (e instanceof Error && e.message.includes(\"rejected\")) {\n return {\n status: UserResponseStatus.REJECTED,\n };\n }\n throw e;\n }\n },\n version: \"1.0.0\",\n },\n };\n};\n"],"mappings":"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","names":["APTOS_CHAINS","UserResponseStatus","APTOS_CHAINS","UserResponseStatus"]} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts deleted file mode 100644 index 1f4bb01b..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { StandardWalletAdapter } from "@solana/wallet-standard-wallet-adapter-base"; -import { SolanaBaseWallet } from "."; -export declare const convertSolanaWalletToAptosWallet: (solanaWallet: StandardWalletAdapter) => SolanaBaseWallet; -//# sourceMappingURL=utils.d.ts.map \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts.map b/packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts.map deleted file mode 100644 index 0e9144ce..00000000 --- a/packages/cross-chain/wallet-adapter-aggregator/solana/dist/utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAkB,MAAM,GAAG,CAAC;AAWrD,eAAO,MAAM,gCAAgC,iBAC7B,qBAAqB,KAClC,gBAcF,CAAC"} \ No newline at end of file diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/package.json b/packages/cross-chain/wallet-adapter-aggregator/solana/package.json new file mode 100644 index 00000000..8aa27493 --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/package.json @@ -0,0 +1,59 @@ +{ + "name": "@aptos-labs/wallet-adapter-aggregator-solana", + "version": "0.0.1", + "description": "Aptos Wallet Adapter Aggregator for Solana", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "license": "Apache-2.0", + "exports": { + "require": "./dist/index.js", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + }, + "repository": { + "type": "git", + "url": "https://github.com/aptos-labs/aptos-wallet-adapter.git" + }, + "homepage": "https://github.com/aptos-labs/aptos-wallet-adapter", + "bugs": { + "url": "https://github.com/aptos-labs/aptos-wallet-adapter/issues" + }, + "author": "aptoslabs.com", + "keywords": [ + "Aptos", + "Aptos Labs", + "Wallet", + "Wallet Adapter", + "Wallet Adapter Aggregator", + "Solana" + ], + "scripts": { + "build:bundle": "tsup src/index.ts --format esm,cjs --sourcemap", + "build:declarations": "tsc --emitDeclarationOnly --declaration --declarationMap", + "build": "pnpm build:bundle && pnpm build:declarations", + "dev": "tsup src/index.ts --format esm,cjs --watch", + "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", + "lint": "TIMING=1 eslint \"src/**/*.ts*\"" + }, + "devDependencies": { + "@aptos-labs/wallet-adapter-tsconfig": "workspace:*", + "eslint": "^8.15.0", + "tsup": "^5.10.1", + "typescript": "^5.7.3" + }, + "dependencies": { + "@aptos-labs/wallet-adapter-aggregator-core": "workspace:*", + "@aptos-labs/ts-sdk": "^1.35.0", + "@aptos-labs/wallet-standard": "^0.3.0", + "@solana/wallet-adapter-base": "^0.9.23", + "@solana/wallet-standard-wallet-adapter-base": "^1.1.4", + "@solana/web3.js": "^1.95.8", + "@wallet-standard/app": "^1.1.0", + "eventemitter3": "^4.0.7" + }, + "files": [ + "dist", + "src" + ] +} diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/src/index.ts b/packages/cross-chain/wallet-adapter-aggregator/solana/src/index.ts new file mode 100644 index 00000000..176b1eda --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/src/index.ts @@ -0,0 +1,161 @@ +import { + AccountInfo, + APTOS_CHAINS, + AptosSignMessageInput, + AptosSignMessageOutput, + AptosWallet, + NetworkInfo, + UserResponse, + UserResponseStatus, + WalletAccount, +} from "@aptos-labs/wallet-standard"; +import { isWalletAdapterCompatibleStandardWallet } from "@solana/wallet-adapter-base"; +import { getWallets } from "@wallet-standard/app"; +import { Transaction } from "@solana/web3.js"; +import { StandardWalletAdapter } from "@solana/wallet-standard-wallet-adapter-base"; +import { + AdapterWallet, + WalletReadyState, +} from "@aptos-labs/wallet-adapter-aggregator-core"; +import { convertSolanaWalletToAptosWallet } from "./utils"; + +export type SolanaUnsignedTransaction = Transaction | Transaction[]; +export type SolanaSignedTransaction = Transaction | Transaction[]; + +export function getSolanaStandardWallets(): AdapterWallet[] { + // from https://github.com/solana-labs/wallet-standard/blob/c68c26604e0b9624e924292e243df44c742d1c00/packages/wallet-adapter/react/src/useStandardWalletAdapters.ts#L78 + return getWallets() + .get() + .filter(isWalletAdapterCompatibleStandardWallet) + .map( + (wallet) => + new SolanaWallet( + convertSolanaWalletToAptosWallet( + new StandardWalletAdapter({ wallet }) + ) + ) + ); +} + +export type SolanaFeatures = { + "solana:signTransaction": { + signTransaction: ( + transaction: Transaction + ) => Promise>; + version: string; + }; +}; + +export type SolanaBaseWallet = AptosWallet & { + features: SolanaFeatures; +}; + +export class SolanaWallet extends AdapterWallet< + AccountInfo, + NetworkInfo, + AccountInfo, + AptosSignMessageInput, + AptosSignMessageOutput, + Transaction, + Transaction, + AccountInfo, + NetworkInfo +> { + readonly solanaWallet: SolanaBaseWallet; + readonly version = "1.0.0"; + + accounts: WalletAccount[] = []; + + connected: boolean = false; + + constructor(solanaWallet: SolanaBaseWallet) { + super(); + this.solanaWallet = solanaWallet; + } + + get icon() { + return this.solanaWallet.icon; + } + get name() { + return this.solanaWallet.name; + } + get url() { + return this.solanaWallet.url; + } + + get readyState() { + return WalletReadyState.Installed; + } + + get chains() { + return APTOS_CHAINS; + } + + get isConnected() { + return this.connected; + } + + async getAccount(): Promise { + return await this.solanaWallet.features["aptos:account"].account(); + } + + async getConnectedNetwork() { + return await this.solanaWallet.features["aptos:network"].network(); + } + + async connect(): Promise { + const result = await this.solanaWallet.features["aptos:connect"].connect(); + if (result.status === UserResponseStatus.REJECTED) { + throw new Error("User rejected the request").message; + } + await this.onAccountChange(); + this.connected = true; + return result.args; + } + + async disconnect() { + if (!this.connected) { + return; + } + await this.solanaWallet.features["aptos:disconnect"].disconnect(); + this.connected = false; + } + + async signMessage(message: AptosSignMessageInput) { + const result = + await this.solanaWallet.features["aptos:signMessage"].signMessage( + message + ); + if (result.status === UserResponseStatus.REJECTED) { + throw new Error("User rejected the request").message; + } + return result.args; + } + + async signTransaction(transaction: Transaction): Promise { + const result = + await this.solanaWallet.features[ + "solana:signTransaction" + ].signTransaction(transaction); + if (result.status === UserResponseStatus.REJECTED) { + throw new Error("User rejected"); + } + return result.args; + } + + async onAccountChange() { + await this.solanaWallet.features["aptos:onAccountChange"].onAccountChange( + async (account: AccountInfo) => { + this.emit("accountChange", account); + } + ); + } + + async onNetworkChange( + callback: (network: NetworkInfo) => void + ): Promise { + await this.solanaWallet.features["aptos:onNetworkChange"].onNetworkChange( + callback + ); + } +} diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/src/utils.ts b/packages/cross-chain/wallet-adapter-aggregator/solana/src/utils.ts new file mode 100644 index 00000000..cf147c9b --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/src/utils.ts @@ -0,0 +1,201 @@ +import { + AnyRawTransaction, + Ed25519PublicKey, + Ed25519Signature, +} from "@aptos-labs/ts-sdk"; +import { + AccountInfo, + APTOS_CHAINS, + AptosFeatures, + AptosOnAccountChangeInput, + AptosSignMessageInput, + AptosSignMessageOutput, + UserResponse, + UserResponseStatus, +} from "@aptos-labs/wallet-standard"; + +import { + PublicKey, + PublicKey as SolanaPublicKey, + Transaction, +} from "@solana/web3.js"; +import { StandardWalletAdapter } from "@solana/wallet-standard-wallet-adapter-base"; +import { SolanaBaseWallet, SolanaFeatures } from "."; +import { WalletConnectionError } from "@solana/wallet-adapter-base"; + +const deriveAccountInfoFromSolanaPublicKey = ( + solanaPublicKey: SolanaPublicKey +) => { + const publicKey = new Ed25519PublicKey(solanaPublicKey.toBytes()); + const address = publicKey.authKey().derivedAddress(); + return new AccountInfo({ address, publicKey }); +}; + +export const convertSolanaWalletToAptosWallet = ( + solanaWallet: StandardWalletAdapter +): SolanaBaseWallet => { + const wallet: SolanaBaseWallet = { + accounts: [], + chains: APTOS_CHAINS, + features: { + ...APTOS_REQUIRED_FEATURES(solanaWallet), + ...SOLANA_ADDITIONAL_FEATURES(solanaWallet), + }, + icon: solanaWallet.icon, + name: solanaWallet.name, + url: solanaWallet.url, + version: "1.0.0", + }; + return wallet; +}; + +const APTOS_REQUIRED_FEATURES = ( + solanaWallet: StandardWalletAdapter +): AptosFeatures => { + return { + "aptos:account": { + account: async () => { + if (!solanaWallet.publicKey) { + throw new Error("Disconnected"); + } + return deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey); + }, + version: "1.0.0", + }, + "aptos:connect": { + connect: async () => { + try { + await solanaWallet.connect(); + if (!solanaWallet.publicKey) { + return { status: UserResponseStatus.REJECTED }; + } + + return { + args: deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey), + status: UserResponseStatus.APPROVED, + }; + } catch (e) { + console.log("e", e); + if (e instanceof WalletConnectionError) { + return { + status: UserResponseStatus.REJECTED, + }; + } + throw e; + } + }, + version: "1.0.0", + }, + "aptos:disconnect": { + disconnect: async () => { + try { + await solanaWallet.disconnect(); + } catch (e) { + throw new Error("Failed to disconnect"); + } + }, + version: "1.0.0", + }, + "aptos:network": { + network: async () => { + throw new Error( + "Fetch network info not supported by Solana wallet adapter" + ); + }, + version: "1.0.0", + }, + "aptos:signMessage": { + signMessage: async (message: AptosSignMessageInput) => { + if (!solanaWallet.signMessage) throw new Error("Not supported"); + try { + const messageToSign = new TextEncoder().encode(message.message); + const signature = await solanaWallet.signMessage(messageToSign); + const response: AptosSignMessageOutput = { + // address?: string; + // application?: string; + // chainId?: number; + fullMessage: message.message, + message: message.message, + nonce: message.nonce, + prefix: "APTOS", + signature: new Ed25519Signature(signature), + }; + return { + status: UserResponseStatus.APPROVED, + args: response, + }; + } catch (e) { + if (e instanceof Error && e.message.includes("rejected")) { + return { + status: UserResponseStatus.REJECTED, + }; + } + throw e; + } + }, + version: "1.0.0", + }, + "aptos:signTransaction": { + signTransaction: async (transaction: AnyRawTransaction) => { + throw new Error("Not yet implemented"); + }, + version: "1.0.0", + }, + "aptos:onAccountChange": { + onAccountChange: async (callback: AptosOnAccountChangeInput) => { + if (solanaWallet.wallet.features["standard:events"]) { + solanaWallet.wallet.features["standard:events"].on( + "change", + (account) => { + if (!account.accounts || account.accounts.length === 0) { + return; + } + const accountInfo = deriveAccountInfoFromSolanaPublicKey( + new PublicKey(account.accounts[0].publicKey) + ); + callback(accountInfo); + } + ); + } + }, + version: "1.0.0", + }, + "aptos:onNetworkChange": { + onNetworkChange: async () => { + throw new Error( + "onNetworkChange not yet implemented in solana wallet adapter" + ); + }, + version: "1.0.0", + }, + }; +}; + +const SOLANA_ADDITIONAL_FEATURES = ( + solanaWallet: StandardWalletAdapter +): SolanaFeatures => { + return { + "solana:signTransaction": { + signTransaction: async ( + transaction: Transaction + ): Promise> => { + if (!solanaWallet.signTransaction) throw new Error("Not supported"); + try { + const signature = await solanaWallet.signTransaction(transaction); + return { + status: UserResponseStatus.APPROVED, + args: signature, + }; + } catch (e) { + if (e instanceof Error && e.message.includes("rejected")) { + return { + status: UserResponseStatus.REJECTED, + }; + } + throw e; + } + }, + version: "1.0.0", + }, + }; +}; diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/tsconfig.json b/packages/cross-chain/wallet-adapter-aggregator/solana/tsconfig.json new file mode 100644 index 00000000..3d316f5b --- /dev/null +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@aptos-labs/wallet-adapter-tsconfig/react-library.json", + "include": ["."], + "exclude": ["dist", "build", "node_modules"], + "compilerOptions": { + "rootDir": "src", + "outDir": "dist" + } +} diff --git a/packages/wallet-adapter-swap/.env b/packages/wallet-adapter-swap/.env deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/wallet-adapter-swap/CHANGELOG.md b/packages/wallet-adapter-swap/CHANGELOG.md deleted file mode 100644 index 2c8be190..00000000 --- a/packages/wallet-adapter-swap/CHANGELOG.md +++ /dev/null @@ -1,687 +0,0 @@ -# @aptos-labs/wallet-adapter-swap - -## 3.7.9 - -### Patch Changes - -- Updated dependencies [80a3c8a] - - @aptos-labs/wallet-adapter-core@4.23.0 - -## 3.7.8 - -### Patch Changes - -- Updated dependencies [af7c080] - - @aptos-labs/wallet-adapter-core@4.22.2 - -## 3.7.7 - -### Patch Changes - -- ca1dc8e: Bump all packages version to fix broken previous version -- Updated dependencies [ca1dc8e] - - @aptos-labs/wallet-adapter-core@4.22.1 - -## 3.7.6 - -### Patch Changes - -- Updated dependencies - - @aptos-labs/wallet-adapter-core@4.22.0 - -## 3.7.5 - -### Patch Changes - -- Updated dependencies [6915184] -- Updated dependencies - - @aptos-labs/wallet-adapter-core@4.21.0 - -## 3.7.4 - -### Patch Changes - -- Updated dependencies [f5ba2f2] - - @aptos-labs/wallet-adapter-core@4.20.0 - -## 3.7.3 - -### Patch Changes - -- Updated dependencies [66ad437] - - @aptos-labs/wallet-adapter-core@4.19.0 - -## 3.7.2 - -### Patch Changes - -- Updated dependencies [737bd2b] -- Updated dependencies [f9ecf18] - - @aptos-labs/wallet-adapter-core@4.18.1 - -## 3.7.1 - -### Patch Changes - -- Updated dependencies [67440bf] -- Updated dependencies [bde8112] - - @aptos-labs/wallet-adapter-core@4.18.0 - -## 3.7.0 - -### Minor Changes - -- e252fce: Add support for a dapp generated api key - -### Patch Changes - -- Updated dependencies [d348384] -- Updated dependencies [e252fce] -- Updated dependencies [bd54d77] - - @aptos-labs/wallet-adapter-core@4.17.0 - -## 3.6.2 - -### Patch Changes - -- Updated dependencies [3795c56] - - @aptos-labs/wallet-adapter-core@4.16.0 - -## 3.6.1 - -### Patch Changes - -- Updated dependencies [3419043] -- Updated dependencies [ee95b8b] - - @aptos-labs/wallet-adapter-core@4.15.1 - -## 3.6.0 - -### Minor Changes - -- a2391db: Support a boolean flag to disable the adapter telemetry tool - -### Patch Changes - -- Updated dependencies [a2391db] -- Updated dependencies [92f7187] - - @aptos-labs/wallet-adapter-core@4.15.0 - -## 3.5.10 - -### Patch Changes - -- Updated dependencies [0e37588] -- Updated dependencies [4240f8b] - - @aptos-labs/wallet-adapter-core@4.14.0 - -## 3.5.9 - -### Patch Changes - -- Updated dependencies [754f6e1] -- Updated dependencies [754f6e1] - - @aptos-labs/wallet-adapter-core@4.13.2 - -## 3.5.8 - -### Patch Changes - -- Updated dependencies [ae2351b] - - @aptos-labs/wallet-adapter-core@4.13.1 - -## 3.5.7 - -### Patch Changes - -- Updated dependencies [74f99d2] -- Updated dependencies [3d9ae51] - - @aptos-labs/wallet-adapter-core@4.13.0 - -## 3.5.6 - -### Patch Changes - -- Updated dependencies [4fd4527] - - @aptos-labs/wallet-adapter-core@4.12.1 - -## 3.5.5 - -### Patch Changes - -- Updated dependencies [d9ce63d] - - @aptos-labs/wallet-adapter-core@4.12.0 - -## 3.5.4 - -### Patch Changes - -- Updated dependencies [0b7d07f] - - @aptos-labs/wallet-adapter-core@4.11.1 - -## 3.5.3 - -### Patch Changes - -- 91fe52c: Corrected a typo in the last education screen of the `AboutAptosConnect` component. - -## 3.5.2 - -### Patch Changes - -- Updated dependencies [f1fb4a5] - - @aptos-labs/wallet-adapter-core@4.11.0 - -## 3.5.1 - -### Patch Changes - -- Updated dependencies [249331f] -- Updated dependencies [6bfeb14] -- Updated dependencies [ed4f483] - - @aptos-labs/wallet-adapter-core@4.10.0 - -## 3.5.0 - -### Minor Changes - -- 96df1f7: Added `AboutAptosConnect` headless component for building Aptos Connect education screens. -- f23cf43: Fix adapter event communication - -### Patch Changes - -- Updated dependencies [96df1f7] -- Updated dependencies [f23cf43] - - @aptos-labs/wallet-adapter-core@4.9.0 - -## 3.4.3 - -### Patch Changes - -- Updated dependencies [79a0212] - - @aptos-labs/wallet-adapter-core@4.8.2 - -## 3.4.2 - -### Patch Changes - -- cbbbe23: Added Dapp id to dappConfig -- Updated dependencies [1644cfc] -- Updated dependencies [cbbbe23] - - @aptos-labs/wallet-adapter-core@4.8.1 - -## 3.4.1 - -### Patch Changes - -- 0bdbb0d: Fixed the SVG attributes for the graphic of the Aptos logo. - -## 3.4.0 - -### Minor Changes - -- 6bec234: Added `AptosPrivacyPolicy` headless component for building the privacy policy disclaimer that should be displayed below Aptos Connect login options. - -## 3.3.1 - -### Patch Changes - -- Updated dependencies [e3df2db] -- Updated dependencies [1580df8] - - @aptos-labs/wallet-adapter-core@4.8.0 - -## 3.3.0 - -### Minor Changes - -- 07ee265: Support dappConfig user prop to set SDK wallets configuration - -### Patch Changes - -- Updated dependencies [07ee265] - - @aptos-labs/wallet-adapter-core@4.7.0 - -## 3.2.0 - -### Minor Changes - -- 2e9b7df: Added `getAptosConnectWallets` utility function - -### Patch Changes - -- Updated dependencies [0672ff4] - - @aptos-labs/wallet-adapter-core@4.6.0 - -## 3.1.1 - -### Patch Changes - -- Updated dependencies [c1a9f41] - - @aptos-labs/wallet-adapter-core@4.5.0 - -## 3.1.0 - -### Minor Changes - -- 2e9c156: Added `partitionWallets`, `isInstalledOrLoadable`, `isInstallRequired`, and `truncateAddress` utility functions to make it easier to implement custom wallet selectors. -- 2e9c156: Added `WalletItem` headless component for implementing custom wallet selectors. - -### Patch Changes - -- 2e9c156: Fixed a bug where `WalletProvider` would not automatically attempt to reconnect the wallet when the `autoConnect` is set to true after the initial render. -- Updated dependencies [2e9c156] - - @aptos-labs/wallet-adapter-core@4.4.0 - -## 3.0.7 - -### Patch Changes - -- Updated dependencies [79b1bf8] -- Updated dependencies [9566c50] - - @aptos-labs/wallet-adapter-core@4.3.0 - -## 3.0.6 - -### Patch Changes - -- Updated dependencies [4db7a8d] - - @aptos-labs/wallet-adapter-core@4.2.1 - -## 3.0.5 - -### Patch Changes - -- Updated dependencies [9f94e4d] - - @aptos-labs/wallet-adapter-core@4.2.0 - -## 3.0.4 - -### Patch Changes - -- Updated dependencies [cc4021b] -- Updated dependencies [ec6cb0c] - - @aptos-labs/wallet-adapter-core@4.1.3 - -## 3.0.3 - -### Patch Changes - -- Updated dependencies [1ff5230] - - @aptos-labs/wallet-adapter-core@4.1.2 - -## 3.0.2 - -### Patch Changes - -- 6e152e4: Revert Support account prop to be of AIP-62 AccountInfo type -- Updated dependencies [6e152e4] - - @aptos-labs/wallet-adapter-core@4.1.1 - -## 3.0.1 - -### Patch Changes - -- Updated dependencies [3ed84cd] - - @aptos-labs/wallet-adapter-core@4.1.0 - -## 3.0.0 - -### Major Changes - -- 2c826a4: Support account prop to be of AIP-62 AccountInfo type - -### Patch Changes - -- Updated dependencies [2c826a4] - - @aptos-labs/wallet-adapter-core@4.0.0 - -## 2.5.1 - -### Patch Changes - -- Updated dependencies [6a58c61] - - @aptos-labs/wallet-adapter-core@3.16.0 - -## 2.5.0 - -### Minor Changes - -- 4832532: Wallets opt-in support - -### Patch Changes - -- Updated dependencies [4832532] - - @aptos-labs/wallet-adapter-core@3.15.0 - -## 2.4.0 - -### Minor Changes - -- ef53f38: AIP-62 standard compatible wallet registry list - -### Patch Changes - -- Updated dependencies [69b6101] -- Updated dependencies [870ee0c] -- Updated dependencies [ef53f38] - - @aptos-labs/wallet-adapter-core@3.14.0 - -## 2.3.7 - -### Patch Changes - -- Updated dependencies [19f4fdd] - - @aptos-labs/wallet-adapter-core@3.13.0 - -## 2.3.6 - -### Patch Changes - -- 92a1801: Fixed the `useEffect` dependency array for auto-connecting to be `[wallets]` instead of `wallets` -- 106d55c: Export all Interfaces and types -- Updated dependencies [106d55c] - - @aptos-labs/wallet-adapter-core@3.12.1 - -## 2.3.5 - -### Patch Changes - -- Updated dependencies [740e909] -- Updated dependencies [2cc2eb5] -- Updated dependencies [e46b930] - - @aptos-labs/wallet-adapter-core@3.12.0 - -## 2.3.4 - -### Patch Changes - -- Updated dependencies [ec02b10] - - @aptos-labs/wallet-adapter-core@3.11.2 - -## 2.3.3 - -### Patch Changes - -- Updated dependencies [55f9970] - - @aptos-labs/wallet-adapter-core@3.11.1 - -## 2.3.2 - -### Patch Changes - -- Updated dependencies [245ce8d] - - @aptos-labs/wallet-adapter-core@3.11.0 - -## 2.3.1 - -### Patch Changes - -- Updated dependencies [41f9485] - - @aptos-labs/wallet-adapter-core@3.10.0 - -## 2.3.0 - -### Minor Changes - -- 444c708: Fix wallet detection - -### Patch Changes - -- Updated dependencies [6be2a06] - - @aptos-labs/wallet-adapter-core@3.9.0 - -## 2.2.1 - -### Patch Changes - -- Updated dependencies [4127cfb] - - @aptos-labs/wallet-adapter-core@3.8.0 - -## 2.2.0 - -### Minor Changes - -- 4d6e2f6: Add AIP-62 wallet standard support - -### Patch Changes - -- Updated dependencies [4d6e2f6] - - @aptos-labs/wallet-adapter-core@3.7.0 - -## 2.1.8 - -### Patch Changes - -- Updated dependencies [8ebd4c7] - - @aptos-labs/wallet-adapter-core@3.6.0 - -## 2.1.7 - -### Patch Changes - -- Updated dependencies [4ca4201] - - @aptos-labs/wallet-adapter-core@3.5.0 - -## 2.1.6 - -### Patch Changes - -- Updated dependencies [e1e9eb2] - - @aptos-labs/wallet-adapter-core@3.4.0 - -## 2.1.5 - -### Patch Changes - -- Updated dependencies [570cbda] - - @aptos-labs/wallet-adapter-core@3.3.0 - -## 2.1.4 - -### Patch Changes - -- Updated dependencies [3f38c51] - - @aptos-labs/wallet-adapter-core@3.2.1 - -## 2.1.3 - -### Patch Changes - -- Updated dependencies [12163ca] -- Updated dependencies [a6f0e46] - - @aptos-labs/wallet-adapter-core@3.2.0 - -## 2.1.2 - -### Patch Changes - -- a1c08cc: Export missing InputTransactionData type - -## 2.1.1 - -### Patch Changes - -- 6266a29: Consolidate options argument on signAndSubmitTransaction -- Updated dependencies [6266a29] - - @aptos-labs/wallet-adapter-core@3.1.1 - -## 2.1.0 - -### Minor Changes - -- aa3d15a: Make sender optional when sign and submit single signer transaction - -### Patch Changes - -- Updated dependencies [6257015] -- Updated dependencies [aa3d15a] - - @aptos-labs/wallet-adapter-core@3.1.0 - -## 2.0.0 - -### Major Changes - -- 31e0084: Support TypeScript SDK V2. Fully compatible with existing SDK V1 and Wallet Adapter V1 - but with a full SDK V2 support for the dapp. - - - Add support for SDK V2 input types - - `signAndSubmitTransaction()` accept only SDK V2 transaction input type - - Implement a `submitTransaction()` function for multi signers transactions - - `signTransaction()` to support both SDK V1 and V2 versions - - Convert wallet `SignedTransaction` response from `signTransaction()` to TS SDK V2 `AccountAuthenticator` - - Demo app to demonstrate different trnsaction flows - single signer, sponsor and multi agent transactions - - Reject promise on core and/or provider errors instead of just returning `false` - - Use `@aptos-labs/ts-sdk@experimental` version `0.0.7` - -### Patch Changes - -- Updated dependencies [31e0084] - - @aptos-labs/wallet-adapter-core@3.0.0 - -## 1.4.0 - -### Minor Changes - -- 7acfa69: Adding support for the new Typescript SDK in the package `@aptos-labs/ts-sdk`. The wallet adapter now supports submitting a basic transaction with the new SDK types. - -### Patch Changes - -- dd6e1ed: Moves dependencies to peer dependencies as needed -- Updated dependencies [7acfa69] -- Updated dependencies [dd6e1ed] - - @aptos-labs/wallet-adapter-core@2.6.0 - -## 1.3.2 - -### Patch Changes - -- 7e314e5: Update aptos dependency -- Updated dependencies [7e314e5] - - @aptos-labs/wallet-adapter-core@2.5.1 - -## 1.3.1 - -### Patch Changes - -- Updated dependencies [c95933a] - - @aptos-labs/wallet-adapter-core@2.5.0 - -## 1.3.0 - -### Minor Changes - -- 3834890: Add an optional `onError` prop to error handle wallet callbacks - -### Patch Changes - -- Updated dependencies [d2a0bbd] -- Updated dependencies [b0586e8] - - @aptos-labs/wallet-adapter-core@2.4.0 - -## 1.2.3 - -### Patch Changes - -- dc98bf4: fix sendAndSubmitTransaction params -- Updated dependencies [dc98bf4] - - @aptos-labs/wallet-adapter-core@2.3.3 - -## 1.2.2 - -### Patch Changes - -- 22ecf6a: Throw `wallet already connected` error when trying to connect to an already connected wallet -- e4b06de: Await for wallet connect request before setting isLoading state -- Updated dependencies [22ecf6a] - - @aptos-labs/wallet-adapter-core@2.3.2 - -## 1.2.1 - -### Patch Changes - -- Updated dependencies [06f334f] - - @aptos-labs/wallet-adapter-core@2.3.1 - -## 1.2.0 - -### Minor Changes - -- 1605d28: Support ReadonlyArray of Wallets in AptosWalletAdapterProvider and WalletCore - -### Patch Changes - -- Updated dependencies [bb1595e] -- Updated dependencies [1605d28] - - @aptos-labs/wallet-adapter-core@2.3.0 - -## 1.1.0 - -### Minor Changes - -- d8d5a8a: Support deeplink on React Provider and Nextjs demo app - -## 1.0.6 - -### Patch Changes - -- Updated dependencies [814939c] - - @aptos-labs/wallet-adapter-core@2.2.0 - -## 1.0.5 - -### Patch Changes - -- 56a3f9f: BCS transaction support in react provider package - -## 1.0.4 - -### Patch Changes - -- 8dea640: Fix wallet adapter auto reconnect on page refresh -- Updated dependencies [50968c4] -- Updated dependencies [8dea640] - - @aptos-labs/wallet-adapter-core@2.1.0 - -## 1.0.3 - -### Patch Changes - -- 03eb0f5: Define core package version to use - -## 0.2.4 - -### Patch Changes - -- e03f79c: Update Blocto and Martian package version and fix a minor autoConnect bug - -## 0.2.3 - -### Patch Changes - -- 7498973: Support Loadable wallet for ant-design and export NetworkName - -## 0.2.2 - -### Patch Changes - -- 552d255: Add react package as a dependency - -## 0.2.1 - -### Patch Changes - -- c3eb031: Export WalletReadyState enum from react package - -## 0.2.0 - -### Minor Changes - -- 6e53116: Add support to verify a signed message - -### Patch Changes - -- Updated dependencies [18a0429] -- Updated dependencies [42e29f6] -- Updated dependencies [576bb57] -- Updated dependencies [6e53116] - - @aptos-labs/wallet-adapter-core@0.2.0 diff --git a/packages/wallet-adapter-swap/README.md b/packages/wallet-adapter-swap/README.md deleted file mode 100644 index c137dbc5..00000000 --- a/packages/wallet-adapter-swap/README.md +++ /dev/null @@ -1,283 +0,0 @@ -> **_NOTE:_** This documentation is for Wallet Adapter `v2.0.0` and up that is fully compatible with the Aptos TypeScript SDK V2. For Wallet Adapter `v^1.*.*` refer to [this guide](./READMEV1.md) - -# Wallet Adapter React Provider - -A react provider wrapper for the Aptos Wallet Adapter - -Dapps that want to use the adapter should install this package and other supported wallet packages. - -### Support - -The react provider supports all [wallet standard](https://aptos.dev/integration/wallet-adapter-for-wallets#aip-62-wallet-standard) functions and feature functions - -##### Standard functions - -``` -connect -disconnect -connected -account -network -signAndSubmitTransaction -signMessage -``` - -##### Feature functions - functions that may not be supported by all wallets - -``` -signTransaction -signMessageAndVerify -signAndSubmitBCSTransaction -submitTransaction -``` - -### Usage - -#### Install Dependencies - -Install wallet dependencies you want to include in your app. -To do that, you can look at our [supported wallets list](https://github.com/aptos-labs/aptos-wallet-adapter#supported-wallet-packages). Each wallet is a link to npm package where you can install it from. - -Next, install the `@aptos-labs/wallet-adapter-react` - -``` -pnpm i @aptos-labs/wallet-adapter-react -``` - -using npm - -``` -npm i @aptos-labs/wallet-adapter-react -``` - -#### Import dependencies - -On the `App.jsx` file, - -Import the installed wallets. - -```js -import { SomeAptosWallet } from "some-aptos-wallet-package"; -``` - -Import the `AptosWalletAdapterProvider`. - -```js -import { AptosWalletAdapterProvider } from "@aptos-labs/wallet-adapter-react"; -``` - -Wrap your app with the Provider, pass it the relevant props. - -```js -const wallets = [new AptosLegacyStandardWallet()]; - - { - console.log("error", error); - }} -> - -; -``` - -#### Available Provider Props - -- `dappConfig` - Config used to initialize the dapp with. - - `network` - the network the dapp works with - - `aptosApiKey` - an api key generated from https://developers.aptoslabs.com/docs/api-access -- `onError` - a callback function to fire when the adapter throws an error -- `plugins` - any legacy standard wallet, i.e a wallet that is not AIP-62 standard compatible, should be installed and passed in this array. [Check here](../../README.md#supported-wallet-packages) for a list of AIP-62 and legacy standard wallets. -- `autoConnect` - a prop indicates whether the dapp should auto connect with a previous connected wallet. -- `optInWallets` - the adapter detects and adds AIP-62 standard wallets by default, sometimes you might want to opt-in with specific wallets. This props lets you define the AIP-62 standard wallets you want to support in your dapp. -- `disableTelemetry` - A boolean flag to disable the adapter telemetry tool, false by default - -#### Use Wallet - -On any page you want to use the wallet props, import `useWallet` from `@aptos-labs/wallet-adapter-react` - -```js -import { useWallet } from "@aptos-labs/wallet-adapter-react"; -``` - -Then you can use the exported properties - -```js -const { - connect, - account, - network, - connected, - disconnect, - wallet, - wallets, - signAndSubmitTransaction, - signAndSubmitBCSTransaction, - signTransaction, - signMessage, - signMessageAndVerify, -} = useWallet(); -``` - -### Use a UI package (recommended) - -As part of the wallet adapter repo we provide a wallet connect UI package that provides a wallet connect button and a wallet select modal. - -The available UI Packages are - -- [shadcn/ui](../../apps/nextjs-example/README.md#use-shadcnui-wallet-selector-for-your-own-app) -- [Ant Design](<(../wallet-adapter-ant-design/)>) -- [MUI](../wallet-adapter-mui-design/) - -If you want to create your own wallet selector UI from existing components and styles in your app, `@aptos-labs/wallet-adapter-react` provides a series of headless components and utilities to simplify this process so that you can focus on writing CSS instead of implementing business logic. For more information, check out the [Building Your Own Wallet Selector](./docs/BYO-wallet-selector.md) document. - -#### Examples - -##### Initialize Aptos - -```js -const aptosConfig = new AptosConfig({ network: Network.MAINNET }); -const aptos = new Aptos(aptosConfig); -``` - -##### connect(walletName) - -```js -const onConnect = async (walletName) => { - await connect(walletName); -}; - -; -``` - -##### disconnect() - -```js - -``` - -##### signAndSubmitTransaction(payload) - -```js -const onSignAndSubmitTransaction = async () => { - const response = await signAndSubmitTransaction({ - sender: account.address, - data: { - function: "0x1::coin::transfer", - typeArguments: ["0x1::aptos_coin::AptosCoin"], - functionArguments: [account.address, 1], - }, - }); - // if you want to wait for transaction - try { - await aptos.waitForTransaction({ transactionHash: response.hash }); - } catch (error) { - console.error(error); - } -}; - -; -``` - -##### signAndSubmitBCSTransaction(payload) - -```js -const onSignAndSubmitBCSTransaction = async () => { - const response = await signAndSubmitTransaction({ - sender: account.address, - data: { - function: "0x1::coin::transfer", - typeArguments: [parseTypeTag(APTOS_COIN)], - functionArguments: [AccountAddress.from(account.address), new U64(1)], - }, - }); - // if you want to wait for transaction - try { - await aptos.waitForTransaction({ transactionHash: response.hash }); - } catch (error) { - console.error(error); - } -}; - -; -``` - -##### signMessage(payload) - -```js -const onSignMessage = async () => { - const payload = { - message: "Hello from Aptos Wallet Adapter", - nonce: "random_string", - }; - const response = await signMessage(payload); -}; - -; -``` - -##### Account - -```js -
{account?.address}
-
{account?.publicKey}
-``` - -##### Network - -```js -
{network?.name}
-``` - -##### Wallet - -```js -
{wallet?.name}
-
{wallet?.icon}
-
{wallet?.url}
-``` - -##### Wallets - -```js -{ - wallets.map((wallet) =>

{wallet.name}

); -} -``` - -##### signTransaction(payload) - -```js -const onSignTransaction = async () => { - const payload = { - type: "entry_function_payload", - function: "0x1::coin::transfer", - type_arguments: ["0x1::aptos_coin::AptosCoin"], - arguments: [account?.address, 1], // 1 is in Octas - }; - const response = await signTransaction(payload); -}; - -; -``` - -##### signMessageAndVerify(payload) - -```js -const onSignMessageAndVerify = async () => { - const payload = { - message: "Hello from Aptos Wallet Adapter", - nonce: "random_string", - }; - const response = await signMessageAndVerify(payload); -}; - -; -``` diff --git a/packages/wallet-adapter-swap/components.json b/packages/wallet-adapter-swap/components.json deleted file mode 100644 index 96719649..00000000 --- a/packages/wallet-adapter-swap/components.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "https://ui.shadcn.com/schema.json", - "style": "default", - "rsc": true, - "tsx": true, - "tailwind": { - "config": "tailwind.config.ts", - "css": "src/globals.css", - "baseColor": "zinc", - "cssVariables": true, - "prefix": "" - }, - "aliases": { - "components": "@/components", - "utils": "@/lib/utils", - "ui": "@/ui" - } -} diff --git a/packages/wallet-adapter-swap/package.json b/packages/wallet-adapter-swap/package.json deleted file mode 100644 index bb5aa08d..00000000 --- a/packages/wallet-adapter-swap/package.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "name": "@aptos-labs/wallet-adapter-swap", - "version": "3.7.9", - "description": "Aptos Wallet Adapter Swap", - "main": "./dist/index.js", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", - "license": "Apache-2.0", - "exports": { - ".": { - "require": "./dist/index.js", - "import": "./dist/index.mjs", - "types": "./dist/index.d.ts" - }, - "./dist/index.css": { - "import": "./dist/index.css", - "require": "./dist/index.css" - } - }, - "repository": { - "type": "git", - "url": "https://github.com/aptos-labs/aptos-wallet-adapter.git" - }, - "homepage": "https://github.com/aptos-labs/aptos-wallet-adapter", - "bugs": { - "url": "https://github.com/aptos-labs/aptos-wallet-adapter/issues" - }, - "author": "aptoslabs.com", - "keywords": [ - "Aptos", - "Aptos Labs", - "Wallet", - "Swap", - "Wallet Adapter", - "Wallet Adapter Provider", - "React" - ], - "scripts": { - "build:bundle": "tsup src/index.tsx --format esm,cjs --sourcemap", - "build:declarations": "tsc --emitDeclarationOnly --declaration --declarationMap", - "build": "pnpm build:bundle", - "dev": "tsup src/index.tsx --format esm,cjs --watch", - "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", - "lint": "TIMING=1 eslint \"src/**/*.ts*\"" - }, - "devDependencies": { - "@aptos-labs/wallet-adapter-tsconfig": "workspace:*", - "@types/node": "^20", - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "eslint": "^8.15.0", - "tailwindcss": "^3.4.1", - "tsup": "^5.10.1", - "typescript": "^4.5.3" - }, - "peerDependencies": { - "@aptos-labs/ts-sdk": "^1.33.1", - "@aptos-labs/wallet-adapter-core": "workspace:*", - "@aptos-labs/wallet-adapter-react": "workspace:*", - "react": "^18" - }, - "dependencies": { - "@radix-ui/react-collapsible": "^1.0.3", - "@radix-ui/react-dialog": "^1.0.5", - "@radix-ui/react-dropdown-menu": "^2.0.6", - "@radix-ui/react-icons": "^1.3.2", - "@radix-ui/react-progress": "^1.1.1", - "@radix-ui/react-select": "^2.1.5", - "@radix-ui/react-slot": "^1.0.2", - "@radix-ui/react-toast": "^1.1.5", - "@solana/web3.js": "^1.95.8", - "@wallet-standard/react-core": "^1.0.0", - "@wormhole-foundation/sdk": "1.5.2", - "@wormhole-foundation/sdk-aptos": "^1.5.2", - "@wormhole-foundation/sdk-evm": "^1.5.2", - "@wormhole-foundation/sdk-icons": "^1.5.2", - "@wormhole-foundation/sdk-solana": "^1.5.2", - "@xlabs-libs/wallet-aggregator-aptos": "1.0.0-alpha.2", - "@xlabs-libs/wallet-aggregator-core": "^0.0.1-alpha.22", - "@xlabs-libs/wallet-aggregator-evm": "0.0.2-alpha.5", - "@xlabs-libs/wallet-aggregator-solana": "0.0.1-alpha.15", - "class-variance-authority": "^0.7.0", - "clsx": "^2.1.1", - "ethers": "^6.4.2", - "lucide-react": "^0.383.0", - "tailwind-merge": "^2.3.0", - "tailwindcss-animate": "^1.0.7" - }, - "files": [ - "dist", - "src", - "!src/**.test.ts", - "!src/**/__tests__" - ] -} diff --git a/packages/wallet-adapter-swap/postcss.config.js b/packages/wallet-adapter-swap/postcss.config.js deleted file mode 100644 index dd07c71e..00000000 --- a/packages/wallet-adapter-swap/postcss.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - plugins: [require("tailwindcss")(), require("autoprefixer")()], -}; diff --git a/packages/wallet-adapter-swap/src/MultiChain.tsx b/packages/wallet-adapter-swap/src/MultiChain.tsx deleted file mode 100644 index 9ed333c6..00000000 --- a/packages/wallet-adapter-swap/src/MultiChain.tsx +++ /dev/null @@ -1,665 +0,0 @@ -import "./global.css"; -import { FC, useEffect, useState } from "react"; -import { Loader2, MoveDown } from "lucide-react"; -import { - Ed25519Account, - Network as AptosNetwork, - Ed25519PrivateKey, - Account, -} from "@aptos-labs/ts-sdk"; -import { - chainToPlatform, - routes, - TokenId, - Wormhole, - wormhole, - Chain, - Platform, - Network, - TransferState, - PlatformContext, - amount as amountUtils, -} from "@wormhole-foundation/sdk"; -import { chainToIcon } from "@wormhole-foundation/sdk-icons"; -import { Wallet } from "@xlabs-libs/wallet-aggregator-core"; -import aptos from "@wormhole-foundation/sdk/aptos"; -import solana from "@wormhole-foundation/sdk/solana"; -import evm from "@wormhole-foundation/sdk/evm"; - -import { Card, CardContent } from "./ui/card"; -import { Button } from "./ui/button"; -import { SolanaWalletSelector } from "./components/walletSelector/solana/SolanaWalletSelector"; -import { - AptosMainnetUSDCToken, - AptosTestnetUSDCToken, - mainnetChainTokens, - testnetChainTokens, -} from "./utils/index"; -import { ChainSelect } from "./components/ChainSelect"; -import { Input } from "./ui/input"; -import { Signer } from "./signer/Signer"; -import { sleep } from "./signer/SolanaSigner"; - -import { EthereumWalletSelector } from "./components/walletSelector/ethereum/EthereumWalletSelector"; -import USDC from "./icons/USDC"; -import { logger } from "./utils/logger"; -import { AptosLocalSigner } from "./signer/AptosLocalSigner"; - -// should come from transaction stream worker -const claimSignerPrivateKey = new Ed25519PrivateKey( - "0xddc1abd2ebb35b6ffa7c328f1b1d672e48073adb32cd3c95a911d6df2e205920" -); -const claimSignerAccount = Account.fromPrivateKey({ - privateKey: claimSignerPrivateKey, -}); - -// should come from gas station -const feePayerPrivateKey = new Ed25519PrivateKey( - "0xedae3fa4f04fdee1e3458b9e38d006ebca0101bd9d8a124db9dd9e8dc3707b45" -); -const feePayerStaticAccount = Account.fromPrivateKey({ - privateKey: feePayerPrivateKey, -}); - -// should be derived from hash(domain_name + source_chain_address + domain_separator) -const destinationAccountAddress = - "0x38383091fdd9325e0b8ada990c474da8c7f5aa51580b65eb477885b6ce0a36b7"; - -export interface MultiChainProps { - feePayerAccount?: Ed25519Account; - dappConfig?: { network: AptosNetwork.MAINNET | AptosNetwork.TESTNET }; -} - -export const MultiChain: FC = ({ - feePayerAccount = undefined, - dappConfig = undefined, -}) => { - const isMainnet = dappConfig?.network === AptosNetwork.MAINNET; - const chainToken = isMainnet ? mainnetChainTokens : testnetChainTokens; - - const [sourceWallet, setSourceWallet] = useState(null); - - const [selectedSourceChain, setSelectedSourceChain] = - useState("Solana"); - const [amount, setAmount] = useState("0"); - - const [platform, setPlatform] = useState< - PlatformContext | undefined - >(undefined); - - const [cctpRequest, setCctpRequest] = useState< - routes.RouteTransferRequest | undefined - >(undefined); - - const [cctpRoute, setCctpRoute] = useState< - | routes.Route< - Network, - routes.Options, - routes.ValidatedTransferParams, - routes.Receipt - > - | undefined - >(undefined); - - const [quote, setQuote] = useState, - any - > | null>(null); - - const [showQuote, setShowQuote] = useState(false); - const [quoteAmount, setQuoteAmount] = useState(null); - - const [wormholeContext, setWormholeContext] = useState< - Wormhole | undefined - >(undefined); - - const [sourceWalletUSDCBalance, setSourceWalletUSDCBalance] = - useState(null); - - const [progress, setProgress] = useState(0); - const [transactionETA, setTransactionETA] = useState(0); - const [startTime, setStartTime] = useState(null); - - const [aptosTransactionId, setAptosTransactionId] = useState< - string | undefined - >(undefined); - const [transactionInProgress, setTransactionInProgress] = useState(false); - const [transactionCompleted, setTransactionCompleted] = useState(false); - const [countdown, setCountdown] = useState({ minutes: 0, seconds: 0 }); - - const [invalidAmount, setInvalidAmount] = useState(false); - - const [wormholeTransactionId, setWormholeTransactionId] = useState< - string | undefined - >(undefined); - - const [isCountdownComplete, setIsCountdownComplete] = useState(false); - - const onSetAmount = (amount: string) => { - if (!cctpRoute) { - throw new Error("Route is not initialized"); - } - if (!cctpRequest) { - throw new Error("Request is not initialized"); - } - setAmount(amount); - setQuoteAmount(null); - setTimeout(async () => { - setQuoteAmount(amount); - // TODO what is nativeGas for? - const transferParams = { amount, options: { nativeGas: 0 } }; - - const validated = await cctpRoute.validate(cctpRequest, transferParams); - if (!validated.valid) { - logger.log("invalid", validated.valid); - throw validated.error; - } - const quote = await cctpRoute.quote(cctpRequest, validated.params); - if (!quote.success) { - logger.log("quote failed", quote.success); - throw quote.error; - } - - logger.log("quote", quote); - setQuote(quote); - setTransactionETA(Math.ceil((quote.eta ?? 0) / 1000) * 1000); - setShowQuote(true); - }, 800); - }; - - const humanReadableETA = (milliseconds: number): string => { - if (milliseconds >= 60000) { - const minutes = Math.floor(milliseconds / 60000); - return `${minutes} minute${minutes > 1 ? "s" : ""}`; - } else { - const seconds = Math.floor(milliseconds / 1000); - return `${seconds} second${seconds > 1 ? "s" : ""}`; - } - }; - - useEffect(() => { - if (!startTime || !transactionETA) return; - - const updateCountdown = () => { - const elapsed = Date.now() - startTime; - const remainingTime = Math.max(transactionETA - elapsed, 0); // Ensure non-negative - const minutes = Math.floor(remainingTime / 60000); - const seconds = Math.floor((remainingTime % 60000) / 1000); - - setCountdown({ minutes, seconds }); - - const progressPercent = Math.min((elapsed / transactionETA) * 100, 100); - setProgress(progressPercent); - - if (remainingTime === 0) { - setIsCountdownComplete(true); - clearInterval(interval); - } - - if (progressPercent >= 100) { - clearInterval(interval); - } - }; - - updateCountdown(); // Initialize immediately - const interval = setInterval(updateCountdown, 1000); // Update every second - - return () => clearInterval(interval); - }, [startTime, transactionETA]); - - useEffect(() => { - if (!sourceWalletUSDCBalance || !amount) { - return; - } - - const parsedAmount = amountUtils.parse( - amount, - chainToken[selectedSourceChain].decimals - ); - - if ( - amountUtils.units(parsedAmount) > - amountUtils.units(sourceWalletUSDCBalance) - ) { - setInvalidAmount(true); - } else { - setInvalidAmount(false); - } - }, [sourceWalletUSDCBalance, amount]); - - useEffect(() => { - const initializeRoute = async () => { - const wh = await wormhole(isMainnet ? "Mainnet" : "Testnet", [ - solana, - aptos, - evm, - ]); - setWormholeContext(wh); - const platform = wh.getPlatform(chainToPlatform(selectedSourceChain)); - setPlatform(platform); - - const sourceToken: TokenId = Wormhole.tokenId( - chainToken[selectedSourceChain].tokenId.chain as Chain, - chainToken[selectedSourceChain].tokenId.address - ); - const aptosChainToken = isMainnet - ? AptosMainnetUSDCToken - : AptosTestnetUSDCToken; - const destToken: TokenId = Wormhole.tokenId( - aptosChainToken.tokenId.chain as Chain, - aptosChainToken.tokenId.address - ); - - const sourceContext = wh - .getPlatform(chainToPlatform(selectedSourceChain)) - .getChain(selectedSourceChain); - logger.log("sourceContext", sourceContext); - const destContext = wh - .getPlatform(chainToPlatform("Aptos")) - .getChain("Aptos"); - logger.log("destContext", destContext); - - const req = await routes.RouteTransferRequest.create( - wh, - { - source: sourceToken, - destination: destToken, - }, - sourceContext, - destContext - ); - - setCctpRequest(req); - - const resolver = wh.resolver([ - routes.CCTPRoute, // manual CCTP - ]); - - const route = await resolver.findRoutes(req); - const cctpRoute = route[0]; - logger.log("cctpRoute", cctpRoute); - setCctpRoute(cctpRoute); - }; - - initializeRoute(); - }, [selectedSourceChain]); - - useEffect(() => { - const getBalances = async () => { - if (!wormholeContext) { - return; - } - if (!sourceWallet) { - return; - } - - try { - const platform = wormholeContext.getPlatform( - chainToPlatform(selectedSourceChain) - ); - const rpc = platform.getRpc(selectedSourceChain); - - const result = await platform - .utils() - .getBalances(selectedSourceChain, rpc, sourceWallet?.getAddress()!, [ - chainToken[selectedSourceChain].tokenId.address, - ]); - - const currentAmount = - result[chainToken[selectedSourceChain].tokenId.address]; - - const usdcBalance = amountUtils.fromBaseUnits( - currentAmount ?? BigInt(0), - chainToken[selectedSourceChain].decimals - ); - - return usdcBalance; - } catch (e) { - console.error("Failed to get token balances", e); - } - }; - - getBalances().then((usdcBalance) => { - if (usdcBalance) { - setSourceWalletUSDCBalance(usdcBalance); - } - }); - }, [sourceWallet, platform]); - - const onSetMaxAmount = () => { - if (!sourceWalletUSDCBalance) { - return; - } - setAmount( - amountUtils.display(amountUtils.truncate(sourceWalletUSDCBalance, 6)) - ); - }; - - const onSwapClick = async () => { - if (!sourceWallet) { - return; - } - if (!sourceWallet.getAddress()) { - throw new Error("Source wallet address is undefined"); - } - - if (!cctpRoute) { - throw new Error("Route is not initialized"); - } - - if (!cctpRequest) { - throw new Error("Request is not initialized"); - } - - if (!quote) { - throw new Error("Quote is not initialized"); - } - - const signer = new Signer( - selectedSourceChain, - sourceWallet.getAddress()!, - {}, - sourceWallet - ); - - // initiate transfer - setTransactionInProgress(true); - let receipt = await cctpRoute.initiate( - cctpRequest, - signer, - quote, - Wormhole.chainAddress("Aptos", destinationAccountAddress) - ); - logger.log("Initiated transfer with receipt: ", receipt); - - setStartTime(Date.now()); // Start the timer - - // The txn hash that shows up on solana and wormhole explorer - const txId = - "originTxs" in receipt - ? receipt.originTxs[receipt.originTxs.length - 1].txid - : undefined; - setWormholeTransactionId(txId); - let retries = 0; - const maxRetries = 5; - const baseDelay = 1000; // Initial delay of 1 second - - while (retries < maxRetries) { - try { - for await (receipt of cctpRoute.track(receipt, 120 * 1000)) { - if (receipt.state >= TransferState.SourceInitiated) { - logger.log("Receipt is on track ", receipt); - - try { - const signer = new AptosLocalSigner( - "Aptos", - {}, - claimSignerAccount, // the account that signs the "claim" transaction - feePayerStaticAccount // the fee payer account, should use gas station - ); - - if (routes.isManual(cctpRoute)) { - const circleAttestationReceipt = await cctpRoute.complete( - signer, - receipt - ); - logger.log("Claim receipt: ", circleAttestationReceipt); - signer.claimedTransactionHashes().forEach((txHash) => { - console.log("Claimed transaction hash: ", txHash); - setAptosTransactionId(txHash); - }); - setTransactionInProgress(false); - setTransactionCompleted(true); - } else { - // Should be unreachable - return undefined; - } - } catch (e) { - console.error("Failed to claim", e); - } - return; - } - } - } catch (e) { - console.error( - `Error tracking transfer (attempt ${retries + 1} / ${maxRetries}):`, - e - ); - // Error: Circle chain id not found for Testnet Ethereum - const delay = baseDelay * Math.pow(2, retries); // Exponential backoff - await sleep(delay); - retries++; - } - } - }; - - // const onClaimClick = async () => { - // // if (!wallet) { - // // throw new Error("Wallet is not initialized"); - // // } - - // if (!cctpRoute) { - // throw new Error("Route is not initialized"); - // } - - // if (!transactionReceipt) { - // throw new Error("Transaction receipt is not initialized"); - // } - - // const privateKey = new Ed25519PrivateKey( - // "0x085ccf3442892541412303189c2f84adc80287290219a55568361805ac9dc397" - // ); - // const signerAccount = Account.fromPrivateKey({ privateKey }); - - // try { - // const signer = new AptosLocalSigner( - // "Aptos", - // {}, - // signerAccount, - // feePayerAccount - // ); - - // if (routes.isManual(cctpRoute)) { - // const receipt = await cctpRoute.complete(signer, transactionReceipt); - // logger.log("Claim receipt: ", receipt); - // setTransactionClaimed(true); - // } else { - // // Should be unreachable - // return undefined; - // } - // } catch (e) { - // console.error("Failed to claim", e); - // } - // }; - - return ( -
- - - {/*From*/} - -
- {selectedSourceChain === "Solana" ? ( - - ) : ( - - )} -
- -
- onSetAmount(e.target.value)} - /> -
- Max - - {sourceWalletUSDCBalance - ? amountUtils.display( - amountUtils.truncate(sourceWalletUSDCBalance, 6) - ) - : "0"} - -
-
- {invalidAmount && ( -

- Amount is greater than the balance of the source wallet -

- )} - {showQuote && quoteAmount && !invalidAmount && ( - - -
-
- -
-
- {selectedSourceChain} -
-
-

-{quoteAmount} USDC

-
-
-
- -
-
-
- -
-
- Aptos -
-
-

+{quoteAmount} USDC

-
-
-
-
-

via Wormhole

-
-

~{humanReadableETA(transactionETA)}

-
-
-
- )} - - {!transactionInProgress && !transactionCompleted && ( - - )} - - {transactionInProgress && !transactionCompleted && ( -
-

Submitting transaction

- -
- )} - - {!transactionInProgress && transactionCompleted && ( -
- -
- )} - - {/* {transactionInProgress && !isCountdownComplete && ( - <> -

ETA: {humanReadableETA(transactionETA)}

-

- {countdown.minutes}:{countdown.seconds} -

- - - )} */} - - {transactionCompleted && ( -
-

Transaction submitted

- {wormholeTransactionId && ( - -

View on Solana Explorer

-
- )} - {aptosTransactionId && ( - -

View on Aptos Explorer

-
- )} -
- )} -
-
-
- ); -}; diff --git a/packages/wallet-adapter-swap/src/components/ChainSelect.tsx b/packages/wallet-adapter-swap/src/components/ChainSelect.tsx deleted file mode 100644 index 78735efe..00000000 --- a/packages/wallet-adapter-swap/src/components/ChainSelect.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import * as React from "react"; -import { ChevronDown, ExternalLink } from "lucide-react"; -import { Button } from "../ui/button"; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuTrigger, -} from "../ui/dropdown-menu"; -import { - mainnetChains, - mainnetChainTokens, - testnetChains, - testnetChainTokens, -} from "../utils/index"; -import { chainToIcon } from "@wormhole-foundation/sdk-icons"; -import { truncateAddress } from "@aptos-labs/wallet-adapter-react"; -import { Chain } from "@wormhole-foundation/sdk/dist/cjs"; - -export function ChainSelect({ - setSelectedSourceChain, - selectedSourceChain, - isMainnet, -}: { - setSelectedSourceChain: (chain: Chain) => void; - selectedSourceChain: Chain; - isMainnet: boolean; -}) { - const [selectedItem, setSelectedItem] = - React.useState(selectedSourceChain); - - const onSelectedSourceChainChangeClicked = (chain: string) => { - setSelectedItem(chain as Chain); - setSelectedSourceChain(chain as Chain); - }; - - const chains = isMainnet ? mainnetChains : testnetChains; - - const chainTokens = isMainnet ? mainnetChainTokens : testnetChainTokens; - - return ( - - - - - - {Object.values(chains).map((chain, index) => ( - - onSelectedSourceChainChangeClicked(chain.displayName) - } - > - {chain.key} - - - ))} - - - ); -} diff --git a/packages/wallet-adapter-swap/src/components/Spinner.tsx b/packages/wallet-adapter-swap/src/components/Spinner.tsx deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/wallet-adapter-swap/src/components/walletSelector/aptos/WalletSelector.tsx b/packages/wallet-adapter-swap/src/components/walletSelector/aptos/WalletSelector.tsx deleted file mode 100644 index 006ad933..00000000 --- a/packages/wallet-adapter-swap/src/components/walletSelector/aptos/WalletSelector.tsx +++ /dev/null @@ -1,298 +0,0 @@ -import { - APTOS_CONNECT_ACCOUNT_URL, - AboutAptosConnect, - AboutAptosConnectEducationScreen, - AnyAptosWallet, - AptosPrivacyPolicy, - WalletItem, - WalletSortingOptions, - groupAndSortWallets, - isAptosConnectWallet, - isInstallRequired, - truncateAddress, - useWallet, -} from "@aptos-labs/wallet-adapter-react"; -import { - ArrowLeft, - ArrowRight, - ChevronDown, - Copy, - LogOut, - User, -} from "lucide-react"; -import { useCallback, useState } from "react"; -import { Button } from "../../../ui/button"; -import { - Collapsible, - CollapsibleContent, - CollapsibleTrigger, -} from "../../../ui/collapsible"; -import { - Dialog, - DialogContent, - DialogHeader, - DialogTitle, - DialogTrigger, -} from "../../../ui/dialog"; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuTrigger, -} from "../../../ui/dropdown-menu"; -import { useToast } from "../../../ui/use-toast"; - -export function WalletSelector({ - walletSortingOptions, - transactionInProgress, -}: { - walletSortingOptions: WalletSortingOptions; - transactionInProgress: boolean; -}) { - const { account, connected, disconnect, wallet } = useWallet(); - const { toast } = useToast(); - const [isDialogOpen, setIsDialogOpen] = useState(false); - - const closeDialog = useCallback(() => setIsDialogOpen(false), []); - - const copyAddress = useCallback(async () => { - if (!account?.address) return; - try { - await navigator.clipboard.writeText(account.address); - toast({ - title: "Success", - description: "Copied wallet address to clipboard.", - }); - } catch { - toast({ - variant: "destructive", - title: "Error", - description: "Failed to copy wallet address.", - }); - } - }, [account?.address, toast]); - - return connected ? ( - - - - - - - Copy address - - {wallet && isAptosConnectWallet(wallet) && ( - - - Account - - - )} - - Disconnect - - - - ) : ( - - - - - - - ); -} - -interface ConnectWalletDialogProps extends WalletSortingOptions { - close: () => void; -} - -function ConnectWalletDialog({ - close, - ...walletSortingOptions -}: ConnectWalletDialogProps) { - const { wallets = [] } = useWallet(); - - const { aptosConnectWallets, availableWallets, installableWallets } = - groupAndSortWallets(wallets, walletSortingOptions); - - const hasAptosConnectWallets = !!aptosConnectWallets.length; - - const handleOnConnect = (wallet: AnyAptosWallet) => { - close(); - console.log("Connected to wallet: ", wallet); - }; - - return ( - - - - - {hasAptosConnectWallets ? ( - <> - Log in or sign up - with Social + Aptos Connect - - ) : ( - "Connect Wallet" - )} - - - - {hasAptosConnectWallets && ( -
- {aptosConnectWallets.map((wallet) => ( - - ))} -

- Learn more about{" "} - - Aptos Connect - -

- -

- {" "} - - . -

- -
-
-
- Or -
-
-
- )} - -
- {availableWallets.map((wallet) => ( - - ))} - {!!installableWallets.length && ( - - - - - - {installableWallets.map((wallet) => ( - - ))} - - - )} -
- - - ); -} - -interface WalletRowProps { - wallet: AnyAptosWallet; - onConnect?: () => void; -} - -function WalletRow({ wallet, onConnect }: WalletRowProps) { - return ( - -
- - -
- {isInstallRequired(wallet) ? ( - - ) : ( - - - - )} -
- ); -} - -function AptosConnectWalletRow({ wallet, onConnect }: WalletRowProps) { - return ( - - - - - - ); -} - -function renderEducationScreen(screen: AboutAptosConnectEducationScreen) { - return ( - <> - - - - About Aptos Connect - - - -
- -
-
- - -
- -
- -
- {screen.screenIndicators.map((ScreenIndicator, i) => ( - -
- - ))} -
- -
- - ); -} diff --git a/packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletItem.tsx b/packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletItem.tsx deleted file mode 100644 index d5a30d99..00000000 --- a/packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletItem.tsx +++ /dev/null @@ -1,192 +0,0 @@ -import { Slot } from "@radix-ui/react-slot"; -import { - cloneElement, - createContext, - forwardRef, - isValidElement, - ReactNode, - useCallback, - useContext, -} from "react"; -import { Eip6963Wallet } from "@xlabs-libs/wallet-aggregator-evm"; -export interface WalletItemProps extends HeadlessComponentProps { - /** The wallet option to be displayed. */ - wallet: Eip6963Wallet; - /** A callback to be invoked when the wallet is connected. */ - onConnect?: () => void; -} - -function useEthereumWalletItemContext(displayName: string) { - const context = useContext(EthereumWalletItemContext); - - if (!context) { - throw new Error( - `\`${displayName}\` must be used within \`EthereumWalletItem\`` - ); - } - - return context; -} - -const EthereumWalletItemContext = createContext<{ - wallet: Eip6963Wallet; - connectWallet: () => void; -} | null>(null); - -const Root = forwardRef( - ({ wallet, onConnect, className, asChild, children }, ref) => { - const connectWallet = useCallback(async () => { - await wallet.connect(); - onConnect?.(); - }, [wallet, onConnect]); - - // const isWalletReady = - // wallet.readyState === WalletReadyState.Installed || - // wallet.readyState === WalletReadyState.Loadable; - - // const mobileSupport = - // "deeplinkProvider" in wallet && wallet.deeplinkProvider; - - // if (!isWalletReady && isRedirectable() && !mobileSupport) return null; - - const Component = asChild ? Slot : "div"; - - return ( - - - {children} - - - ); - } -); -Root.displayName = "EthereumWalletItem"; - -const Icon = createHeadlessComponent( - "EthereumWalletItem.Icon", - "img", - (displayName) => { - const context = useEthereumWalletItemContext(displayName); - - return { - src: context.wallet.getIcon(), - alt: `${context.wallet.getName()} icon`, - }; - } -); - -const Name = createHeadlessComponent( - "EthereumWalletItem.Name", - "div", - (displayName) => { - const context = useEthereumWalletItemContext(displayName); - - return { - children: context.wallet.getName(), - }; - } -); - -const ConnectButton = createHeadlessComponent( - "EthereumWalletItem.ConnectButton", - "button", - (displayName) => { - const context = useEthereumWalletItemContext(displayName); - - return { - onClick: context.connectWallet, - children: "Connect", - }; - } -); - -const InstallLink = createHeadlessComponent( - "EthereumWalletItem.InstallLink", - "a", - (displayName) => { - const context = useEthereumWalletItemContext(displayName); - - return { - href: context.wallet.getUrl(), - target: "_blank", - rel: "noopener noreferrer", - children: "Install", - }; - } -); - -/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */ -export const EthereumWalletItem = Object.assign(Root, { - Icon, - Name, - ConnectButton, - InstallLink, -}); - -export interface HeadlessComponentProps { - /** A class name for styling the element. */ - className?: string; - /** - * Whether to render as the child element instead of the default element provided. - * All props will be merged into the child element. - */ - asChild?: boolean; - children?: ReactNode; -} - -/** - * Gets an HTML element type from its tag name - * @example - * HTMLElementFromTag<"img"> // resolved type: HTMLImageElement - */ -type HTMLElementFromTag = - JSX.IntrinsicElements[T] extends React.ClassAttributes - ? Element - : HTMLElement; - -export function createHeadlessComponent< - TElement extends keyof JSX.IntrinsicElements, ->( - displayName: string, - elementType: TElement, - props?: - | JSX.IntrinsicElements[TElement] - | ((displayName: string) => JSX.IntrinsicElements[TElement]) -) { - const component = forwardRef< - HTMLElementFromTag, - HeadlessComponentProps - >(({ className, asChild, children }, ref) => { - const Component = asChild ? Slot : elementType; - - const { children: defaultChildren, ...resolvedProps } = - typeof props === "function" ? props(displayName) : (props ?? {}); - const resolvedChildren = - /** - * Use props' default children if no children are set in the component element's children and when asChild is true. - */ - asChild && isValidElement(children) && !children.props.children - ? cloneElement(children, {}, defaultChildren) - : (children ?? defaultChildren); - - return ( - /** - * Due to the complexity of the types at play, TypeScript reports the - * following error for our JSX below: - * - * `Expression produces a union type that is too complex to represent.` - * - * We can safely ignore this error and retain accurate return types for - * consumers of this function. The only drawback is that type-checking is - * ignored for the JSX block below. - */ - // @ts-expect-error - - {resolvedChildren} - - ); - }); - component.displayName = displayName; - - return component; -} diff --git a/packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletSelector.tsx b/packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletSelector.tsx deleted file mode 100644 index 688ac5f3..00000000 --- a/packages/wallet-adapter-swap/src/components/walletSelector/ethereum/EthereumWalletSelector.tsx +++ /dev/null @@ -1,189 +0,0 @@ -import { Copy, LogOut } from "lucide-react"; -import { useCallback, useEffect, useState } from "react"; -import { Button } from "../../../ui/button"; -import { Dialog, DialogContent, DialogTrigger } from "../../../ui/dialog"; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuTrigger, -} from "../../../ui/dropdown-menu"; -import { useToast } from "../../../ui/use-toast"; -import { - BinanceWallet, - EVMWallet, - Eip6963Wallet, - Eip6963Wallets, - InjectedWallet, - InjectedWallets, - DEFAULT_CHAINS, -} from "@xlabs-libs/wallet-aggregator-evm"; -import { truncateAddress } from "@aptos-labs/wallet-adapter-react"; -import { Wallet, WalletState } from "@xlabs-libs/wallet-aggregator-core"; -import { EthereumWalletItem } from "./EthereumWalletItem"; - -const eip6963Wallets = Object.entries(Eip6963Wallets).reduce( - (acc, [key, name]) => ({ [key]: new Eip6963Wallet(name), ...acc }), - {} -); - -export function EthereumWalletSelector({ - setSourceWallet, - transactionInProgress, -}: { - setSourceWallet: (wallet: Wallet | null) => void; - transactionInProgress: boolean; -}) { - const [connected, setConnected] = useState(false); - const [accountAddress, setAccountAddress] = useState( - undefined - ); - const [wallet, setWallet] = useState(undefined); - - const { toast } = useToast(); - const [isDialogOpen, setIsDialogOpen] = useState(false); - - const closeDialog = useCallback(() => setIsDialogOpen(false), []); - - const onDisconnect = useCallback(async () => { - await wallet?.disconnect(); - setConnected(false); - setSourceWallet(null); - setAccountAddress(undefined); - setWallet(undefined); - }, [wallet]); - - const copyAddress = useCallback(async () => { - if (!accountAddress) return; - try { - await navigator.clipboard.writeText(accountAddress); - toast({ - title: "Success", - description: "Copied wallet address to clipboard.", - }); - } catch { - toast({ - variant: "destructive", - title: "Error", - description: "Failed to copy wallet address.", - }); - } - }, [accountAddress, toast]); - - return connected ? ( - - - - - - - Copy address - - - Disconnect - - - - ) : ( - - - - - - - ); -} - -interface ConnectWalletDialogProps { - close: () => void; - setAccountAddress: (address: string | undefined) => void; - setConnected: (connected: boolean) => void; - setWallet: (wallet: Eip6963Wallet | undefined) => void; - setSourceWallet: (wallet: Eip6963Wallet | null) => void; -} - -function ConnectWalletDialog({ - close, - setAccountAddress, - setConnected, - setWallet, - setSourceWallet, -}: ConnectWalletDialogProps) { - const [wallets, setEthereumWallets] = useState([]); - - useEffect(() => { - const ethereumWallets = Object.values(eip6963Wallets).filter((wallet) => - ["MetaMask", "Phantom", "Coinbase Wallet"].includes( - (wallet as Eip6963Wallet).getName() - ) - ); - setEthereumWallets(ethereumWallets as Eip6963Wallet[]); - }, []); - - const onConnectClick = useCallback( - (wallet: Eip6963Wallet) => { - setAccountAddress(wallet.getAddress()); - setConnected(true); - setWallet(wallet); - setSourceWallet(wallet); - close(); - }, - [setAccountAddress, close, setSourceWallet] - ); - return ( - -
- {wallets.map((wallet) => ( - onConnectClick(wallet)} - /> - ))} -
-
- ); -} - -interface WalletRowProps { - wallet: Eip6963Wallet; - onConnect?: () => void; -} - -function WalletRow({ wallet, onConnect }: WalletRowProps) { - const connectWallet = useCallback(async () => { - const res = await wallet.connect(); - console.log("res", res); - onConnect?.(); - }, [wallet, onConnect]); - - return ( - -
- - -
- {wallet.getWalletState() === WalletState.NotDetected ? ( - - ) : ( - - - - )} -
- ); -} diff --git a/packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletSelector.tsx b/packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletSelector.tsx deleted file mode 100644 index 0f3c23d4..00000000 --- a/packages/wallet-adapter-swap/src/components/walletSelector/solana/SolanaWalletSelector.tsx +++ /dev/null @@ -1,188 +0,0 @@ -import { Copy, LogOut } from "lucide-react"; -import { useCallback, useEffect, useState } from "react"; -import { Button } from "../../../ui/button"; -import { Dialog, DialogContent, DialogTrigger } from "../../../ui/dialog"; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuTrigger, -} from "../../../ui/dropdown-menu"; -import { useToast } from "../../../ui/use-toast"; -import { - getSolanaStandardWallets, - SolanaWallet, -} from "@xlabs-libs/wallet-aggregator-solana"; -import { WalletState } from "@xlabs-libs/wallet-aggregator-core"; -import { Connection } from "@solana/web3.js"; -import { SolanaWalletItem } from "./SolanaWalletItem"; -import { truncateAddress } from "@aptos-labs/wallet-adapter-react"; - -export function SolanaWalletSelector({ - setSourceWallet, - transactionInProgress, -}: { - setSourceWallet: (wallet: SolanaWallet | null) => void; - transactionInProgress: boolean; -}) { - const [connected, setConnected] = useState(false); - const [accountAddress, setAccountAddress] = useState( - undefined - ); - const [wallet, setWallet] = useState(undefined); - - const { toast } = useToast(); - const [isDialogOpen, setIsDialogOpen] = useState(false); - - const closeDialog = useCallback(() => setIsDialogOpen(false), []); - - const onDisconnect = useCallback(async () => { - await wallet?.disconnect(); - setConnected(false); - setSourceWallet(null); - setAccountAddress(undefined); - setWallet(undefined); - }, [wallet]); - - const copyAddress = useCallback(async () => { - if (!accountAddress) return; - try { - await navigator.clipboard.writeText(accountAddress); - toast({ - title: "Success", - description: "Copied wallet address to clipboard.", - }); - } catch { - toast({ - variant: "destructive", - title: "Error", - description: "Failed to copy wallet address.", - }); - } - }, [accountAddress, toast]); - - return connected ? ( - - - - - - - Copy address - - - Disconnect - - - - ) : ( - - - - - - - ); -} - -interface ConnectWalletDialogProps { - close: () => void; - setAccountAddress: (address: string | undefined) => void; - setConnected: (connected: boolean) => void; - setWallet: (wallet: SolanaWallet | undefined) => void; - setSourceWallet: (wallet: SolanaWallet | null) => void; -} - -function ConnectWalletDialog({ - close, - setAccountAddress, - setConnected, - setWallet, - setSourceWallet, -}: ConnectWalletDialogProps) { - const [wallets, setSolanaWallets] = useState([]); - - useEffect(() => { - const solanaWallets = async () => { - // const cluster = "mainnet-beta"; - // const url = clusterApiUrl(cluster); - const isDevnet = true; - const connection = isDevnet - ? "https://api.devnet.solana.com" - : "https://solana-mainnet.rpc.extrnode.com/eb370d10-948a-4f47-8017-a80241a5c7fc"; - const wallets = await getSolanaStandardWallets( - new Connection(connection) - ); - setSolanaWallets(wallets); - }; - solanaWallets(); - }, []); - - const onConnectClick = useCallback( - (wallet: SolanaWallet) => { - setAccountAddress(wallet.getAddress()); - setConnected(true); - setWallet(wallet); - setSourceWallet(wallet); - close(); - }, - [setAccountAddress, close, setSourceWallet] - ); - - return ( - -
- {wallets.map((wallet) => ( - onConnectClick(wallet)} - /> - ))} -
-
- ); -} - -interface WalletRowProps { - wallet: SolanaWallet; - onConnect?: () => void; -} - -function WalletRow({ wallet, onConnect }: WalletRowProps) { - const connectWallet = useCallback(async () => { - const res = await wallet.connect(); - console.log("res", res); - onConnect?.(); - }, [wallet, onConnect]); - - return ( - -
- - -
- {wallet.getWalletState() === WalletState.NotDetected ? ( - - ) : ( - - - - )} -
- ); -} diff --git a/packages/wallet-adapter-swap/src/config.json b/packages/wallet-adapter-swap/src/config.json deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/wallet-adapter-swap/src/global.css b/packages/wallet-adapter-swap/src/global.css deleted file mode 100644 index a1be0c34..00000000 --- a/packages/wallet-adapter-swap/src/global.css +++ /dev/null @@ -1,59 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@layer base { - :root { - --background: 0 0% 100%; - --foreground: 222.2 47.4% 11.2%; - --muted: 210 40% 96.1%; - --muted-foreground: 215.4 16.3% 46.9%; - --popover: 0 0% 100%; - --popover-foreground: 222.2 47.4% 11.2%; - --border: 214.3 31.8% 91.4%; - --input: 214.3 31.8% 91.4%; - --card: 0 0% 100%; - --card-foreground: 222.2 47.4% 11.2%; - --primary: 222.2 47.4% 11.2%; - --primary-foreground: 210 40% 98%; - --secondary: 210 40% 96.1%; - --secondary-foreground: 222.2 47.4% 11.2%; - --accent: 210 40% 96.1%; - --accent-foreground: 222.2 47.4% 11.2%; - --destructive: 0 100% 50%; - --destructive-foreground: 210 40% 98%; - --ring: 215 20.2% 65.1%; - --radius: 0.5rem; - } - - .dark { - --background: 224 71% 4%; - --foreground: 213 31% 91%; - --muted: 223 47% 11%; - --muted-foreground: 215.4 16.3% 56.9%; - --accent: 216 34% 17%; - --accent-foreground: 210 40% 98%; - --popover: 224 71% 4%; - --popover-foreground: 215 20.2% 65.1%; - --border: 216 34% 17%; - --input: 216 34% 17%; - --card: 224 71% 4%; - --card-foreground: 213 31% 91%; - --primary: 210 40% 98%; - --primary-foreground: 222.2 47.4% 1.2%; - --secondary: 222.2 47.4% 11.2%; - --secondary-foreground: 210 40% 98%; - --destructive: 0 63% 31%; - --destructive-foreground: 210 40% 98%; - --ring: 216 34% 17%; - } -} - -@layer base { - * { - @apply border-border; - } - body { - @apply font-sans antialiased bg-background text-foreground; - } -} diff --git a/packages/wallet-adapter-swap/src/icons/Aptos.tsx b/packages/wallet-adapter-swap/src/icons/Aptos.tsx deleted file mode 100644 index 4e2e3752..00000000 --- a/packages/wallet-adapter-swap/src/icons/Aptos.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { SVGProps } from "react"; - -export function AptosLogo(props: SVGProps) { - return ( - - - - ); -} diff --git a/packages/wallet-adapter-swap/src/icons/Ethereum.tsx b/packages/wallet-adapter-swap/src/icons/Ethereum.tsx deleted file mode 100644 index e3a7b90c..00000000 --- a/packages/wallet-adapter-swap/src/icons/Ethereum.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { SVGProps, forwardRef } from "react"; - -export const EthereumIcon = forwardRef>( - (props, ref) => { - return ( - - - - - - - - - - - - - - - ); - } -); -EthereumIcon.displayName = "EthereumIcon"; diff --git a/packages/wallet-adapter-swap/src/icons/Solana.tsx b/packages/wallet-adapter-swap/src/icons/Solana.tsx deleted file mode 100644 index 4b0b748f..00000000 --- a/packages/wallet-adapter-swap/src/icons/Solana.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { SVGProps, forwardRef } from "react"; - -export const SolanaIcon = forwardRef>( - (props, ref) => { - return ( - - - - - - - - - - - - - - - - ); - } -); -SolanaIcon.displayName = "SolanaIcon"; diff --git a/packages/wallet-adapter-swap/src/index.tsx b/packages/wallet-adapter-swap/src/index.tsx deleted file mode 100644 index 438c0727..00000000 --- a/packages/wallet-adapter-swap/src/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "./MultiChain"; diff --git a/packages/wallet-adapter-swap/src/lib/utils.ts b/packages/wallet-adapter-swap/src/lib/utils.ts deleted file mode 100644 index 365058ce..00000000 --- a/packages/wallet-adapter-swap/src/lib/utils.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { type ClassValue, clsx } from "clsx"; -import { twMerge } from "tailwind-merge"; - -export function cn(...inputs: ClassValue[]) { - return twMerge(clsx(inputs)); -} diff --git a/packages/wallet-adapter-swap/src/signer/AptosSigner.ts b/packages/wallet-adapter-swap/src/signer/AptosSigner.ts deleted file mode 100644 index 67d71988..00000000 --- a/packages/wallet-adapter-swap/src/signer/AptosSigner.ts +++ /dev/null @@ -1,144 +0,0 @@ -import { AptosWallet } from "@xlabs-libs/wallet-aggregator-aptos"; -import { - Account, - AccountAuthenticator, - AnyRawTransaction, - Aptos, - AptosConfig, - Network as AptosNetwork, - Ed25519Account, - Ed25519PrivateKey, -} from "@aptos-labs/ts-sdk"; - -import { - Chain, - Network, - SignAndSendSigner, - TxHash, - UnsignedTransaction, -} from "@wormhole-foundation/sdk"; -import { - AptosUnsignedTransaction, - AptosChains, -} from "@wormhole-foundation/sdk-aptos"; -import { WalletContextState } from "@aptos-labs/wallet-adapter-react"; - -export class AptosSigner - implements SignAndSendSigner -{ - _chain: C; - _address: string; - _options: any; - _wallet: WalletContextState; - _feePayerAccount: Ed25519Account | undefined; - - constructor( - chain: C, - address: string, - options: any, - wallet: WalletContextState, - feePayerAccount: Ed25519Account | undefined - ) { - this._chain = chain; - this._address = address; - this._options = options; - this._wallet = wallet; - this._feePayerAccount = feePayerAccount; - } - - chain(): C { - return this._chain; - } - address(): string { - return this._address; - } - /* other methods... */ - - async signAndSend(txs: UnsignedTransaction[]): Promise { - console.log("Signer signAndSend txs", txs); - const txHashes: TxHash[] = []; - - for (const tx of txs) { - const txId = await signAndSendTransaction( - tx as AptosUnsignedTransaction, - this._wallet, - this._feePayerAccount - ); - txHashes.push(txId); - } - return txHashes; - } -} - -export function fetchOptions() { - const aptosWallets: Record = {}; - const walletCore = AptosWallet.walletCoreFactory( - { network: AptosNetwork.TESTNET }, - true, - [] - ); - walletCore.wallets.forEach((wallet) => { - aptosWallets[wallet.name] = new AptosWallet(wallet, walletCore); - }); - return aptosWallets; -} - -export async function signAndSendTransaction( - request: UnsignedTransaction, - wallet: WalletContextState | undefined, - feePayerAccount: Ed25519Account | undefined -) { - if (!wallet) { - throw new Error("Wallet is undefined"); - } - - const payload = request.transaction; - // The wallets do not handle Uint8Array serialization - payload.functionArguments = payload.functionArguments.map((a: any) => { - if (a instanceof Uint8Array) { - return Array.from(a); - } else if (typeof a === "bigint") { - return a.toString(); - } else { - return a; - } - }); - - const aptosConfig = new AptosConfig({ - network: AptosNetwork.TESTNET, - }); - const aptos = new Aptos(aptosConfig); - - const txnToSign = await aptos.transaction.build.simple({ - data: payload, - sender: wallet.account?.address!, - withFeePayer: feePayerAccount ? true : false, - }); - const senderAuthenticator = await wallet.signTransaction(txnToSign); - - const txnToSubmit: { - transaction: AnyRawTransaction; - senderAuthenticator: AccountAuthenticator; - feePayerAuthenticator?: AccountAuthenticator; - } = { - transaction: txnToSign, - senderAuthenticator, - }; - - if (feePayerAccount) { - const feePayerSignerAuthenticator = aptos.transaction.signAsFeePayer({ - signer: feePayerAccount, - transaction: txnToSign, - }); - txnToSubmit.feePayerAuthenticator = feePayerSignerAuthenticator; - } - - const response = await aptos.transaction.submit.simple(txnToSubmit); - console.log("response", response.hash); - - const tx = await aptos.waitForTransaction({ - transactionHash: response.hash, - }); - - return tx.hash; -} diff --git a/packages/wallet-adapter-swap/src/signer/Signer.ts b/packages/wallet-adapter-swap/src/signer/Signer.ts deleted file mode 100644 index fea9add6..00000000 --- a/packages/wallet-adapter-swap/src/signer/Signer.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { - UnsignedTransaction, - Network, - Chain, - TxHash, - SignAndSendSigner, -} from "@wormhole-foundation/sdk"; -import { SolanaUnsignedTransaction } from "@wormhole-foundation/sdk-solana/dist/cjs/unsignedTransaction"; -import { Wallet } from "@xlabs-libs/wallet-aggregator-core"; -import { SolanaWallet } from "@xlabs-libs/wallet-aggregator-solana"; -import * as solanaSigner from "./SolanaSigner"; -import * as ethereumSigner from "./EthereumSigner"; -import { EvmChains } from "@wormhole-foundation/sdk-evm/dist/cjs/types"; -import { EvmUnsignedTransaction } from "@wormhole-foundation/sdk-evm/dist/cjs/unsignedTransaction"; -import { Eip6963Wallet } from "@xlabs-libs/wallet-aggregator-evm"; -import { testnetChains } from "@/utils/chains/testnet"; - -export class Signer - implements SignAndSendSigner -{ - _chain: C; - _address: string; - _options: any; - _wallet: Wallet; - - constructor(chain: C, address: string, options: any, wallet: Wallet) { - this._chain = chain; - this._address = address; - this._options = options; - this._wallet = wallet; - } - - chain(): C { - return this._chain; - } - address(): string { - return this._address; - } - /* other methods... */ - - async signAndSend(txs: UnsignedTransaction[]): Promise { - console.log("Signer signAndSend txs", txs); - const txHashes: TxHash[] = []; - - for (const tx of txs) { - const txId = await signAndSendTransaction( - this._chain, - tx, - this._wallet, - this._options - ); - txHashes.push(txId); - } - return txHashes; - } -} - -export const signAndSendTransaction = async ( - chain: Chain, - request: UnsignedTransaction, - wallet: Wallet, - options: any = {} -): Promise => { - if (!wallet) { - throw new Error("wallet is undefined"); - } - const chainContext = - testnetChains[chain as keyof typeof testnetChains].context; - console.log("chainContext", chainContext); - // TODO make it dynamic import - if (chainContext === "Solana") { - const signature = await solanaSigner.signAndSendTransaction( - request as SolanaUnsignedTransaction, - wallet as SolanaWallet, - options - ); - return signature; - } else if (chainContext === "Ethereum") { - const tx = await ethereumSigner.signAndSendTransaction( - request as EvmUnsignedTransaction, - wallet as Eip6963Wallet, - chain, - options - ); - return tx; - } else { - throw new Error(`Unsupported chain: ${chain}`); - } - - // if (chain === "Ethereum") { - // const evm = await import('./SolanaSigner'); - // const tx = await evm.signAndSendTransaction( - // request as EvmUnsignedTransaction, - // wallet, - // chain, - // options, - // ); - // return tx; - // } else if (chain === "Solana") { - // const solana = await import('./SolanaSigner'); - // const signature = await solana.signAndSendTransaction( - // request as SolanaUnsignedTransaction, - // wallet, - // options, - // ); - // return signature; - // } else if (chain === "Aptos") { - // const aptos = await import('utils/wallet/aptos'); - // const tx = await aptos.signAndSendTransaction( - // request as AptosUnsignedTransaction, - // wallet, - // ); - // return tx.id; - // } else { - // throw new Error('unimplemented'); - // } -}; diff --git a/packages/wallet-adapter-swap/src/ui/button.tsx b/packages/wallet-adapter-swap/src/ui/button.tsx deleted file mode 100644 index 57c9fe47..00000000 --- a/packages/wallet-adapter-swap/src/ui/button.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import * as React from "react"; -import { Slot } from "@radix-ui/react-slot"; -import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -const buttonVariants = cva( - "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", - { - variants: { - variant: { - default: "bg-primary text-primary-foreground hover:bg-primary/90", - destructive: - "bg-destructive text-destructive-foreground hover:bg-destructive/90", - outline: - "border border-input bg-background hover:bg-accent hover:text-accent-foreground", - secondary: - "bg-secondary text-secondary-foreground hover:bg-secondary/80", - ghost: "hover:bg-accent hover:text-accent-foreground", - link: "text-primary underline-offset-4 hover:underline", - }, - size: { - default: "h-10 px-4 py-2", - sm: "h-9 rounded-md px-3", - lg: "h-11 rounded-md px-8", - icon: "h-10 w-10", - }, - }, - defaultVariants: { - variant: "default", - size: "default", - }, - }, -); - -export interface ButtonProps - extends React.ButtonHTMLAttributes, - VariantProps { - asChild?: boolean; -} - -const Button = React.forwardRef( - ({ className, variant, size, asChild = false, ...props }, ref) => { - const Comp = asChild ? Slot : "button"; - return ( - - ); - }, -); -Button.displayName = "Button"; - -export { Button, buttonVariants }; diff --git a/packages/wallet-adapter-swap/src/ui/card.tsx b/packages/wallet-adapter-swap/src/ui/card.tsx deleted file mode 100644 index dc3b01de..00000000 --- a/packages/wallet-adapter-swap/src/ui/card.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import * as React from "react"; - -import { cn } from "@/lib/utils"; - -const Card = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -
-)); -Card.displayName = "Card"; - -const CardHeader = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -
-)); -CardHeader.displayName = "CardHeader"; - -const CardTitle = React.forwardRef< - HTMLParagraphElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -

-)); -CardTitle.displayName = "CardTitle"; - -const CardDescription = React.forwardRef< - HTMLParagraphElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -

-)); -CardDescription.displayName = "CardDescription"; - -const CardContent = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -

-)); -CardContent.displayName = "CardContent"; - -const CardFooter = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes ->(({ className, ...props }, ref) => ( -
-)); -CardFooter.displayName = "CardFooter"; - -export { - Card, - CardHeader, - CardFooter, - CardTitle, - CardDescription, - CardContent, -}; diff --git a/packages/wallet-adapter-swap/src/ui/collapsible.tsx b/packages/wallet-adapter-swap/src/ui/collapsible.tsx deleted file mode 100644 index 5c28cbcc..00000000 --- a/packages/wallet-adapter-swap/src/ui/collapsible.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import * as CollapsiblePrimitive from "@radix-ui/react-collapsible"; - -const Collapsible = CollapsiblePrimitive.Root; - -const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger; - -const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent; - -export { Collapsible, CollapsibleTrigger, CollapsibleContent }; diff --git a/packages/wallet-adapter-swap/src/ui/dialog.tsx b/packages/wallet-adapter-swap/src/ui/dialog.tsx deleted file mode 100644 index 30dacc9c..00000000 --- a/packages/wallet-adapter-swap/src/ui/dialog.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import * as React from "react"; -import * as DialogPrimitive from "@radix-ui/react-dialog"; -import { X } from "lucide-react"; - -import { cn } from "@/lib/utils"; - -const Dialog = DialogPrimitive.Root; - -const DialogTrigger = DialogPrimitive.Trigger; - -const DialogPortal = DialogPrimitive.Portal; - -const DialogClose = DialogPrimitive.Close; - -const DialogOverlay = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -DialogOverlay.displayName = DialogPrimitive.Overlay.displayName; - -const DialogContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - - - - {children} - - - Close - - - -)); -DialogContent.displayName = DialogPrimitive.Content.displayName; - -const DialogHeader = ({ - className, - ...props -}: React.HTMLAttributes) => ( -
-); -DialogHeader.displayName = "DialogHeader"; - -const DialogFooter = ({ - className, - ...props -}: React.HTMLAttributes) => ( -
-); -DialogFooter.displayName = "DialogFooter"; - -const DialogTitle = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -DialogTitle.displayName = DialogPrimitive.Title.displayName; - -const DialogDescription = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -DialogDescription.displayName = DialogPrimitive.Description.displayName; - -export { - Dialog, - DialogPortal, - DialogOverlay, - DialogClose, - DialogTrigger, - DialogContent, - DialogHeader, - DialogFooter, - DialogTitle, - DialogDescription, -}; diff --git a/packages/wallet-adapter-swap/src/ui/dropdown-menu.tsx b/packages/wallet-adapter-swap/src/ui/dropdown-menu.tsx deleted file mode 100644 index 5c1e59d3..00000000 --- a/packages/wallet-adapter-swap/src/ui/dropdown-menu.tsx +++ /dev/null @@ -1,198 +0,0 @@ -import * as React from "react"; -import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"; -import { Check, ChevronRight, Circle } from "lucide-react"; - -import { cn } from "@/lib/utils"; - -const DropdownMenu = DropdownMenuPrimitive.Root; - -const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger; - -const DropdownMenuGroup = DropdownMenuPrimitive.Group; - -const DropdownMenuPortal = DropdownMenuPrimitive.Portal; - -const DropdownMenuSub = DropdownMenuPrimitive.Sub; - -const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup; - -const DropdownMenuSubTrigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - inset?: boolean; - } ->(({ className, inset, children, ...props }, ref) => ( - - {children} - - -)); -DropdownMenuSubTrigger.displayName = - DropdownMenuPrimitive.SubTrigger.displayName; - -const DropdownMenuSubContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -DropdownMenuSubContent.displayName = - DropdownMenuPrimitive.SubContent.displayName; - -const DropdownMenuContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, sideOffset = 4, ...props }, ref) => ( - - - -)); -DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName; - -const DropdownMenuItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - inset?: boolean; - } ->(({ className, inset, ...props }, ref) => ( - -)); -DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName; - -const DropdownMenuCheckboxItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, checked, ...props }, ref) => ( - - - - - - - {children} - -)); -DropdownMenuCheckboxItem.displayName = - DropdownMenuPrimitive.CheckboxItem.displayName; - -const DropdownMenuRadioItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - - - - - - - {children} - -)); -DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName; - -const DropdownMenuLabel = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & { - inset?: boolean; - } ->(({ className, inset, ...props }, ref) => ( - -)); -DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName; - -const DropdownMenuSeparator = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName; - -const DropdownMenuShortcut = ({ - className, - ...props -}: React.HTMLAttributes) => { - return ( - - ); -}; -DropdownMenuShortcut.displayName = "DropdownMenuShortcut"; - -export { - DropdownMenu, - DropdownMenuTrigger, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuCheckboxItem, - DropdownMenuRadioItem, - DropdownMenuLabel, - DropdownMenuSeparator, - DropdownMenuShortcut, - DropdownMenuGroup, - DropdownMenuPortal, - DropdownMenuSub, - DropdownMenuSubContent, - DropdownMenuSubTrigger, - DropdownMenuRadioGroup, -}; diff --git a/packages/wallet-adapter-swap/src/ui/progress.tsx b/packages/wallet-adapter-swap/src/ui/progress.tsx deleted file mode 100644 index 7cf0d93d..00000000 --- a/packages/wallet-adapter-swap/src/ui/progress.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import * as React from "react"; -import * as ProgressPrimitive from "@radix-ui/react-progress"; - -import { cn } from "@/lib/utils"; - -const Progress = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, value, ...props }, ref) => { - return ( - - - - ); -}); -Progress.displayName = ProgressPrimitive.Root.displayName; - -export { Progress }; diff --git a/packages/wallet-adapter-swap/src/ui/select.tsx b/packages/wallet-adapter-swap/src/ui/select.tsx deleted file mode 100644 index df0d2287..00000000 --- a/packages/wallet-adapter-swap/src/ui/select.tsx +++ /dev/null @@ -1,158 +0,0 @@ -import * as React from "react"; -import * as SelectPrimitive from "@radix-ui/react-select"; -import { Check, ChevronDown, ChevronUp } from "lucide-react"; - -import { cn } from "@/lib/utils"; - -const Select = SelectPrimitive.Root; - -const SelectGroup = SelectPrimitive.Group; - -const SelectValue = SelectPrimitive.Value; - -const SelectTrigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - span]:line-clamp-1", - className - )} - {...props} - > - {children} - - - - -)); -SelectTrigger.displayName = SelectPrimitive.Trigger.displayName; - -const SelectScrollUpButton = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - - - -)); -SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName; - -const SelectScrollDownButton = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - - - -)); -SelectScrollDownButton.displayName = - SelectPrimitive.ScrollDownButton.displayName; - -const SelectContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, position = "popper", ...props }, ref) => ( - - - - - {children} - - - - -)); -SelectContent.displayName = SelectPrimitive.Content.displayName; - -const SelectLabel = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -SelectLabel.displayName = SelectPrimitive.Label.displayName; - -const SelectItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - - {/* - - - - */} - - {children} - -)); -SelectItem.displayName = SelectPrimitive.Item.displayName; - -const SelectSeparator = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -SelectSeparator.displayName = SelectPrimitive.Separator.displayName; - -export { - Select, - SelectGroup, - SelectValue, - SelectTrigger, - SelectContent, - SelectLabel, - SelectItem, - SelectSeparator, - SelectScrollUpButton, - SelectScrollDownButton, -}; diff --git a/packages/wallet-adapter-swap/src/ui/toast.tsx b/packages/wallet-adapter-swap/src/ui/toast.tsx deleted file mode 100644 index e5c16c5c..00000000 --- a/packages/wallet-adapter-swap/src/ui/toast.tsx +++ /dev/null @@ -1,127 +0,0 @@ -import * as React from "react"; -import * as ToastPrimitives from "@radix-ui/react-toast"; -import { cva, type VariantProps } from "class-variance-authority"; -import { X } from "lucide-react"; - -import { cn } from "@/lib/utils"; - -const ToastProvider = ToastPrimitives.Provider; - -const ToastViewport = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -ToastViewport.displayName = ToastPrimitives.Viewport.displayName; - -const toastVariants = cva( - "group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full", - { - variants: { - variant: { - default: "border bg-background text-foreground", - destructive: - "destructive group border-destructive bg-destructive text-destructive-foreground", - }, - }, - defaultVariants: { - variant: "default", - }, - } -); - -const Toast = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef & - VariantProps ->(({ className, variant, ...props }, ref) => { - return ( - - ); -}); -Toast.displayName = ToastPrimitives.Root.displayName; - -const ToastAction = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -ToastAction.displayName = ToastPrimitives.Action.displayName; - -const ToastClose = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - - - -)); -ToastClose.displayName = ToastPrimitives.Close.displayName; - -const ToastTitle = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -ToastTitle.displayName = ToastPrimitives.Title.displayName; - -const ToastDescription = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -ToastDescription.displayName = ToastPrimitives.Description.displayName; - -type ToastProps = React.ComponentPropsWithoutRef; - -type ToastActionElement = React.ReactElement; - -export { - type ToastProps, - type ToastActionElement, - ToastProvider, - ToastViewport, - Toast, - ToastTitle, - ToastDescription, - ToastClose, - ToastAction, -}; diff --git a/packages/wallet-adapter-swap/src/ui/use-toast.ts b/packages/wallet-adapter-swap/src/ui/use-toast.ts deleted file mode 100644 index 4bbde359..00000000 --- a/packages/wallet-adapter-swap/src/ui/use-toast.ts +++ /dev/null @@ -1,189 +0,0 @@ -// Inspired by react-hot-toast library -import * as React from "react"; - -import type { ToastActionElement, ToastProps } from "@/ui/toast"; - -const TOAST_LIMIT = 1; -const TOAST_REMOVE_DELAY = 1000000; - -type ToasterToast = ToastProps & { - id: string; - title?: React.ReactNode; - description?: React.ReactNode; - action?: ToastActionElement; -}; - -const actionTypes = { - ADD_TOAST: "ADD_TOAST", - UPDATE_TOAST: "UPDATE_TOAST", - DISMISS_TOAST: "DISMISS_TOAST", - REMOVE_TOAST: "REMOVE_TOAST", -} as const; - -let count = 0; - -function genId() { - count = (count + 1) % Number.MAX_SAFE_INTEGER; - return count.toString(); -} - -type ActionType = typeof actionTypes; - -type Action = - | { - type: ActionType["ADD_TOAST"]; - toast: ToasterToast; - } - | { - type: ActionType["UPDATE_TOAST"]; - toast: Partial; - } - | { - type: ActionType["DISMISS_TOAST"]; - toastId?: ToasterToast["id"]; - } - | { - type: ActionType["REMOVE_TOAST"]; - toastId?: ToasterToast["id"]; - }; - -interface State { - toasts: ToasterToast[]; -} - -const toastTimeouts = new Map>(); - -const addToRemoveQueue = (toastId: string) => { - if (toastTimeouts.has(toastId)) { - return; - } - - const timeout = setTimeout(() => { - toastTimeouts.delete(toastId); - dispatch({ - type: "REMOVE_TOAST", - toastId: toastId, - }); - }, TOAST_REMOVE_DELAY); - - toastTimeouts.set(toastId, timeout); -}; - -export const reducer = (state: State, action: Action): State => { - switch (action.type) { - case "ADD_TOAST": - return { - ...state, - toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT), - }; - - case "UPDATE_TOAST": - return { - ...state, - toasts: state.toasts.map((t) => - t.id === action.toast.id ? { ...t, ...action.toast } : t - ), - }; - - case "DISMISS_TOAST": { - const { toastId } = action; - - // ! Side effects ! - This could be extracted into a dismissToast() action, - // but I'll keep it here for simplicity - if (toastId) { - addToRemoveQueue(toastId); - } else { - state.toasts.forEach((toast) => { - addToRemoveQueue(toast.id); - }); - } - - return { - ...state, - toasts: state.toasts.map((t) => - t.id === toastId || toastId === undefined - ? { - ...t, - open: false, - } - : t - ), - }; - } - case "REMOVE_TOAST": - if (action.toastId === undefined) { - return { - ...state, - toasts: [], - }; - } - return { - ...state, - toasts: state.toasts.filter((t) => t.id !== action.toastId), - }; - } -}; - -const listeners: Array<(state: State) => void> = []; - -let memoryState: State = { toasts: [] }; - -function dispatch(action: Action) { - memoryState = reducer(memoryState, action); - listeners.forEach((listener) => { - listener(memoryState); - }); -} - -type Toast = Omit; - -function toast({ ...props }: Toast) { - const id = genId(); - - const update = (props: ToasterToast) => - dispatch({ - type: "UPDATE_TOAST", - toast: { ...props, id }, - }); - const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id }); - - dispatch({ - type: "ADD_TOAST", - toast: { - ...props, - id, - open: true, - onOpenChange: (open: any) => { - if (!open) dismiss(); - }, - }, - }); - - return { - id: id, - dismiss, - update, - }; -} - -function useToast() { - const [state, setState] = React.useState(memoryState); - - React.useEffect(() => { - listeners.push(setState); - return () => { - const index = listeners.indexOf(setState); - if (index > -1) { - listeners.splice(index, 1); - } - }; - }, [state]); - - return { - ...state, - toast, - dismiss: (toastId?: string) => dispatch({ type: "DISMISS_TOAST", toastId }), - }; -} - -export { useToast, toast }; diff --git a/packages/wallet-adapter-swap/src/utils/index.ts b/packages/wallet-adapter-swap/src/utils/index.ts deleted file mode 100644 index 9ace7294..00000000 --- a/packages/wallet-adapter-swap/src/utils/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./chains/mainnet"; -export * from "./chains/testnet"; -export * from "./tokens/mainnet"; -export * from "./tokens/testnet"; diff --git a/packages/wallet-adapter-swap/tailwind.config.d.ts b/packages/wallet-adapter-swap/tailwind.config.d.ts deleted file mode 100644 index ea1cdaf5..00000000 --- a/packages/wallet-adapter-swap/tailwind.config.d.ts +++ /dev/null @@ -1,84 +0,0 @@ -declare const config: { - darkMode: ["class"]; - content: string[]; - prefix: string; - theme: { - container: { - center: true; - padding: string; - screens: { - "2xl": string; - }; - }; - extend: { - fontFamily: { - sans: [string, ...string[]]; - }; - colors: { - border: string; - input: string; - ring: string; - background: string; - foreground: string; - primary: { - DEFAULT: string; - foreground: string; - }; - secondary: { - DEFAULT: string; - foreground: string; - }; - destructive: { - DEFAULT: string; - foreground: string; - }; - muted: { - DEFAULT: string; - foreground: string; - }; - accent: { - DEFAULT: string; - foreground: string; - }; - popover: { - DEFAULT: string; - foreground: string; - }; - card: { - DEFAULT: string; - foreground: string; - }; - }; - borderRadius: { - lg: string; - md: string; - sm: string; - }; - keyframes: { - "accordion-down": { - from: { - height: string; - }; - to: { - height: string; - }; - }; - "accordion-up": { - from: { - height: string; - }; - to: { - height: string; - }; - }; - }; - animation: { - "accordion-down": string; - "accordion-up": string; - }; - }; - }; - plugins: any[]; -}; -export default config; -//# sourceMappingURL=tailwind.config.d.ts.map \ No newline at end of file diff --git a/packages/wallet-adapter-swap/tailwind.config.d.ts.map b/packages/wallet-adapter-swap/tailwind.config.d.ts.map deleted file mode 100644 index a6ac077b..00000000 --- a/packages/wallet-adapter-swap/tailwind.config.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tailwind.config.d.ts","sourceRoot":"","sources":["tailwind.config.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEM,CAAC;AAEnB,eAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/packages/wallet-adapter-swap/tailwind.config.ts b/packages/wallet-adapter-swap/tailwind.config.ts deleted file mode 100644 index 3bb34d93..00000000 --- a/packages/wallet-adapter-swap/tailwind.config.ts +++ /dev/null @@ -1,79 +0,0 @@ -import type { Config } from "tailwindcss"; -import { fontFamily } from "tailwindcss/defaultTheme"; - -const config = { - darkMode: ["class"], - content: ["src/**/*.{ts,tsx}"], - prefix: "", - theme: { - container: { - center: true, - padding: "2rem", - screens: { - "2xl": "1400px", - }, - }, - extend: { - fontFamily: { - sans: ["var(--font-sans)", ...fontFamily.sans], - }, - colors: { - border: "hsl(var(--border))", - input: "hsl(var(--input))", - ring: "hsl(var(--ring))", - background: "hsl(var(--background))", - foreground: "hsl(var(--foreground))", - primary: { - DEFAULT: "hsl(var(--primary))", - foreground: "hsl(var(--primary-foreground))", - }, - secondary: { - DEFAULT: "hsl(var(--secondary))", - foreground: "hsl(var(--secondary-foreground))", - }, - destructive: { - DEFAULT: "hsl(var(--destructive))", - foreground: "hsl(var(--destructive-foreground))", - }, - muted: { - DEFAULT: "hsl(var(--muted))", - foreground: "hsl(var(--muted-foreground))", - }, - accent: { - DEFAULT: "hsl(var(--accent))", - foreground: "hsl(var(--accent-foreground))", - }, - popover: { - DEFAULT: "hsl(var(--popover))", - foreground: "hsl(var(--popover-foreground))", - }, - card: { - DEFAULT: "hsl(var(--card))", - foreground: "hsl(var(--card-foreground))", - }, - }, - borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)", - }, - keyframes: { - "accordion-down": { - from: { height: "0" }, - to: { height: "var(--radix-accordion-content-height)" }, - }, - "accordion-up": { - from: { height: "var(--radix-accordion-content-height)" }, - to: { height: "0" }, - }, - }, - animation: { - "accordion-down": "accordion-down 0.2s ease-out", - "accordion-up": "accordion-up 0.2s ease-out", - }, - }, - }, - plugins: [require("tailwindcss-animate")], -} satisfies Config; - -export default config; diff --git a/packages/wallet-adapter-swap/tsconfig.json b/packages/wallet-adapter-swap/tsconfig.json deleted file mode 100644 index fa99d740..00000000 --- a/packages/wallet-adapter-swap/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "@aptos-labs/wallet-adapter-tsconfig/react-library.json", - "include": ["**/*.ts", "**/*.tsx"], - "exclude": ["dist", "build", "node_modules"], - "compilerOptions": { - "outDir": "dist", - "paths": { - "@/*": ["./src/*"] - }, - "allowImportingTsExtensions": true, - "emitDeclarationOnly": true, - "skipLibCheck": true - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..f64f6931 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,21088 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + gh-pages: + specifier: ^5.0.0 + version: 5.0.0 + devDependencies: + '@aptos-labs/eslint-config-adapter': + specifier: workspace:* + version: link:packages/eslint-config-adapter + '@changesets/cli': + specifier: ^2.22.0 + version: 2.27.12 + prettier: + specifier: latest + version: 3.5.3 + turbo: + specifier: latest + version: 2.4.4 + + apps/nextjs-example: + dependencies: + '@aptos-labs/cross-chain-react': + specifier: workspace:* + version: link:../../packages/cross-chain/cross-chain-react + '@aptos-labs/ts-sdk': + specifier: ^1.35.0 + version: 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-adapter-aggregator-core': + specifier: workspace:* + version: link:../../packages/cross-chain/wallet-adapter-aggregator/core + '@aptos-labs/wallet-adapter-ant-design': + specifier: workspace:* + version: link:../../packages/wallet-adapter-ant-design + '@aptos-labs/wallet-adapter-core': + specifier: workspace:* + version: link:../../packages/wallet-adapter-core + '@aptos-labs/wallet-adapter-mui-design': + specifier: workspace:* + version: link:../../packages/wallet-adapter-mui-design + '@aptos-labs/wallet-adapter-react': + specifier: workspace:* + version: link:../../packages/wallet-adapter-react + '@aptos-labs/wallet-standard': + specifier: ^0.3.0 + version: 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@radix-ui/react-collapsible': + specifier: ^1.0.3 + version: 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': + specifier: ^1.0.5 + version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dropdown-menu': + specifier: ^2.0.6 + version: 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-label': + specifier: ^2.0.2 + version: 2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-radio-group': + specifier: ^1.1.3 + version: 1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': + specifier: ^1.0.2 + version: 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-switch': + specifier: ^1.0.3 + version: 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toast': + specifier: ^1.1.5 + version: 1.2.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-query': + specifier: ^5.59.16 + version: 5.66.0(react@18.3.1) + '@telegram-apps/sdk': + specifier: ^2.0.0 + version: 2.11.3 + antd: + specifier: ^5.1.2 + version: 5.23.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + class-variance-authority: + specifier: ^0.7.0 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + lucide-react: + specifier: ^0.383.0 + version: 0.383.0(react@18.3.1) + next: + specifier: 14.2.24 + version: 14.2.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next-themes: + specifier: ^0.3.0 + version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + tailwind-merge: + specifier: ^2.3.0 + version: 2.6.0 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.17) + devDependencies: + '@types/node': + specifier: ^20 + version: 20.17.17 + '@types/react': + specifier: ^18.3.3 + version: 18.3.18 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.5(@types/react@18.3.18) + autoprefixer: + specifier: ^10.4.19 + version: 10.4.20(postcss@8.5.1) + eslint: + specifier: ^8 + version: 8.57.1 + eslint-config-next: + specifier: 14.2.3 + version: 14.2.3(eslint@8.57.1)(typescript@5.7.3) + postcss: + specifier: ^8.4.38 + version: 8.5.1 + prettier: + specifier: ^3.3.1 + version: 3.5.0 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.17 + typescript: + specifier: ^5.4.5 + version: 5.7.3 + + apps/nuxt-example: + dependencies: + '@aptos-labs/ts-sdk': + specifier: ^1.35.0 + version: 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-adapter-core': + specifier: workspace:* + version: link:../../packages/wallet-adapter-core + '@aptos-labs/wallet-adapter-vue': + specifier: workspace:* + version: link:../../packages/wallet-adapter-vue + '@aptos-labs/wallet-standard': + specifier: ^0.3.0 + version: 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@bitget-wallet/aptos-wallet-adapter': + specifier: ^0.1.0 + version: 0.1.2(@aptos-labs/wallet-adapter-core@packages+wallet-adapter-core)(aptos@1.21.0) + '@martianwallet/aptos-wallet-adapter': + specifier: ^0.0.5 + version: 0.0.5 + '@msafe/aptos-wallet-adapter': + specifier: ^1.0.11 + version: 1.1.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(axios@1.7.9)(got@11.8.6) + '@nuxtjs/google-fonts': + specifier: ^3.2.0 + version: 3.2.0(magicast@0.3.5) + '@okwallet/aptos-wallet-adapter': + specifier: ^0.0.3 + version: 0.0.3 + '@pontem/wallet-adapter-plugin': + specifier: ^0.2.1 + version: 0.2.1 + '@trustwallet/aptos-wallet-adapter': + specifier: ^0.1.6 + version: 0.1.6 + class-variance-authority: + specifier: ^0.7.0 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + fewcha-plugin-wallet-adapter: + specifier: ^0.1.3 + version: 0.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + lucide-vue-next: + specifier: 0.396.0 + version: 0.396.0(vue@3.5.13(typescript@5.7.3)) + nuxt: + specifier: ^3.15.4 + version: 3.15.4(@parcel/watcher@2.5.1)(@types/node@22.7.5)(bufferutil@4.0.9)(db0@0.2.3)(eslint@8.57.1)(idb-keyval@6.2.1)(ioredis@5.5.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.6)(terser@5.38.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0) + radix-vue: + specifier: ^1.9.1 + version: 1.9.13(vue@3.5.13(typescript@5.7.3)) + tailwind-merge: + specifier: ^2.3.0 + version: 2.6.0 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.17) + vue: + specifier: ^3.4.29 + version: 3.5.13(typescript@5.7.3) + vue-router: + specifier: ^4.3.3 + version: 4.5.0(vue@3.5.13(typescript@5.7.3)) + devDependencies: + '@nuxtjs/color-mode': + specifier: ^3.4.2 + version: 3.5.2(magicast@0.3.5) + '@nuxtjs/eslint-config-typescript': + specifier: 12.1.0 + version: 12.1.0(eslint@8.57.1)(typescript@5.7.3) + '@nuxtjs/eslint-module': + specifier: 4.1.0 + version: 4.1.0(eslint@8.57.1)(magicast@0.3.5)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(webpack@5.97.1) + '@nuxtjs/tailwindcss': + specifier: ^6.13.1 + version: 6.13.1(magicast@0.3.5) + consola: + specifier: ^3.2.3 + version: 3.4.0 + eslint: + specifier: ^8.15.0 + version: 8.57.1 + prettier: + specifier: ^3.3.1 + version: 3.5.0 + shadcn-nuxt: + specifier: ^0.10.4 + version: 0.10.4(magicast@0.3.5) + typescript: + specifier: ^5.4.5 + version: 5.7.3 + ufo: + specifier: 1.5.3 + version: 1.5.3 + + packages/cross-chain/cross-chain-core: + dependencies: + '@aptos-labs/ts-sdk': + specifier: ^1.34.0 + version: 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-adapter-aggregator-core': + specifier: workspace:* + version: link:../wallet-adapter-aggregator/core + '@mysten/sui': + specifier: ^1.21.2 + version: 1.21.2(typescript@5.7.3) + '@mysten/wallet-standard': + specifier: ^0.13.26 + version: 0.13.26(typescript@5.7.3) + '@solana/spl-token': + specifier: ^0.4.12 + version: 0.4.13(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) + '@solana/wallet-adapter-base': + specifier: ^0.9.23 + version: 0.9.23(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/wallet-standard-wallet-adapter-base': + specifier: ^1.1.4 + version: 1.1.4(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bs58@6.0.0) + '@solana/web3.js': + specifier: ^1.95.8 + version: 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wallet-standard/app': + specifier: ^1.1.0 + version: 1.1.0 + '@wormhole-foundation/sdk': + specifier: 1.5.2 + version: 1.5.2(@types/react@18.3.18)(axios@1.7.9)(bufferutil@4.0.9)(got@11.8.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-aptos': + specifier: ^1.5.2 + version: 1.10.0(axios@1.7.9)(got@11.8.6) + '@wormhole-foundation/sdk-evm': + specifier: ^1.5.2 + version: 1.10.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-solana': + specifier: ^1.5.2 + version: 1.10.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-sui': + specifier: ^1.10.0 + version: 1.10.0(typescript@5.7.3) + buffer: + specifier: ^6.0.3 + version: 6.0.3 + ethers: + specifier: ^6.13.5 + version: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + eventemitter3: + specifier: ^4.0.7 + version: 4.0.7 + evm: + specifier: link:@wormhole-foundation/sdk/evm + version: link:@wormhole-foundation/sdk/evm + solana: + specifier: link:@wormhole-foundation/sdk/solana + version: link:@wormhole-foundation/sdk/solana + tweetnacl: + specifier: ^1.0.3 + version: 1.0.3 + typescript: + specifier: ^5.7.3 + version: 5.7.3 + devDependencies: + '@aptos-labs/eslint-config-adapter': + specifier: workspace:* + version: link:../../eslint-config-adapter + '@aptos-labs/wallet-adapter-tsconfig': + specifier: workspace:* + version: link:../../tsconfig + '@types/jest': + specifier: ^29.2.4 + version: 29.5.14 + '@types/node': + specifier: ^20.10.4 + version: 20.17.17 + eslint: + specifier: ^8.15.0 + version: 8.57.1 + jest: + specifier: ^29.3.1 + version: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) + ts-jest: + specifier: ^29.0.3 + version: 29.2.5(@babel/core@7.26.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.8))(esbuild@0.14.54)(jest@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0))(typescript@5.7.3) + tsup: + specifier: ^5.10.1 + version: 5.12.9(postcss@8.5.1)(typescript@5.7.3) + + packages/cross-chain/cross-chain-react: + dependencies: + '@aptos-labs/cross-chain-core': + specifier: workspace:* + version: link:../cross-chain-core + '@aptos-labs/wallet-adapter-aggregator-aptos': + specifier: workspace:* + version: link:../wallet-adapter-aggregator/aptos + '@aptos-labs/wallet-adapter-aggregator-core': + specifier: workspace:* + version: link:../wallet-adapter-aggregator/core + '@aptos-labs/wallet-adapter-aggregator-eip6963': + specifier: workspace:* + version: link:../wallet-adapter-aggregator/eip6963 + '@aptos-labs/wallet-adapter-aggregator-solana': + specifier: workspace:* + version: link:../wallet-adapter-aggregator/solana + '@aptos-labs/wallet-standard': + specifier: ^0.3.0 + version: 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + ethers: + specifier: ^6.13.5 + version: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + react: + specifier: ^18 + version: 18.3.1 + devDependencies: + '@aptos-labs/wallet-adapter-tsconfig': + specifier: workspace:* + version: link:../../tsconfig + '@types/react': + specifier: ^18.3.3 + version: 18.3.18 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.5(@types/react@18.3.18) + eslint: + specifier: ^8.15.0 + version: 8.57.1 + tsup: + specifier: ^5.10.1 + version: 5.12.9(postcss@8.5.1)(typescript@5.7.3) + typescript: + specifier: ^5.7.3 + version: 5.7.3 + + packages/cross-chain/wallet-adapter-aggregator/aptos: + dependencies: + '@aptos-labs/ts-sdk': + specifier: ^1.35.0 + version: 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-adapter-aggregator-core': + specifier: workspace:* + version: link:../core + '@aptos-labs/wallet-adapter-core': + specifier: workspace:* + version: link:../../../wallet-adapter-core + '@aptos-labs/wallet-standard': + specifier: ^0.3.0 + version: 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + eventemitter3: + specifier: ^4.0.7 + version: 4.0.7 + devDependencies: + '@aptos-labs/wallet-adapter-tsconfig': + specifier: workspace:* + version: link:../../../tsconfig + eslint: + specifier: ^8.15.0 + version: 8.57.1 + tsup: + specifier: ^5.10.1 + version: 5.12.9(postcss@8.5.1)(typescript@5.7.3) + typescript: + specifier: ^5.7.3 + version: 5.7.3 + + packages/cross-chain/wallet-adapter-aggregator/core: + dependencies: + '@aptos-labs/ts-sdk': + specifier: ^1.35.0 + version: 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': + specifier: ^0.3.0 + version: 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@wallet-standard/app': + specifier: ^1.1.0 + version: 1.1.0 + eventemitter3: + specifier: ^4.0.7 + version: 4.0.7 + devDependencies: + '@aptos-labs/wallet-adapter-tsconfig': + specifier: workspace:* + version: link:../../../tsconfig + eslint: + specifier: ^8.15.0 + version: 8.57.1 + tsup: + specifier: ^5.10.1 + version: 5.12.9(postcss@8.5.1)(typescript@5.7.3) + typescript: + specifier: ^5.7.3 + version: 5.7.3 + + packages/cross-chain/wallet-adapter-aggregator/eip6963: + dependencies: + '@aptos-labs/ts-sdk': + specifier: ^1.35.0 + version: 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-adapter-aggregator-core': + specifier: workspace:* + version: link:../core + '@aptos-labs/wallet-standard': + specifier: ^0.3.0 + version: 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + ethers: + specifier: ^6.13.5 + version: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + devDependencies: + '@aptos-labs/wallet-adapter-tsconfig': + specifier: workspace:* + version: link:../../../tsconfig + eslint: + specifier: ^8.15.0 + version: 8.57.1 + tsup: + specifier: ^5.10.1 + version: 5.12.9(postcss@8.5.1)(typescript@5.7.3) + typescript: + specifier: ^5.7.3 + version: 5.7.3 + + packages/cross-chain/wallet-adapter-aggregator/solana: + dependencies: + '@aptos-labs/ts-sdk': + specifier: ^1.35.0 + version: 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-adapter-aggregator-core': + specifier: workspace:* + version: link:../core + '@aptos-labs/wallet-standard': + specifier: ^0.3.0 + version: 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@solana/wallet-adapter-base': + specifier: ^0.9.23 + version: 0.9.23(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/wallet-standard-wallet-adapter-base': + specifier: ^1.1.4 + version: 1.1.4(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bs58@6.0.0) + '@solana/web3.js': + specifier: ^1.95.8 + version: 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wallet-standard/app': + specifier: ^1.1.0 + version: 1.1.0 + eventemitter3: + specifier: ^4.0.7 + version: 4.0.7 + devDependencies: + '@aptos-labs/wallet-adapter-tsconfig': + specifier: workspace:* + version: link:../../../tsconfig + eslint: + specifier: ^8.15.0 + version: 8.57.1 + tsup: + specifier: ^5.10.1 + version: 5.12.9(postcss@8.5.1)(typescript@5.7.3) + typescript: + specifier: ^5.7.3 + version: 5.7.3 + + packages/eslint-config-adapter: + dependencies: + eslint: + specifier: ^7.23.0 + version: 7.32.0 + eslint-config-next: + specifier: 13.0.0 + version: 13.0.0(eslint@7.32.0)(typescript@4.9.5) + eslint-config-prettier: + specifier: ^8.3.0 + version: 8.10.0(eslint@7.32.0) + eslint-config-turbo: + specifier: latest + version: 2.4.4(eslint@7.32.0)(turbo@2.4.4) + eslint-plugin-react: + specifier: 7.31.8 + version: 7.31.8(eslint@7.32.0) + devDependencies: + typescript: + specifier: ^4.7.4 + version: 4.9.5 + + packages/tsconfig: {} + + packages/wallet-adapter-ant-design: + dependencies: + '@ant-design/icons': + specifier: ^5.3.7 + version: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@aptos-labs/wallet-adapter-react': + specifier: workspace:* + version: link:../wallet-adapter-react + antd: + specifier: ^5.18.3 + version: 5.23.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: ^18 + version: 18.3.1 + react-dom: + specifier: ^18 + version: 18.3.1(react@18.3.1) + devDependencies: + '@aptos-labs/wallet-adapter-tsconfig': + specifier: workspace:* + version: link:../tsconfig + '@types/react': + specifier: ^18.3.3 + version: 18.3.18 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.5(@types/react@18.3.18) + eslint: + specifier: ^8.15.0 + version: 8.57.1 + tsup: + specifier: ^5.10.1 + version: 5.12.9(postcss@8.5.1)(typescript@4.9.5) + typescript: + specifier: ^4.5.3 + version: 4.9.5 + + packages/wallet-adapter-core: + dependencies: + '@aptos-connect/wallet-adapter-plugin': + specifier: 2.4.1 + version: 2.4.1(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@aptos-labs/ts-sdk': + specifier: ^1.35.0 + version: 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': + specifier: ^0.3.0 + version: 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@atomrigslab/aptos-wallet-adapter': + specifier: ^0.1.20 + version: 0.1.21(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(axios@1.7.9)(got@11.8.6) + '@mizuwallet-sdk/aptos-wallet-adapter': + specifier: ^0.3.2 + version: 0.3.2(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(axios@1.7.9)(got@11.8.6) + buffer: + specifier: ^6.0.3 + version: 6.0.3 + eventemitter3: + specifier: ^4.0.7 + version: 4.0.7 + tweetnacl: + specifier: ^1.0.3 + version: 1.0.3 + devDependencies: + '@aptos-labs/eslint-config-adapter': + specifier: workspace:* + version: link:../eslint-config-adapter + '@aptos-labs/wallet-adapter-tsconfig': + specifier: workspace:* + version: link:../tsconfig + '@types/jest': + specifier: ^29.2.4 + version: 29.5.14 + '@types/node': + specifier: ^20.10.4 + version: 20.17.17 + eslint: + specifier: ^8.15.0 + version: 8.57.1 + jest: + specifier: ^29.3.1 + version: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) + ts-jest: + specifier: ^29.0.3 + version: 29.2.5(@babel/core@7.26.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.8))(jest@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0))(typescript@4.9.5) + tsup: + specifier: ^5.10.1 + version: 5.12.9(postcss@8.5.1)(typescript@4.9.5) + typescript: + specifier: ^4.5.3 + version: 4.9.5 + + packages/wallet-adapter-mui-design: + dependencies: + '@aptos-labs/wallet-adapter-react': + specifier: workspace:* + version: link:../wallet-adapter-react + '@emotion/react': + specifier: ^11.10.5 + version: 11.14.0(@types/react@18.3.18)(react@18.3.1) + '@emotion/styled': + specifier: ^11.10.5 + version: 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) + '@mui/icons-material': + specifier: ^5.11.0 + version: 5.16.14(@mui/material@5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) + '@mui/material': + specifier: ^5.11.6 + version: 5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: ^18 + version: 18.3.1 + react-dom: + specifier: ^18 + version: 18.3.1(react@18.3.1) + react-router-dom: + specifier: ^6.8.0 + version: 6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + devDependencies: + '@aptos-labs/wallet-adapter-tsconfig': + specifier: workspace:* + version: link:../tsconfig + '@types/react': + specifier: ^18.3.3 + version: 18.3.18 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.5(@types/react@18.3.18) + eslint: + specifier: ^8.15.0 + version: 8.57.1 + tsup: + specifier: ^5.10.1 + version: 5.12.9(postcss@8.5.1)(typescript@4.9.5) + typescript: + specifier: ^4.5.3 + version: 4.9.5 + + packages/wallet-adapter-react: + dependencies: + '@aptos-labs/wallet-adapter-core': + specifier: workspace:* + version: link:../wallet-adapter-core + '@radix-ui/react-slot': + specifier: ^1.0.2 + version: 1.1.2(@types/react@18.3.18)(react@18.3.1) + react: + specifier: ^18 + version: 18.3.1 + devDependencies: + '@aptos-labs/wallet-adapter-tsconfig': + specifier: workspace:* + version: link:../tsconfig + '@types/react': + specifier: ^18.3.3 + version: 18.3.18 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.5(@types/react@18.3.18) + eslint: + specifier: ^8.15.0 + version: 8.57.1 + tsup: + specifier: ^5.10.1 + version: 5.12.9(postcss@8.5.1)(typescript@4.9.5) + typescript: + specifier: ^4.5.3 + version: 4.9.5 + + packages/wallet-adapter-vue: + dependencies: + '@aptos-labs/wallet-adapter-core': + specifier: 5.0.0 + version: 5.0.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)(axios@1.7.9)(got@11.8.6) + vue: + specifier: ^3.4.21 + version: 3.5.13(typescript@4.9.5) + devDependencies: + '@vitejs/plugin-vue': + specifier: 5.0.5 + version: 5.0.5(vite@5.3.6(@types/node@22.7.5)(terser@5.38.1))(vue@3.5.13(typescript@4.9.5)) + eslint: + specifier: ^8.15.0 + version: 8.57.1 + rollup-plugin-typescript2: + specifier: ^0.36.0 + version: 0.36.0(rollup@4.34.6)(typescript@4.9.5) + typescript: + specifier: ^4.5.3 + version: 4.9.5 + vite: + specifier: 5.3.6 + version: 5.3.6(@types/node@22.7.5)(terser@5.38.1) + vite-plugin-compression: + specifier: ^0.5.1 + version: 0.5.1(vite@5.3.6(@types/node@22.7.5)(terser@5.38.1)) + vite-plugin-css-injected-by-js: + specifier: ^3.5.1 + version: 3.5.2(vite@5.3.6(@types/node@22.7.5)(terser@5.38.1)) + vite-plugin-dts: + specifier: 3.9.1 + version: 3.9.1(@types/node@22.7.5)(rollup@4.34.6)(typescript@4.9.5)(vite@5.3.6(@types/node@22.7.5)(terser@5.38.1)) + vue-tsc: + specifier: ^2.0.26 + version: 2.2.0(typescript@4.9.5) + +packages: + + '@0no-co/graphql.web@1.1.1': + resolution: {integrity: sha512-F2i3xdycesw78QCOBHmpTn7eaD2iNXGwB2gkfwxcOfBbeauYpr8RBSyJOkDrFtKtVRMclg8Sg3n1ip0ACyUuag==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + graphql: + optional: true + + '@0no-co/graphqlsp@1.12.16': + resolution: {integrity: sha512-B5pyYVH93Etv7xjT6IfB7QtMBdaaC07yjbhN6v8H7KgFStMkPvi+oWYBTibMFRMY89qwc9H8YixXg8SXDVgYWw==} + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + typescript: ^5.0.0 + + '@adraffy/ens-normalize@1.10.1': + resolution: {integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==} + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@ant-design/colors@7.2.0': + resolution: {integrity: sha512-bjTObSnZ9C/O8MB/B4OUtd/q9COomuJAR2SYfhxLyHvCKn4EKwCN3e+fWGMo7H5InAyV0wL17jdE9ALrdOW/6A==} + + '@ant-design/cssinjs-utils@1.1.3': + resolution: {integrity: sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@ant-design/cssinjs@1.23.0': + resolution: {integrity: sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + '@ant-design/fast-color@2.0.6': + resolution: {integrity: sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==} + engines: {node: '>=8.x'} + + '@ant-design/icons-svg@4.4.2': + resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==} + + '@ant-design/icons@5.6.1': + resolution: {integrity: sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==} + engines: {node: '>=8'} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + '@ant-design/react-slick@1.1.2': + resolution: {integrity: sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==} + peerDependencies: + react: '>=16.9.0' + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@apollo/client@3.13.1': + resolution: {integrity: sha512-HaAt62h3jNUXpJ1v5HNgUiCzPP1c5zc2Q/FeTb2cTk/v09YlhoqKKHQFJI7St50VCJ5q8JVIc03I5bRcBrQxsg==} + peerDependencies: + graphql: ^15.0.0 || ^16.0.0 + graphql-ws: ^5.5.5 || ^6.0.3 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc + subscriptions-transport-ws: ^0.9.0 || ^0.11.0 + peerDependenciesMeta: + graphql-ws: + optional: true + react: + optional: true + react-dom: + optional: true + subscriptions-transport-ws: + optional: true + + '@aptos-connect/wallet-adapter-plugin@2.3.2': + resolution: {integrity: sha512-LW/jV1Apomglr5Swvd5IULkaoPw9+9oN7wnczQx6mIc8Qmiuv8ekc1df/OvIxn7kFKo62Dy+wUjcBKobUR8wOQ==} + peerDependencies: + '@aptos-labs/ts-sdk': 1.26.0 + '@aptos-labs/wallet-standard': 0.2.0 + + '@aptos-connect/wallet-adapter-plugin@2.4.1': + resolution: {integrity: sha512-jFuOEtnNWvi8VjvrXrNFp4iI2dci8Jv0l1FIuC5khMZKj2sDHLNF1dbZtcXNTRbD32KDrzl0Lngi42K0gReX8Q==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.33.1 + '@aptos-labs/wallet-standard': ^0.3.0 + + '@aptos-connect/wallet-api@0.1.6': + resolution: {integrity: sha512-S/D95pfDKSEEI8SsYy7sSzrjJ1DDnlVx7JVT9kpW11IjgCpHMHFs62EhZVhxztwcS+CYMyKdQpDyRO+IDtPVFw==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.33.1 + '@aptos-labs/wallet-standard': ^0.2.0 + aptos: ^1.20.0 + + '@aptos-connect/wallet-api@0.1.9': + resolution: {integrity: sha512-Olxvg/Jpf426uiEIUbxFuoRluhX3dja9EUqklY29yw/wOY7QDFv0+Es71xp8R2lgaU3gPFJxUwko1Jwz0XjswQ==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.33.1 + aptos: ^1.20.0 + + '@aptos-connect/web-transport@0.1.2': + resolution: {integrity: sha512-PPSF1fJPoFxUG/iJSLUuh6cS6TZm7A5kZNqzvPVU1n9IKBKaUua9jqwEbqwILvSHnRIAPWzbP10t3zP5Wa17EQ==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.33.1 + '@aptos-labs/wallet-standard': ^0.2.0 + '@telegram-apps/bridge': ^1.0.0 + aptos: ^1.20.0 + + '@aptos-connect/web-transport@0.1.3': + resolution: {integrity: sha512-XgQqBkXMqTdbD3+udTGpQQtLYyPBzyVGvdOdPi6Yk6/DY61caFryT28e+Ibg3BkPwF6OcfwFf5QkBTaMWFT4LA==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.33.1 + '@aptos-labs/wallet-standard': ^0.3.0 + '@telegram-apps/bridge': ^1.0.0 + aptos: ^1.20.0 + + '@aptos-labs/aptos-cli@1.0.2': + resolution: {integrity: sha512-PYPsd0Kk3ynkxNfe3S4fanI3DiUICCoh4ibQderbvjPFL5A0oK6F4lPEO2t0MDsQySTk2t4vh99Xjy6Bd9y+aQ==} + hasBin: true + + '@aptos-labs/aptos-client@0.1.1': + resolution: {integrity: sha512-kJsoy4fAPTOhzVr7Vwq8s/AUg6BQiJDa7WOqRzev4zsuIS3+JCuIZ6vUd7UBsjnxtmguJJulMRs9qWCzVBt2XA==} + engines: {node: '>=15.10.0'} + + '@aptos-labs/aptos-client@1.0.0': + resolution: {integrity: sha512-P/U/xz9w7+tTQDkaeAc693lDFcADO15bjD5RtP/2sa5FSIYbAyGI5A1RfSNPESuBjvskHBa6s47wajgSt4yX7g==} + engines: {node: '>=15.10.0'} + peerDependencies: + axios: ^1.7.7 + got: ^11.8.6 + + '@aptos-labs/aptos-dynamic-transaction-composer@0.1.3': + resolution: {integrity: sha512-bJl+Zq5QbhpcPIJakAkl9tnT3T02mxCYhZThQDhUmjsOZ5wMRlKJ0P7aaq1dmlybSHkVj7vRgOy2t86/NDKKng==} + + '@aptos-labs/script-composer-pack@0.0.9': + resolution: {integrity: sha512-Y3kA1rgF65HETgoTn2omDymsgO+fnZouPLrKJZ9sbxTGdOekIIHtGee3A2gk84eCqa02ZKBumZmP+IDCXRtU/g==} + + '@aptos-labs/ts-sdk@1.35.0': + resolution: {integrity: sha512-ChW2Lvi6lKfEb0AYo0HAa98bYf0+935nMdjl40wFMWsR+mxFhtNA4EYINXsHVTMPfE/WV9sXEvDInvscJFrALQ==} + engines: {node: '>=20.0.0'} + + '@aptos-labs/wallet-adapter-core@0.1.7': + resolution: {integrity: sha512-g3HvX31kuFT5HqEe9Vh0ZgV1u0Otsfx54yeAwL7RO8CioBVBjYELhMsOYz0BOjecmAKhQ14G60VU8MqDyzYkIA==} + + '@aptos-labs/wallet-adapter-core@2.1.0': + resolution: {integrity: sha512-ZSCCsFt2heEh9IDaObbzw8EwqfzJGCWGBoaGouBtOYn2DVkh5R0P9xRj6ryF9cuO+tkfP+8KZmZ9m4c+xsJN2g==} + + '@aptos-labs/wallet-adapter-core@2.2.0': + resolution: {integrity: sha512-JL0zTXXoSQba1EDGqY5yTJxZVKMKwgMKZNA1JyV54s5loWzE2tinwg002EB+ONodkVmMhKbWnajCFFOgvgk+NQ==} + + '@aptos-labs/wallet-adapter-core@4.25.0': + resolution: {integrity: sha512-TMiHvteU/DvL9p8npna32kRjCsJdiQgP83QhFLoZKV1rGhvB9NwCs1BnPzoCSTCkgfGkWqZGjVmhynX2p+HZEA==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.33.1 + aptos: ^1.21.0 + + '@aptos-labs/wallet-adapter-core@5.0.0': + resolution: {integrity: sha512-G5teMzWixyqwz2KhG2YwEY/w3ZSRdqL3ypVrS+oFpdXXcDCRgYzyM9MsEaC+D7KFFNKizAj3OP7X/qoINThnKA==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.35.0 + + '@aptos-labs/wallet-standard@0.0.11': + resolution: {integrity: sha512-8dygyPBby7TaMJjUSyeVP4R1WC9D/FPpX9gVMMLaqTKCXrSbkzhGDxcuwbMZ3ziEwRmx3zz+d6BIJbDhd0hm5g==} + + '@aptos-labs/wallet-standard@0.1.0-ms.1': + resolution: {integrity: sha512-3aWEmdqMcll8D2lzhBZuYUW1o49TDpqw4QRAkHk00tSC3SwAkuukoW8g/M9lB5nHFxaX7UzuxeaYv8l6/mhJVQ==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.17.0 + '@wallet-standard/core': ^1.0.3 + + '@aptos-labs/wallet-standard@0.2.0': + resolution: {integrity: sha512-4aoO4MlqzrW+CtO83MwbHMMtu91DL5B7YKRvhJbRnVB4R+QCOwBI/aQTkNZbKBDfOplLlqWTTl6Li0l6e02YLQ==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.17.0 + '@wallet-standard/core': ^1.0.3 + + '@aptos-labs/wallet-standard@0.3.0': + resolution: {integrity: sha512-M0Luh2hWW0BlSHv90YytOJmbE5VeHR/w8ddd7BO8N8jZ2WylKW6AHdkn6oUi1Ft9yb2dt3Qp+T/Sd2JFoRGyzw==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.17.0 + '@wallet-standard/core': ^1.0.3 + + '@atomrigslab/aptos-wallet-adapter@0.1.21': + resolution: {integrity: sha512-LwT0OTOaGglctggMcihXLd4mzBFwRoJsR0aeFBHQRfTxZV1agNTgN/PxJl6N13+WYAvzc00j/WByxAmWgonorA==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.9.0 + + '@atomrigslab/dekey-web-wallet-provider@1.2.1': + resolution: {integrity: sha512-GMEGjARgle9lIRopvxm4uis+sRr/ih26HzBgFbnLsk8+G94Z5dE87EclAIGFQUSAxYj7SmSk6xpx7//qUJDW/A==} + engines: {node: '>=12.0.0'} + + '@atomrigslab/providers@1.1.0': + resolution: {integrity: sha512-QLYxSCVrxwlN1oZ7vLnZbKZxkbZ6QG77Bj4pmTEowIpTcq7qZdBtU9pn+vqJAso1nnA3+AkmPuE9Jnx7+Jo1zQ==} + engines: {node: '>=12.0.0'} + + '@babel/code-frame@7.12.11': + resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} + + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.26.8': + resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.26.8': + resolution: {integrity: sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.26.8': + resolution: {integrity: sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.25.9': + resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-member-expression-to-functions@7.25.9': + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.25.9': + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.26.5': + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.26.5': + resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.26.7': + resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.25.9': + resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.26.8': + resolution: {integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-proposal-decorators@7.25.9': + resolution: {integrity: sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-decorators@7.25.9': + resolution: {integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.26.0': + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.26.8': + resolution: {integrity: sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/runtime@7.26.7': + resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==} + engines: {node: '>=6.9.0'} + + '@babel/standalone@7.26.8': + resolution: {integrity: sha512-WS5Cw/8gWP9qBJ+qPUVr5Le4bCeXTMoVHF9TofgEqAUpEgvVzNXCPf97SNLuDpSRNHNWcH2lFixGUGjaM6VVCg==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.26.8': + resolution: {integrity: sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.26.8': + resolution: {integrity: sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.8': + resolution: {integrity: sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@bitget-wallet/aptos-wallet-adapter@0.1.2': + resolution: {integrity: sha512-6dImtKlwdk0zuYKQpeZ/nOVyyBXqTxVin9ZLgdyPXsnBcpy0PnyGgffsfsOVHxk93eOdiRjNxoiCs1b4a+1ssg==} + peerDependencies: + '@aptos-labs/wallet-adapter-core': 3.5.0 + aptos: ^1.21.0 + + '@changesets/apply-release-plan@7.0.8': + resolution: {integrity: sha512-qjMUj4DYQ1Z6qHawsn7S71SujrExJ+nceyKKyI9iB+M5p9lCL55afuEd6uLBPRpLGWQwkwvWegDHtwHJb1UjpA==} + + '@changesets/assemble-release-plan@6.0.5': + resolution: {integrity: sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==} + + '@changesets/changelog-git@0.2.0': + resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} + + '@changesets/cli@2.27.12': + resolution: {integrity: sha512-9o3fOfHYOvBnyEn0mcahB7wzaA3P4bGJf8PNqGit5PKaMEFdsRixik+txkrJWd2VX+O6wRFXpxQL8j/1ANKE9g==} + hasBin: true + + '@changesets/config@3.0.5': + resolution: {integrity: sha512-QyXLSSd10GquX7hY0Mt4yQFMEeqnO5z/XLpbIr4PAkNNoQNKwDyiSrx4yd749WddusH1v3OSiA0NRAYmH/APpQ==} + + '@changesets/errors@0.2.0': + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + + '@changesets/get-dependents-graph@2.1.2': + resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} + + '@changesets/get-release-plan@4.0.6': + resolution: {integrity: sha512-FHRwBkY7Eili04Y5YMOZb0ezQzKikTka4wL753vfUA5COSebt7KThqiuCN9BewE4/qFGgF/5t3AuzXx1/UAY4w==} + + '@changesets/get-version-range-type@0.4.0': + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + + '@changesets/git@3.0.2': + resolution: {integrity: sha512-r1/Kju9Y8OxRRdvna+nxpQIsMsRQn9dhhAZt94FLDeu0Hij2hnOozW8iqnHBgvu+KdnJppCveQwK4odwfw/aWQ==} + + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + + '@changesets/parse@0.4.0': + resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} + + '@changesets/pre@2.0.1': + resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} + + '@changesets/read@0.6.2': + resolution: {integrity: sha512-wjfQpJvryY3zD61p8jR87mJdyx2FIhEcdXhKUqkja87toMrP/3jtg/Yg29upN+N4Ckf525/uvV7a4tzBlpk6gg==} + + '@changesets/should-skip-package@0.1.1': + resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} + + '@changesets/types@4.1.0': + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + + '@changesets/types@6.0.0': + resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} + + '@changesets/write@0.3.2': + resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} + + '@cloudflare/kv-asset-handler@0.3.4': + resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} + engines: {node: '>=16.13'} + + '@confio/ics23@0.6.8': + resolution: {integrity: sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==} + deprecated: Unmaintained. The codebase for this package was moved to https://github.com/cosmos/ics23 but then the JS implementation was removed in https://github.com/cosmos/ics23/pull/353. Please consult the maintainers of https://github.com/cosmos for further assistance. + + '@coral-xyz/anchor@0.29.0': + resolution: {integrity: sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==} + engines: {node: '>=11'} + + '@coral-xyz/borsh@0.29.0': + resolution: {integrity: sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==} + engines: {node: '>=10'} + peerDependencies: + '@solana/web3.js': ^1.68.0 + + '@cosmjs/amino@0.32.4': + resolution: {integrity: sha512-zKYOt6hPy8obIFtLie/xtygCkH9ZROiQ12UHfKsOkWaZfPQUvVbtgmu6R4Kn1tFLI/SRkw7eqhaogmW/3NYu/Q==} + + '@cosmjs/cosmwasm-stargate@0.32.4': + resolution: {integrity: sha512-Fuo9BGEiB+POJ5WeRyBGuhyKR1ordvxZGLPuPosFJOH9U0gKMgcjwKMCgAlWFkMlHaTB+tNdA8AifWiHrI7VgA==} + + '@cosmjs/crypto@0.32.4': + resolution: {integrity: sha512-zicjGU051LF1V9v7bp8p7ovq+VyC91xlaHdsFOTo2oVry3KQikp8L/81RkXmUIT8FxMwdx1T7DmFwVQikcSDIw==} + + '@cosmjs/encoding@0.32.4': + resolution: {integrity: sha512-tjvaEy6ZGxJchiizzTn7HVRiyTg1i4CObRRaTRPknm5EalE13SV+TCHq38gIDfyUeden4fCuaBVEdBR5+ti7Hw==} + + '@cosmjs/json-rpc@0.32.4': + resolution: {integrity: sha512-/jt4mBl7nYzfJ2J/VJ+r19c92mUKF0Lt0JxM3MXEJl7wlwW5haHAWtzRujHkyYMXOwIR+gBqT2S0vntXVBRyhQ==} + + '@cosmjs/math@0.32.4': + resolution: {integrity: sha512-++dqq2TJkoB8zsPVYCvrt88oJWsy1vMOuSOKcdlnXuOA/ASheTJuYy4+oZlTQ3Fr8eALDLGGPhJI02W2HyAQaw==} + + '@cosmjs/proto-signing@0.32.4': + resolution: {integrity: sha512-QdyQDbezvdRI4xxSlyM1rSVBO2st5sqtbEIl3IX03uJ7YiZIQHyv6vaHVf1V4mapusCqguiHJzm4N4gsFdLBbQ==} + + '@cosmjs/socket@0.32.4': + resolution: {integrity: sha512-davcyYziBhkzfXQTu1l5NrpDYv0K9GekZCC9apBRvL1dvMc9F/ygM7iemHjUA+z8tJkxKxrt/YPjJ6XNHzLrkw==} + + '@cosmjs/stargate@0.32.4': + resolution: {integrity: sha512-usj08LxBSsPRq9sbpCeVdyLx2guEcOHfJS9mHGCLCXpdAPEIEQEtWLDpEUc0LEhWOx6+k/ChXTc5NpFkdrtGUQ==} + + '@cosmjs/stream@0.32.4': + resolution: {integrity: sha512-Gih++NYHEiP+oyD4jNEUxU9antoC0pFSg+33Hpp0JlHwH0wXhtD3OOKnzSfDB7OIoEbrzLJUpEjOgpCp5Z+W3A==} + + '@cosmjs/tendermint-rpc@0.32.4': + resolution: {integrity: sha512-MWvUUno+4bCb/LmlMIErLypXxy7ckUuzEmpufYYYd9wgbdCXaTaO08SZzyFM5PI8UJ/0S2AmUrgWhldlbxO8mw==} + + '@cosmjs/utils@0.32.4': + resolution: {integrity: sha512-D1Yc+Zy8oL/hkUkFUL/bwxvuDBzRGpc4cF7/SkdhxX4iHpSLgdOuTt1mhCh9+kl6NQREy9t7SYZ6xeW5gFe60w==} + + '@csstools/selector-resolve-nested@3.0.0': + resolution: {integrity: sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==} + engines: {node: '>=18'} + peerDependencies: + postcss-selector-parser: ^7.0.0 + + '@csstools/selector-specificity@5.0.0': + resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} + engines: {node: '>=18'} + peerDependencies: + postcss-selector-parser: ^7.0.0 + + '@emotion/babel-plugin@11.13.5': + resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} + + '@emotion/cache@11.14.0': + resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} + + '@emotion/hash@0.8.0': + resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} + + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + + '@emotion/is-prop-valid@1.3.1': + resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} + + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + + '@emotion/react@11.14.0': + resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/serialize@1.3.3': + resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} + + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + + '@emotion/styled@11.14.0': + resolution: {integrity: sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==} + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/unitless@0.10.0': + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + + '@emotion/unitless@0.7.5': + resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} + + '@emotion/use-insertion-effect-with-fallbacks@1.2.0': + resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} + peerDependencies: + react: '>=16.8.0' + + '@emotion/utils@1.4.2': + resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} + + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.14.54': + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@0.4.3': + resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} + engines: {node: ^10.12.0 || >=12.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@ethersproject/bytes@5.7.0': + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} + + '@ethersproject/logger@5.7.0': + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} + + '@fewcha/web3@0.1.38': + resolution: {integrity: sha512-t39g9V5zAiYZPGSahp4a0B4WM5IqxQJxr5ednv0f0l5amJZMPyOinFeZDgkLqTIzhe7yq6yIndKbqzPfdu1rng==} + + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + + '@floating-ui/vue@1.1.6': + resolution: {integrity: sha512-XFlUzGHGv12zbgHNk5FN2mUB7ROul3oG2ENdTpWdE+qMFxyNxWSRmsoyhiEnpmabNm6WnUvR1OvJfUfN4ojC1A==} + + '@gql.tada/cli-utils@1.6.3': + resolution: {integrity: sha512-jFFSY8OxYeBxdKi58UzeMXG1tdm4FVjXa8WHIi66Gzu9JWtCE6mqom3a8xkmSw+mVaybFW5EN2WXf1WztJVNyQ==} + peerDependencies: + '@0no-co/graphqlsp': ^1.12.13 + '@gql.tada/svelte-support': 1.0.1 + '@gql.tada/vue-support': 1.0.1 + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + typescript: ^5.0.0 + peerDependenciesMeta: + '@gql.tada/svelte-support': + optional: true + '@gql.tada/vue-support': + optional: true + + '@gql.tada/internal@1.0.8': + resolution: {integrity: sha512-XYdxJhtHC5WtZfdDqtKjcQ4d7R1s0d1rnlSs3OcBEUbYiPoJJfZU7tWsVXuv047Z6msvmr4ompJ7eLSK5Km57g==} + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + typescript: ^5.0.0 + + '@graphql-typed-document-node/core@3.2.0': + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/config-array@0.5.0': + resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@1.2.1': + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + deprecated: Use @eslint/object-schema instead + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@identity-connect/api@0.7.0': + resolution: {integrity: sha512-mn/LZGeb3xgBD644p67tYOjvYSSdZpwxiO4/ZjwjsJZ8eYvGha5FiZg+pqVH73lg1S36qikwbkA3HUQOAE5GKA==} + + '@identity-connect/crypto@0.2.5': + resolution: {integrity: sha512-YHJbIXpraEanwE4LsDZE3iWOPlM0Xl//WDKerBpJ0R4halEeJoGp1S7GuIAeutqNjU0gL39ly+Jsti02/Nrewg==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.33.1 + + '@identity-connect/dapp-sdk@0.10.3': + resolution: {integrity: sha512-EunHxy8emZEOurpANL/rrB7n5iALGStpkCL01ir6VPVB/Hj6GnEn0WXvXr7ZWTTYPQ/8w4FXUUHclRNSTRcg9A==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.33.1 + '@aptos-labs/wallet-standard': ^0.2.0 + + '@identity-connect/dapp-sdk@0.10.4': + resolution: {integrity: sha512-wC1yh0K2EbmIG6oCN7+KRaVXHBUKasuBsm2z/Lq1x5zGJNtFtg6pXQl087ngHixpSCPINx5QqZXd9uXI/oqSmQ==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.33.1 + '@aptos-labs/wallet-standard': ^0.3.0 + + '@identity-connect/wallet-api@0.1.2': + resolution: {integrity: sha512-8wyC0rWYb4+L0/K9Kf+LV9U8k5ZUkbauyf4lVVdUatCw1trsBVXObACKzgEidfpfgx23S9w7hctLpegb/QkwSg==} + peerDependencies: + '@aptos-labs/ts-sdk': ^1.33.1 + aptos: ^1.20.0 + + '@injectivelabs/abacus-proto-ts@1.13.3': + resolution: {integrity: sha512-GUxYtBRcskg8LkX2g0oK+D9zlbahq2QTBzmLAQoG5zCeXsjoWxkSkmO1Ez146gODL9ytofnwZsCr2hCE7wgH0w==} + + '@injectivelabs/core-proto-ts@1.13.6': + resolution: {integrity: sha512-dN8UTUyWc4uPHIUBfeauT68xLFuCQpUqwhVHTsxAgOOVpfZeTc7aKw6vGbbdj6uLG85V4ooFoKJcChOSV3A5JA==} + + '@injectivelabs/exceptions@1.14.41': + resolution: {integrity: sha512-tY2s6ivb2qgQO4lrsLd3aT7q7Hrn8uPVeN8Vc25FAWwlBmwm7okkLWLGI1jnO8v3oe99OO3be+rvTa/TexN5+g==} + + '@injectivelabs/grpc-web-node-http-transport@0.0.2': + resolution: {integrity: sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==} + peerDependencies: + '@injectivelabs/grpc-web': '>=0.0.1' + + '@injectivelabs/grpc-web-react-native-transport@0.0.2': + resolution: {integrity: sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==} + peerDependencies: + '@injectivelabs/grpc-web': '>=0.0.1' + + '@injectivelabs/grpc-web@0.0.1': + resolution: {integrity: sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==} + peerDependencies: + google-protobuf: ^3.14.0 + + '@injectivelabs/indexer-proto-ts@1.13.6': + resolution: {integrity: sha512-G0E/lpqumpcFA1qn++eZqcGPTQ58P5mAXT3hvegqVd7k/qzWIGtrT8mXv7KeaK48LjZIrjjpt9ks39O0pUgJUw==} + + '@injectivelabs/mito-proto-ts@1.13.2': + resolution: {integrity: sha512-D4qEDB4OgaV1LoYNg6FB+weVcLMu5ea0x/W/p+euIVly3qia44GmAicIbQhrkqTs2o2c+1mbK1c4eOzFxQcwhg==} + + '@injectivelabs/networks@1.14.41': + resolution: {integrity: sha512-UVkzBLpfD1zrnkBNmrtuFxsIgYZSfNJVSyaX979OdGorLt76PKjwgURfg1uatqEgeyU+G/2alRjPlg81bWQ6Ug==} + + '@injectivelabs/olp-proto-ts@1.13.3': + resolution: {integrity: sha512-z2AQOXVYItMlM+qYraPbAzC6uhhJty7qpiI3KVGLCqFfTtICefOh4sa0gzMR/xP5zhS9SoRq0Wu4zuqaDy9UrQ==} + + '@injectivelabs/sdk-ts@1.14.41': + resolution: {integrity: sha512-iZbDJnv9X5G500/GHrX8XR5/89Bp3v5jZz0c8IABWvZ5hhQmXeyk7msoJiv77rx+u6eg3JecVrwbEuxt0aabpA==} + + '@injectivelabs/test-utils@1.14.41': + resolution: {integrity: sha512-++xeSobV62Yd67cIK6xCepZIU+YxQx/I9I5UT1pMOfostiCxQusKWsJhAKNjwkWbKNvFZifEw6TWwU3UYhneBQ==} + + '@injectivelabs/ts-types@1.14.41': + resolution: {integrity: sha512-W1Es6NmlKKIkSOyIhCfpHzndatzalGIbjHf6jfukUvsb+DVQ9SkZrOEYYSCXZskdJ1OpUoGD0u3UNP99fM6G6g==} + + '@injectivelabs/utils@1.14.41': + resolution: {integrity: sha512-ZReylpIqknVQ0Dzh0NrReTERDv8hiMaP+RcxKGtb2TIvzl1zve/9otEE4tkuHKPNPD/0F5hKmSTzhP4DdGiMtA==} + + '@internationalized/date@3.7.0': + resolution: {integrity: sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==} + + '@internationalized/number@3.6.0': + resolution: {integrity: sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==} + + '@ioredis/commands@1.2.0': + resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/console@29.7.0': + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/core@29.7.0': + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect@29.7.0': + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/globals@29.7.0': + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/reporters@29.7.0': + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/source-map@29.6.3': + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-result@29.7.0': + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-sequencer@29.7.0': + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@koa/router@12.0.2': + resolution: {integrity: sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==} + engines: {node: '>= 12'} + + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + + '@manypkg/find-root@1.1.0': + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + + '@manypkg/get-packages@1.1.3': + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + + '@mapbox/node-pre-gyp@2.0.0': + resolution: {integrity: sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==} + engines: {node: '>=18'} + hasBin: true + + '@martianwallet/aptos-wallet-adapter@0.0.5': + resolution: {integrity: sha512-x6Q3bM7HSltCAD8Zl0AeU1AFhu0M+Ho22QP+oOXWhdb4TledVVLNfGIAx1jP4slqfcpDGOjnibPtPt8Bm32wmg==} + + '@metamask/eth-sig-util@4.0.1': + resolution: {integrity: sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==} + engines: {node: '>=12.0.0'} + + '@metamask/object-multiplex@1.3.0': + resolution: {integrity: sha512-czcQeVYdSNtabd+NcYQnrM69MciiJyd1qvKH8WM2Id3C0ZiUUX5Xa/MK+/VUk633DBhVOwdNzAKIQ33lGyA+eQ==} + engines: {node: '>=12.0.0'} + + '@metamask/safe-event-emitter@2.0.0': + resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==} + + '@microsoft/api-extractor-model@7.28.13': + resolution: {integrity: sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw==} + + '@microsoft/api-extractor@7.43.0': + resolution: {integrity: sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w==} + hasBin: true + + '@microsoft/fetch-event-source@2.0.1': + resolution: {integrity: sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==} + + '@microsoft/tsdoc-config@0.16.2': + resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} + + '@microsoft/tsdoc@0.14.2': + resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} + + '@mizuwallet-sdk/aptos-wallet-adapter@0.3.2': + resolution: {integrity: sha512-YljOzWoaTTp+dGZ6p0vTQwVBYe9AQeCLNfLcmKzSWU14ktEflIeDk85xVD0WRgQUbfyW707/18JcmKA+7V12rg==} + peerDependencies: + '@mizuwallet-sdk/core': '>=1.4.0' + '@mizuwallet-sdk/protocol': 0.0.6 + + '@mizuwallet-sdk/core@1.4.0': + resolution: {integrity: sha512-03jKqKr+P4kCgcNQT2YNXmFBRVmeZ88vpEFKpQ9SaorCY4L9lF56kJS4Y+e/+A4Gb1bnqA7xuFmnEz13LjsZyg==} + peerDependencies: + '@aptos-labs/ts-sdk': '>=1.14.0' + '@mizuwallet-sdk/protocol': 0.0.2 + graphql-request: '>=7.0.1' + + '@mizuwallet-sdk/protocol@0.0.6': + resolution: {integrity: sha512-I6ibbdPmPqsqc4JfCfI9qplZ2RcqeUxawyYBNb3TNhibMqQhoVUUaczt9kLuML20ODTvvZW/ja+5S6PXSzWPiw==} + + '@msafe/aptos-wallet-adapter@1.1.3': + resolution: {integrity: sha512-/5ftbNac9j2Vc6YOqET4IdkhiJnMzuy9LcnGP8ptLWHVuye5P/pAjIpv0A07gOM4/siUJQzlXkBxXdLYF9p8wQ==} + + '@msafe/aptos-wallet@6.1.1': + resolution: {integrity: sha512-g/2TPRqyChciaw/S69EBr7CgzYJBT1LJulU0nMNnkehJc+ZX/fNN+5JXEuea+a0rXsk/flcbCSfvT2JtS0+/mQ==} + + '@mui/core-downloads-tracker@5.16.14': + resolution: {integrity: sha512-sbjXW+BBSvmzn61XyTMun899E7nGPTXwqD9drm1jBUAvWEhJpPFIRxwQQiATWZnd9rvdxtnhhdsDxEGWI0jxqA==} + + '@mui/icons-material@5.16.14': + resolution: {integrity: sha512-heL4S+EawrP61xMXBm59QH6HODsu0gxtZi5JtnXF2r+rghzyU/3Uftlt1ij8rmJh+cFdKTQug1L9KkZB5JgpMQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@mui/material': ^5.0.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/material@5.16.14': + resolution: {integrity: sha512-eSXQVCMKU2xc7EcTxe/X/rC9QsV2jUe8eLM3MUCPYbo6V52eCE436akRIvELq/AqZpxx2bwkq7HC0cRhLB+yaw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + + '@mui/private-theming@5.16.14': + resolution: {integrity: sha512-12t7NKzvYi819IO5IapW2BcR33wP/KAVrU8d7gLhGHoAmhDxyXlRoKiRij3TOD8+uzk0B6R9wHUNKi4baJcRNg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/styled-engine@5.16.14': + resolution: {integrity: sha512-UAiMPZABZ7p8mUW4akDV6O7N3+4DatStpXMZwPlt+H/dA0lt67qawN021MNND+4QTpjaiMYxbhKZeQcyWCbuKw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + + '@mui/system@5.16.14': + resolution: {integrity: sha512-KBxMwCb8mSIABnKvoGbvM33XHyT+sN0BzEBG+rsSc0lLQGzs7127KWkCA6/H8h6LZ00XpBEME5MAj8mZLiQ1tw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + + '@mui/types@7.2.21': + resolution: {integrity: sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww==} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/utils@5.16.14': + resolution: {integrity: sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mysten/bcs@0.11.1': + resolution: {integrity: sha512-xP85isNSYUCHd3O/g+TmZYmg4wK6cU8q/n/MebkIGP4CYVJZz2wU/G24xIZ3wI+0iTop4dfgA5kYrg/DQKCUzA==} + + '@mysten/bcs@0.3.0': + resolution: {integrity: sha512-Me6OkrS+idPq+ZUM1MEcKP9YOTacZKLwo0gf8rfeImQ+G25tqPRhjpccZGOUJGOKh+gojH2vjkWi2TYJv9kNCg==} + + '@mysten/bcs@1.4.0': + resolution: {integrity: sha512-YwDYspceLt8b7v6ohPvy8flQEi+smtfSG5d2A98CbUA48XBmOqTSPNmpw9wsZVVnrH2avr+BS5uVhDZT+EquYA==} + + '@mysten/sui.js@0.13.0': + resolution: {integrity: sha512-8s4IYN6GH95Begjuy0Xr45vQyyVZZHx83g5hJOpT9o98kQgdjaO218UdqQRVoFt/TODpNsTaI5OlymlKCgFVTQ==} + engines: {node: '>=16'} + deprecated: This package has been renamed to @mysten/sui, please update to use the renamed package. + + '@mysten/sui.js@0.50.1': + resolution: {integrity: sha512-AY0wb4n6PMTRsDGygzrrTHUK/m5KwKZ4aQcN9cayiwsq2iIhfjGo7uuqMA7Y5UiqvLCoF+z7Ig14Q5qejQ/S/w==} + engines: {node: '>=16'} + deprecated: This package has been renamed to @mysten/sui, please update to use the renamed package. + + '@mysten/sui@1.21.2': + resolution: {integrity: sha512-8AesvczokAUv796XiOo8af2+1IYA9bRon11Ra+rwehvqhz+sMRT8A+Cw5sDnlSc9/aQwM51JQKUnvMczNbpfYA==} + engines: {node: '>=18'} + + '@mysten/wallet-standard@0.13.26': + resolution: {integrity: sha512-0fRHmQ5RS0WEeSyfzdqrOWLssrZwDgR9Mw7Qhsfzq1UyDlS/GXYoL+dKpH+Uqfan33lt6hROPeXFyqw/vmF9Zg==} + + '@netlify/functions@2.8.2': + resolution: {integrity: sha512-DeoAQh8LuNPvBE4qsKlezjKj0PyXDryOFJfJKo3Z1qZLKzQ21sT314KQKPVjfvw6knqijj+IO+0kHXy/TJiqNA==} + engines: {node: '>=14.0.0'} + + '@netlify/node-cookies@0.1.0': + resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} + engines: {node: ^14.16.0 || >=16.0.0} + + '@netlify/serverless-functions-api@1.26.1': + resolution: {integrity: sha512-q3L9i3HoNfz0SGpTIS4zTcKBbRkxzCRpd169eyiTuk3IwcPC3/85mzLHranlKo2b+HYT0gu37YxGB45aD8A3Tw==} + engines: {node: '>=18.0.0'} + + '@next/env@14.2.24': + resolution: {integrity: sha512-LAm0Is2KHTNT6IT16lxT+suD0u+VVfYNQqM+EJTKuFRRuY2z+zj01kueWXPCxbMBDt0B5vONYzabHGUNbZYAhA==} + + '@next/eslint-plugin-next@13.0.0': + resolution: {integrity: sha512-z+gnX4Zizatqatc6f4CQrcC9oN8Us3Vrq/OLyc98h7K/eWctrnV91zFZodmJHUjx0cITY8uYM7LXD7IdYkg3kg==} + + '@next/eslint-plugin-next@14.2.3': + resolution: {integrity: sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==} + + '@next/swc-darwin-arm64@14.2.24': + resolution: {integrity: sha512-7Tdi13aojnAZGpapVU6meVSpNzgrFwZ8joDcNS8cJVNuP3zqqrLqeory9Xec5TJZR/stsGJdfwo8KeyloT3+rQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@14.2.24': + resolution: {integrity: sha512-lXR2WQqUtu69l5JMdTwSvQUkdqAhEWOqJEYUQ21QczQsAlNOW2kWZCucA6b3EXmPbcvmHB1kSZDua/713d52xg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@14.2.24': + resolution: {integrity: sha512-nxvJgWOpSNmzidYvvGDfXwxkijb6hL9+cjZx1PVG6urr2h2jUqBALkKjT7kpfurRWicK6hFOvarmaWsINT1hnA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@14.2.24': + resolution: {integrity: sha512-PaBgOPhqa4Abxa3y/P92F3kklNPsiFjcjldQGT7kFmiY5nuFn8ClBEoX8GIpqU1ODP2y8P6hio6vTomx2Vy0UQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@14.2.24': + resolution: {integrity: sha512-vEbyadiRI7GOr94hd2AB15LFVgcJZQWu7Cdi9cWjCMeCiUsHWA0U5BkGPuoYRnTxTn0HacuMb9NeAmStfBCLoQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@14.2.24': + resolution: {integrity: sha512-df0FC9ptaYsd8nQCINCzFtDWtko8PNRTAU0/+d7hy47E0oC17tI54U/0NdGk7l/76jz1J377dvRjmt6IUdkpzQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@14.2.24': + resolution: {integrity: sha512-ZEntbLjeYAJ286eAqbxpZHhDFYpYjArotQ+/TW9j7UROh0DUmX7wYDGtsTPpfCV8V+UoqHBPU7q9D4nDNH014Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-ia32-msvc@14.2.24': + resolution: {integrity: sha512-9KuS+XUXM3T6v7leeWU0erpJ6NsFIwiTFD5nzNg8J5uo/DMIPvCp3L1Ao5HjbHX0gkWPB1VrKoo/Il4F0cGK2Q==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@next/swc-win32-x64-msvc@14.2.24': + resolution: {integrity: sha512-cXcJ2+x0fXQ2CntaE00d7uUH+u1Bfp/E0HsNQH79YiLaZE5Rbm7dZzyAYccn3uICM7mw+DxoMqEfGXZtF4Fgaw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@noble/curves@1.2.0': + resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} + + '@noble/curves@1.8.1': + resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.3.2': + resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} + engines: {node: '>= 16'} + + '@noble/hashes@1.3.3': + resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} + engines: {node: '>= 16'} + + '@noble/hashes@1.7.1': + resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==} + engines: {node: ^14.21.3 || >=16} + + '@noble/secp256k1@1.7.1': + resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@nuxt/cli@3.21.1': + resolution: {integrity: sha512-GFFHSEtNtf1s4anMKWFfKSbKiNvEwOKxfP3uls7anZ8GCVYrKthMMxeou4fZBcRhTAFbiLC7DytsKnjfmY2t9w==} + engines: {node: ^16.10.0 || >=18.0.0} + hasBin: true + + '@nuxt/devalue@2.0.2': + resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} + + '@nuxt/devtools-kit@1.7.0': + resolution: {integrity: sha512-+NgZ2uP5BuneqvQbe7EdOEaFEDy8762c99pLABtn7/Ur0ExEsQJMP7pYjjoTfKubhBqecr5Vo9yHkPBj1eHulQ==} + peerDependencies: + vite: '*' + + '@nuxt/devtools-wizard@1.7.0': + resolution: {integrity: sha512-86Gd92uEw0Dh2ErIYT9TMIrMOISE96fCRN4rxeryTvyiowQOsyrbkCeMNYrEehoRL+lohoyK6iDmFajadPNwWQ==} + hasBin: true + + '@nuxt/devtools@1.7.0': + resolution: {integrity: sha512-uvnjt5Zowkz7tZmnks2cGreg1XZIiSyVzQ2MYiRXACodlXcwJ0dpUS3WTxu8BR562K+772oRdvKie9AQlyZUgg==} + hasBin: true + peerDependencies: + vite: '*' + + '@nuxt/kit@3.15.4': + resolution: {integrity: sha512-dr7I7eZOoRLl4uxdxeL2dQsH0OrbEiVPIyBHnBpA4co24CBnoJoF+JINuP9l3PAM3IhUzc5JIVq3/YY3lEc3Hw==} + engines: {node: '>=18.12.0'} + + '@nuxt/schema@3.15.4': + resolution: {integrity: sha512-pAYZb/3ocSC/db1EFd5y+otmgHqUkvfxfhd9EknDB5DygnJuOIQNuGJ7LMJM6S2c0DYgBIHOdEelLxKHOjwbgQ==} + engines: {node: ^14.18.0 || >=16.10.0} + + '@nuxt/telemetry@2.6.4': + resolution: {integrity: sha512-2Lgdn07Suraly5dSfVQ4ttBQBMtmjvCTGKGUHpc1UyH87HT9xCm3KLFO0UcVQ8+LNYCgoOaK7lq9qDJOfBfZ5A==} + engines: {node: '>=18.20.5'} + hasBin: true + + '@nuxt/vite-builder@3.15.4': + resolution: {integrity: sha512-yBK6tWT973+ExKC3ciTWymZpjJ+enToOtYz574kXCyGO0PbSnuXdoJKTvrwXw1lK97PajCKxExlmwI/3oLOmMQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0.0} + peerDependencies: + vue: ^3.3.4 + + '@nuxtjs/color-mode@3.5.2': + resolution: {integrity: sha512-cC6RfgZh3guHBMLLjrBB2Uti5eUoGM9KyauOaYS9ETmxNWBMTvpgjvSiSJp1OFljIXPIqVTJ3xtJpSNZiO3ZaA==} + + '@nuxtjs/eslint-config-typescript@12.1.0': + resolution: {integrity: sha512-l2fLouDYwdAvCZEEw7wGxOBj+i8TQcHFu3zMPTLqKuv1qu6WcZIr0uztkbaa8ND1uKZ9YPqKx6UlSOjM4Le69Q==} + peerDependencies: + eslint: ^8.48.0 + + '@nuxtjs/eslint-config@12.0.0': + resolution: {integrity: sha512-ewenelo75x0eYEUK+9EBXjc/OopQCvdkmYmlZuoHq5kub/vtiRpyZ/autppwokpHUq8tiVyl2ejMakoiHiDTrg==} + peerDependencies: + eslint: ^8.23.0 + + '@nuxtjs/eslint-module@4.1.0': + resolution: {integrity: sha512-lW9ozEjOrnU8Uot3GOAZ/0ThNAds0d6UAp9n46TNxcTvH/MOcAggGbMNs16c0HYT2HlyPQvXORCHQ5+9p87mmw==} + peerDependencies: + eslint: '>=7' + + '@nuxtjs/google-fonts@3.2.0': + resolution: {integrity: sha512-cGAjDJoeQ2jm6VJCo4AtSmKO6KjsbO9RSLj8q261fD0lMVNMZCxkCxBkg8L0/2Vfgp+5QBHWVXL71p1tiybJFw==} + + '@nuxtjs/tailwindcss@6.13.1': + resolution: {integrity: sha512-atL2SaPsxLfMTlXUQvr1UpDYdz6ocNOhH35H+t7M++g4r79QiQScJ7XuyyMR9AyBN19lkPA3nw7NXxazXmYxlA==} + + '@okwallet/aptos-wallet-adapter@0.0.3': + resolution: {integrity: sha512-6/wH9A3/FswcnHEy4H6c4DXH7nEzUo7Ez8Try5B/HoTnKBvIRaYH/btWhKADzwf0dGtSDC6YdysYoQrGx4lhmA==} + + '@oxc-parser/wasm@0.1.0': + resolution: {integrity: sha512-oA7XhTbg9rRBJhIzxCNhJwYmON/9LFAH4GBQxl7HWmGSS6HTrb2t6Peq82nxY0W7knguH52neh9T7zs27FVvsQ==} + + '@parcel/watcher-android-arm64@2.5.1': + resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.1': + resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.1': + resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.1': + resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.1': + resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.1': + resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.1': + resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.1': + resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.1': + resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-wasm@2.5.1': + resolution: {integrity: sha512-RJxlQQLkaMMIuWRozy+z2vEqbaQlCuaCgVZIUCzQLYggY22LZbP5Y1+ia+FD724Ids9e+XIyOLXLrLgQSHIthw==} + engines: {node: '>= 10.0.0'} + bundledDependencies: + - napi-wasm + + '@parcel/watcher-win32-arm64@2.5.1': + resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.1': + resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.1': + resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.1': + resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + engines: {node: '>= 10.0.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@polka/url@1.0.0-next.28': + resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + + '@pontem/wallet-adapter-plugin@0.2.1': + resolution: {integrity: sha512-mrhCT+mFsDtjFHZj9LBksY++ciQiAlr+gkHhvEzkuQkYuHkCf6HwKOkIlDL42cl7y8/15NrfZomEQ5Uxudhc3g==} + + '@popperjs/core@2.11.8': + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@radix-ui/primitive@1.1.1': + resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} + + '@radix-ui/react-arrow@1.1.2': + resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collapsible@1.1.3': + resolution: {integrity: sha512-jFSerheto1X03MUC0g6R7LedNW9EEGWdg9W1+MlpkMLwGkgkbUXLPBH/KIuWKXUoeYRVY11llqbTBDzuLg7qrw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collection@1.1.2': + resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-compose-refs@1.1.1': + resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.1.1': + resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dialog@1.1.6': + resolution: {integrity: sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-direction@1.1.0': + resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.1.5': + resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-dropdown-menu@2.1.6': + resolution: {integrity: sha512-no3X7V5fD487wab/ZYSHXq3H37u4NVeLDKI/Ks724X/eEFSSEFYZxWgsIlr1UBeEyDaM29HM5x9p1Nv8DuTYPA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.1.1': + resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.2': + resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-id@1.1.0': + resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-label@2.1.2': + resolution: {integrity: sha512-zo1uGMTaNlHehDyFQcDZXRJhUPDuukcnHz0/jnrup0JA6qL+AFpAnty+7VKa9esuU5xTblAZzTGYJKSKaBxBhw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-menu@2.1.6': + resolution: {integrity: sha512-tBBb5CXDJW3t2mo9WlO7r6GTmWV0F0uzHZVFmlRmYpiSK1CDU5IKojP1pm7oknpBOrFZx/YgBRW9oorPO2S/Lg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.2': + resolution: {integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.4': + resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.2': + resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.0.2': + resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-radio-group@1.2.3': + resolution: {integrity: sha512-xtCsqt8Rp09FK50ItqEqTJ7Sxanz8EM8dnkVIhJrc/wkMMomSmXHvYbhv3E7Zx4oXh98aaLt9W679SUYXg4IDA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.2': + resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.1.2': + resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-switch@1.1.3': + resolution: {integrity: sha512-1nc+vjEOQkJVsJtWPSiISGT6OKm4SiOdjMo+/icLxo2G4vxz1GntC5MzfL4v8ey9OEfw787QCD1y3mUv0NiFEQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toast@1.2.6': + resolution: {integrity: sha512-gN4dpuIVKEgpLn1z5FhzT9mYRUitbfZq9XqN/7kkBMUgFTzTG8x/KszWJugJXHcwxckY8xcKDZPz7kG3o6DsUA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.0': + resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.1.0': + resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.0': + resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.0': + resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.0': + resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.0': + resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.0': + resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.1.2': + resolution: {integrity: sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.0': + resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + + '@rc-component/async-validator@5.0.4': + resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} + engines: {node: '>=14.x'} + + '@rc-component/color-picker@2.0.1': + resolution: {integrity: sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@rc-component/context@1.4.0': + resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@rc-component/mini-decimal@1.1.0': + resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} + engines: {node: '>=8.x'} + + '@rc-component/mutate-observer@1.1.0': + resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@rc-component/portal@1.1.2': + resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@rc-component/qrcode@1.0.0': + resolution: {integrity: sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@rc-component/tour@1.15.1': + resolution: {integrity: sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@rc-component/trigger@2.2.6': + resolution: {integrity: sha512-/9zuTnWwhQ3S3WT1T8BubuFTT46kvnXgaERR9f4BTKyn61/wpf/BvbImzYBubzJibU707FxwbKszLlHjcLiv1Q==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@redocly/ajv@8.11.2': + resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} + + '@redocly/config@0.20.3': + resolution: {integrity: sha512-Nyyv1Bj7GgYwj/l46O0nkH1GTKWbO3Ixe7KFcn021aZipkZd+z8Vlu1BwkhqtVgivcKaClaExtWU/lDHkjBzag==} + + '@redocly/openapi-core@1.28.5': + resolution: {integrity: sha512-eAuL+x1oBbodJksPm4UpFU57A6z1n1rx9JNpD87CObwtbRf5EzW29Ofd0t057bPGcHc8cYZtZzJ69dcRQ9xGdg==} + engines: {node: '>=18.17.0', npm: '>=9.5.0'} + + '@remix-run/router@1.22.0': + resolution: {integrity: sha512-MBOl8MeOzpK0HQQQshKB7pABXbmyHizdTpqnrIseTbsv0nAepwC2ENZa1aaBExNQcpLoXmWthhak8SABLzvGPw==} + engines: {node: '>=14.0.0'} + + '@rollup/plugin-alias@5.1.1': + resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-commonjs@28.0.2': + resolution: {integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-inject@5.0.5': + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@15.3.1': + resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@6.0.2': + resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-terser@0.4.4': + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@4.2.1': + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.34.6': + resolution: {integrity: sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.34.6': + resolution: {integrity: sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.34.6': + resolution: {integrity: sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.34.6': + resolution: {integrity: sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.34.6': + resolution: {integrity: sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.34.6': + resolution: {integrity: sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.34.6': + resolution: {integrity: sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.34.6': + resolution: {integrity: sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.34.6': + resolution: {integrity: sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.34.6': + resolution: {integrity: sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.34.6': + resolution: {integrity: sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.34.6': + resolution: {integrity: sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.34.6': + resolution: {integrity: sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.34.6': + resolution: {integrity: sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.34.6': + resolution: {integrity: sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.34.6': + resolution: {integrity: sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.34.6': + resolution: {integrity: sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.34.6': + resolution: {integrity: sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.34.6': + resolution: {integrity: sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==} + cpu: [x64] + os: [win32] + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@rushstack/eslint-patch@1.10.5': + resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==} + + '@rushstack/node-core-library@4.0.2': + resolution: {integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/rig-package@0.5.2': + resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==} + + '@rushstack/terminal@0.10.0': + resolution: {integrity: sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/ts-command-line@4.19.1': + resolution: {integrity: sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==} + + '@scure/base@1.1.9': + resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} + + '@scure/base@1.2.4': + resolution: {integrity: sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==} + + '@scure/bip32@1.6.2': + resolution: {integrity: sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==} + + '@scure/bip39@1.2.1': + resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} + + '@scure/bip39@1.5.4': + resolution: {integrity: sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + + '@solana/buffer-layout-utils@0.2.0': + resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==} + engines: {node: '>= 10'} + + '@solana/buffer-layout@4.0.1': + resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} + engines: {node: '>=5.10'} + + '@solana/codecs-core@2.0.0-rc.1': + resolution: {integrity: sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-data-structures@2.0.0-rc.1': + resolution: {integrity: sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-numbers@2.0.0-rc.1': + resolution: {integrity: sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-strings@2.0.0-rc.1': + resolution: {integrity: sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5' + + '@solana/codecs@2.0.0-rc.1': + resolution: {integrity: sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==} + peerDependencies: + typescript: '>=5' + + '@solana/errors@2.0.0-rc.1': + resolution: {integrity: sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==} + hasBin: true + peerDependencies: + typescript: '>=5' + + '@solana/options@2.0.0-rc.1': + resolution: {integrity: sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==} + peerDependencies: + typescript: '>=5' + + '@solana/spl-token-group@0.0.7': + resolution: {integrity: sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.95.3 + + '@solana/spl-token-metadata@0.1.6': + resolution: {integrity: sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.95.3 + + '@solana/spl-token@0.3.9': + resolution: {integrity: sha512-1EXHxKICMnab35MvvY/5DBc/K/uQAOJCYnDZXw83McCAYUAfi+rwq6qfd6MmITmSTEhcfBcl/zYxmW/OSN0RmA==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.47.4 + + '@solana/spl-token@0.4.13': + resolution: {integrity: sha512-cite/pYWQZZVvLbg5lsodSovbetK/eA24gaR0eeUeMuBAMNrT8XFCwaygKy0N2WSg3gSyjjNpIeAGBAKZaY/1w==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.95.5 + + '@solana/wallet-adapter-base@0.9.23': + resolution: {integrity: sha512-apqMuYwFp1jFi55NxDfvXUX2x1T0Zh07MxhZ/nCCTGys5raSfYUh82zen2BLv8BSDj/JxZ2P/s7jrQZGrX8uAw==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.77.3 + + '@solana/wallet-standard-chains@1.1.1': + resolution: {integrity: sha512-Us3TgL4eMVoVWhuC4UrePlYnpWN+lwteCBlhZDUhFZBJ5UMGh94mYPXno3Ho7+iHPYRtuCi/ePvPcYBqCGuBOw==} + engines: {node: '>=16'} + + '@solana/wallet-standard-features@1.3.0': + resolution: {integrity: sha512-ZhpZtD+4VArf6RPitsVExvgkF+nGghd1rzPjd97GmBximpnt1rsUxMOEyoIEuH3XBxPyNB6Us7ha7RHWQR+abg==} + engines: {node: '>=16'} + + '@solana/wallet-standard-util@1.1.2': + resolution: {integrity: sha512-rUXFNP4OY81Ddq7qOjQV4Kmkozx4wjYAxljvyrqPx8Ycz0FYChG/hQVWqvgpK3sPsEaO/7ABG1NOACsyAKWNOA==} + engines: {node: '>=16'} + + '@solana/wallet-standard-wallet-adapter-base@1.1.4': + resolution: {integrity: sha512-Q2Rie9YaidyFA4UxcUIxUsvynW+/gE2noj/Wmk+IOwDwlVrJUAXCvFaCNsPDSyKoiYEKxkSnlG13OA1v08G4iw==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.98.0 + bs58: ^6.0.0 + + '@solana/web3.js@1.98.0': + resolution: {integrity: sha512-nz3Q5OeyGFpFCR+erX2f6JPt3sKhzhYcSycBCSPkWjzSVDh/Rr1FqTVMRe58FKO16/ivTUcuJjeS5MyBvpkbzA==} + + '@suchipi/femver@1.0.0': + resolution: {integrity: sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==} + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@swc/helpers@0.5.5': + resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} + + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + + '@tanstack/query-core@5.66.0': + resolution: {integrity: sha512-J+JeBtthiKxrpzUu7rfIPDzhscXF2p5zE/hVdrqkACBP8Yu0M96mwJ5m/8cPPYQE9aRNvXztXHlNwIh4FEeMZw==} + + '@tanstack/react-query@5.66.0': + resolution: {integrity: sha512-z3sYixFQJe8hndFnXgWu7C79ctL+pI0KAelYyW+khaNJ1m22lWrhJU2QrsTcRKMuVPtoZvfBYrTStIdKo+x0Xw==} + peerDependencies: + react: ^18 || ^19 + + '@tanstack/virtual-core@3.13.0': + resolution: {integrity: sha512-NBKJP3OIdmZY3COJdWkSonr50FMVIi+aj5ZJ7hI/DTpEKg2RMfo/KvP8A3B/zOSpMgIe52B5E2yn7rryULzA6g==} + + '@tanstack/vue-virtual@3.13.0': + resolution: {integrity: sha512-EPgcTc41KGJAK2N2Ux2PeUnG3cPpdkldTib05nwq+0zdS2Ihpbq8BsWXz/eXPyNc5noDBh1GBgAe36yMYiW6WA==} + peerDependencies: + vue: ^2.7.0 || ^3.0.0 + + '@telegram-apps/bridge@1.9.2': + resolution: {integrity: sha512-SJLcNWLXhbbZr9MiqFH/g2ceuitSJKMxUIZysK4zUNyTUNuonrQG80Q/yrO+XiNbKUj8WdDNM86NBARhuyyinQ==} + + '@telegram-apps/navigation@1.0.13': + resolution: {integrity: sha512-TsUueB5LQp77GQHoMa93nq26Uw7GJjrFCPbyseMVU7aBBxAc+8CV2IYytRwcVp5sv/q7ThK5X4JaKn2V1yBHDQ==} + + '@telegram-apps/sdk@2.11.3': + resolution: {integrity: sha512-KdULzgRe1gcR8B3Z/t3hQrEaDmLGrfsL2IePtPP6ehtMn5tT0uPfnjtDLjDNQMyI7D4Tv2ZOzvDx45wOhhreXg==} + + '@telegram-apps/signals@1.1.1': + resolution: {integrity: sha512-vz37r8lemGpPzDiBRfqpXYBynzmy3SFnY6zfHsTZABTYYt0b0WQZyU5mFDqqqugGhka78Gy11xmr9csgy4YgGA==} + + '@telegram-apps/toolkit@1.1.1': + resolution: {integrity: sha512-+vhKx6ngfvjyTE6Xagl3z1TPVbfx5s7xAkcYzCdHYUo6T60jLIqLgyZMcI1UPoIAMuMu1pHoO+p8QNCj/+tFmw==} + + '@telegram-apps/transformers@1.2.2': + resolution: {integrity: sha512-vvMwXckd1D7Ozc0h66PSUwF5QLrRV9HlGJFFeBuUex8QEk5mSPtsJkLiqB8aBbwuFDa91+TUSM/CxqPZO/e9YQ==} + + '@telegram-apps/types@1.2.1': + resolution: {integrity: sha512-so4HLh7clur0YyMthi9KVIgWoGpZdXlFOuQjk3+Q5NAvJZ11nAheBSwPlGw/Ko92+zwvrSBE/lQyN2+p17RP+w==} + + '@trustwallet/aptos-wallet-adapter@0.1.6': + resolution: {integrity: sha512-vlu5JuxqMpGMLanayNKQpTC87zn4NMRo3k96iVI+IdwEeyIgiJbbFq+XqUAezzQG/U88u4jv3vK2x7cbPnNFIw==} + + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + + '@types/argparse@1.0.38': + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + + '@types/bn.js@4.11.6': + resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} + + '@types/bn.js@5.1.6': + resolution: {integrity: sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==} + + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + + '@types/chrome@0.0.136': + resolution: {integrity: sha512-XDEiRhLkMd+SB7Iw3ZUIj/fov3wLd4HyTdLltVszkgl1dBfc3Rb7oPMVZ2Mz2TLqnF7Ow+StbR8E7r9lqpb4DA==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@8.56.12': + resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/filesystem@0.0.36': + resolution: {integrity: sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==} + + '@types/filewriter@0.0.33': + resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==} + + '@types/gensync@1.0.4': + resolution: {integrity: sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/har-format@1.2.16': + resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/http-proxy@1.17.16': + resolution: {integrity: sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/long@4.0.2': + resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} + + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@types/node@20.17.17': + resolution: {integrity: sha512-/WndGO4kIfMicEQLTi/mDANUu/iVUhT7KboZPdEqqHQ4aTS+3qT3U5gIqWDFV+XouorjfgGqvKILJeHhuQgFYg==} + + '@types/node@22.7.5': + resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/parse-path@7.0.3': + resolution: {integrity: sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==} + + '@types/pbkdf2@3.1.2': + resolution: {integrity: sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==} + + '@types/prop-types@15.7.14': + resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + + '@types/react-dom@18.3.5': + resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} + peerDependencies: + '@types/react': ^18.0.0 + + '@types/react-transition-group@4.4.12': + resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==} + peerDependencies: + '@types/react': '*' + + '@types/react@18.3.18': + resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} + + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + + '@types/secp256k1@4.0.6': + resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/uuid@8.3.4': + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + + '@types/web-bluetooth@0.0.20': + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + + '@types/ws@7.4.7': + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + + '@types/ws@8.5.14': + resolution: {integrity: sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + + '@typescript-eslint/eslint-plugin@6.21.0': + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@5.62.0': + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.2.0': + resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@5.62.0': + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@7.2.0': + resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/type-utils@6.21.0': + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@5.62.0': + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@7.2.0': + resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/typescript-estree@5.62.0': + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@7.2.0': + resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@6.21.0': + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + + '@typescript-eslint/visitor-keys@5.62.0': + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@7.2.0': + resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@unhead/dom@1.11.18': + resolution: {integrity: sha512-zQuJUw/et9zYEV0SZWTDX23IgurwMaXycAuxt4L6OgNL0T4TWP3a0J/Vm3Q02hmdNo/cPKeVBrwBdnFUXjGU4w==} + + '@unhead/schema@1.11.18': + resolution: {integrity: sha512-a3TA/OJCRdfbFhcA3Hq24k1ZU1o9szicESrw8DZcGyQFacHnh84mVgnyqSkMnwgCmfN4kvjSiTBlLEHS6+wATw==} + + '@unhead/shared@1.11.18': + resolution: {integrity: sha512-OsupRQRxJqqnuKiL1Guqipjbl7MndD5DofvmGa3PFGu2qNPmOmH2mxGFjRBBgq2XxY1KalIHl/2I9HV6gbK8cw==} + + '@unhead/ssr@1.11.18': + resolution: {integrity: sha512-uaHPz0RRAb18yKeCmHyHk5QKWRk/uHpOrqSbhRXTOhbrd3Ur3gGTVaAoyUoRYKGPU5B5/pyHh3TfLw0LkfrH1A==} + + '@unhead/vue@1.11.18': + resolution: {integrity: sha512-Jfi7t/XNBnlcauP9UTH3VHBcS69G70ikFd2e5zdgULLDRWpOlLs1sSTH1V2juNptc93DOk9RQfC5jLWbLcivFw==} + peerDependencies: + vue: '>=2.7 || >=3' + + '@vercel/nft@0.27.10': + resolution: {integrity: sha512-zbaF9Wp/NsZtKLE4uVmL3FyfFwlpDyuymQM1kPbeT0mVOHKDQQNjnnfslB3REg3oZprmNFJuh3pkHBk2qAaizg==} + engines: {node: '>=16'} + hasBin: true + + '@vitejs/plugin-vue-jsx@4.1.1': + resolution: {integrity: sha512-uMJqv/7u1zz/9NbWAD3XdjaY20tKTf17XVfQ9zq4wY1BjsB/PjpJPMe2xiG39QpP4ZdhYNhm4Hvo66uJrykNLA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.0.0 + + '@vitejs/plugin-vue@5.0.5': + resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + + '@vitejs/plugin-vue@5.2.1': + resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 + + '@volar/language-core@1.11.1': + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + + '@volar/language-core@2.4.11': + resolution: {integrity: sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==} + + '@volar/source-map@1.11.1': + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + + '@volar/source-map@2.4.11': + resolution: {integrity: sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==} + + '@volar/typescript@1.11.1': + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + + '@volar/typescript@2.4.11': + resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==} + + '@vue-macros/common@1.16.1': + resolution: {integrity: sha512-Pn/AWMTjoMYuquepLZP813BIcq8DTZiNCoaceuNlvaYuOTd8DqBZWc5u0uOMQZMInwME1mdSmmBAcTluiV9Jtg==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + peerDependenciesMeta: + vue: + optional: true + + '@vue/babel-helper-vue-transform-on@1.2.5': + resolution: {integrity: sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==} + + '@vue/babel-plugin-jsx@1.2.5': + resolution: {integrity: sha512-zTrNmOd4939H9KsRIGmmzn3q2zvv1mjxkYZHgqHZgDrXz5B1Q3WyGEjO2f+JrmKghvl1JIRcvo63LgM1kH5zFg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@vue/babel-plugin-resolve-type@1.2.5': + resolution: {integrity: sha512-U/ibkQrf5sx0XXRnUZD1mo5F7PkpKyTbfXM3a3rC4YnUz6crHEz9Jg09jzzL6QYlXNto/9CePdOg/c87O4Nlfg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@vue/compiler-core@3.5.13': + resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + + '@vue/compiler-dom@3.5.13': + resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + + '@vue/compiler-sfc@3.5.13': + resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + + '@vue/compiler-ssr@3.5.13': + resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + + '@vue/compiler-vue2@2.7.16': + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + + '@vue/devtools-api@6.6.4': + resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + + '@vue/devtools-core@7.6.8': + resolution: {integrity: sha512-8X4roysTwzQ94o7IobjVcOd1aZF5iunikrMrHPI2uUdigZCi2kFTQc7ffYiFiTNaLElCpjOhCnM7bo7aK1yU7A==} + peerDependencies: + vue: ^3.0.0 + + '@vue/devtools-kit@7.6.8': + resolution: {integrity: sha512-JhJ8M3sPU+v0P2iZBF2DkdmR9L0dnT5RXJabJqX6o8KtFs3tebdvfoXV2Dm3BFuqeECuMJIfF1aCzSt+WQ4wrw==} + + '@vue/devtools-shared@7.7.1': + resolution: {integrity: sha512-BtgF7kHq4BHG23Lezc/3W2UhK2ga7a8ohAIAGJMBr4BkxUFzhqntQtCiuL1ijo2ztWnmusymkirgqUrXoQKumA==} + + '@vue/language-core@1.8.27': + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/language-core@2.2.0': + resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/reactivity@3.5.13': + resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} + + '@vue/runtime-core@3.5.13': + resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} + + '@vue/runtime-dom@3.5.13': + resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} + + '@vue/server-renderer@3.5.13': + resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} + peerDependencies: + vue: 3.5.13 + + '@vue/shared@3.5.13': + resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + + '@vueuse/core@10.11.1': + resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==} + + '@vueuse/metadata@10.11.1': + resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==} + + '@vueuse/shared@10.11.1': + resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==} + + '@wallet-standard/app@1.1.0': + resolution: {integrity: sha512-3CijvrO9utx598kjr45hTbbeeykQrQfKmSnxeWOgU25TOEpvcipD/bYDQWIqUv1Oc6KK4YStokSMu/FBNecGUQ==} + engines: {node: '>=16'} + + '@wallet-standard/base@1.1.0': + resolution: {integrity: sha512-DJDQhjKmSNVLKWItoKThJS+CsJQjR9AOBOirBVT1F9YpRyC9oYHE+ZnSf8y8bxUphtKqdQMPVQ2mHohYdRvDVQ==} + engines: {node: '>=16'} + + '@wallet-standard/core@1.0.3': + resolution: {integrity: sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==} + engines: {node: '>=16'} + + '@wallet-standard/core@1.1.0': + resolution: {integrity: sha512-v2W5q/NlX1qkn2q/JOXQT//pOAdrhz7+nOcO2uiH9+a0uvreL+sdWWqkhFmMcX+HEBjaibdOQMUoIfDhOGX4XA==} + engines: {node: '>=16'} + + '@wallet-standard/errors@0.1.0': + resolution: {integrity: sha512-ag0eq5ixy7rz8M5YUWGi/EoIJ69KJ+KILFNunoufgmXVkiISC7+NIZXJYTJrapni4f9twE1hfT+8+IV2CYCvmg==} + engines: {node: '>=16'} + hasBin: true + + '@wallet-standard/features@1.1.0': + resolution: {integrity: sha512-hiEivWNztx73s+7iLxsuD1sOJ28xtRix58W7Xnz4XzzA/pF0+aicnWgjOdA10doVDEDZdUuZCIIqG96SFNlDUg==} + engines: {node: '>=16'} + + '@wallet-standard/wallet@1.1.0': + resolution: {integrity: sha512-Gt8TnSlDZpAl+RWOOAB/kuvC7RpcdWAlFbHNoi4gsXsfaWa1QCT6LBcfIYTPdOZC9OVZUDwqGuGAcqZejDmHjg==} + engines: {node: '>=16'} + + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + + '@wormhole-foundation/sdk-algorand-core@1.5.2': + resolution: {integrity: sha512-69XBC8N4h5e8+UrJHWZfhfcnoiO8Nfs9fZDO8B4JWwZWUvW+AJXj9ISVu4ZFWTQHzfpH7sLyJQ79gYk/kTOL0g==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-algorand-tokenbridge@1.5.2': + resolution: {integrity: sha512-x7hpi5ySxvP5eZmtgDCzpB2R4hmXFV/s0ZIUN8OI4xKRvezODTv1QmkoWiCfakgJt1zr9OX3Ncii8pwYb5f4kg==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-algorand@1.5.2': + resolution: {integrity: sha512-DKH/3qRyidDUKpVqrQnCc4TqsSqI41NOQhT7zFYjqPRo43APh2eOwsYxxb0EKm5iATdGumnGFpgBQWg4wYUXjg==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-aptos-cctp@1.5.2': + resolution: {integrity: sha512-yGN7cQQjRL6tgiB83J8/xXvINe8XebqPX2ZYgccyZ6HmByWv4o0Y2lPV+UGRms+KrP0Pvl2RhjzSFxtTk8bIRQ==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-aptos-core@1.5.2': + resolution: {integrity: sha512-i+pFGg69Tri0R4xvwNhrmB+M+b+22qFn0RY7lsO4QR9PTEpa+lmYut3HtoIV0JZkLfr/etePJvPTOBMSSFQ7bg==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-aptos-tokenbridge@1.5.2': + resolution: {integrity: sha512-evPKjHX8g2vtYYNPX/83gfgNmMRAMXeS5PuNOjtjbGZPkIh/+FucyHuMf1nL1eCA9mJBNVIb4UbSGLNhcEF0gQ==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-aptos@1.10.0': + resolution: {integrity: sha512-zDtg5LtvTSsmSQx5LNWm4OF8Ep2DvSzGS/AV0/6k1fQNnJRUAMVQTf8dN5YgFEwTo6NMqNa9eaNOpS/OhTPB8w==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-aptos@1.5.2': + resolution: {integrity: sha512-FOGCuyPX3Lc8DEXhM+4dTLiYt5EAdNmcWsRuVZcVOLp7CV8073JdOSlk+iqLRhVaMcRENb/NVnEx6W1l0rPrIQ==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-base@1.10.0': + resolution: {integrity: sha512-5NzM7m5CZ623o7BUwu6ApzMWp9kgipw9bdEGozg+tqyDJHfTdLBk95W39HLvKEioyVbWU8sZCMUJ3LA47Ot6gw==} + + '@wormhole-foundation/sdk-base@1.5.2': + resolution: {integrity: sha512-RNE3l16izNmlFFm2qNoI5tF+8TRRttAL36hwCNBDkuz9qZ+JIVT6/ODmFSTcVTl/FwgwEJysflchnIWMXQUbow==} + + '@wormhole-foundation/sdk-connect@1.10.0': + resolution: {integrity: sha512-p+s0FUdDeX+ynkCcZGucHdlUWLpQb195KcOKQKCt6vHe6R+VzSAO+BBACfTLii0Xot+ea/FLgmz45gf2X5/Apw==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-connect@1.5.2': + resolution: {integrity: sha512-H3SvcG0KKH47BBxXaaN9i7LQtQxP8Cjlz1WfyG8nP92+eB8JTo9ujxNGPMyfgpKJabOto72wQbxU/DMW3pgsbA==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-cosmwasm-core@1.5.2': + resolution: {integrity: sha512-QyG4aSqoemSubmEhodKdMTZy0LROeWdY31qV91KD57lgTgMCMkYyAlHtg88Ij5452I87U2z6BYHbEvZiD1pO2Q==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-cosmwasm-ibc@1.5.2': + resolution: {integrity: sha512-7N+GiGh+hSEDM2o5WGJ6vrzBXLKLQYd70x1evgYuXmmuag81k5ThvybYWDT5xwEyNg7txf8H4JbCN42J3ahuvw==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-cosmwasm-tokenbridge@1.5.2': + resolution: {integrity: sha512-KKfz8rnFd6jaXXhubUZd14+525JNlGVCLQflUgCM3T5bllXGhHHwD962cQ7Gnyta3RJX+OR0D9wUil6OwubPmQ==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-cosmwasm@1.5.2': + resolution: {integrity: sha512-k8MhGVsjgOSlFbJvcXYGRT8qkEZ0YlnUEqTwByotyx+HHPy5fgxv1KITp7CUXQ3LouQ4dqtGODTHvnkuua4y5w==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-definitions@1.10.0': + resolution: {integrity: sha512-qJ/mu2NtMVF1rOHMOLJ70gViI58iAsa8LXVwZWRB0t6NSPRj1zc48aFxh+BzoPLA2ughIa1t5TENl3I8nXYzQA==} + + '@wormhole-foundation/sdk-definitions@1.5.2': + resolution: {integrity: sha512-qj3AQ0laGxV6hiknsWFF5RFY1t6QzWarzSF0e5RTQfRHiVKfciENFc8niWY8fT1GIpT4uRf0KKdd+fnqhMXBfA==} + + '@wormhole-foundation/sdk-evm-cctp@1.5.2': + resolution: {integrity: sha512-xQeoWBbKhjlBrVngjaLEY6+Iv0W7zoelpIj0SMK1ZCxKkim8wCxL6KxRpVC2GuAhI25rBorI95xnefuohRliTg==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-evm-core@1.5.2': + resolution: {integrity: sha512-R8eWTcyaQqeWhdExjORjF2jZOMpfAc2AajCY7ZG7oK9ldqZJDAsqqQXCwMK4ZnLasbV0s4VqnBwVEDfGP+5C4w==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-evm-portico@1.5.2': + resolution: {integrity: sha512-Rock8EH54hVVPjMqdCjtCbMN27Pf4Czhna7psC7F4rF9TDFpeS3C7BBMvUR1h6N1Xnd3QPdlI3ohAuxMRhbFzQ==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-evm-tokenbridge@1.5.2': + resolution: {integrity: sha512-FV8vbHPJKvkpCxJcQ3aZvrHY8EzW/4WDfTPWeBi11XD0OheCMOrepZ4NtgRePq2149VjvKvZpnV6bAH4Q2XXDg==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-evm@1.10.0': + resolution: {integrity: sha512-xTj/wNUFzOp+IYML0c9g70sQQbu9OSxt03Zis38yujzBzdZo/xmyVEuHRDUEN8mANWBvyUIKnVW8/QlQWIxoiA==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-evm@1.5.2': + resolution: {integrity: sha512-4yHUjyUaB3uItIqsa7RVELwYnhoF+hp8lESIL8mE4Yyqo6RwQ3iqhPJ1nivKF/Vhl1doQGRVOK9OSZQQXbsrpw==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-solana-cctp@1.5.2': + resolution: {integrity: sha512-QEFdgWeY6S1FvuppdLqUKViDZkVS4WhbJdmj7SG1FI87snIeGO6GZ+HLWjOGy/qsXciwJuUmRfn/7Ni0d6zGhQ==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-solana-core@1.5.2': + resolution: {integrity: sha512-jaEw24DAePNXrEvKJxCX8ZS+eO+FuEiiZpcuckonXHC0Sl4ARgLOjL3R3Mbd9fkmsyr1sqRXrkT2EUUDwQfg6A==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-solana-tokenbridge@1.5.2': + resolution: {integrity: sha512-dqFb+wgX99NPD0qs2VXIJd0Sh1d9Rnfxz9z8LyfPP3CjrUauhuO65oz1rxVxuBKm48zwiN8rKpQ7FWcErv4OkQ==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-solana@1.10.0': + resolution: {integrity: sha512-gjZgTEfqe0YY8NVpy85XISHRmlFm4aitxLg+LormVXAbI17roeweb3Is/exuaSw1Y+LdS6yFkTniDyYq1icT8g==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-solana@1.5.2': + resolution: {integrity: sha512-ctns6oUZQPWSoTz8PKLAWdTkK2Vqn6h1CS0zj5jwcKMJ3RA65I4MKvQDBiSY4WSB1xeoM/05/rwTU7DV9U56mA==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-sui-cctp@1.5.2': + resolution: {integrity: sha512-csKywNzlqmCMRVd/kMMgvTTOEct9zHq34+v9c6cDWuJazdBe99oUIM/bIkmSCA0Js1KWna+Fa5RXpG5XuwaAeQ==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-sui-core@1.5.2': + resolution: {integrity: sha512-fnZKH8CjYLGroUHMNSd/S3Z1A+hr7CfvIbLt79KkJ+mK5H5+3EelLq7w3Qe1JMjjJ82BJSTcdQchM/HZ6h0PZA==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-sui-tokenbridge@1.5.2': + resolution: {integrity: sha512-xY6ckUfAlwkBJBjIGKZICgG4hOC1Ae6IwW0fqjkacJH29y8nDnZFwrTgw0swYRDZlGgIjCMCgLRO/IkJsuBVTw==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-sui@1.10.0': + resolution: {integrity: sha512-+M1DO5uoVNEUA/8Dqk+l/EWBXWhqmOIAz9skxYr5s5FCFs85DASv1afwC1YDJoMeytYIwc+kB7idKiawoJSjDA==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk-sui@1.5.2': + resolution: {integrity: sha512-LgzmkqAW7YxJ7YWCC0R6F2H/X6uOrDuCfSydVfZz2Byf4bSaB8gULwJ4qT1YsbuqjPmqiQSYgGTb5Db7SiNeEw==} + engines: {node: '>=16'} + + '@wormhole-foundation/sdk@1.5.2': + resolution: {integrity: sha512-f2YoO9mcYKOXUnS7BCwJ4ovxvMUMuOTs0mnUu+O35dxChqZ03vcNaFOeQghWLkOlq9NIO28GS53m82esf3sPKg==} + engines: {node: '>=16'} + + '@wry/caches@1.0.1': + resolution: {integrity: sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==} + engines: {node: '>=8'} + + '@wry/context@0.7.4': + resolution: {integrity: sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==} + engines: {node: '>=8'} + + '@wry/equality@0.5.7': + resolution: {integrity: sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==} + engines: {node: '>=8'} + + '@wry/trie@0.5.0': + resolution: {integrity: sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==} + engines: {node: '>=8'} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + abbrev@3.0.0: + resolution: {integrity: sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA==} + engines: {node: ^18.17.0 || >=20.5.0} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + aes-js@4.0.0-beta.5: + resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} + + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + engines: {node: '>= 14'} + + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + algo-msgpack-with-bigint@2.1.1: + resolution: {integrity: sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==} + engines: {node: '>= 10'} + + algosdk@2.7.0: + resolution: {integrity: sha512-sBE9lpV7bup3rZ+q2j3JQaFAE9JwZvjWKX00vPlG8e9txctXbgLL56jZhSWZndqhDI9oI+0P4NldkuQIWdrUyg==} + engines: {node: '>=18.0.0'} + + alien-signals@0.4.14: + resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + antd@5.23.4: + resolution: {integrity: sha512-8H3icWQRi4lu7pkOpc2IhCh+UgmtTZHaTusgfieihv5nm8lNsCxCrxMqEgMxrZTumxsBKHThACkNdejSE3IeuA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + aptos@1.21.0: + resolution: {integrity: sha512-PRKjoFgL8tVEc9+oS7eJUv8GNxx8n3+0byH2+m7CP3raYOD6yFKOecuwjVMIJmgfpjp6xH0P0HDMGZAXmSyU0Q==} + engines: {node: '>=11.0.0'} + deprecated: Package aptos is no longer supported, please migrate to https://www.npmjs.com/package/@aptos-labs/ts-sdk + + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} + + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array-union@1.0.2: + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} + engines: {node: '>=0.10.0'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array-uniq@1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} + engines: {node: '>=0.10.0'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + ast-kit@1.4.0: + resolution: {integrity: sha512-BlGeOw73FDsX7z0eZE/wuuafxYoek2yzNJ6l6A1nsb4+z/p87TOPbHaWuN53kFKNuUXiCQa2M+xLF71IqQmRSw==} + engines: {node: '>=16.14.0'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + ast-walker-scope@0.6.2: + resolution: {integrity: sha512-1UWOyC50xI3QZkRuDj6PqDtpm1oHWtYs+NQGwqL/2R11eN3Q81PHAHPM0SWW3BNQm53UDwS//Jv8L4CCVLM1bQ==} + engines: {node: '>=16.14.0'} + + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + + async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} + engines: {node: '>=4'} + + axios@1.7.4: + resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} + + axios@1.7.9: + resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + b4a@1.6.7: + resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + + babel-preset-current-node-syntax@1.1.0: + resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} + peerDependencies: + '@babel/core': ^7.0.0 + + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + bare-events@2.5.4: + resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} + + base-x@3.0.10: + resolution: {integrity: sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==} + + base-x@4.0.0: + resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} + + base-x@5.0.0: + resolution: {integrity: sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + bech32@1.1.4: + resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} + + bech32@2.0.0: + resolution: {integrity: sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==} + + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + + bigint-buffer@1.1.5: + resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==} + engines: {node: '>= 10.0.0'} + + bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + binary-layout@1.0.3: + resolution: {integrity: sha512-kpXCSOko4wbQaQswZk4IPcjVZwN77TKZgjMacdoX54EvUHAn/CzJclCt25SUmpXfzFrGovoq3LkPJkMy10bZxQ==} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + bip39@3.1.0: + resolution: {integrity: sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==} + + birpc@0.2.19: + resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} + + blakejs@1.2.1: + resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + + bn.js@4.12.1: + resolution: {integrity: sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==} + + bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + browser-headers@0.4.1: + resolution: {integrity: sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==} + + browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + + bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + + bs58@5.0.0: + resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} + + bs58@6.0.0: + resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==} + + bs58check@2.1.2: + resolution: {integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==} + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer-layout@1.2.2: + resolution: {integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==} + engines: {node: '>=4.5'} + + buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + bufferutil@4.0.9: + resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} + engines: {node: '>=6.14.2'} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + builtins@5.1.0: + resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + bundle-require@3.1.2: + resolution: {integrity: sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.13' + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + c12@2.0.1: + resolution: {integrity: sha512-Z4JgsKXHG37C6PYUtIxCfLJZvo6FyhHJoClwwb9ftUkLpPSkuYqn6Tr+vnaN8hymm0kIbcg6Ey3kv/Q71k5w/A==} + peerDependencies: + magicast: ^0.3.5 + peerDependenciesMeta: + magicast: + optional: true + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + cache-content-type@1.0.1: + resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} + engines: {node: '>= 6.0.0'} + + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + + caniuse-lite@1.0.30001699: + resolution: {integrity: sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + cipher-base@1.0.6: + resolution: {integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==} + engines: {node: '>= 0.10'} + + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + clipboardy@4.0.0: + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + cluster-key-slot@1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} + engines: {node: '>=0.10.0'} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compatx@0.1.8: + resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==} + + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} + + compute-scroll-into-view@3.1.1: + resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} + + computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + consola@3.4.0: + resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} + engines: {node: ^14.18.0 || >=16.10.0} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + + cookies@0.9.1: + resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} + engines: {node: '>= 0.8'} + + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + + copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + + cosmjs-types@0.9.0: + resolution: {integrity: sha512-MN/yUe6mkJwHnCFfsNPeCfXVhyxHYW6c/xDUzrSbBycYzw++XvWDMJArXp2pLdgD6FQ8DW79vkPjeNKVrXaHeQ==} + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} + + create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + + create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + + create-jest@29.7.0: + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + + croner@9.0.0: + resolution: {integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==} + engines: {node: '>=18.0'} + + cronstrue@2.54.0: + resolution: {integrity: sha512-vyp5NklDxA5MjPfQgkn0bA+0vRQe7Q9keX7RPdV6rMgd7LtDvbuKgnT+3T5ZAX16anSP5HmahcRp8mziXsLfaw==} + hasBin: true + + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crossws@0.3.3: + resolution: {integrity: sha512-/71DJT3xJlqSnBr83uGJesmVHSzZEvgxHt/fIKxBAAngqMHmnBWQNxCphVxxJ2XL3xleu5+hJD6IQ3TglBedcw==} + + crypto-hash@1.3.0: + resolution: {integrity: sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==} + engines: {node: '>=8'} + + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + + css-declaration-sorter@7.2.0: + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cssnano-preset-default@7.0.6: + resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano-utils@5.0.0: + resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano@7.0.6: + resolution: {integrity: sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + db0@0.2.3: + resolution: {integrity: sha512-PunuHESDNefmwVy1LDpY663uWwKt2ogLGoB6NOz2sflGREWqDreMwDgF8gfkXxgNXW+dqviyiJGm924H1BaGiw==} + peerDependencies: + '@electric-sql/pglite': '*' + '@libsql/client': '*' + better-sqlite3: '*' + drizzle-orm: '*' + mysql2: '*' + sqlite3: '*' + peerDependenciesMeta: + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + better-sqlite3: + optional: true + drizzle-orm: + optional: true + mysql2: + optional: true + sqlite3: + optional: true + + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + deep-equal@1.0.1: + resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-browser@5.3.0: + resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} + + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + + devalue@5.1.1: + resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + diff@7.0.0: + resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} + + dotenv@16.0.3: + resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} + engines: {node: '>=12'} + + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ed2curve@0.3.0: + resolution: {integrity: sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-to-chromium@1.5.96: + resolution: {integrity: sha512-8AJUW6dh75Fm/ny8+kZKJzI1pgoE8bKLZlzDU2W1ENd+DXKJrx7I7l9hb8UWR4ojlnb5OlixMt00QWiYJoVw1w==} + + elliptic@6.6.1: + resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + + email-addresses@5.0.0: + resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==} + + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enhanced-resolve@5.18.1: + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} + engines: {node: '>=10.13.0'} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + error-stack-parser-es@0.1.5: + resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==} + + errx@0.1.0: + resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==} + + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + + esbuild-android-64@0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + esbuild-android-arm64@0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + esbuild-darwin-64@0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + esbuild-darwin-arm64@0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + esbuild-freebsd-64@0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + esbuild-freebsd-arm64@0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + esbuild-linux-32@0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + esbuild-linux-64@0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + esbuild-linux-mips64le@0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + esbuild-linux-ppc64le@0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + esbuild-linux-riscv64@0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + esbuild-linux-s390x@0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + esbuild-netbsd-64@0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + esbuild-openbsd-64@0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + esbuild-sunos-64@0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + esbuild-windows-32@0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + esbuild-windows-64@0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + esbuild-windows-arm64@0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + esbuild@0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-config-next@13.0.0: + resolution: {integrity: sha512-y2nqWS2tycWySdVhb+rhp6CuDmDazGySqkzzQZf3UTyfHyC7og1m5m/AtMFwCo5mtvDqvw1BENin52kV9733lg==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-config-next@14.2.3: + resolution: {integrity: sha512-ZkNztm3Q7hjqvB1rRlOX8P9E/cXRL9ajRcs8jufEtwMfTVYRqnmtnaSu57QqHyBlovMuiB8LEzfLBkh5RYV6Fg==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-config-prettier@8.10.0: + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-config-standard@17.1.0: + resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: '^15.0.0 || ^16.0.0 ' + eslint-plugin-promise: ^6.0.0 + + eslint-config-turbo@2.4.4: + resolution: {integrity: sha512-4w/heWywWkFw09a5MY5lCvb9suJlhBSkzNtGTwM5+zRif4rksubaMYy1pD0++5rqoDVcQax25jCrtii9ptsNDw==} + peerDependencies: + eslint: '>6.6.0' + turbo: '>2.0.0' + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@2.7.1: + resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} + engines: {node: '>=4'} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + + eslint-import-resolver-typescript@3.7.0: + resolution: {integrity: sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-es@3.0.1: + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + + eslint-plugin-es@4.1.0: + resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-n@15.7.0: + resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} + engines: {node: '>=12.22.0'} + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-node@11.1.0: + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=5.16.0' + + eslint-plugin-promise@6.6.0: + resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-react-hooks@4.6.2: + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705: + resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react@7.31.8: + resolution: {integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + + eslint-plugin-react@7.37.4: + resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-plugin-turbo@2.4.4: + resolution: {integrity: sha512-myEnQTjr3FkI0j1Fu0Mqnv1z8n0JW5iFTOUNzHaEevjzl+1uzMSsFwks/x8i3rGmI3EYtC1BY8K2B2pS0Vfx6w==} + peerDependencies: + eslint: '>6.6.0' + turbo: '>2.0.0' + + eslint-plugin-unicorn@44.0.2: + resolution: {integrity: sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==} + engines: {node: '>=14.18'} + peerDependencies: + eslint: '>=8.23.1' + + eslint-plugin-vue@9.32.0: + resolution: {integrity: sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + + eslint-utils@3.0.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + + eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + + eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-webpack-plugin@4.2.0: + resolution: {integrity: sha512-rsfpFQ01AWQbqtjgPRr2usVRxhWDuG0YDYcG8DJOteD3EFnpeuYuOwk0PQiN7PRBTqS6ElNdtPZPggj8If9WnA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + eslint: ^8.0.0 || ^9.0.0 + webpack: ^5.0.0 + + eslint@7.32.0: + resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} + engines: {node: ^10.12.0 || >=12.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + espree@7.3.1: + resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} + engines: {node: ^10.12.0 || >=12.0.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + eth-rpc-errors@4.0.3: + resolution: {integrity: sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==} + + ethereum-cryptography@0.1.3: + resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} + + ethereumjs-abi@0.6.8: + resolution: {integrity: sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==} + deprecated: This library has been deprecated and usage is discouraged. + + ethereumjs-util@6.2.1: + resolution: {integrity: sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==} + + ethereumjs-util@7.1.5: + resolution: {integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==} + engines: {node: '>=10.0.0'} + + ethers@6.13.5: + resolution: {integrity: sha512-+knKNieu5EKRThQJWwqaJ10a6HE9sSehGeqWN65//wE7j47ZpFhKAnHB/JJFibwwg61I/koxaPsXbXpD/skNOQ==} + engines: {node: '>=14.0.0'} + + ethjs-util@0.1.6: + resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==} + engines: {node: '>=6.5.0', npm: '>=3'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + + extension-port-stream@2.1.1: + resolution: {integrity: sha512-qknp5o5rj2J9CRKfVB8KJr+uXQlrojNZzdESUPhKYLXf97TPcGf6qWWKmpsNNtUyOdzFhab1ON0jzouNxHHvow==} + engines: {node: '>=12.0.0'} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + externality@1.0.2: + resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} + + eyes@0.1.8: + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} + engines: {node: '> 0.1.90'} + + fast-deep-equal@2.0.1: + resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-npm-meta@0.2.2: + resolution: {integrity: sha512-E+fdxeaOQGo/CMWc9f4uHFfgUPJRAu7N3uB8GBvB3SDPAIWJK4GKyYhkAGFq+GYrcbKNfQIz5VVQyJnDuPPCrg==} + + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + + fast-uri@3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + + fastestsmallesttextencoderdecoder@1.0.22: + resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} + + fastq@1.19.0: + resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fdir@6.4.3: + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fewcha-plugin-wallet-adapter@0.1.3: + resolution: {integrity: sha512-Ek59XhrkjVN+Yj1eBNI/SLGLgo9Sn1LVh8uDKgBaNix7nNAAJrgo2CoPCk/L595TSoO5FJtkBFdlnvRPAGJlAQ==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + + filename-reserved-regex@2.0.0: + resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} + engines: {node: '>=4'} + + filenamify@4.3.0: + resolution: {integrity: sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==} + engines: {node: '>=8'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.4: + resolution: {integrity: sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==} + engines: {node: '>= 0.4'} + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + fuse.js@7.1.0: + resolution: {integrity: sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==} + engines: {node: '>=10'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} + engines: {node: '>= 0.4'} + + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-port-please@3.1.2: + resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.10.0: + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + + gh-pages@5.0.0: + resolution: {integrity: sha512-Nqp1SjkPIB94Xw/3yYNTUL+G2dxlhjvv1zeN/4kMC1jfViTEqhtVz/Ba1zSXHuvXCN9ADNS1dN4r5/J/nZWEQQ==} + engines: {node: '>=10'} + hasBin: true + + giget@1.2.4: + resolution: {integrity: sha512-Wv+daGyispVoA31TrWAVR+aAdP7roubTPEM/8JzRnqXhLbdJH0T9eQyXVFF8fjk3WKTsctII6QcyxILYgNp2DA==} + hasBin: true + + git-config-path@2.0.0: + resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==} + engines: {node: '>=4'} + + git-up@8.0.0: + resolution: {integrity: sha512-uBI8Zdt1OZlrYfGcSVroLJKgyNNXlgusYFzHk614lTasz35yg2PVpL1RMy0LOO2dcvF9msYW3pRfUSmafZNrjg==} + + git-url-parse@16.0.0: + resolution: {integrity: sha512-Y8iAF0AmCaqXc6a5GYgPQW9ESbncNLOL+CeQAJRhmWUOmnPkKpBYeWYp4mFd3LA5j53CdGDdslzX12yEBVHQQg==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globby@14.1.0: + resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} + engines: {node: '>=18'} + + globby@6.1.0: + resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} + engines: {node: '>=0.10.0'} + + google-fonts-helper@3.6.0: + resolution: {integrity: sha512-ReantWd/l8dedKqTYjvqaQ55rAl/rbRqWL5VXHNXtGwIhMX4N8VNA7V19drr7xiv5G3pzlYID0K4FauvGqnWEg==} + + google-protobuf@3.21.4: + resolution: {integrity: sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ==} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + + gql.tada@1.8.10: + resolution: {integrity: sha512-FrvSxgz838FYVPgZHGOSgbpOjhR+yq44rCzww3oOPJYi0OvBJjAgCiP6LEokZIYND2fUTXzQAyLgcvgw1yNP5A==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + graphql-request@7.1.2: + resolution: {integrity: sha512-+XE3iuC55C2di5ZUrB4pjgwe+nIQBuXVIK9J98wrVwojzDW3GMdSBZfxUk8l4j9TieIpjpggclxhNEU9ebGF8w==} + peerDependencies: + graphql: 14 - 16 + + graphql-tag@2.12.6: + resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} + engines: {node: '>=10'} + peerDependencies: + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + graphql@16.10.0: + resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + + gzip-size@7.0.0: + resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + h3@1.15.0: + resolution: {integrity: sha512-OsjX4JW8J4XGgCgEcad20pepFQWnuKH+OwkCJjogF3C+9AZ1iYdtB4hX6vAb5DskBiu5ljEXqApINjR8CqoCMQ==} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hash-base@3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} + engines: {node: '>=4'} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + hi-base32@0.5.1: + resolution: {integrity: sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==} + + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + + http-assert@1.5.0: + resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} + engines: {node: '>= 0.8'} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + + http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + http-status-codes@2.3.0: + resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==} + + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + httpxy@0.1.7: + resolution: {integrity: sha512-pXNx8gnANKAndgga5ahefxc++tJvNL87CXoRwxn1cJE2ZkWEojF3tNfQIEhZX/vfpt+wzeAzpUI4qkediX1MLQ==} + + human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + idb-keyval@6.2.1: + resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.3: + resolution: {integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==} + engines: {node: '>= 4'} + + image-meta@0.2.1: + resolution: {integrity: sha512-K6acvFaelNxx8wc2VjbIzXKDVB0Khs0QT35U6NkGfTdCmjLNcO2945m7RFNR9/RPVFm48hq7QPzK8uGH18HCGw==} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + + impound@0.2.0: + resolution: {integrity: sha512-gXgeSyp9Hf7qG2/PLKmywHXyQf2xFrw+mJGpoj9DsAB9L7/MIKn+DeEx98UryWXdmbv8wUUPdcQof6qXnZoCGg==} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + index-to-position@0.1.2: + resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} + engines: {node: '>=18'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + + ioredis@5.5.0: + resolution: {integrity: sha512-7CutT89g23FfSa8MDoIFs2GYYa0PaNiW/OrT+nRyjRXHDZd17HmIgy+reOQ/yhh72NznNjGuS8kbCAcA4Ro4mw==} + engines: {node: '>=12.22.0'} + + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-bun-module@1.3.0: + resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hex-prefixed@1.0.0: + resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} + engines: {node: '>=6.5.0', npm: '>=3'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-installed-globally@1.0.0: + resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} + engines: {node: '>=18'} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-ssh@1.4.0: + resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isomorphic-ws@4.0.1: + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + peerDependencies: + ws: '*' + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} + + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} + hasBin: true + + jayson@3.7.0: + resolution: {integrity: sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==} + engines: {node: '>=8'} + hasBin: true + + jayson@4.1.3: + resolution: {integrity: sha512-LtXh5aYZodBZ9Fc3j6f2w+MTNcnxteMOrb+QgIouguGOulWi0lieEkOUg+HkjjFs0DGoWDds6bi4E9hpNFLulQ==} + engines: {node: '>=8'} + hasBin: true + + jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-cli@29.7.0: + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@29.7.0: + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest@29.7.0: + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + + jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + + jose@5.10.0: + resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + + js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} + + js-levenshtein@1.1.6: + resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} + engines: {node: '>=0.10.0'} + + js-sha256@0.9.0: + resolution: {integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==} + + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + + js-sha512@0.8.0: + resolution: {integrity: sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-rpc-engine@6.1.0: + resolution: {integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==} + engines: {node: '>=10.0.0'} + + json-rpc-middleware-stream@3.0.0: + resolution: {integrity: sha512-JmZmlehE0xF3swwORpLHny/GvW3MZxCsb2uFNBrn8TOqMqivzCfz232NSDLLOtIQlrPlgyEjiYpyzyOPFOzClw==} + + json-rpc-protocol@0.13.2: + resolution: {integrity: sha512-2InSi+c7wGESmvYcEVS0clctpJCodV7gLqLN1BIIPNK07wokXIwhOL8RQWU4O7oX5adChn6HJGtIU6JaUQ1P/A==} + engines: {node: '>=4'} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json2mq@0.2.0: + resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + jwt-decode@4.0.0: + resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} + engines: {node: '>=18'} + + keccak256@1.0.6: + resolution: {integrity: sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==} + + keccak@3.0.4: + resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} + engines: {node: '>=10.0.0'} + + keygrip@1.1.0: + resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} + engines: {node: '>= 0.6'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + knitwork@1.2.0: + resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==} + + koa-compose@4.1.0: + resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} + + koa-convert@2.0.0: + resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==} + engines: {node: '>= 10'} + + koa-send@5.0.1: + resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==} + engines: {node: '>= 8'} + + koa-static@5.0.0: + resolution: {integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==} + engines: {node: '>= 7.6.0'} + + koa@2.15.3: + resolution: {integrity: sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==} + engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + launch-editor@2.9.1: + resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + libsodium-sumo@0.7.15: + resolution: {integrity: sha512-5tPmqPmq8T8Nikpm1Nqj0hBHvsLFCXvdhBFV7SGOitQPZAA6jso8XoL0r4L7vmfKXr486fiQInvErHtEvizFMw==} + + libsodium-wrappers-sumo@0.7.15: + resolution: {integrity: sha512-aSWY8wKDZh5TC7rMvEdTHoyppVq/1dTSAeAR7H6pzd6QRT3vQWcT5pGwCotLcpPEOLXX6VvqihSPkpEhYAjANA==} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + listhen@1.9.0: + resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} + hasBin: true + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + + local-pkg@0.5.1: + resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} + engines: {node: '>=14'} + + local-pkg@1.0.0: + resolution: {integrity: sha512-bbgPw/wmroJsil/GgL4qjDzs5YLTBMQ99weRsok1XCDccQeehbHA/I1oRvk2NPtr7KGZgT/Y5tPRnAtMqeG2Kg==} + engines: {node: '>=14'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. + + lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + long@4.0.0: + resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} + + long@5.3.1: + resolution: {integrity: sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lossless-json@1.0.5: + resolution: {integrity: sha512-RicKUuLwZVNZ6ZdJHgIZnSeA05p8qWc5NW0uR96mpPIjN9WDLUg9+kj1esQU1GkPn9iLZVKatSQK5gyiaFHgJA==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + lucide-react@0.383.0: + resolution: {integrity: sha512-13xlG0CQCJtzjSQYwwJ3WRqMHtRj3EXmLlorrARt7y+IHnxUCp3XyFNL1DfaGySWxHObDvnu1u1dV+0VMKHUSg==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 + + lucide-vue-next@0.396.0: + resolution: {integrity: sha512-fY2FbKWVlAH6KyGHLWQvjPmDAbAh5UH6eqakDYB815UG5wPLtDQmhSYQlZvDLvhkahLdUZt5f+IWKwSANaS0Zw==} + peerDependencies: + vue: '>=3.0.1' + + magic-string-ast@0.7.0: + resolution: {integrity: sha512-686fgAHaJY7wLTFEq7nnKqeQrhqmXB19d1HnqT35Ci7BN6hbAYLZUezTQ062uUHM7ggZEQlqJ94Ftls+KDXU8Q==} + engines: {node: '>=16.14.0'} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + mime@4.0.6: + resolution: {integrity: sha512-4rGt7rvQHBbaSOF9POGkk1ocRP16Md1x36Xma8sz8h8/vfCUI2OtEIeCqe4Ofes853x4xDoPiFLIT47J5fI/7A==} + engines: {node: '>=16'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + minizlib@3.0.1: + resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} + engines: {node: '>= 18'} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.0.9: + resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} + engines: {node: ^18 || >=20} + hasBin: true + + nanotar@0.2.0: + resolution: {integrity: sha512-9ca1h0Xjvo9bEkE4UOxgAzLV0jHKe6LMaxo37ND2DAhhAtd0j8pR1Wxz+/goMrZO8AEZTWCmyaOsFI/W5AdpCQ==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + next-themes@0.3.0: + resolution: {integrity: sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==} + peerDependencies: + react: ^16.8 || ^17 || ^18 + react-dom: ^16.8 || ^17 || ^18 + + next@14.2.24: + resolution: {integrity: sha512-En8VEexSJ0Py2FfVnRRh8gtERwDRaJGNvsvad47ShkC2Yi8AXQPXEA2vKoDJlGFSj5WE5SyF21zNi4M5gyi+SQ==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + sass: + optional: true + + nitropack@2.10.4: + resolution: {integrity: sha512-sJiG/MIQlZCVSw2cQrFG1H6mLeSqHlYfFerRjLKz69vUfdu0EL2l0WdOxlQbzJr3mMv/l4cOlCCLzVRzjzzF/g==} + engines: {node: ^16.11.0 || >=17.0.0} + hasBin: true + peerDependencies: + xml2js: ^0.6.2 + peerDependenciesMeta: + xml2js: + optional: true + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-addon-api@2.0.2: + resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + + node-addon-api@5.1.0: + resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-fetch-native@1.6.6: + resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-mock-http@1.0.0: + resolution: {integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==} + + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + + nopt@8.1.0: + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + nuxt@3.15.4: + resolution: {integrity: sha512-hSbZO4mR0uAMJtZPNTnCfiAtgleoOu28gvJcBNU7KQHgWnNXPjlWgwMczko2O4Tmnv9zIe/CQged+2HsPwl2ZA==} + engines: {node: ^18.20.5 || ^20.9.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@parcel/watcher': ^2.1.0 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + peerDependenciesMeta: + '@parcel/watcher': + optional: true + '@types/node': + optional: true + + nypm@0.4.1: + resolution: {integrity: sha512-1b9mihliBh8UCcKtcGRu//G50iHpjxIQVUqkdhPT/SDVE7KdJKoHXLS0heuYTQCx95dFqiyUbXZB9r8ikn+93g==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + + nypm@0.5.2: + resolution: {integrity: sha512-AHzvnyUJYSrrphPhRWWZNcoZfArGNp3Vrc4pm/ZurO74tYNTgAPrEyBQEKy+qioqmWlPXwvMZCG2wOaHlPG0Pw==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + only@0.0.2: + resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + openapi-typescript@7.6.1: + resolution: {integrity: sha512-F7RXEeo/heF3O9lOXo2bNjCOtfp7u+D6W3a3VNEH2xE6v+fxLtn5nq0uvUcA1F5aT+CMhNeC5Uqtg5tlXFX/ag==} + hasBin: true + peerDependencies: + typescript: ^5.x + + optimism@0.18.1: + resolution: {integrity: sha512-mLXNwWPa9dgFyDqkNi54sjDyNJ9/fTI6WGBLgnXku1vdKY/jovHfZT5r+aiVeFFLOz+foPNOm5YJ4mqgld2GBQ==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-manager-detector@0.2.9: + resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==} + + packrup@0.1.2: + resolution: {integrity: sha512-ZcKU7zrr5GlonoS9cxxrb5HVswGnyj6jQvwFBa6p5VFw7G71VAHcUKL5wyZSU/ECtPM/9gacWxy2KFQKt1gMNA==} + + pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-git-config@3.0.0: + resolution: {integrity: sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA==} + engines: {node: '>=8'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-json@8.1.0: + resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} + engines: {node: '>=18'} + + parse-path@7.0.0: + resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} + + parse-url@9.2.0: + resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==} + engines: {node: '>=14.13.0'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + path-type@6.0.0: + resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} + engines: {node: '>=18'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathe@2.0.2: + resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==} + + pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + + pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} + + poseidon-lite@0.2.1: + resolution: {integrity: sha512-xIr+G6HeYfOhCuswdqcFpSX47SPhm0EpisWJ6h7fHlWwaVIvH3dLnejpatrtw6Xc6HaLrpq05y7VRfvDmDGIog==} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss-calc@10.1.1: + resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + + postcss-colormin@7.0.2: + resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-convert-values@7.0.4: + resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-comments@7.0.3: + resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-duplicates@7.0.1: + resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-empty@7.0.0: + resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-overridden@7.0.0: + resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-merge-longhand@7.0.4: + resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-merge-rules@7.0.4: + resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-font-values@7.0.0: + resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-gradients@7.0.0: + resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-params@7.0.2: + resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-selectors@7.0.4: + resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-nesting@13.0.1: + resolution: {integrity: sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-normalize-charset@7.0.0: + resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-display-values@7.0.0: + resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-positions@7.0.0: + resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-repeat-style@7.0.0: + resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-string@7.0.0: + resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-timing-functions@7.0.0: + resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-unicode@7.0.2: + resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-url@7.0.0: + resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-whitespace@7.0.0: + resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-ordered-values@7.0.1: + resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-initial@7.0.2: + resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-transforms@7.0.0: + resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + engines: {node: '>=4'} + + postcss-svgo@7.0.1: + resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.4.31 + + postcss-unique-selectors@7.0.3: + resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.5.1: + resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + prettier@3.5.0: + resolution: {integrity: sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA==} + engines: {node: '>=14'} + hasBin: true + + prettier@3.5.3: + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + engines: {node: '>=14'} + hasBin: true + + pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} + engines: {node: ^14.13.1 || >=16.0.0} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + protobufjs@6.11.4: + resolution: {integrity: sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==} + hasBin: true + + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} + + protocols@2.0.1: + resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + radix-vue@1.9.13: + resolution: {integrity: sha512-wk0G69vRDU5TDmhYHZv5Y4j905CLfnvcsFB+CXAbXRuQIl5fUCmOWSOukKhj0MT9YRsW5ujZUjtDF0Ou/hg+8Q==} + peerDependencies: + vue: '>= 3.2.0' + + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + rc-cascader@3.33.0: + resolution: {integrity: sha512-JvZrMbKBXIbEDmpIORxqvedY/bck6hGbs3hxdWT8eS9wSQ1P7//lGxbyKjOSyQiVBbgzNWriSe6HoMcZO/+0rQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-checkbox@3.5.0: + resolution: {integrity: sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-collapse@3.9.0: + resolution: {integrity: sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-dialog@9.6.0: + resolution: {integrity: sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-drawer@7.2.0: + resolution: {integrity: sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-dropdown@4.2.1: + resolution: {integrity: sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==} + peerDependencies: + react: '>=16.11.0' + react-dom: '>=16.11.0' + + rc-field-form@2.7.0: + resolution: {integrity: sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-image@7.11.0: + resolution: {integrity: sha512-aZkTEZXqeqfPZtnSdNUnKQA0N/3MbgR7nUnZ+/4MfSFWPFHZau4p5r5ShaI0KPEMnNjv4kijSCFq/9wtJpwykw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-input-number@9.4.0: + resolution: {integrity: sha512-Tiy4DcXcFXAf9wDhN8aUAyMeCLHJUHA/VA/t7Hj8ZEx5ETvxG7MArDOSE6psbiSCo+vJPm4E3fGN710ITVn6GA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-input@1.7.2: + resolution: {integrity: sha512-g3nYONnl4edWj2FfVoxsU3Ec4XTE+Hb39Kfh2MFxMZjp/0gGyPUgy/v7ZhS27ZxUFNkuIDYXm9PJsLyJbtg86A==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + rc-mentions@2.19.1: + resolution: {integrity: sha512-KK3bAc/bPFI993J3necmaMXD2reZTzytZdlTvkeBbp50IGH1BDPDvxLdHDUrpQx2b2TGaVJsn+86BvYa03kGqA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-menu@9.16.0: + resolution: {integrity: sha512-vAL0yqPkmXWk3+YKRkmIR8TYj3RVdEt3ptG2jCJXWNAvQbT0VJJdRyHZ7kG/l1JsZlB+VJq/VcYOo69VR4oD+w==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-motion@2.9.5: + resolution: {integrity: sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-notification@5.6.3: + resolution: {integrity: sha512-42szwnn8VYQoT6GnjO00i1iwqV9D1TTMvxObWsuLwgl0TsOokzhkYiufdtQBsJMFjJravS1hfDKVMHLKLcPE4g==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-overflow@1.4.1: + resolution: {integrity: sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-pagination@5.1.0: + resolution: {integrity: sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-picker@4.9.2: + resolution: {integrity: sha512-SLW4PRudODOomipKI0dvykxW4P8LOqtMr17MOaLU6NQJhkh9SZeh44a/8BMxwv5T6e3kiIeYc9k5jFg2Mv35Pg==} + engines: {node: '>=8.x'} + peerDependencies: + date-fns: '>= 2.x' + dayjs: '>= 1.x' + luxon: '>= 3.x' + moment: '>= 2.x' + react: '>=16.9.0' + react-dom: '>=16.9.0' + peerDependenciesMeta: + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + + rc-progress@4.0.0: + resolution: {integrity: sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-rate@2.13.0: + resolution: {integrity: sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-resize-observer@1.4.3: + resolution: {integrity: sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-segmented@2.7.0: + resolution: {integrity: sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + rc-select@14.16.6: + resolution: {integrity: sha512-YPMtRPqfZWOm2XGTbx5/YVr1HT0vn//8QS77At0Gjb3Lv+Lbut0IORJPKLWu1hQ3u4GsA0SrDzs7nI8JG7Zmyg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + + rc-slider@11.1.8: + resolution: {integrity: sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-steps@6.0.1: + resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-switch@4.1.0: + resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-table@7.50.2: + resolution: {integrity: sha512-+nJbzxzstBriLb5sr9U7Vjs7+4dO8cWlouQbMwBVYghk2vr508bBdkHJeP/z9HVjAIKmAgMQKxmtbgDd3gc5wA==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-tabs@15.5.1: + resolution: {integrity: sha512-yiWivLAjEo5d1v2xlseB2dQocsOhkoVSfo1krS8v8r+02K+TBUjSjXIf7dgyVSxp6wRIPv5pMi5hanNUlQMgUA==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-textarea@1.9.0: + resolution: {integrity: sha512-dQW/Bc/MriPBTugj2Kx9PMS5eXCCGn2cxoIaichjbNvOiARlaHdI99j4DTxLl/V8+PIfW06uFy7kjfUIDDKyxQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-tooltip@6.3.2: + resolution: {integrity: sha512-oA4HZIiZJbUQ5ojigM0y4XtWxaH/aQlJSzknjICRWNpqyemy1sL3X3iEQV2eSPBWEq+bqU3+aSs81z+28j9luA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-tree-select@5.27.0: + resolution: {integrity: sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==} + peerDependencies: + react: '*' + react-dom: '*' + + rc-tree@5.13.0: + resolution: {integrity: sha512-2+lFvoVRnvHQ1trlpXMOWtF8BUgF+3TiipG72uOfhpL5CUdXCk931kvDdUkTL/IZVtNEDQKwEEmJbAYJSA5NnA==} + engines: {node: '>=10.x'} + peerDependencies: + react: '*' + react-dom: '*' + + rc-upload@4.8.1: + resolution: {integrity: sha512-toEAhwl4hjLAI1u8/CgKWt30BR06ulPa4iGQSMvSXoHzO88gPCslxqV/mnn4gJU7PDoltGIC9Eh+wkeudqgHyw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-util@5.44.4: + resolution: {integrity: sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-virtual-list@3.18.1: + resolution: {integrity: sha512-ARSsD/dey/I4yNQHFYYUaKLUkD1wnD4lRZIvb3rCLMbTMmoFQJRVrWuSfbNt5P5MzMNooEBDvqrUPM4QN7BMNA==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc9@2.1.2: + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-is@19.0.0: + resolution: {integrity: sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==} + + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.6.3: + resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-router-dom@6.29.0: + resolution: {integrity: sha512-pkEbJPATRJ2iotK+wUwHfy0xs2T59YPEN8BQxVCPeBZvK7kfPESRc/nyxzdcxR17hXgUPYx2whMwl+eo9cUdnQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + react-router@6.29.0: + resolution: {integrity: sha512-DXZJoE0q+KyeVw75Ck6GkPxFak63C4fGqZGNijnWgzB/HzSP1ZfTlBj5COaGWwhrMQ/R8bXiq5Ooy4KG+ReyjQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.1.1: + resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} + engines: {node: '>= 14.18.0'} + + readonly-date@1.0.0: + resolution: {integrity: sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==} + + rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + + redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + + redis-parser@3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + + rehackt@0.1.0: + resolution: {integrity: sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw==} + peerDependencies: + '@types/react': '*' + react: '*' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + + replace-in-file@6.3.5: + resolution: {integrity: sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg==} + engines: {node: '>=10'} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-path@1.4.0: + resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} + engines: {node: '>= 0.8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} + engines: {node: '>=10'} + + resolve@1.19.0: + resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true + + ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + + rlp@2.2.7: + resolution: {integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==} + hasBin: true + + rollup-plugin-typescript2@0.36.0: + resolution: {integrity: sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw==} + peerDependencies: + rollup: '>=1.26.3' + typescript: '>=2.4.0' + + rollup-plugin-visualizer@5.14.0: + resolution: {integrity: sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + rolldown: 1.x + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rolldown: + optional: true + rollup: + optional: true + + rollup@2.79.2: + resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} + engines: {node: '>=10.0.0'} + hasBin: true + + rollup@4.34.6: + resolution: {integrity: sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + rpc-websockets@7.11.2: + resolution: {integrity: sha512-pL9r5N6AVHlMN/vT98+fcO+5+/UcPLf/4tq+WUaid/PPUGS/ttJ3y8e9IqmaWKtShNAysMSjkczuEA49NuV7UQ==} + + rpc-websockets@9.0.4: + resolution: {integrity: sha512-yWZWN0M+bivtoNLnaDbtny4XchdAIF5Q4g/ZsC5UC61Ckbp0QczwO8fg44rV3uYmY4WHd+EZQbn90W1d8ojzqQ==} + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safe-regex@2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + schema-utils@4.3.0: + resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} + engines: {node: '>= 10.13.0'} + + scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} + + scrypt-js@3.0.1: + resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + + secp256k1@4.0.4: + resolution: {integrity: sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw==} + engines: {node: '>=18.0.0'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true + + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-placeholder@2.0.2: + resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} + + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + + shadcn-nuxt@0.10.4: + resolution: {integrity: sha512-WhSGzjaSMi1D2xb9Aflpwl8G8Qvlb0g4OuJLPO4YyRhduQDuscU6Pr1HdF7T4700foLLglgFnz7m8E2DDLLHJA==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} + + shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + + shx@0.3.4: + resolution: {integrity: sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==} + engines: {node: '>=6'} + hasBin: true + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-git@3.27.0: + resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} + + sirv@3.0.0: + resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} + engines: {node: '>=18'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + + smob@1.5.0: + resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + snakecase-keys@5.5.0: + resolution: {integrity: sha512-r3kRtnoPu3FxGJ3fny6PKNnU3pteb29o6qAa0ugzhSseKNWRkw1dw8nIjXMyyKaU9vQxxVIE62Mb3bKbdrgpiw==} + engines: {node: '>=12'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + + spawndamnit@3.0.1: + resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.21: + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} + + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} + + store2@2.14.4: + resolution: {integrity: sha512-srTItn1GOvyvOycgxjAnPA63FZNwy0PTyUBFMHRM+hVFltAeoh0LmNBz9SZqUS9mMqGk8rfyWyXn3GH5ReJ8Zw==} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + streamx@2.22.0: + resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-convert@0.2.1: + resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} + + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-hex-prefix@1.0.0: + resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} + engines: {node: '>=6.5.0', npm: '>=3'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-literal@2.1.1: + resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==} + + strip-literal@3.0.0: + resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} + + strip-outer@1.0.1: + resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} + engines: {node: '>=0.10.0'} + + styled-jsx@5.1.1: + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + stylehacks@7.0.4: + resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + + stylis@4.3.6: + resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + superjson@2.2.2: + resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} + engines: {node: '>=16'} + + superstruct@0.15.5: + resolution: {integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==} + + superstruct@1.0.4: + resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} + engines: {node: '>=14.0.0'} + + superstruct@2.0.2: + resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} + engines: {node: '>=14.0.0'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-color@9.4.0: + resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} + engines: {node: '>=12'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + + symbol-observable@2.0.3: + resolution: {integrity: sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==} + engines: {node: '>=0.10'} + + symbol-observable@4.0.0: + resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} + engines: {node: '>=0.10'} + + system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} + + table@6.9.0: + resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} + engines: {node: '>=10.0.0'} + + tailwind-config-viewer@2.0.4: + resolution: {integrity: sha512-icvcmdMmt9dphvas8wL40qttrHwAnW3QEN4ExJ2zICjwRsPj7gowd1cOceaWG3IfTuM/cTNGQcx+bsjMtmV+cw==} + engines: {node: '>=13'} + hasBin: true + peerDependencies: + tailwindcss: 1 || 2 || 2.0.1-compat || 3 + + tailwind-merge@2.6.0: + resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} + + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} + engines: {node: '>=14.0.0'} + hasBin: true + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + tar@7.4.3: + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + engines: {node: '>=18'} + + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + + terser-webpack-plugin@5.3.11: + resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.38.1: + resolution: {integrity: sha512-GWANVlPM/ZfYzuPHjq0nxT+EbOEDDN3Jwhwdg1D8TU8oSkktp8w64Uq4auuGLxFSoNTRDncTq2hQHX1Ld9KHkA==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + text-decoder@1.2.3: + resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + + text-encoding-utf-8@1.0.2: + resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + throttle-debounce@5.0.2: + resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} + engines: {node: '>=12.22'} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + toml@3.0.0: + resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + trim-repeated@1.0.0: + resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} + engines: {node: '>=0.10.0'} + + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + ts-invariant@0.10.3: + resolution: {integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==} + engines: {node: '>=8'} + + ts-jest@29.2.5: + resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==} + engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/transform': ^29.0.0 + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/transform': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsscmp@1.0.6: + resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + engines: {node: '>=0.6.x'} + + tsup@5.12.9: + resolution: {integrity: sha512-dUpuouWZYe40lLufo64qEhDpIDsWhRbr2expv5dHEMjwqeKJS2aXA/FPqs1dxO4T6mBojo7rvo3jP9NNzaKyDg==} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: ^4.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + + tsutils@3.21.0: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + + turbo-darwin-64@2.4.4: + resolution: {integrity: sha512-5kPvRkLAfmWI0MH96D+/THnDMGXlFNmjeqNRj5grLKiry+M9pKj3pRuScddAXPdlxjO5Ptz06UNaOQrrYGTx1g==} + cpu: [x64] + os: [darwin] + + turbo-darwin-arm64@2.4.4: + resolution: {integrity: sha512-/gtHPqbGQXDFhrmy+Q/MFW2HUTUlThJ97WLLSe4bxkDrKHecDYhAjbZ4rN3MM93RV9STQb3Tqy4pZBtsd4DfCw==} + cpu: [arm64] + os: [darwin] + + turbo-linux-64@2.4.4: + resolution: {integrity: sha512-SR0gri4k0bda56hw5u9VgDXLKb1Q+jrw4lM7WAhnNdXvVoep4d6LmnzgMHQQR12Wxl3KyWPbkz9d1whL6NTm2Q==} + cpu: [x64] + os: [linux] + + turbo-linux-arm64@2.4.4: + resolution: {integrity: sha512-COXXwzRd3vslQIfJhXUklgEqlwq35uFUZ7hnN+AUyXx7hUOLIiD5NblL+ETrHnhY4TzWszrbwUMfe2BYWtaPQg==} + cpu: [arm64] + os: [linux] + + turbo-windows-64@2.4.4: + resolution: {integrity: sha512-PV9rYNouGz4Ff3fd6sIfQy5L7HT9a4fcZoEv8PKRavU9O75G7PoDtm8scpHU10QnK0QQNLbE9qNxOAeRvF0fJg==} + cpu: [x64] + os: [win32] + + turbo-windows-arm64@2.4.4: + resolution: {integrity: sha512-403sqp9t5sx6YGEC32IfZTVWkRAixOQomGYB8kEc6ZD+//LirSxzeCHCnM8EmSXw7l57U1G+Fb0kxgTcKPU/Lg==} + cpu: [arm64] + os: [win32] + + turbo@2.4.4: + resolution: {integrity: sha512-N9FDOVaY3yz0YCOhYIgOGYad7+m2ptvinXygw27WPLQvcZDl3+0Sa77KGVlLSiuPDChOUEnTKE9VJwLSi9BPGQ==} + hasBin: true + + tweetnacl-util@0.15.1: + resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} + + tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + + type-fest@4.34.1: + resolution: {integrity: sha512-6kSc32kT0rbwxD6QL1CYe8IqdzN/J/ILMrNK+HMQCKH3insCDRY/3ITb0vcBss0a3t72fzh2YSzj8ko1HgwT3g==} + engines: {node: '>=16'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + typescript@5.4.2: + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} + engines: {node: '>=14.17'} + hasBin: true + + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + ultrahtml@1.5.3: + resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + unctx@2.4.1: + resolution: {integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unenv@1.10.0: + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + + unhead@1.11.18: + resolution: {integrity: sha512-TWgGUoZMpYe2yJwY6jZ0/9kpQT18ygr2h5lI6cUXdfD9UzDc0ytM9jGaleSYkj9guJWXkk7izYBnzJvxl8mRvQ==} + + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + + unimport@3.14.6: + resolution: {integrity: sha512-CYvbDaTT04Rh8bmD8jz3WPmHYZRG/NnvYVzwD6V1YAlvvKROlAeNDUBhkBGzNav2RKaeuXvlWYaa1V4Lfi/O0g==} + + unimport@4.1.0: + resolution: {integrity: sha512-y5ZYDG+j7IB45+Y6CIkWIKou4E1JFigCUw6vI+h15HdYAKmT0oQWcawnxXuwJG8srJyXhIZuWz5uXB1MQ/ARZw==} + engines: {node: '>=18.20.6'} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unplugin-utils@0.2.3: + resolution: {integrity: sha512-unB2e2ogZwEoMw/X0Gq1vj2jaRKLmTh9wcSEJggESPllcrZI68uO7B8ykixbXqsSwG8r9T7qaHZudXIC/3qvhw==} + engines: {node: '>=18.12.0'} + + unplugin-vue-router@0.11.2: + resolution: {integrity: sha512-X8BbQ3BNnMqaCYeMj80jtz5jC4AB0jcpdmECIYey9qKm6jy/upaPZ/WzfuT+iTGRiQAY4WemHueXxuzH127oOg==} + peerDependencies: + vue-router: ^4.4.0 + peerDependenciesMeta: + vue-router: + optional: true + + unplugin@1.16.1: + resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} + engines: {node: '>=14.0.0'} + + unplugin@2.1.2: + resolution: {integrity: sha512-Q3LU0e4zxKfRko1wMV2HmP8lB9KWislY7hxXpxd+lGx0PRInE4vhMBVEZwpdVYHvtqzhSrzuIfErsob6bQfCzw==} + engines: {node: '>=18.12.0'} + + unstorage@1.14.4: + resolution: {integrity: sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.5.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6.0.3 + '@deno/kv': '>=0.8.4' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.0' + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.1 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + + untun@0.1.3: + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + hasBin: true + + untyped@1.5.2: + resolution: {integrity: sha512-eL/8PlhLcMmlMDtNPKhyyz9kEBDS3Uk4yMu/ewlkT2WFbtzScjHWPJLdQLmaGPUKjXzwe9MumOtOgc4Fro96Kg==} + hasBin: true + + unwasm@0.3.9: + resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==} + + update-browserslist-db@1.1.2: + resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + + uri-js-replace@1.0.1: + resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + urlpattern-polyfill@8.0.2: + resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + + valibot@0.36.0: + resolution: {integrity: sha512-CjF1XN4sUce8sBK9TixrDqFM7RwNkuXdJu174/AwmQUB62QbCQADg5lLe8ldBalFgtj1uKj+pKwDJiNo4Mn+eQ==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validator@13.12.0: + resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} + engines: {node: '>= 0.10'} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vite-hot-client@0.2.4: + resolution: {integrity: sha512-a1nzURqO7DDmnXqabFOliz908FRmIppkBKsJthS8rbe8hBEXwEwe4C3Pp33Z1JoFCYfVL4kTOMLKk0ZZxREIeA==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 + + vite-node@3.0.5: + resolution: {integrity: sha512-02JEJl7SbtwSDJdYS537nU6l+ktdvcREfLksk/NDAqtdKWGqHl+joXzEubHROmS3E6pip+Xgu2tFezMu75jH7A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + + vite-plugin-checker@0.8.0: + resolution: {integrity: sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==} + engines: {node: '>=14.16'} + peerDependencies: + '@biomejs/biome': '>=1.7' + eslint: '>=7' + meow: ^9.0.0 + optionator: ^0.9.1 + stylelint: '>=13' + typescript: '*' + vite: '>=2.0.0' + vls: '*' + vti: '*' + vue-tsc: ~2.1.6 + peerDependenciesMeta: + '@biomejs/biome': + optional: true + eslint: + optional: true + meow: + optional: true + optionator: + optional: true + stylelint: + optional: true + typescript: + optional: true + vls: + optional: true + vti: + optional: true + vue-tsc: + optional: true + + vite-plugin-compression@0.5.1: + resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} + peerDependencies: + vite: '>=2.0.0' + + vite-plugin-css-injected-by-js@3.5.2: + resolution: {integrity: sha512-2MpU/Y+SCZyWUB6ua3HbJCrgnF0KACAsmzOQt1UvRVJCGF6S8xdA3ZUhWcWdM9ivG4I5az8PnQmwwrkC2CAQrQ==} + peerDependencies: + vite: '>2.0.0-0' + + vite-plugin-dts@3.9.1: + resolution: {integrity: sha512-rVp2KM9Ue22NGWB8dNtWEr+KekN3rIgz1tWD050QnRGlriUCmaDwa7qA5zDEjbXg5lAXhYMSBJtx3q3hQIJZSg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true + + vite-plugin-eslint@1.8.1: + resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} + peerDependencies: + eslint: '>=7' + vite: '>=2' + + vite-plugin-inspect@0.8.9: + resolution: {integrity: sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + + vite-plugin-vue-inspector@5.3.1: + resolution: {integrity: sha512-cBk172kZKTdvGpJuzCCLg8lJ909wopwsu3Ve9FsL1XsnLBiRT9U3MePcqrgGHgCX2ZgkqZmAGR8taxw+TV6s7A==} + peerDependencies: + vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 + + vite@5.3.6: + resolution: {integrity: sha512-es78AlrylO8mTVBygC0gTC0FENv0C6T496vvd33ydbjF/mIi9q3XQ9A3NWo5qLGFKywvz10J26813OkLvcQleA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vite@6.1.0: + resolution: {integrity: sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vlq@2.0.4: + resolution: {integrity: sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==} + + vscode-jsonrpc@6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + + vscode-languageclient@7.0.0: + resolution: {integrity: sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==} + engines: {vscode: ^1.52.0} + + vscode-languageserver-protocol@3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + + vscode-languageserver@7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + + vue-bundle-renderer@2.1.1: + resolution: {integrity: sha512-+qALLI5cQncuetYOXp4yScwYvqh8c6SMXee3B+M7oTZxOgtESP0l4j/fXdEJoZ+EdMxkGWIj+aSEyjXkOdmd7g==} + + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-devtools-stub@0.1.0: + resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} + + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + vue-router@4.5.0: + resolution: {integrity: sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==} + peerDependencies: + vue: ^3.2.0 + + vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + + vue-tsc@1.8.27: + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' + + vue-tsc@2.2.0: + resolution: {integrity: sha512-gtmM1sUuJ8aSb0KoAFmK9yMxb8TxjewmxqTJ1aKphD5Cbu0rULFY6+UQT51zW7SpUcenfPUuflKyVwyx9Qdnxg==} + hasBin: true + peerDependencies: + typescript: '>=5.0.0' + + vue@3.5.13: + resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + + webextension-polyfill-ts@0.25.0: + resolution: {integrity: sha512-ikQhwwHYkpBu00pFaUzIKY26I6L87DeRI+Q6jBT1daZUNuu8dSrg5U9l/ZbqdaQ1M/TTSPKeAa3kolP5liuedw==} + deprecated: This project has moved to @types/webextension-polyfill + + webextension-polyfill@0.12.0: + resolution: {integrity: sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q==} + + webextension-polyfill@0.7.0: + resolution: {integrity: sha512-su48BkMLxqzTTvPSE1eWxKToPS2Tv5DLGxKexLEVpwFd6Po6N8hhSLIvG6acPAg7qERoEaDL+Y5HQJeJeml5Aw==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + webpack@5.97.1: + resolution: {integrity: sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@3.0.1: + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xstream@11.14.0: + resolution: {integrity: sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + + yaml-ast-parser@0.0.43: + resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + ylru@1.4.0: + resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} + engines: {node: '>= 4.0.0'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + z-schema@5.0.5: + resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} + engines: {node: '>=8.0.0'} + hasBin: true + + zen-observable-ts@1.2.5: + resolution: {integrity: sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==} + + zen-observable@0.8.15: + resolution: {integrity: sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==} + + zhead@2.2.4: + resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} + + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} + +snapshots: + + '@0no-co/graphql.web@1.1.1(graphql@16.10.0)': + optionalDependencies: + graphql: 16.10.0 + + '@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.7.3)': + dependencies: + '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.7.3) + graphql: 16.10.0 + typescript: 5.7.3 + + '@adraffy/ens-normalize@1.10.1': {} + + '@alloc/quick-lru@5.2.0': {} + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@ant-design/colors@7.2.0': + dependencies: + '@ant-design/fast-color': 2.0.6 + + '@ant-design/cssinjs-utils@1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@ant-design/cssinjs': 1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.7 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@ant-design/cssinjs@1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@emotion/hash': 0.8.0 + '@emotion/unitless': 0.7.5 + classnames: 2.5.1 + csstype: 3.1.3 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + stylis: 4.3.6 + + '@ant-design/fast-color@2.0.6': + dependencies: + '@babel/runtime': 7.26.7 + + '@ant-design/icons-svg@4.4.2': {} + + '@ant-design/icons@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@ant-design/colors': 7.2.0 + '@ant-design/icons-svg': 4.4.2 + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@ant-design/react-slick@1.1.2(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + json2mq: 0.2.0 + react: 18.3.1 + resize-observer-polyfill: 1.5.1 + throttle-debounce: 5.0.2 + + '@antfu/utils@0.7.10': {} + + '@apollo/client@3.13.1(@types/react@18.3.18)(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) + '@wry/caches': 1.0.1 + '@wry/equality': 0.5.7 + '@wry/trie': 0.5.0 + graphql: 16.10.0 + graphql-tag: 2.12.6(graphql@16.10.0) + hoist-non-react-statics: 3.3.2 + optimism: 0.18.1 + prop-types: 15.8.1 + rehackt: 0.1.0(@types/react@18.3.18)(react@18.3.1) + symbol-observable: 4.0.0 + ts-invariant: 0.10.3 + tslib: 2.8.1 + zen-observable-ts: 1.2.5 + optionalDependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + + '@aptos-connect/wallet-adapter-plugin@2.3.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)': + dependencies: + '@aptos-connect/wallet-api': 0.1.6(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(aptos@1.21.0) + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@identity-connect/crypto': 0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@identity-connect/dapp-sdk': 0.10.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0) + transitivePeerDependencies: + - '@telegram-apps/bridge' + - '@wallet-standard/core' + - aptos + - debug + + '@aptos-connect/wallet-adapter-plugin@2.4.1(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@wallet-standard/core@1.1.0)(aptos@1.21.0)': + dependencies: + '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@identity-connect/crypto': 0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@identity-connect/dapp-sdk': 0.10.4(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + transitivePeerDependencies: + - '@telegram-apps/bridge' + - '@wallet-standard/core' + - aptos + - debug + + '@aptos-connect/wallet-adapter-plugin@2.4.1(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)': + dependencies: + '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@identity-connect/crypto': 0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@identity-connect/dapp-sdk': 0.10.4(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0) + transitivePeerDependencies: + - '@telegram-apps/bridge' + - '@wallet-standard/core' + - aptos + - debug + + '@aptos-connect/wallet-api@0.1.6(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(aptos@1.21.0)': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@identity-connect/api': 0.7.0 + aptos: 1.21.0 + + '@aptos-connect/wallet-api@0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0)': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@identity-connect/api': 0.7.0 + aptos: 1.21.0 + transitivePeerDependencies: + - '@wallet-standard/core' + + '@aptos-connect/web-transport@0.1.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(aptos@1.21.0)': + dependencies: + '@aptos-connect/wallet-api': 0.1.6(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(aptos@1.21.0) + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@telegram-apps/bridge': 1.9.2 + aptos: 1.21.0 + uuid: 9.0.1 + + '@aptos-connect/web-transport@0.1.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@wallet-standard/core@1.1.0)(aptos@1.21.0)': + dependencies: + '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + aptos: 1.21.0 + uuid: 9.0.1 + transitivePeerDependencies: + - '@wallet-standard/core' + + '@aptos-connect/web-transport@0.1.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)': + dependencies: + '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@telegram-apps/bridge': 1.9.2 + aptos: 1.21.0 + uuid: 9.0.1 + transitivePeerDependencies: + - '@wallet-standard/core' + + '@aptos-labs/aptos-cli@1.0.2': + dependencies: + commander: 12.1.0 + + '@aptos-labs/aptos-client@0.1.1': + dependencies: + axios: 1.7.4 + got: 11.8.6 + transitivePeerDependencies: + - debug + + '@aptos-labs/aptos-client@1.0.0(axios@1.7.9)(got@11.8.6)': + dependencies: + axios: 1.7.9 + got: 11.8.6 + + '@aptos-labs/aptos-dynamic-transaction-composer@0.1.3': {} + + '@aptos-labs/script-composer-pack@0.0.9': + dependencies: + '@aptos-labs/aptos-dynamic-transaction-composer': 0.1.3 + + '@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6)': + dependencies: + '@aptos-labs/aptos-cli': 1.0.2 + '@aptos-labs/aptos-client': 1.0.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/script-composer-pack': 0.0.9 + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + eventemitter3: 5.0.1 + form-data: 4.0.1 + js-base64: 3.7.7 + jwt-decode: 4.0.0 + poseidon-lite: 0.2.1 + transitivePeerDependencies: + - axios + - got + + '@aptos-labs/wallet-adapter-core@0.1.7': + dependencies: + aptos: 1.21.0 + eventemitter3: 4.0.7 + transitivePeerDependencies: + - debug + + '@aptos-labs/wallet-adapter-core@2.1.0': + dependencies: + aptos: 1.21.0 + buffer: 6.0.3 + eventemitter3: 4.0.7 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - debug + + '@aptos-labs/wallet-adapter-core@2.2.0': + dependencies: + aptos: 1.21.0 + buffer: 6.0.3 + eventemitter3: 4.0.7 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - debug + + '@aptos-labs/wallet-adapter-core@4.25.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(aptos@1.21.0)(axios@1.7.9)(got@11.8.6)': + dependencies: + '@aptos-connect/wallet-adapter-plugin': 2.4.1(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@atomrigslab/aptos-wallet-adapter': 0.1.21(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(axios@1.7.9)(got@11.8.6) + '@mizuwallet-sdk/aptos-wallet-adapter': 0.3.2(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(axios@1.7.9)(got@11.8.6) + aptos: 1.21.0 + buffer: 6.0.3 + eventemitter3: 4.0.7 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - '@mizuwallet-sdk/core' + - '@mizuwallet-sdk/protocol' + - '@telegram-apps/bridge' + - '@wallet-standard/core' + - axios + - debug + - got + + '@aptos-labs/wallet-adapter-core@5.0.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)(axios@1.7.9)(got@11.8.6)': + dependencies: + '@aptos-connect/wallet-adapter-plugin': 2.3.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@atomrigslab/aptos-wallet-adapter': 0.1.21(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(axios@1.7.9)(got@11.8.6) + '@mizuwallet-sdk/aptos-wallet-adapter': 0.3.2(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(axios@1.7.9)(got@11.8.6) + buffer: 6.0.3 + eventemitter3: 4.0.7 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - '@mizuwallet-sdk/core' + - '@mizuwallet-sdk/protocol' + - '@telegram-apps/bridge' + - '@wallet-standard/core' + - aptos + - axios + - debug + - got + + '@aptos-labs/wallet-standard@0.0.11(axios@1.7.9)(got@11.8.6)': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@wallet-standard/core': 1.0.3 + transitivePeerDependencies: + - axios + - got + + '@aptos-labs/wallet-standard@0.1.0-ms.1(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@wallet-standard/core': 1.1.0 + + '@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@wallet-standard/core': 1.1.0 + + '@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@wallet-standard/core': 1.1.0 + + '@atomrigslab/aptos-wallet-adapter@0.1.21(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(axios@1.7.9)(got@11.8.6)': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.0.11(axios@1.7.9)(got@11.8.6) + '@atomrigslab/dekey-web-wallet-provider': 1.2.1 + transitivePeerDependencies: + - axios + - got + + '@atomrigslab/dekey-web-wallet-provider@1.2.1': + dependencies: + '@atomrigslab/providers': 1.1.0 + + '@atomrigslab/providers@1.1.0': + dependencies: + '@metamask/object-multiplex': 1.3.0 + '@metamask/safe-event-emitter': 2.0.0 + '@types/chrome': 0.0.136 + detect-browser: 5.3.0 + eth-rpc-errors: 4.0.3 + extension-port-stream: 2.1.1 + fast-deep-equal: 2.0.1 + is-stream: 2.0.1 + json-rpc-engine: 6.1.0 + json-rpc-middleware-stream: 3.0.0 + pump: 3.0.2 + webextension-polyfill-ts: 0.25.0 + + '@babel/code-frame@7.12.11': + dependencies: + '@babel/highlight': 7.25.9 + + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.26.8': {} + + '@babel/core@7.26.8': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.8 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.8) + '@babel/helpers': 7.26.7 + '@babel/parser': 7.26.8 + '@babel/template': 7.26.8 + '@babel/traverse': 7.26.8 + '@babel/types': 7.26.8 + '@types/gensync': 1.0.4 + convert-source-map: 2.0.0 + debug: 4.4.0(supports-color@9.4.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.26.8': + dependencies: + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.25.9': + dependencies: + '@babel/types': 7.26.8 + + '@babel/helper-compilation-targets@7.26.5': + dependencies: + '@babel/compat-data': 7.26.8 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.8) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.26.8 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-member-expression-to-functions@7.25.9': + dependencies: + '@babel/traverse': 7.26.8 + '@babel/types': 7.26.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.26.8 + '@babel/types': 7.26.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.25.9': + dependencies: + '@babel/types': 7.26.8 + + '@babel/helper-plugin-utils@7.26.5': {} + + '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.26.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + dependencies: + '@babel/traverse': 7.26.8 + '@babel/types': 7.26.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helpers@7.26.7': + dependencies: + '@babel/template': 7.26.8 + '@babel/types': 7.26.8 + + '@babel/highlight@7.25.9': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/parser@7.26.8': + dependencies: + '@babel/types': 7.26.8 + + '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.8) + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.8) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-typescript@7.26.8(@babel/core@7.26.8)': + dependencies: + '@babel/core': 7.26.8 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.8) + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.8) + transitivePeerDependencies: + - supports-color + + '@babel/runtime@7.26.7': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/standalone@7.26.8': {} + + '@babel/template@7.26.8': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 + + '@babel/traverse@7.26.8': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.8 + '@babel/parser': 7.26.8 + '@babel/template': 7.26.8 + '@babel/types': 7.26.8 + debug: 4.4.0(supports-color@9.4.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.26.8': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@bcoe/v8-coverage@0.2.3': {} + + '@bitget-wallet/aptos-wallet-adapter@0.1.2(@aptos-labs/wallet-adapter-core@packages+wallet-adapter-core)(aptos@1.21.0)': + dependencies: + '@aptos-labs/wallet-adapter-core': link:packages/wallet-adapter-core + aptos: 1.21.0 + + '@changesets/apply-release-plan@7.0.8': + dependencies: + '@changesets/config': 3.0.5 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.2 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.7.1 + + '@changesets/assemble-release-plan@6.0.5': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.7.1 + + '@changesets/changelog-git@0.2.0': + dependencies: + '@changesets/types': 6.0.0 + + '@changesets/cli@2.27.12': + dependencies: + '@changesets/apply-release-plan': 7.0.8 + '@changesets/assemble-release-plan': 6.0.5 + '@changesets/changelog-git': 0.2.0 + '@changesets/config': 3.0.5 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/get-release-plan': 4.0.6 + '@changesets/git': 3.0.2 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.2 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 + '@changesets/write': 0.3.2 + '@manypkg/get-packages': 1.1.3 + ansi-colors: 4.1.3 + ci-info: 3.9.0 + enquirer: 2.4.1 + external-editor: 3.1.0 + fs-extra: 7.0.1 + mri: 1.2.0 + p-limit: 2.3.0 + package-manager-detector: 0.2.9 + picocolors: 1.1.1 + resolve-from: 5.0.0 + semver: 7.7.1 + spawndamnit: 3.0.1 + term-size: 2.2.1 + + '@changesets/config@3.0.5': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/logger': 0.1.1 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.8 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.1.2': + dependencies: + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + picocolors: 1.1.1 + semver: 7.7.1 + + '@changesets/get-release-plan@4.0.6': + dependencies: + '@changesets/assemble-release-plan': 6.0.5 + '@changesets/config': 3.0.5 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.2 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.2': + dependencies: + '@changesets/errors': 0.2.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.8 + spawndamnit: 3.0.1 + + '@changesets/logger@0.1.1': + dependencies: + picocolors: 1.1.1 + + '@changesets/parse@0.4.0': + dependencies: + '@changesets/types': 6.0.0 + js-yaml: 3.14.1 + + '@changesets/pre@2.0.1': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.2': + dependencies: + '@changesets/git': 3.0.2 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.0 + '@changesets/types': 6.0.0 + fs-extra: 7.0.1 + p-filter: 2.1.0 + picocolors: 1.1.1 + + '@changesets/should-skip-package@0.1.1': + dependencies: + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.0.0': {} + + '@changesets/write@0.3.2': + dependencies: + '@changesets/types': 6.0.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + prettier: 2.8.8 + + '@cloudflare/kv-asset-handler@0.3.4': + dependencies: + mime: 3.0.0 + + '@confio/ics23@0.6.8': + dependencies: + '@noble/hashes': 1.7.1 + protobufjs: 6.11.4 + + '@coral-xyz/anchor@0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@noble/hashes': 1.7.1 + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + bs58: 4.0.1 + buffer-layout: 1.2.2 + camelcase: 6.3.0 + cross-fetch: 3.2.0 + crypto-hash: 1.3.0 + eventemitter3: 4.0.7 + pako: 2.1.0 + snake-case: 3.0.4 + superstruct: 0.15.5 + toml: 3.0.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@coral-xyz/borsh@0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + buffer-layout: 1.2.2 + + '@cosmjs/amino@0.32.4': + dependencies: + '@cosmjs/crypto': 0.32.4 + '@cosmjs/encoding': 0.32.4 + '@cosmjs/math': 0.32.4 + '@cosmjs/utils': 0.32.4 + + '@cosmjs/cosmwasm-stargate@0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@cosmjs/amino': 0.32.4 + '@cosmjs/crypto': 0.32.4 + '@cosmjs/encoding': 0.32.4 + '@cosmjs/math': 0.32.4 + '@cosmjs/proto-signing': 0.32.4 + '@cosmjs/stargate': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@cosmjs/tendermint-rpc': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@cosmjs/utils': 0.32.4 + cosmjs-types: 0.9.0 + pako: 2.1.0 + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + '@cosmjs/crypto@0.32.4': + dependencies: + '@cosmjs/encoding': 0.32.4 + '@cosmjs/math': 0.32.4 + '@cosmjs/utils': 0.32.4 + '@noble/hashes': 1.7.1 + bn.js: 5.2.1 + elliptic: 6.6.1 + libsodium-wrappers-sumo: 0.7.15 + + '@cosmjs/encoding@0.32.4': + dependencies: + base64-js: 1.5.1 + bech32: 1.1.4 + readonly-date: 1.0.0 + + '@cosmjs/json-rpc@0.32.4': + dependencies: + '@cosmjs/stream': 0.32.4 + xstream: 11.14.0 + + '@cosmjs/math@0.32.4': + dependencies: + bn.js: 5.2.1 + + '@cosmjs/proto-signing@0.32.4': + dependencies: + '@cosmjs/amino': 0.32.4 + '@cosmjs/crypto': 0.32.4 + '@cosmjs/encoding': 0.32.4 + '@cosmjs/math': 0.32.4 + '@cosmjs/utils': 0.32.4 + cosmjs-types: 0.9.0 + + '@cosmjs/socket@0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@cosmjs/stream': 0.32.4 + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + xstream: 11.14.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@cosmjs/stargate@0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@confio/ics23': 0.6.8 + '@cosmjs/amino': 0.32.4 + '@cosmjs/encoding': 0.32.4 + '@cosmjs/math': 0.32.4 + '@cosmjs/proto-signing': 0.32.4 + '@cosmjs/stream': 0.32.4 + '@cosmjs/tendermint-rpc': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@cosmjs/utils': 0.32.4 + cosmjs-types: 0.9.0 + xstream: 11.14.0 + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + '@cosmjs/stream@0.32.4': + dependencies: + xstream: 11.14.0 + + '@cosmjs/tendermint-rpc@0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@cosmjs/crypto': 0.32.4 + '@cosmjs/encoding': 0.32.4 + '@cosmjs/json-rpc': 0.32.4 + '@cosmjs/math': 0.32.4 + '@cosmjs/socket': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@cosmjs/stream': 0.32.4 + '@cosmjs/utils': 0.32.4 + axios: 1.7.9 + readonly-date: 1.0.0 + xstream: 11.14.0 + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + '@cosmjs/utils@0.32.4': {} + + '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.1.0)': + dependencies: + postcss-selector-parser: 7.1.0 + + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': + dependencies: + postcss-selector-parser: 7.1.0 + + '@emotion/babel-plugin@11.13.5': + dependencies: + '@babel/helper-module-imports': 7.25.9 + '@babel/runtime': 7.26.7 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/serialize': 1.3.3 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + transitivePeerDependencies: + - supports-color + + '@emotion/cache@11.14.0': + dependencies: + '@emotion/memoize': 0.9.0 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.4.0 + stylis: 4.2.0 + + '@emotion/hash@0.8.0': {} + + '@emotion/hash@0.9.2': {} + + '@emotion/is-prop-valid@1.3.1': + dependencies: + '@emotion/memoize': 0.9.0 + + '@emotion/memoize@0.9.0': {} + + '@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@emotion/babel-plugin': 11.13.5 + '@emotion/cache': 11.14.0 + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.4.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + transitivePeerDependencies: + - supports-color + + '@emotion/serialize@1.3.3': + dependencies: + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.10.0 + '@emotion/utils': 1.4.2 + csstype: 3.1.3 + + '@emotion/sheet@1.4.0': {} + + '@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@emotion/babel-plugin': 11.13.5 + '@emotion/is-prop-valid': 1.3.1 + '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/utils': 1.4.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + transitivePeerDependencies: + - supports-color + + '@emotion/unitless@0.10.0': {} + + '@emotion/unitless@0.7.5': {} + + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@emotion/utils@1.4.2': {} + + '@emotion/weak-memoize@0.4.0': {} + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.24.2': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.24.2': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-arm@0.24.2': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/android-x64@0.24.2': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.24.2': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.24.2': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.24.2': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.24.2': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.24.2': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-arm@0.24.2': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.24.2': + optional: true + + '@esbuild/linux-loong64@0.14.54': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.24.2': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.24.2': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.24.2': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.24.2': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.24.2': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.24.2': + optional: true + + '@esbuild/openbsd-arm64@0.24.2': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.24.2': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.24.2': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.24.2': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.24.2': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@esbuild/win32-x64@0.24.2': + optional: true + + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/eslintrc@0.4.3': + dependencies: + ajv: 6.12.6 + debug: 4.4.0(supports-color@9.4.0) + espree: 7.3.1 + globals: 13.24.0 + ignore: 4.0.6 + import-fresh: 3.3.1 + js-yaml: 3.14.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.4.0(supports-color@9.4.0) + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@ethersproject/bytes@5.7.0': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/logger@5.7.0': {} + + '@fewcha/web3@0.1.38(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@mysten/sui.js': 0.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + aptos: 1.21.0 + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - utf-8-validate + + '@floating-ui/core@1.6.9': + dependencies: + '@floating-ui/utils': 0.2.9 + + '@floating-ui/dom@1.6.13': + dependencies: + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 + + '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/dom': 1.6.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@floating-ui/utils@0.2.9': {} + + '@floating-ui/vue@1.1.6(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@floating-ui/dom': 1.6.13 + '@floating-ui/utils': 0.2.9 + vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@gql.tada/cli-utils@1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.7.3))(graphql@16.10.0)(typescript@5.7.3)': + dependencies: + '@0no-co/graphqlsp': 1.12.16(graphql@16.10.0)(typescript@5.7.3) + '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.7.3) + graphql: 16.10.0 + typescript: 5.7.3 + + '@gql.tada/internal@1.0.8(graphql@16.10.0)(typescript@5.7.3)': + dependencies: + '@0no-co/graphql.web': 1.1.1(graphql@16.10.0) + graphql: 16.10.0 + typescript: 5.7.3 + + '@graphql-typed-document-node/core@3.2.0(graphql@16.10.0)': + dependencies: + graphql: 16.10.0 + + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.0(supports-color@9.4.0) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/config-array@0.5.0': + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.4.0(supports-color@9.4.0) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@1.2.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@identity-connect/api@0.7.0': {} + + '@identity-connect/crypto@0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0)': + dependencies: + '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@noble/hashes': 1.7.1 + ed2curve: 0.3.0 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - '@wallet-standard/core' + - aptos + + '@identity-connect/dapp-sdk@0.10.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)': + dependencies: + '@aptos-connect/wallet-api': 0.1.6(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(aptos@1.21.0) + '@aptos-connect/web-transport': 0.1.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(aptos@1.21.0) + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@identity-connect/api': 0.7.0 + '@identity-connect/crypto': 0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@identity-connect/wallet-api': 0.1.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(aptos@1.21.0) + axios: 1.7.9 + uuid: 9.0.1 + transitivePeerDependencies: + - '@telegram-apps/bridge' + - '@wallet-standard/core' + - aptos + - debug + + '@identity-connect/dapp-sdk@0.10.4(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@wallet-standard/core@1.1.0)(aptos@1.21.0)': + dependencies: + '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@aptos-connect/web-transport': 0.1.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.2.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@identity-connect/api': 0.7.0 + '@identity-connect/crypto': 0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@identity-connect/wallet-api': 0.1.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(aptos@1.21.0) + axios: 1.7.9 + uuid: 9.0.1 + transitivePeerDependencies: + - '@telegram-apps/bridge' + - '@wallet-standard/core' + - aptos + - debug + + '@identity-connect/dapp-sdk@0.10.4(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0)': + dependencies: + '@aptos-connect/wallet-api': 0.1.9(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@aptos-connect/web-transport': 0.1.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@aptos-labs/wallet-standard@0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.3.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@identity-connect/api': 0.7.0 + '@identity-connect/crypto': 0.2.5(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0)(aptos@1.21.0) + '@identity-connect/wallet-api': 0.1.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(aptos@1.21.0) + axios: 1.7.9 + uuid: 9.0.1 + transitivePeerDependencies: + - '@telegram-apps/bridge' + - '@wallet-standard/core' + - aptos + - debug + + '@identity-connect/wallet-api@0.1.2(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(aptos@1.21.0)': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + aptos: 1.21.0 + + '@injectivelabs/abacus-proto-ts@1.13.3': + dependencies: + '@injectivelabs/grpc-web': 0.0.1(google-protobuf@3.21.4) + google-protobuf: 3.21.4 + protobufjs: 7.4.0 + rxjs: 7.8.1 + + '@injectivelabs/core-proto-ts@1.13.6': + dependencies: + '@injectivelabs/grpc-web': 0.0.1(google-protobuf@3.21.4) + google-protobuf: 3.21.4 + protobufjs: 7.4.0 + rxjs: 7.8.1 + + '@injectivelabs/exceptions@1.14.41(google-protobuf@3.21.4)': + dependencies: + '@injectivelabs/grpc-web': 0.0.1(google-protobuf@3.21.4) + '@injectivelabs/ts-types': 1.14.41 + http-status-codes: 2.3.0 + shx: 0.3.4 + transitivePeerDependencies: + - google-protobuf + + '@injectivelabs/grpc-web-node-http-transport@0.0.2(@injectivelabs/grpc-web@0.0.1(google-protobuf@3.21.4))': + dependencies: + '@injectivelabs/grpc-web': 0.0.1(google-protobuf@3.21.4) + + '@injectivelabs/grpc-web-react-native-transport@0.0.2(@injectivelabs/grpc-web@0.0.1(google-protobuf@3.21.4))': + dependencies: + '@injectivelabs/grpc-web': 0.0.1(google-protobuf@3.21.4) + + '@injectivelabs/grpc-web@0.0.1(google-protobuf@3.21.4)': + dependencies: + browser-headers: 0.4.1 + google-protobuf: 3.21.4 + + '@injectivelabs/indexer-proto-ts@1.13.6': + dependencies: + '@injectivelabs/grpc-web': 0.0.1(google-protobuf@3.21.4) + google-protobuf: 3.21.4 + protobufjs: 7.4.0 + rxjs: 7.8.1 + + '@injectivelabs/mito-proto-ts@1.13.2': + dependencies: + '@injectivelabs/grpc-web': 0.0.1(google-protobuf@3.21.4) + google-protobuf: 3.21.4 + protobufjs: 7.4.0 + rxjs: 7.8.1 + + '@injectivelabs/networks@1.14.41(google-protobuf@3.21.4)': + dependencies: + '@injectivelabs/exceptions': 1.14.41(google-protobuf@3.21.4) + '@injectivelabs/ts-types': 1.14.41 + '@injectivelabs/utils': 1.14.41(google-protobuf@3.21.4) + shx: 0.3.4 + transitivePeerDependencies: + - debug + - google-protobuf + + '@injectivelabs/olp-proto-ts@1.13.3': + dependencies: + '@injectivelabs/grpc-web': 0.0.1(google-protobuf@3.21.4) + google-protobuf: 3.21.4 + protobufjs: 7.4.0 + rxjs: 7.8.1 + + '@injectivelabs/sdk-ts@1.14.41(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)': + dependencies: + '@apollo/client': 3.13.1(@types/react@18.3.18)(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@cosmjs/amino': 0.32.4 + '@cosmjs/proto-signing': 0.32.4 + '@cosmjs/stargate': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@ethersproject/bytes': 5.7.0 + '@injectivelabs/abacus-proto-ts': 1.13.3 + '@injectivelabs/core-proto-ts': 1.13.6 + '@injectivelabs/exceptions': 1.14.41(google-protobuf@3.21.4) + '@injectivelabs/grpc-web': 0.0.1(google-protobuf@3.21.4) + '@injectivelabs/grpc-web-node-http-transport': 0.0.2(@injectivelabs/grpc-web@0.0.1(google-protobuf@3.21.4)) + '@injectivelabs/grpc-web-react-native-transport': 0.0.2(@injectivelabs/grpc-web@0.0.1(google-protobuf@3.21.4)) + '@injectivelabs/indexer-proto-ts': 1.13.6 + '@injectivelabs/mito-proto-ts': 1.13.2 + '@injectivelabs/networks': 1.14.41(google-protobuf@3.21.4) + '@injectivelabs/olp-proto-ts': 1.13.3 + '@injectivelabs/test-utils': 1.14.41(google-protobuf@3.21.4) + '@injectivelabs/ts-types': 1.14.41 + '@injectivelabs/utils': 1.14.41(google-protobuf@3.21.4) + '@metamask/eth-sig-util': 4.0.1 + '@noble/curves': 1.8.1 + axios: 1.7.9 + bech32: 2.0.0 + bip39: 3.1.0 + cosmjs-types: 0.9.0 + crypto-js: 4.2.0 + ethereumjs-util: 7.1.5 + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + google-protobuf: 3.21.4 + graphql: 16.10.0 + http-status-codes: 2.3.0 + keccak256: 1.0.6 + secp256k1: 4.0.4 + shx: 0.3.4 + snakecase-keys: 5.5.0 + transitivePeerDependencies: + - '@types/react' + - bufferutil + - debug + - graphql-ws + - react + - react-dom + - subscriptions-transport-ws + - utf-8-validate + + '@injectivelabs/test-utils@1.14.41(google-protobuf@3.21.4)': + dependencies: + '@injectivelabs/exceptions': 1.14.41(google-protobuf@3.21.4) + '@injectivelabs/networks': 1.14.41(google-protobuf@3.21.4) + '@injectivelabs/ts-types': 1.14.41 + '@injectivelabs/utils': 1.14.41(google-protobuf@3.21.4) + axios: 1.7.9 + bignumber.js: 9.1.2 + shx: 0.3.4 + snakecase-keys: 5.5.0 + store2: 2.14.4 + transitivePeerDependencies: + - debug + - google-protobuf + + '@injectivelabs/ts-types@1.14.41': + dependencies: + shx: 0.3.4 + + '@injectivelabs/utils@1.14.41(google-protobuf@3.21.4)': + dependencies: + '@injectivelabs/exceptions': 1.14.41(google-protobuf@3.21.4) + '@injectivelabs/ts-types': 1.14.41 + axios: 1.7.9 + bignumber.js: 9.1.2 + http-status-codes: 2.3.0 + shx: 0.3.4 + snakecase-keys: 5.5.0 + store2: 2.14.4 + transitivePeerDependencies: + - debug + - google-protobuf + + '@internationalized/date@3.7.0': + dependencies: + '@swc/helpers': 0.5.15 + + '@internationalized/number@3.6.0': + dependencies: + '@swc/helpers': 0.5.15 + + '@ioredis/commands@1.2.0': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/console@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.17.17 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)': + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.17 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.17 + jest-mock: 29.7.0 + + '@jest/expect-utils@29.7.0': + dependencies: + jest-get-type: 29.6.3 + + '@jest/expect@29.7.0': + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 20.17.17 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + '@jest/globals@29.7.0': + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/reporters@29.7.0': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + '@types/node': 20.17.17 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.7 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/source-map@29.6.3': + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + callsites: 3.1.0 + graceful-fs: 4.2.11 + + '@jest/test-result@29.7.0': + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.2 + + '@jest/test-sequencer@29.7.0': + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + + '@jest/transform@29.7.0': + dependencies: + '@babel/core': 7.26.8 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.8 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.17.17 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@koa/router@12.0.2': + dependencies: + debug: 4.4.0(supports-color@9.4.0) + http-errors: 2.0.0 + koa-compose: 4.1.0 + methods: 1.1.2 + path-to-regexp: 6.3.0 + transitivePeerDependencies: + - supports-color + + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.4.0(supports-color@9.4.0) + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} + + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.26.7 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.26.7 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + + '@mapbox/node-pre-gyp@2.0.0': + dependencies: + consola: 3.4.0 + detect-libc: 2.0.3 + https-proxy-agent: 7.0.6(supports-color@9.4.0) + node-fetch: 2.7.0 + nopt: 8.1.0 + semver: 7.7.1 + tar: 7.4.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@martianwallet/aptos-wallet-adapter@0.0.5': + dependencies: + '@aptos-labs/wallet-adapter-core': 2.1.0 + aptos: 1.21.0 + transitivePeerDependencies: + - debug + + '@metamask/eth-sig-util@4.0.1': + dependencies: + ethereumjs-abi: 0.6.8 + ethereumjs-util: 6.2.1 + ethjs-util: 0.1.6 + tweetnacl: 1.0.3 + tweetnacl-util: 0.15.1 + + '@metamask/object-multiplex@1.3.0': + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + readable-stream: 2.3.8 + + '@metamask/safe-event-emitter@2.0.0': {} + + '@microsoft/api-extractor-model@7.28.13(@types/node@22.7.5)': + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 4.0.2(@types/node@22.7.5) + transitivePeerDependencies: + - '@types/node' + + '@microsoft/api-extractor@7.43.0(@types/node@22.7.5)': + dependencies: + '@microsoft/api-extractor-model': 7.28.13(@types/node@22.7.5) + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 4.0.2(@types/node@22.7.5) + '@rushstack/rig-package': 0.5.2 + '@rushstack/terminal': 0.10.0(@types/node@22.7.5) + '@rushstack/ts-command-line': 4.19.1(@types/node@22.7.5) + lodash: 4.17.21 + minimatch: 3.0.8 + resolve: 1.22.10 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.4.2 + transitivePeerDependencies: + - '@types/node' + + '@microsoft/fetch-event-source@2.0.1': {} + + '@microsoft/tsdoc-config@0.16.2': + dependencies: + '@microsoft/tsdoc': 0.14.2 + ajv: 6.12.6 + jju: 1.4.0 + resolve: 1.19.0 + + '@microsoft/tsdoc@0.14.2': {} + + '@mizuwallet-sdk/aptos-wallet-adapter@0.3.2(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(axios@1.7.9)(got@11.8.6)': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@aptos-labs/wallet-standard': 0.1.0-ms.1(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@wallet-standard/core@1.1.0) + '@mizuwallet-sdk/core': 1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)) + '@mizuwallet-sdk/protocol': 0.0.6 + buffer: 6.0.3 + transitivePeerDependencies: + - '@wallet-standard/core' + - axios + - got + + '@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0))': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@mizuwallet-sdk/protocol': 0.0.6 + buffer: 6.0.3 + graphql-request: 7.1.2(graphql@16.10.0) + jwt-decode: 4.0.0 + + '@mizuwallet-sdk/protocol@0.0.6': + dependencies: + '@microsoft/fetch-event-source': 2.0.1 + tweetnacl: 1.0.3 + tweetnacl-util: 0.15.1 + + '@msafe/aptos-wallet-adapter@1.1.3(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(axios@1.7.9)(got@11.8.6)': + dependencies: + '@aptos-labs/wallet-adapter-core': 4.25.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/core@1.4.0(@aptos-labs/ts-sdk@1.35.0(axios@1.7.9)(got@11.8.6))(@mizuwallet-sdk/protocol@0.0.6)(graphql-request@7.1.2(graphql@16.10.0)))(@mizuwallet-sdk/protocol@0.0.6)(@wallet-standard/core@1.1.0)(aptos@1.21.0)(axios@1.7.9)(got@11.8.6) + '@msafe/aptos-wallet': 6.1.1 + aptos: 1.21.0 + transitivePeerDependencies: + - '@aptos-labs/ts-sdk' + - '@mizuwallet-sdk/core' + - '@mizuwallet-sdk/protocol' + - '@telegram-apps/bridge' + - '@wallet-standard/core' + - axios + - debug + - got + + '@msafe/aptos-wallet@6.1.1': + dependencies: + buffer: 6.0.3 + json-rpc-protocol: 0.13.2 + + '@mui/core-downloads-tracker@5.16.14': {} + + '@mui/icons-material@5.16.14(@mui/material@5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@mui/material': 5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@mui/material@5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@mui/core-downloads-tracker': 5.16.14 + '@mui/system': 5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) + '@mui/types': 7.2.21(@types/react@18.3.18) + '@mui/utils': 5.16.14(@types/react@18.3.18)(react@18.3.1) + '@popperjs/core': 2.11.8 + '@types/react-transition-group': 4.4.12(@types/react@18.3.18) + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 19.0.0 + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + optionalDependencies: + '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) + '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) + '@types/react': 18.3.18 + + '@mui/private-theming@5.16.14(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@mui/utils': 5.16.14(@types/react@18.3.18)(react@18.3.1) + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@mui/styled-engine@5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@emotion/cache': 11.14.0 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) + '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) + + '@mui/system@5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@mui/private-theming': 5.16.14(@types/react@18.3.18)(react@18.3.1) + '@mui/styled-engine': 5.16.14(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.21(@types/react@18.3.18) + '@mui/utils': 5.16.14(@types/react@18.3.18)(react@18.3.1) + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) + '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react@18.3.1) + '@types/react': 18.3.18 + + '@mui/types@7.2.21(@types/react@18.3.18)': + optionalDependencies: + '@types/react': 18.3.18 + + '@mui/utils@5.16.14(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@mui/types': 7.2.21(@types/react@18.3.18) + '@types/prop-types': 15.7.14 + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-is: 19.0.0 + optionalDependencies: + '@types/react': 18.3.18 + + '@mysten/bcs@0.11.1': + dependencies: + bs58: 5.0.0 + + '@mysten/bcs@0.3.0': + dependencies: + bn.js: 5.2.1 + + '@mysten/bcs@1.4.0': + dependencies: + bs58: 6.0.0 + + '@mysten/sui.js@0.13.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@mysten/bcs': 0.3.0 + '@noble/hashes': 1.7.1 + '@noble/secp256k1': 1.7.1 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + bn.js: 5.2.1 + buffer: 6.0.3 + cross-fetch: 3.2.0 + jayson: 3.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + js-sha3: 0.8.0 + lossless-json: 1.0.5 + rpc-websockets: 7.11.2 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@mysten/sui.js@0.50.1(typescript@5.7.3)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) + '@mysten/bcs': 0.11.1 + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + '@suchipi/femver': 1.0.0 + bech32: 2.0.0 + gql.tada: 1.8.10(graphql@16.10.0)(typescript@5.7.3) + graphql: 16.10.0 + superstruct: 1.0.4 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - '@gql.tada/svelte-support' + - '@gql.tada/vue-support' + - typescript + + '@mysten/sui@1.21.2(typescript@5.7.3)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) + '@mysten/bcs': 1.4.0 + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + '@suchipi/femver': 1.0.0 + bech32: 2.0.0 + gql.tada: 1.8.10(graphql@16.10.0)(typescript@5.7.3) + graphql: 16.10.0 + jose: 5.10.0 + poseidon-lite: 0.2.1 + valibot: 0.36.0 + transitivePeerDependencies: + - '@gql.tada/svelte-support' + - '@gql.tada/vue-support' + - typescript + + '@mysten/wallet-standard@0.13.26(typescript@5.7.3)': + dependencies: + '@mysten/sui': 1.21.2(typescript@5.7.3) + '@wallet-standard/core': 1.1.0 + transitivePeerDependencies: + - '@gql.tada/svelte-support' + - '@gql.tada/vue-support' + - typescript + + '@netlify/functions@2.8.2': + dependencies: + '@netlify/serverless-functions-api': 1.26.1 + + '@netlify/node-cookies@0.1.0': {} + + '@netlify/serverless-functions-api@1.26.1': + dependencies: + '@netlify/node-cookies': 0.1.0 + urlpattern-polyfill: 8.0.2 + + '@next/env@14.2.24': {} + + '@next/eslint-plugin-next@13.0.0': + dependencies: + glob: 7.1.7 + + '@next/eslint-plugin-next@14.2.3': + dependencies: + glob: 10.3.10 + + '@next/swc-darwin-arm64@14.2.24': + optional: true + + '@next/swc-darwin-x64@14.2.24': + optional: true + + '@next/swc-linux-arm64-gnu@14.2.24': + optional: true + + '@next/swc-linux-arm64-musl@14.2.24': + optional: true + + '@next/swc-linux-x64-gnu@14.2.24': + optional: true + + '@next/swc-linux-x64-musl@14.2.24': + optional: true + + '@next/swc-win32-arm64-msvc@14.2.24': + optional: true + + '@next/swc-win32-ia32-msvc@14.2.24': + optional: true + + '@next/swc-win32-x64-msvc@14.2.24': + optional: true + + '@noble/curves@1.2.0': + dependencies: + '@noble/hashes': 1.3.2 + + '@noble/curves@1.8.1': + dependencies: + '@noble/hashes': 1.7.1 + + '@noble/hashes@1.3.2': {} + + '@noble/hashes@1.3.3': {} + + '@noble/hashes@1.7.1': {} + + '@noble/secp256k1@1.7.1': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.0 + + '@nolyfill/is-core-module@1.0.39': {} + + '@nuxt/cli@3.21.1(magicast@0.3.5)': + dependencies: + c12: 2.0.1(magicast@0.3.5) + chokidar: 4.0.3 + citty: 0.1.6 + clipboardy: 4.0.0 + consola: 3.4.0 + defu: 6.1.4 + fuse.js: 7.1.0 + giget: 1.2.4 + h3: 1.15.0 + httpxy: 0.1.7 + jiti: 2.4.2 + listhen: 1.9.0 + nypm: 0.5.2 + ofetch: 1.4.1 + ohash: 1.1.4 + pathe: 2.0.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.1 + scule: 1.3.0 + semver: 7.7.1 + std-env: 3.8.0 + tinyexec: 0.3.2 + ufo: 1.5.4 + transitivePeerDependencies: + - magicast + + '@nuxt/devalue@2.0.2': {} + + '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))': + dependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5) + '@nuxt/schema': 3.15.4 + execa: 7.2.0 + vite: 6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) + transitivePeerDependencies: + - magicast + - supports-color + + '@nuxt/devtools-wizard@1.7.0': + dependencies: + consola: 3.4.0 + diff: 7.0.0 + execa: 7.2.0 + global-directory: 4.0.1 + magicast: 0.3.5 + pathe: 1.1.2 + pkg-types: 1.3.1 + prompts: 2.4.2 + rc9: 2.1.2 + semver: 7.7.1 + + '@nuxt/devtools@1.7.0(bufferutil@4.0.9)(rollup@4.34.6)(utf-8-validate@5.0.10)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@antfu/utils': 0.7.10 + '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)) + '@nuxt/devtools-wizard': 1.7.0 + '@nuxt/kit': 3.15.4(magicast@0.3.5) + '@vue/devtools-core': 7.6.8(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) + '@vue/devtools-kit': 7.6.8 + birpc: 0.2.19 + consola: 3.4.0 + cronstrue: 2.54.0 + destr: 2.0.3 + error-stack-parser-es: 0.1.5 + execa: 7.2.0 + fast-npm-meta: 0.2.2 + flatted: 3.3.2 + get-port-please: 3.1.2 + hookable: 5.5.3 + image-meta: 0.2.1 + is-installed-globally: 1.0.0 + launch-editor: 2.9.1 + local-pkg: 0.5.1 + magicast: 0.3.5 + nypm: 0.4.1 + ohash: 1.1.4 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.1 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.7.1 + simple-git: 3.27.0 + sirv: 3.0.0 + tinyglobby: 0.2.10 + unimport: 3.14.6(rollup@4.34.6) + vite: 6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) + vite-plugin-inspect: 0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.34.6)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)) + vite-plugin-vue-inspector: 5.3.1(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)) + which: 3.0.1 + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - rollup + - supports-color + - utf-8-validate + - vue + + '@nuxt/kit@3.15.4(magicast@0.3.5)': + dependencies: + c12: 2.0.1(magicast@0.3.5) + consola: 3.4.0 + defu: 6.1.4 + destr: 2.0.3 + globby: 14.1.0 + ignore: 7.0.3 + jiti: 2.4.2 + klona: 2.0.6 + knitwork: 1.2.0 + mlly: 1.7.4 + ohash: 1.1.4 + pathe: 2.0.2 + pkg-types: 1.3.1 + scule: 1.3.0 + semver: 7.7.1 + std-env: 3.8.0 + ufo: 1.5.4 + unctx: 2.4.1 + unimport: 4.1.0 + untyped: 1.5.2 + transitivePeerDependencies: + - magicast + - supports-color + + '@nuxt/schema@3.15.4': + dependencies: + consola: 3.4.0 + defu: 6.1.4 + pathe: 2.0.2 + std-env: 3.8.0 + + '@nuxt/telemetry@2.6.4(magicast@0.3.5)': + dependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5) + citty: 0.1.6 + consola: 3.4.0 + destr: 2.0.3 + dotenv: 16.4.7 + git-url-parse: 16.0.0 + is-docker: 3.0.0 + ofetch: 1.4.1 + package-manager-detector: 0.2.9 + parse-git-config: 3.0.0 + pathe: 2.0.2 + rc9: 2.1.2 + std-env: 3.8.0 + transitivePeerDependencies: + - magicast + - supports-color + + '@nuxt/vite-builder@3.15.4(@types/node@22.7.5)(eslint@8.57.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.6)(terser@5.38.1)(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))(yaml@2.7.0)': + dependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5) + '@rollup/plugin-replace': 6.0.2(rollup@4.34.6) + '@vitejs/plugin-vue': 5.2.1(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) + '@vitejs/plugin-vue-jsx': 4.1.1(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) + autoprefixer: 10.4.20(postcss@8.5.1) + consola: 3.4.0 + cssnano: 7.0.6(postcss@8.5.1) + defu: 6.1.4 + esbuild: 0.24.2 + escape-string-regexp: 5.0.0 + externality: 1.0.2 + get-port-please: 3.1.2 + h3: 1.15.0 + jiti: 2.4.2 + knitwork: 1.2.0 + magic-string: 0.30.17 + mlly: 1.7.4 + ohash: 1.1.4 + pathe: 2.0.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.1 + postcss: 8.5.1 + rollup-plugin-visualizer: 5.14.0(rollup@4.34.6) + std-env: 3.8.0 + ufo: 1.5.4 + unenv: 1.10.0 + unplugin: 2.1.2 + vite: 6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) + vite-node: 3.0.5(@types/node@22.7.5)(terser@5.38.1) + vite-plugin-checker: 0.8.0(eslint@8.57.1)(optionator@0.9.4)(typescript@5.7.3)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)) + vue: 3.5.13(typescript@5.7.3) + vue-bundle-renderer: 2.1.1 + transitivePeerDependencies: + - '@biomejs/biome' + - '@types/node' + - eslint + - less + - lightningcss + - magicast + - meow + - optionator + - rolldown + - rollup + - sass + - sass-embedded + - stylelint + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - vls + - vti + - vue-tsc + - yaml + + '@nuxtjs/color-mode@3.5.2(magicast@0.3.5)': + dependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5) + pathe: 1.1.2 + pkg-types: 1.3.1 + semver: 7.7.1 + transitivePeerDependencies: + - magicast + - supports-color + + '@nuxtjs/eslint-config-typescript@12.1.0(eslint@8.57.1)(typescript@5.7.3)': + dependencies: + '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.3) + eslint: 8.57.1 + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) + eslint-plugin-vue: 9.32.0(eslint@8.57.1) + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + - typescript + + '@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0)(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) + eslint-plugin-n: 15.7.0(eslint@8.57.1) + eslint-plugin-node: 11.1.0(eslint@8.57.1) + eslint-plugin-promise: 6.6.0(eslint@8.57.1) + eslint-plugin-unicorn: 44.0.2(eslint@8.57.1) + eslint-plugin-vue: 9.32.0(eslint@8.57.1) + local-pkg: 0.4.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(magicast@0.3.5)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(webpack@5.97.1)': + dependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5) + chokidar: 3.6.0 + eslint: 8.57.1 + eslint-webpack-plugin: 4.2.0(eslint@8.57.1)(webpack@5.97.1) + pathe: 1.1.2 + vite-plugin-eslint: 1.8.1(eslint@8.57.1)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)) + transitivePeerDependencies: + - magicast + - supports-color + - vite + - webpack + + '@nuxtjs/google-fonts@3.2.0(magicast@0.3.5)': + dependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5) + google-fonts-helper: 3.6.0 + pathe: 1.1.2 + transitivePeerDependencies: + - magicast + - supports-color + + '@nuxtjs/tailwindcss@6.13.1(magicast@0.3.5)': + dependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5) + autoprefixer: 10.4.20(postcss@8.5.1) + c12: 2.0.1(magicast@0.3.5) + consola: 3.4.0 + defu: 6.1.4 + h3: 1.15.0 + klona: 2.0.6 + pathe: 2.0.2 + postcss: 8.5.1 + postcss-nesting: 13.0.1(postcss@8.5.1) + tailwind-config-viewer: 2.0.4(tailwindcss@3.4.17) + tailwindcss: 3.4.17 + ufo: 1.5.4 + unctx: 2.4.1 + transitivePeerDependencies: + - magicast + - supports-color + - ts-node + + '@okwallet/aptos-wallet-adapter@0.0.3': + dependencies: + '@aptos-labs/wallet-adapter-core': 2.1.0 + aptos: 1.21.0 + transitivePeerDependencies: + - debug + + '@oxc-parser/wasm@0.1.0': {} + + '@parcel/watcher-android-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-x64@2.5.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.1': + optional: true + + '@parcel/watcher-wasm@2.5.1': + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.8 + + '@parcel/watcher-win32-arm64@2.5.1': + optional: true + + '@parcel/watcher-win32-ia32@2.5.1': + optional: true + + '@parcel/watcher-win32-x64@2.5.1': + optional: true + + '@parcel/watcher@2.5.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.1 + '@parcel/watcher-darwin-arm64': 2.5.1 + '@parcel/watcher-darwin-x64': 2.5.1 + '@parcel/watcher-freebsd-x64': 2.5.1 + '@parcel/watcher-linux-arm-glibc': 2.5.1 + '@parcel/watcher-linux-arm-musl': 2.5.1 + '@parcel/watcher-linux-arm64-glibc': 2.5.1 + '@parcel/watcher-linux-arm64-musl': 2.5.1 + '@parcel/watcher-linux-x64-glibc': 2.5.1 + '@parcel/watcher-linux-x64-musl': 2.5.1 + '@parcel/watcher-win32-arm64': 2.5.1 + '@parcel/watcher-win32-ia32': 2.5.1 + '@parcel/watcher-win32-x64': 2.5.1 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@polka/url@1.0.0-next.28': {} + + '@pontem/wallet-adapter-plugin@0.2.1': + dependencies: + '@aptos-labs/wallet-adapter-core': 2.2.0 + aptos: 1.21.0 + transitivePeerDependencies: + - debug + + '@popperjs/core@2.11.8': {} + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@radix-ui/primitive@1.1.1': {} + + '@radix-ui/react-arrow@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-collapsible@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-collection@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-dialog@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-dropdown-menu@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-menu': 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-label@2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-menu@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-popper@1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/rect': 1.1.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-portal@1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-presence@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-primitive@2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-radio-group@1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-switch@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-toast@1.2.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/rect': 1.1.0 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-size@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/rect@1.1.0': {} + + '@rc-component/async-validator@5.0.4': + dependencies: + '@babel/runtime': 7.26.7 + + '@rc-component/color-picker@2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@ant-design/fast-color': 2.0.6 + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@rc-component/context@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@rc-component/mini-decimal@1.1.0': + dependencies: + '@babel/runtime': 7.26.7 + + '@rc-component/mutate-observer@1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@rc-component/portal@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@rc-component/qrcode@1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@rc-component/tour@1.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@rc-component/trigger@2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@redocly/ajv@8.11.2': + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js-replace: 1.0.1 + + '@redocly/config@0.20.3': {} + + '@redocly/openapi-core@1.28.5(supports-color@9.4.0)': + dependencies: + '@redocly/ajv': 8.11.2 + '@redocly/config': 0.20.3 + colorette: 1.4.0 + https-proxy-agent: 7.0.6(supports-color@9.4.0) + js-levenshtein: 1.1.6 + js-yaml: 4.1.0 + minimatch: 5.1.6 + pluralize: 8.0.0 + yaml-ast-parser: 0.0.43 + transitivePeerDependencies: + - supports-color + + '@remix-run/router@1.22.0': {} + + '@rollup/plugin-alias@5.1.1(rollup@4.34.6)': + optionalDependencies: + rollup: 4.34.6 + + '@rollup/plugin-commonjs@28.0.2(rollup@4.34.6)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + commondir: 1.0.1 + estree-walker: 2.0.2 + fdir: 6.4.3(picomatch@4.0.2) + is-reference: 1.2.1 + magic-string: 0.30.17 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.34.6 + + '@rollup/plugin-inject@5.0.5(rollup@4.34.6)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + estree-walker: 2.0.2 + magic-string: 0.30.17 + optionalDependencies: + rollup: 4.34.6 + + '@rollup/plugin-json@6.1.0(rollup@4.34.6)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + optionalDependencies: + rollup: 4.34.6 + + '@rollup/plugin-node-resolve@15.3.1(rollup@4.34.6)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.10 + optionalDependencies: + rollup: 4.34.6 + + '@rollup/plugin-replace@6.0.2(rollup@4.34.6)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + magic-string: 0.30.17 + optionalDependencies: + rollup: 4.34.6 + + '@rollup/plugin-terser@0.4.4(rollup@4.34.6)': + dependencies: + serialize-javascript: 6.0.2 + smob: 1.5.0 + terser: 5.38.1 + optionalDependencies: + rollup: 4.34.6 + + '@rollup/pluginutils@4.2.1': + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + + '@rollup/pluginutils@5.1.4(rollup@4.34.6)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.34.6 + + '@rollup/rollup-android-arm-eabi@4.34.6': + optional: true + + '@rollup/rollup-android-arm64@4.34.6': + optional: true + + '@rollup/rollup-darwin-arm64@4.34.6': + optional: true + + '@rollup/rollup-darwin-x64@4.34.6': + optional: true + + '@rollup/rollup-freebsd-arm64@4.34.6': + optional: true + + '@rollup/rollup-freebsd-x64@4.34.6': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.34.6': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.34.6': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.34.6': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.34.6': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.34.6': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.34.6': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.34.6': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.34.6': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.34.6': + optional: true + + '@rollup/rollup-linux-x64-musl@4.34.6': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.34.6': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.34.6': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.34.6': + optional: true + + '@rtsao/scc@1.1.0': {} + + '@rushstack/eslint-patch@1.10.5': {} + + '@rushstack/node-core-library@4.0.2(@types/node@22.7.5)': + dependencies: + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.10 + semver: 7.5.4 + z-schema: 5.0.5 + optionalDependencies: + '@types/node': 22.7.5 + + '@rushstack/rig-package@0.5.2': + dependencies: + resolve: 1.22.10 + strip-json-comments: 3.1.1 + + '@rushstack/terminal@0.10.0(@types/node@22.7.5)': + dependencies: + '@rushstack/node-core-library': 4.0.2(@types/node@22.7.5) + supports-color: 8.1.1 + optionalDependencies: + '@types/node': 22.7.5 + + '@rushstack/ts-command-line@4.19.1(@types/node@22.7.5)': + dependencies: + '@rushstack/terminal': 0.10.0(@types/node@22.7.5) + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' + + '@scure/base@1.1.9': {} + + '@scure/base@1.2.4': {} + + '@scure/bip32@1.6.2': + dependencies: + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/base': 1.2.4 + + '@scure/bip39@1.2.1': + dependencies: + '@noble/hashes': 1.3.3 + '@scure/base': 1.1.9 + + '@scure/bip39@1.5.4': + dependencies: + '@noble/hashes': 1.7.1 + '@scure/base': 1.2.4 + + '@sinclair/typebox@0.27.8': {} + + '@sindresorhus/is@4.6.0': {} + + '@sindresorhus/merge-streams@2.3.0': {} + + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + bigint-buffer: 1.1.5 + bignumber.js: 9.1.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@solana/buffer-layout@4.0.1': + dependencies: + buffer: 6.0.3 + + '@solana/codecs-core@2.0.0-rc.1(typescript@5.7.3)': + dependencies: + '@solana/errors': 2.0.0-rc.1(typescript@5.7.3) + typescript: 5.7.3 + + '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.7.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.7.3) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.7.3) + '@solana/errors': 2.0.0-rc.1(typescript@5.7.3) + typescript: 5.7.3 + + '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.7.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.7.3) + '@solana/errors': 2.0.0-rc.1(typescript@5.7.3) + typescript: 5.7.3 + + '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.7.3) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.7.3) + '@solana/errors': 2.0.0-rc.1(typescript@5.7.3) + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 5.7.3 + + '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.7.3) + '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.7.3) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.7.3) + '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3) + '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/errors@2.0.0-rc.1(typescript@5.7.3)': + dependencies: + chalk: 5.4.1 + commander: 12.1.0 + typescript: 5.7.3 + + '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.7.3) + '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.7.3) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.7.3) + '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3) + '@solana/errors': 2.0.0-rc.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/spl-token-group@0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)': + dependencies: + '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + + '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)': + dependencies: + '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + + '@solana/spl-token@0.3.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@solana/spl-token@0.4.13(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3) + '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/wallet-standard-features': 1.3.0 + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wallet-standard/base': 1.1.0 + '@wallet-standard/features': 1.1.0 + eventemitter3: 4.0.7 + + '@solana/wallet-standard-chains@1.1.1': + dependencies: + '@wallet-standard/base': 1.1.0 + + '@solana/wallet-standard-features@1.3.0': + dependencies: + '@wallet-standard/base': 1.1.0 + '@wallet-standard/features': 1.1.0 + + '@solana/wallet-standard-util@1.1.2': + dependencies: + '@noble/curves': 1.8.1 + '@solana/wallet-standard-chains': 1.1.1 + '@solana/wallet-standard-features': 1.3.0 + + '@solana/wallet-standard-wallet-adapter-base@1.1.4(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bs58@6.0.0)': + dependencies: + '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/wallet-standard-chains': 1.1.1 + '@solana/wallet-standard-features': 1.3.0 + '@solana/wallet-standard-util': 1.1.2 + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wallet-standard/app': 1.1.0 + '@wallet-standard/base': 1.1.0 + '@wallet-standard/features': 1.1.0 + '@wallet-standard/wallet': 1.1.0 + bs58: 6.0.0 + + '@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@babel/runtime': 7.26.7 + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@solana/buffer-layout': 4.0.1 + agentkeepalive: 4.6.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + node-fetch: 2.7.0 + rpc-websockets: 9.0.4 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@suchipi/femver@1.0.0': {} + + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + + '@swc/helpers@0.5.5': + dependencies: + '@swc/counter': 0.1.3 + tslib: 2.8.1 + + '@szmarczak/http-timer@4.0.6': + dependencies: + defer-to-connect: 2.0.1 + + '@tanstack/query-core@5.66.0': {} + + '@tanstack/react-query@5.66.0(react@18.3.1)': + dependencies: + '@tanstack/query-core': 5.66.0 + react: 18.3.1 + + '@tanstack/virtual-core@3.13.0': {} + + '@tanstack/vue-virtual@3.13.0(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@tanstack/virtual-core': 3.13.0 + vue: 3.5.13(typescript@5.7.3) + + '@telegram-apps/bridge@1.9.2': + dependencies: + '@telegram-apps/signals': 1.1.1 + '@telegram-apps/toolkit': 1.1.1 + '@telegram-apps/transformers': 1.2.2 + '@telegram-apps/types': 1.2.1 + + '@telegram-apps/navigation@1.0.13': + dependencies: + '@telegram-apps/bridge': 1.9.2 + '@telegram-apps/signals': 1.1.1 + '@telegram-apps/toolkit': 1.1.1 + + '@telegram-apps/sdk@2.11.3': + dependencies: + '@telegram-apps/bridge': 1.9.2 + '@telegram-apps/navigation': 1.0.13 + '@telegram-apps/signals': 1.1.1 + '@telegram-apps/toolkit': 1.1.1 + '@telegram-apps/transformers': 1.2.2 + + '@telegram-apps/signals@1.1.1': {} + + '@telegram-apps/toolkit@1.1.1': {} + + '@telegram-apps/transformers@1.2.2': + dependencies: + '@telegram-apps/toolkit': 1.1.1 + '@telegram-apps/types': 1.2.1 + + '@telegram-apps/types@1.2.1': {} + + '@trustwallet/aptos-wallet-adapter@0.1.6': + dependencies: + '@aptos-labs/wallet-adapter-core': 0.1.7 + aptos: 1.21.0 + transitivePeerDependencies: + - debug + + '@trysound/sax@0.2.0': {} + + '@types/argparse@1.0.38': {} + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.26.8 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 + + '@types/babel__traverse@7.20.6': + dependencies: + '@babel/types': 7.26.8 + + '@types/bn.js@4.11.6': + dependencies: + '@types/node': 20.17.17 + + '@types/bn.js@5.1.6': + dependencies: + '@types/node': 20.17.17 + + '@types/cacheable-request@6.0.3': + dependencies: + '@types/http-cache-semantics': 4.0.4 + '@types/keyv': 3.1.4 + '@types/node': 20.17.17 + '@types/responselike': 1.0.3 + + '@types/chrome@0.0.136': + dependencies: + '@types/filesystem': 0.0.36 + '@types/har-format': 1.2.16 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 20.17.17 + + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 9.6.1 + '@types/estree': 1.0.6 + + '@types/eslint@8.56.12': + dependencies: + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.6': {} + + '@types/filesystem@0.0.36': + dependencies: + '@types/filewriter': 0.0.33 + + '@types/filewriter@0.0.33': {} + + '@types/gensync@1.0.4': {} + + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 20.17.17 + + '@types/har-format@1.2.16': {} + + '@types/http-cache-semantics@4.0.4': {} + + '@types/http-proxy@1.17.16': + dependencies: + '@types/node': 20.17.17 + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/jest@29.5.14': + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/keyv@3.1.4': + dependencies: + '@types/node': 20.17.17 + + '@types/long@4.0.2': {} + + '@types/node@12.20.55': {} + + '@types/node@20.17.17': + dependencies: + undici-types: 6.19.8 + + '@types/node@22.7.5': + dependencies: + undici-types: 6.19.8 + + '@types/normalize-package-data@2.4.4': {} + + '@types/parse-json@4.0.2': {} + + '@types/parse-path@7.0.3': {} + + '@types/pbkdf2@3.1.2': + dependencies: + '@types/node': 20.17.17 + + '@types/prop-types@15.7.14': {} + + '@types/react-dom@18.3.5(@types/react@18.3.18)': + dependencies: + '@types/react': 18.3.18 + + '@types/react-transition-group@4.4.12(@types/react@18.3.18)': + dependencies: + '@types/react': 18.3.18 + + '@types/react@18.3.18': + dependencies: + '@types/prop-types': 15.7.14 + csstype: 3.1.3 + + '@types/resolve@1.20.2': {} + + '@types/responselike@1.0.3': + dependencies: + '@types/node': 20.17.17 + + '@types/secp256k1@4.0.6': + dependencies: + '@types/node': 20.17.17 + + '@types/semver@7.5.8': {} + + '@types/stack-utils@2.0.3': {} + + '@types/uuid@8.3.4': {} + + '@types/web-bluetooth@0.0.20': {} + + '@types/ws@7.4.7': + dependencies: + '@types/node': 20.17.17 + + '@types/ws@8.5.14': + dependencies: + '@types/node': 20.17.17 + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.33': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.0(supports-color@9.4.0) + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + semver: 7.7.1 + ts-api-utils: 1.4.3(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5)': + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + debug: 4.4.0(supports-color@9.4.0) + eslint: 7.32.0 + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.0(supports-color@9.4.0) + eslint: 8.57.1 + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 7.2.0 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 7.2.0 + debug: 4.4.0(supports-color@9.4.0) + eslint: 8.57.1 + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + + '@typescript-eslint/scope-manager@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + + '@typescript-eslint/scope-manager@7.2.0': + dependencies: + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/visitor-keys': 7.2.0 + + '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.7.3) + debug: 4.4.0(supports-color@9.4.0) + eslint: 8.57.1 + ts-api-utils: 1.4.3(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@5.62.0': {} + + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/types@7.2.0': {} + + '@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5)': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.4.0(supports-color@9.4.0) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.7.1 + tsutils: 3.21.0(typescript@4.9.5) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.0(supports-color@9.4.0) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.7.1 + ts-api-utils: 1.4.3(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@7.2.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/visitor-keys': 7.2.0 + debug: 4.4.0(supports-color@9.4.0) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.7.1 + ts-api-utils: 1.4.3(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.7.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.3) + eslint: 8.57.1 + semver: 7.7.1 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@7.2.0': + dependencies: + '@typescript-eslint/types': 7.2.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.3.0': {} + + '@unhead/dom@1.11.18': + dependencies: + '@unhead/schema': 1.11.18 + '@unhead/shared': 1.11.18 + + '@unhead/schema@1.11.18': + dependencies: + hookable: 5.5.3 + zhead: 2.2.4 + + '@unhead/shared@1.11.18': + dependencies: + '@unhead/schema': 1.11.18 + packrup: 0.1.2 + + '@unhead/ssr@1.11.18': + dependencies: + '@unhead/schema': 1.11.18 + '@unhead/shared': 1.11.18 + + '@unhead/vue@1.11.18(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@unhead/schema': 1.11.18 + '@unhead/shared': 1.11.18 + hookable: 5.5.3 + unhead: 1.11.18 + vue: 3.5.13(typescript@5.7.3) + + '@vercel/nft@0.27.10(rollup@4.34.6)': + dependencies: + '@mapbox/node-pre-gyp': 2.0.0 + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + acorn: 8.14.0 + acorn-import-attributes: 1.9.5(acorn@8.14.0) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + node-gyp-build: 4.8.4 + picomatch: 4.0.2 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + + '@vitejs/plugin-vue-jsx@4.1.1(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@babel/core': 7.26.8 + '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.8) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.8) + vite: 6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) + vue: 3.5.13(typescript@5.7.3) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@5.0.5(vite@5.3.6(@types/node@22.7.5)(terser@5.38.1))(vue@3.5.13(typescript@4.9.5))': + dependencies: + vite: 5.3.6(@types/node@22.7.5)(terser@5.38.1) + vue: 3.5.13(typescript@4.9.5) + + '@vitejs/plugin-vue@5.2.1(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': + dependencies: + vite: 6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) + vue: 3.5.13(typescript@5.7.3) + + '@volar/language-core@1.11.1': + dependencies: + '@volar/source-map': 1.11.1 + + '@volar/language-core@2.4.11': + dependencies: + '@volar/source-map': 2.4.11 + + '@volar/source-map@1.11.1': + dependencies: + muggle-string: 0.3.1 + + '@volar/source-map@2.4.11': {} + + '@volar/typescript@1.11.1': + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + + '@volar/typescript@2.4.11': + dependencies: + '@volar/language-core': 2.4.11 + path-browserify: 1.0.1 + vscode-uri: 3.1.0 + + '@vue-macros/common@1.16.1(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@vue/compiler-sfc': 3.5.13 + ast-kit: 1.4.0 + local-pkg: 1.0.0 + magic-string-ast: 0.7.0 + pathe: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + vue: 3.5.13(typescript@5.7.3) + + '@vue/babel-helper-vue-transform-on@1.2.5': {} + + '@vue/babel-plugin-jsx@1.2.5(@babel/core@7.26.8)': + dependencies: + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.8) + '@babel/template': 7.26.8 + '@babel/traverse': 7.26.8 + '@babel/types': 7.26.8 + '@vue/babel-helper-vue-transform-on': 1.2.5 + '@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.26.8) + html-tags: 3.3.1 + svg-tags: 1.0.0 + optionalDependencies: + '@babel/core': 7.26.8 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@1.2.5(@babel/core@7.26.8)': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/core': 7.26.8 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/parser': 7.26.8 + '@vue/compiler-sfc': 3.5.13 + transitivePeerDependencies: + - supports-color + + '@vue/compiler-core@3.5.13': + dependencies: + '@babel/parser': 7.26.8 + '@vue/shared': 3.5.13 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.13': + dependencies: + '@vue/compiler-core': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/compiler-sfc@3.5.13': + dependencies: + '@babel/parser': 7.26.8 + '@vue/compiler-core': 3.5.13 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.5.1 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.13': + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/compiler-vue2@2.7.16': + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + '@vue/devtools-api@6.6.4': {} + + '@vue/devtools-core@7.6.8(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@vue/devtools-kit': 7.6.8 + '@vue/devtools-shared': 7.7.1 + mitt: 3.0.1 + nanoid: 5.0.9 + pathe: 1.1.2 + vite-hot-client: 0.2.4(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)) + vue: 3.5.13(typescript@5.7.3) + transitivePeerDependencies: + - vite + + '@vue/devtools-kit@7.6.8': + dependencies: + '@vue/devtools-shared': 7.7.1 + birpc: 0.2.19 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.2 + + '@vue/devtools-shared@7.7.1': + dependencies: + rfdc: 1.4.1 + + '@vue/language-core@1.8.27(typescript@4.9.5)': + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.5.13 + '@vue/shared': 3.5.13 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + vue-template-compiler: 2.7.16 + optionalDependencies: + typescript: 4.9.5 + + '@vue/language-core@2.2.0(typescript@4.9.5)': + dependencies: + '@volar/language-core': 2.4.11 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.13 + alien-signals: 0.4.14 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 4.9.5 + + '@vue/reactivity@3.5.13': + dependencies: + '@vue/shared': 3.5.13 + + '@vue/runtime-core@3.5.13': + dependencies: + '@vue/reactivity': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/runtime-dom@3.5.13': + dependencies: + '@vue/reactivity': 3.5.13 + '@vue/runtime-core': 3.5.13 + '@vue/shared': 3.5.13 + csstype: 3.1.3 + + '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@4.9.5))': + dependencies: + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + vue: 3.5.13(typescript@4.9.5) + + '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + vue: 3.5.13(typescript@5.7.3) + + '@vue/shared@3.5.13': {} + + '@vueuse/core@10.11.1(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.11.1 + '@vueuse/shared': 10.11.1(vue@3.5.13(typescript@5.7.3)) + vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@10.11.1': {} + + '@vueuse/shared@10.11.1(vue@3.5.13(typescript@5.7.3))': + dependencies: + vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@wallet-standard/app@1.1.0': + dependencies: + '@wallet-standard/base': 1.1.0 + + '@wallet-standard/base@1.1.0': {} + + '@wallet-standard/core@1.0.3': + dependencies: + '@wallet-standard/app': 1.1.0 + '@wallet-standard/base': 1.1.0 + '@wallet-standard/features': 1.1.0 + '@wallet-standard/wallet': 1.1.0 + + '@wallet-standard/core@1.1.0': + dependencies: + '@wallet-standard/app': 1.1.0 + '@wallet-standard/base': 1.1.0 + '@wallet-standard/errors': 0.1.0 + '@wallet-standard/features': 1.1.0 + '@wallet-standard/wallet': 1.1.0 + + '@wallet-standard/errors@0.1.0': + dependencies: + chalk: 5.4.1 + commander: 12.1.0 + + '@wallet-standard/features@1.1.0': + dependencies: + '@wallet-standard/base': 1.1.0 + + '@wallet-standard/wallet@1.1.0': + dependencies: + '@wallet-standard/base': 1.1.0 + + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + + '@webassemblyjs/helper-api-error@1.13.2': {} + + '@webassemblyjs/helper-buffer@1.14.1': {} + + '@webassemblyjs/helper-numbers@1.13.2': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + + '@webassemblyjs/helper-wasm-section@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 + + '@webassemblyjs/ieee754@1.13.2': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.13.2': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.13.2': {} + + '@webassemblyjs/wasm-edit@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 + + '@webassemblyjs/wasm-gen@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wasm-opt@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + + '@webassemblyjs/wasm-parser@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wast-printer@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 + + '@wormhole-foundation/sdk-algorand-core@1.5.2': + dependencies: + '@wormhole-foundation/sdk-algorand': 1.5.2 + '@wormhole-foundation/sdk-connect': 1.5.2 + transitivePeerDependencies: + - debug + + '@wormhole-foundation/sdk-algorand-tokenbridge@1.5.2': + dependencies: + '@wormhole-foundation/sdk-algorand': 1.5.2 + '@wormhole-foundation/sdk-algorand-core': 1.5.2 + '@wormhole-foundation/sdk-connect': 1.5.2 + transitivePeerDependencies: + - debug + + '@wormhole-foundation/sdk-algorand@1.5.2': + dependencies: + '@wormhole-foundation/sdk-connect': 1.5.2 + algosdk: 2.7.0 + transitivePeerDependencies: + - debug + + '@wormhole-foundation/sdk-aptos-cctp@1.5.2(axios@1.7.9)(got@11.8.6)': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@wormhole-foundation/sdk-aptos': 1.5.2(axios@1.7.9)(got@11.8.6) + '@wormhole-foundation/sdk-connect': 1.5.2 + transitivePeerDependencies: + - axios + - debug + - got + + '@wormhole-foundation/sdk-aptos-core@1.5.2(axios@1.7.9)(got@11.8.6)': + dependencies: + '@wormhole-foundation/sdk-aptos': 1.5.2(axios@1.7.9)(got@11.8.6) + '@wormhole-foundation/sdk-connect': 1.5.2 + transitivePeerDependencies: + - axios + - debug + - got + + '@wormhole-foundation/sdk-aptos-tokenbridge@1.5.2(axios@1.7.9)(got@11.8.6)': + dependencies: + '@wormhole-foundation/sdk-aptos': 1.5.2(axios@1.7.9)(got@11.8.6) + '@wormhole-foundation/sdk-connect': 1.5.2 + transitivePeerDependencies: + - axios + - debug + - got + + '@wormhole-foundation/sdk-aptos@1.10.0(axios@1.7.9)(got@11.8.6)': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@wormhole-foundation/sdk-connect': 1.10.0 + transitivePeerDependencies: + - axios + - debug + - got + + '@wormhole-foundation/sdk-aptos@1.5.2(axios@1.7.9)(got@11.8.6)': + dependencies: + '@aptos-labs/ts-sdk': 1.35.0(axios@1.7.9)(got@11.8.6) + '@wormhole-foundation/sdk-connect': 1.5.2 + transitivePeerDependencies: + - axios + - debug + - got + + '@wormhole-foundation/sdk-base@1.10.0': + dependencies: + '@scure/base': 1.2.4 + binary-layout: 1.0.3 + + '@wormhole-foundation/sdk-base@1.5.2': + dependencies: + '@scure/base': 1.2.4 + binary-layout: 1.0.3 + + '@wormhole-foundation/sdk-connect@1.10.0': + dependencies: + '@wormhole-foundation/sdk-base': 1.10.0 + '@wormhole-foundation/sdk-definitions': 1.10.0 + axios: 1.7.9 + transitivePeerDependencies: + - debug + + '@wormhole-foundation/sdk-connect@1.5.2': + dependencies: + '@wormhole-foundation/sdk-base': 1.5.2 + '@wormhole-foundation/sdk-definitions': 1.5.2 + axios: 1.7.9 + transitivePeerDependencies: + - debug + + '@wormhole-foundation/sdk-cosmwasm-core@1.5.2(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)': + dependencies: + '@cosmjs/cosmwasm-stargate': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@cosmjs/stargate': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@injectivelabs/sdk-ts': 1.14.41(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-cosmwasm': 1.5.2(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - '@types/react' + - bufferutil + - debug + - graphql-ws + - react + - react-dom + - subscriptions-transport-ws + - utf-8-validate + + '@wormhole-foundation/sdk-cosmwasm-ibc@1.5.2(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)': + dependencies: + '@cosmjs/cosmwasm-stargate': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@cosmjs/stargate': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@injectivelabs/sdk-ts': 1.14.41(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-cosmwasm': 1.5.2(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-cosmwasm-core': 1.5.2(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10) + cosmjs-types: 0.9.0 + transitivePeerDependencies: + - '@types/react' + - bufferutil + - debug + - graphql-ws + - react + - react-dom + - subscriptions-transport-ws + - utf-8-validate + + '@wormhole-foundation/sdk-cosmwasm-tokenbridge@1.5.2(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)': + dependencies: + '@cosmjs/cosmwasm-stargate': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@injectivelabs/sdk-ts': 1.14.41(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-cosmwasm': 1.5.2(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - '@types/react' + - bufferutil + - debug + - graphql-ws + - react + - react-dom + - subscriptions-transport-ws + - utf-8-validate + + '@wormhole-foundation/sdk-cosmwasm@1.5.2(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)': + dependencies: + '@cosmjs/cosmwasm-stargate': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@cosmjs/proto-signing': 0.32.4 + '@cosmjs/stargate': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@injectivelabs/sdk-ts': 1.14.41(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-connect': 1.5.2 + cosmjs-types: 0.9.0 + transitivePeerDependencies: + - '@types/react' + - bufferutil + - debug + - graphql-ws + - react + - react-dom + - subscriptions-transport-ws + - utf-8-validate + + '@wormhole-foundation/sdk-definitions@1.10.0': + dependencies: + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@wormhole-foundation/sdk-base': 1.10.0 + + '@wormhole-foundation/sdk-definitions@1.5.2': + dependencies: + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@wormhole-foundation/sdk-base': 1.5.2 + + '@wormhole-foundation/sdk-evm-cctp@1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-evm': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + '@wormhole-foundation/sdk-evm-core@1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-evm': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + '@wormhole-foundation/sdk-evm-portico@1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-evm': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-evm-core': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-evm-tokenbridge': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + '@wormhole-foundation/sdk-evm-tokenbridge@1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-evm': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-evm-core': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + '@wormhole-foundation/sdk-evm@1.10.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@wormhole-foundation/sdk-connect': 1.10.0 + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + '@wormhole-foundation/sdk-evm@1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@wormhole-foundation/sdk-connect': 1.5.2 + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + '@wormhole-foundation/sdk-solana-cctp@1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/spl-token': 0.3.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-solana': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - utf-8-validate + + '@wormhole-foundation/sdk-solana-core@1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-solana': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - utf-8-validate + + '@wormhole-foundation/sdk-solana-tokenbridge@1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/spl-token': 0.3.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-solana': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-solana-core': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - utf-8-validate + + '@wormhole-foundation/sdk-solana@1.10.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/spl-token': 0.3.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-connect': 1.10.0 + rpc-websockets: 7.11.2 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - utf-8-validate + + '@wormhole-foundation/sdk-solana@1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/spl-token': 0.3.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-connect': 1.5.2 + rpc-websockets: 7.11.2 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - utf-8-validate + + '@wormhole-foundation/sdk-sui-cctp@1.5.2(typescript@5.7.3)': + dependencies: + '@mysten/sui.js': 0.50.1(typescript@5.7.3) + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-sui': 1.5.2(typescript@5.7.3) + transitivePeerDependencies: + - '@gql.tada/svelte-support' + - '@gql.tada/vue-support' + - debug + - typescript + + '@wormhole-foundation/sdk-sui-core@1.5.2(typescript@5.7.3)': + dependencies: + '@mysten/sui.js': 0.50.1(typescript@5.7.3) + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-sui': 1.5.2(typescript@5.7.3) + transitivePeerDependencies: + - '@gql.tada/svelte-support' + - '@gql.tada/vue-support' + - debug + - typescript + + '@wormhole-foundation/sdk-sui-tokenbridge@1.5.2(typescript@5.7.3)': + dependencies: + '@mysten/sui.js': 0.50.1(typescript@5.7.3) + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-sui': 1.5.2(typescript@5.7.3) + '@wormhole-foundation/sdk-sui-core': 1.5.2(typescript@5.7.3) + transitivePeerDependencies: + - '@gql.tada/svelte-support' + - '@gql.tada/vue-support' + - debug + - typescript + + '@wormhole-foundation/sdk-sui@1.10.0(typescript@5.7.3)': + dependencies: + '@mysten/sui.js': 0.50.1(typescript@5.7.3) + '@wormhole-foundation/sdk-connect': 1.10.0 + transitivePeerDependencies: + - '@gql.tada/svelte-support' + - '@gql.tada/vue-support' + - debug + - typescript + + '@wormhole-foundation/sdk-sui@1.5.2(typescript@5.7.3)': + dependencies: + '@mysten/sui.js': 0.50.1(typescript@5.7.3) + '@wormhole-foundation/sdk-connect': 1.5.2 + transitivePeerDependencies: + - '@gql.tada/svelte-support' + - '@gql.tada/vue-support' + - debug + - typescript + + '@wormhole-foundation/sdk@1.5.2(@types/react@18.3.18)(axios@1.7.9)(bufferutil@4.0.9)(got@11.8.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(utf-8-validate@5.0.10)': + dependencies: + '@wormhole-foundation/sdk-algorand': 1.5.2 + '@wormhole-foundation/sdk-algorand-core': 1.5.2 + '@wormhole-foundation/sdk-algorand-tokenbridge': 1.5.2 + '@wormhole-foundation/sdk-aptos': 1.5.2(axios@1.7.9)(got@11.8.6) + '@wormhole-foundation/sdk-aptos-cctp': 1.5.2(axios@1.7.9)(got@11.8.6) + '@wormhole-foundation/sdk-aptos-core': 1.5.2(axios@1.7.9)(got@11.8.6) + '@wormhole-foundation/sdk-aptos-tokenbridge': 1.5.2(axios@1.7.9)(got@11.8.6) + '@wormhole-foundation/sdk-base': 1.5.2 + '@wormhole-foundation/sdk-connect': 1.5.2 + '@wormhole-foundation/sdk-cosmwasm': 1.5.2(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-cosmwasm-core': 1.5.2(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-cosmwasm-ibc': 1.5.2(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-cosmwasm-tokenbridge': 1.5.2(@types/react@18.3.18)(bufferutil@4.0.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-definitions': 1.5.2 + '@wormhole-foundation/sdk-evm': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-evm-cctp': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-evm-core': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-evm-portico': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-evm-tokenbridge': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-solana': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-solana-cctp': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-solana-core': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-solana-tokenbridge': 1.5.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@wormhole-foundation/sdk-sui': 1.5.2(typescript@5.7.3) + '@wormhole-foundation/sdk-sui-cctp': 1.5.2(typescript@5.7.3) + '@wormhole-foundation/sdk-sui-core': 1.5.2(typescript@5.7.3) + '@wormhole-foundation/sdk-sui-tokenbridge': 1.5.2(typescript@5.7.3) + transitivePeerDependencies: + - '@gql.tada/svelte-support' + - '@gql.tada/vue-support' + - '@types/react' + - axios + - bufferutil + - debug + - encoding + - got + - graphql-ws + - react + - react-dom + - subscriptions-transport-ws + - typescript + - utf-8-validate + + '@wry/caches@1.0.1': + dependencies: + tslib: 2.8.1 + + '@wry/context@0.7.4': + dependencies: + tslib: 2.8.1 + + '@wry/equality@0.5.7': + dependencies: + tslib: 2.8.1 + + '@wry/trie@0.5.0': + dependencies: + tslib: 2.8.1 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + abbrev@3.0.0: {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-import-attributes@1.9.5(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn-jsx@5.3.2(acorn@7.4.1): + dependencies: + acorn: 7.4.1 + + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn@7.4.1: {} + + acorn@8.14.0: {} + + aes-js@4.0.0-beta.5: {} + + agent-base@7.1.3: {} + + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + + ajv-formats@2.1.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv-keywords@5.1.0(ajv@8.17.1): + dependencies: + ajv: 8.17.1 + fast-deep-equal: 3.1.3 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.6 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + algo-msgpack-with-bigint@2.1.1: {} + + algosdk@2.7.0: + dependencies: + algo-msgpack-with-bigint: 2.1.1 + buffer: 6.0.3 + hi-base32: 0.5.1 + js-sha256: 0.9.0 + js-sha3: 0.8.0 + js-sha512: 0.8.0 + json-bigint: 1.0.0 + tweetnacl: 1.0.3 + vlq: 2.0.4 + + alien-signals@0.4.14: {} + + ansi-colors@4.1.3: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + antd@5.23.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@ant-design/colors': 7.2.0 + '@ant-design/cssinjs': 1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@ant-design/cssinjs-utils': 1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@ant-design/fast-color': 2.0.6 + '@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@ant-design/react-slick': 1.1.2(react@18.3.1) + '@babel/runtime': 7.26.7 + '@rc-component/color-picker': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@rc-component/mutate-observer': 1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@rc-component/qrcode': 1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@rc-component/tour': 1.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + copy-to-clipboard: 3.3.3 + dayjs: 1.11.13 + rc-cascader: 3.33.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-checkbox: 3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-collapse: 3.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-dialog: 9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-drawer: 7.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-dropdown: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-field-form: 2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-image: 7.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-input: 1.7.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-input-number: 9.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-mentions: 2.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-menu: 9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-notification: 5.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-pagination: 5.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-picker: 4.9.2(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-progress: 4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-rate: 2.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-segmented: 2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-select: 14.16.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-slider: 11.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-steps: 6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-switch: 4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-table: 7.50.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tabs: 15.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-textarea: 1.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tooltip: 6.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tree: 5.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tree-select: 5.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-upload: 4.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + scroll-into-view-if-needed: 3.1.0 + throttle-debounce: 5.0.2 + transitivePeerDependencies: + - date-fns + - luxon + - moment + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + aptos@1.21.0: + dependencies: + '@aptos-labs/aptos-client': 0.1.1 + '@noble/hashes': 1.3.3 + '@scure/bip39': 1.2.1 + eventemitter3: 5.0.1 + form-data: 4.0.0 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - debug + + archiver-utils@5.0.2: + dependencies: + glob: 10.4.5 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.17.21 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + + archiver@7.0.1: + dependencies: + archiver-utils: 5.0.2 + async: 3.2.6 + buffer-crc32: 1.0.0 + readable-stream: 4.7.0 + readdir-glob: 1.1.3 + tar-stream: 3.1.7 + zip-stream: 6.0.1 + + arg@5.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + aria-hidden@1.2.4: + dependencies: + tslib: 2.8.1 + + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + is-array-buffer: 3.0.5 + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + is-string: 1.1.1 + + array-union@1.0.2: + dependencies: + array-uniq: 1.0.3 + + array-union@2.1.0: {} + + array-uniq@1.0.3: {} + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.0.2 + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.0.2 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.0.2 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.0.2 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + is-array-buffer: 3.0.5 + + ast-kit@1.4.0: + dependencies: + '@babel/parser': 7.26.8 + pathe: 2.0.2 + + ast-types-flow@0.0.8: {} + + ast-walker-scope@0.6.2: + dependencies: + '@babel/parser': 7.26.8 + ast-kit: 1.4.0 + + astral-regex@2.0.0: {} + + async-function@1.0.0: {} + + async-sema@3.1.1: {} + + async@2.6.4: + dependencies: + lodash: 4.17.21 + + async@3.2.6: {} + + asynckit@0.4.0: {} + + at-least-node@1.0.0: {} + + autoprefixer@10.4.20(postcss@8.5.1): + dependencies: + browserslist: 4.24.4 + caniuse-lite: 1.0.30001699 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + axe-core@4.10.2: {} + + axios@1.7.4: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + axios@1.7.9: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + axobject-query@4.1.0: {} + + b4a@1.6.7: {} + + babel-jest@29.7.0(@babel/core@7.26.8): + dependencies: + '@babel/core': 7.26.8 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.26.8) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.26.5 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-jest-hoist@29.6.3: + dependencies: + '@babel/template': 7.26.8 + '@babel/types': 7.26.8 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.6 + + babel-plugin-macros@3.1.0: + dependencies: + '@babel/runtime': 7.26.7 + cosmiconfig: 7.1.0 + resolve: 1.22.10 + + babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.8): + dependencies: + '@babel/core': 7.26.8 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.8) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.8) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.8) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.8) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.8) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.8) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.8) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.8) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.8) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.8) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.8) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.8) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.8) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.8) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.8) + + babel-preset-jest@29.6.3(@babel/core@7.26.8): + dependencies: + '@babel/core': 7.26.8 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.8) + + balanced-match@1.0.2: {} + + bare-events@2.5.4: + optional: true + + base-x@3.0.10: + dependencies: + safe-buffer: 5.2.1 + + base-x@4.0.0: {} + + base-x@5.0.0: {} + + base64-js@1.5.1: {} + + bech32@1.1.4: {} + + bech32@2.0.0: {} + + better-path-resolve@1.0.0: + dependencies: + is-windows: 1.0.2 + + bigint-buffer@1.1.5: + dependencies: + bindings: 1.5.0 + + bignumber.js@9.1.2: {} + + binary-extensions@2.3.0: {} + + binary-layout@1.0.3: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + + bip39@3.1.0: + dependencies: + '@noble/hashes': 1.7.1 + + birpc@0.2.19: {} + + blakejs@1.2.1: {} + + bn.js@4.12.1: {} + + bn.js@5.2.1: {} + + boolbase@1.0.0: {} + + borsh@0.7.0: + dependencies: + bn.js: 5.2.1 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + brorand@1.1.0: {} + + browser-headers@0.4.1: {} + + browserify-aes@1.2.0: + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.6 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + browserslist@4.24.4: + dependencies: + caniuse-lite: 1.0.30001699 + electron-to-chromium: 1.5.96 + node-releases: 2.0.19 + update-browserslist-db: 1.1.2(browserslist@4.24.4) + + bs-logger@0.2.6: + dependencies: + fast-json-stable-stringify: 2.1.0 + + bs58@4.0.1: + dependencies: + base-x: 3.0.10 + + bs58@5.0.0: + dependencies: + base-x: 4.0.0 + + bs58@6.0.0: + dependencies: + base-x: 5.0.0 + + bs58check@2.1.2: + dependencies: + bs58: 4.0.1 + create-hash: 1.2.0 + safe-buffer: 5.2.1 + + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + + buffer-crc32@1.0.0: {} + + buffer-from@1.1.2: {} + + buffer-layout@1.2.2: {} + + buffer-xor@1.0.3: {} + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bufferutil@4.0.9: + dependencies: + node-gyp-build: 4.8.4 + optional: true + + builtin-modules@3.3.0: {} + + builtins@5.1.0: + dependencies: + semver: 7.7.1 + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + + bundle-require@3.1.2(esbuild@0.14.54): + dependencies: + esbuild: 0.14.54 + load-tsconfig: 0.2.5 + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + + c12@2.0.1(magicast@0.3.5): + dependencies: + chokidar: 4.0.3 + confbox: 0.1.8 + defu: 6.1.4 + dotenv: 16.4.7 + giget: 1.2.4 + jiti: 2.4.2 + mlly: 1.7.4 + ohash: 1.1.4 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.1 + rc9: 2.1.2 + optionalDependencies: + magicast: 0.3.5 + + cac@6.7.14: {} + + cache-content-type@1.0.1: + dependencies: + mime-types: 2.1.35 + ylru: 1.4.0 + + cacheable-lookup@5.0.4: {} + + cacheable-request@7.0.4: + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + call-bind-apply-helpers@1.0.1: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + get-intrinsic: 1.2.7 + set-function-length: 1.2.2 + + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.7 + + callsites@3.1.0: {} + + camelcase-css@2.0.1: {} + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-api@3.0.0: + dependencies: + browserslist: 4.24.4 + caniuse-lite: 1.0.30001699 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + + caniuse-lite@1.0.30001699: {} + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.4.1: {} + + change-case@5.4.4: {} + + char-regex@1.0.2: {} + + chardet@0.7.0: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.1 + + chownr@2.0.0: {} + + chownr@3.0.0: {} + + chrome-trace-event@1.0.4: {} + + ci-info@3.9.0: {} + + cipher-base@1.0.6: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + citty@0.1.6: + dependencies: + consola: 3.4.0 + + cjs-module-lexer@1.4.3: {} + + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + + classnames@2.5.1: {} + + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + client-only@0.0.1: {} + + clipboardy@4.0.0: + dependencies: + execa: 8.0.1 + is-wsl: 3.1.0 + is64bit: 2.0.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-response@1.0.3: + dependencies: + mimic-response: 1.0.1 + + clsx@2.1.1: {} + + cluster-key-slot@1.1.2: {} + + co@4.6.0: {} + + collect-v8-coverage@1.0.2: {} + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + colord@2.9.3: {} + + colorette@1.4.0: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@12.1.0: {} + + commander@2.20.3: {} + + commander@4.1.1: {} + + commander@6.2.1: {} + + commander@7.2.0: {} + + commander@8.3.0: {} + + commander@9.5.0: + optional: true + + commondir@1.0.1: {} + + compatx@0.1.8: {} + + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + + compute-scroll-into-view@3.1.1: {} + + computeds@0.0.1: {} + + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + consola@3.4.0: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + convert-source-map@1.9.0: {} + + convert-source-map@2.0.0: {} + + cookie-es@1.2.2: {} + + cookies@0.9.1: + dependencies: + depd: 2.0.0 + keygrip: 1.1.0 + + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + + copy-to-clipboard@3.3.3: + dependencies: + toggle-selection: 1.0.6 + + core-util-is@1.0.3: {} + + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.1 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + + cosmjs-types@0.9.0: {} + + crc-32@1.2.2: {} + + crc32-stream@6.0.0: + dependencies: + crc-32: 1.2.2 + readable-stream: 4.7.0 + + create-hash@1.2.0: + dependencies: + cipher-base: 1.0.6 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + + create-hmac@1.1.7: + dependencies: + cipher-base: 1.0.6 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + create-jest@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + croner@9.0.0: {} + + cronstrue@2.54.0: {} + + cross-fetch@3.2.0: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crossws@0.3.3: + dependencies: + uncrypto: 0.1.3 + + crypto-hash@1.3.0: {} + + crypto-js@4.2.0: {} + + css-declaration-sorter@7.2.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.1 + + css-what@6.1.0: {} + + cssesc@3.0.0: {} + + cssnano-preset-default@7.0.6(postcss@8.5.1): + dependencies: + browserslist: 4.24.4 + css-declaration-sorter: 7.2.0(postcss@8.5.1) + cssnano-utils: 5.0.0(postcss@8.5.1) + postcss: 8.5.1 + postcss-calc: 10.1.1(postcss@8.5.1) + postcss-colormin: 7.0.2(postcss@8.5.1) + postcss-convert-values: 7.0.4(postcss@8.5.1) + postcss-discard-comments: 7.0.3(postcss@8.5.1) + postcss-discard-duplicates: 7.0.1(postcss@8.5.1) + postcss-discard-empty: 7.0.0(postcss@8.5.1) + postcss-discard-overridden: 7.0.0(postcss@8.5.1) + postcss-merge-longhand: 7.0.4(postcss@8.5.1) + postcss-merge-rules: 7.0.4(postcss@8.5.1) + postcss-minify-font-values: 7.0.0(postcss@8.5.1) + postcss-minify-gradients: 7.0.0(postcss@8.5.1) + postcss-minify-params: 7.0.2(postcss@8.5.1) + postcss-minify-selectors: 7.0.4(postcss@8.5.1) + postcss-normalize-charset: 7.0.0(postcss@8.5.1) + postcss-normalize-display-values: 7.0.0(postcss@8.5.1) + postcss-normalize-positions: 7.0.0(postcss@8.5.1) + postcss-normalize-repeat-style: 7.0.0(postcss@8.5.1) + postcss-normalize-string: 7.0.0(postcss@8.5.1) + postcss-normalize-timing-functions: 7.0.0(postcss@8.5.1) + postcss-normalize-unicode: 7.0.2(postcss@8.5.1) + postcss-normalize-url: 7.0.0(postcss@8.5.1) + postcss-normalize-whitespace: 7.0.0(postcss@8.5.1) + postcss-ordered-values: 7.0.1(postcss@8.5.1) + postcss-reduce-initial: 7.0.2(postcss@8.5.1) + postcss-reduce-transforms: 7.0.0(postcss@8.5.1) + postcss-svgo: 7.0.1(postcss@8.5.1) + postcss-unique-selectors: 7.0.3(postcss@8.5.1) + + cssnano-utils@5.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + + cssnano@7.0.6(postcss@8.5.1): + dependencies: + cssnano-preset-default: 7.0.6(postcss@8.5.1) + lilconfig: 3.1.3 + postcss: 8.5.1 + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + + csstype@3.1.3: {} + + damerau-levenshtein@1.0.8: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + dayjs@1.11.13: {} + + db0@0.2.3: {} + + de-indent@1.0.2: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.4.0(supports-color@9.4.0): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 9.4.0 + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + dedent@1.5.3(babel-plugin-macros@3.1.0): + optionalDependencies: + babel-plugin-macros: 3.1.0 + + deep-equal@1.0.1: {} + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + + defer-to-connect@2.0.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-lazy-prop@2.0.0: {} + + define-lazy-prop@3.0.0: {} + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + defu@6.1.4: {} + + delay@5.0.0: {} + + delayed-stream@1.0.0: {} + + delegates@1.0.0: {} + + denque@2.1.0: {} + + depd@1.1.2: {} + + depd@2.0.0: {} + + destr@2.0.3: {} + + destroy@1.2.0: {} + + detect-browser@5.3.0: {} + + detect-indent@6.1.0: {} + + detect-libc@1.0.3: {} + + detect-libc@2.0.3: {} + + detect-newline@3.1.0: {} + + detect-node-es@1.1.0: {} + + devalue@5.1.1: {} + + didyoumean@1.2.2: {} + + diff-sequences@29.6.3: {} + + diff@7.0.0: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dlv@1.1.3: {} + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dom-helpers@5.2.1: + dependencies: + '@babel/runtime': 7.26.7 + csstype: 3.1.3 + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + + dot-prop@9.0.0: + dependencies: + type-fest: 4.34.1 + + dotenv@16.0.3: {} + + dotenv@16.4.7: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + duplexer@0.1.2: {} + + eastasianwidth@0.2.0: {} + + ed2curve@0.3.0: + dependencies: + tweetnacl: 1.0.3 + + ee-first@1.1.1: {} + + ejs@3.1.10: + dependencies: + jake: 10.9.2 + + electron-to-chromium@1.5.96: {} + + elliptic@6.6.1: + dependencies: + bn.js: 4.12.1 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + email-addresses@5.0.0: {} + + emittery@0.13.1: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + enhanced-resolve@5.18.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + + entities@4.5.0: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + error-stack-parser-es@0.1.5: {} + + errx@0.1.0: {} + + es-abstract@1.23.9: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.18 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-set-tostringtag: 2.1.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.7 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + safe-array-concat: 1.1.3 + + es-module-lexer@1.6.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + es6-promise@4.2.8: {} + + es6-promisify@5.0.0: + dependencies: + es6-promise: 4.2.8 + + esbuild-android-64@0.14.54: + optional: true + + esbuild-android-arm64@0.14.54: + optional: true + + esbuild-darwin-64@0.14.54: + optional: true + + esbuild-darwin-arm64@0.14.54: + optional: true + + esbuild-freebsd-64@0.14.54: + optional: true + + esbuild-freebsd-arm64@0.14.54: + optional: true + + esbuild-linux-32@0.14.54: + optional: true + + esbuild-linux-64@0.14.54: + optional: true + + esbuild-linux-arm64@0.14.54: + optional: true + + esbuild-linux-arm@0.14.54: + optional: true + + esbuild-linux-mips64le@0.14.54: + optional: true + + esbuild-linux-ppc64le@0.14.54: + optional: true + + esbuild-linux-riscv64@0.14.54: + optional: true + + esbuild-linux-s390x@0.14.54: + optional: true + + esbuild-netbsd-64@0.14.54: + optional: true + + esbuild-openbsd-64@0.14.54: + optional: true + + esbuild-sunos-64@0.14.54: + optional: true + + esbuild-windows-32@0.14.54: + optional: true + + esbuild-windows-64@0.14.54: + optional: true + + esbuild-windows-arm64@0.14.54: + optional: true + + esbuild@0.14.54: + optionalDependencies: + '@esbuild/linux-loong64': 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + esbuild@0.24.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-config-next@13.0.0(eslint@7.32.0)(typescript@4.9.5): + dependencies: + '@next/eslint-plugin-next': 13.0.0 + '@rushstack/eslint-patch': 1.10.5 + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@4.9.5) + eslint: 7.32.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.31.0(eslint@7.32.0))(eslint@7.32.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5))(eslint-import-resolver-typescript@2.7.1)(eslint@7.32.0) + eslint-plugin-jsx-a11y: 6.10.2(eslint@7.32.0) + eslint-plugin-react: 7.31.8(eslint@7.32.0) + eslint-plugin-react-hooks: 4.6.2(eslint@7.32.0) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + + eslint-config-next@14.2.3(eslint@8.57.1)(typescript@5.7.3): + dependencies: + '@next/eslint-plugin-next': 14.2.3 + '@rushstack/eslint-patch': 1.10.5 + '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.7.3) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) + eslint-plugin-react: 7.37.4(eslint@8.57.1) + eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-config-prettier@8.10.0(eslint@7.32.0): + dependencies: + eslint: 7.32.0 + + eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0)(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) + eslint-plugin-n: 15.7.0(eslint@8.57.1) + eslint-plugin-promise: 6.6.0(eslint@8.57.1) + + eslint-config-turbo@2.4.4(eslint@7.32.0)(turbo@2.4.4): + dependencies: + eslint: 7.32.0 + eslint-plugin-turbo: 2.4.4(eslint@7.32.0)(turbo@2.4.4) + turbo: 2.4.4 + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.1 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.31.0(eslint@7.32.0))(eslint@7.32.0): + dependencies: + debug: 4.4.0(supports-color@9.4.0) + eslint: 7.32.0 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5))(eslint-import-resolver-typescript@2.7.1)(eslint@7.32.0) + glob: 7.2.3 + is-glob: 4.0.3 + resolve: 1.22.10 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.0(supports-color@9.4.0) + enhanced-resolve: 5.18.1 + eslint: 8.57.1 + fast-glob: 3.3.3 + get-tsconfig: 4.10.0 + is-bun-module: 1.3.0 + is-glob: 4.0.3 + stable-hash: 0.0.4 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.0(supports-color@9.4.0) + enhanced-resolve: 5.18.1 + eslint: 8.57.1 + fast-glob: 3.3.3 + get-tsconfig: 4.10.0 + is-bun-module: 1.3.0 + is-glob: 4.0.3 + stable-hash: 0.0.4 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.31.0(eslint@7.32.0))(eslint@7.32.0))(eslint@7.32.0): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@4.9.5) + eslint: 7.32.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.31.0(eslint@7.32.0))(eslint@7.32.0) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.3) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.7.3) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1) + transitivePeerDependencies: + - supports-color + + eslint-plugin-es@3.0.1(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + + eslint-plugin-es@4.1.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5))(eslint-import-resolver-typescript@2.7.1)(eslint@7.32.0): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 7.32.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.31.0(eslint@7.32.0))(eslint@7.32.0))(eslint@7.32.0) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@4.9.5) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.7.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.7.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.2(eslint@7.32.0): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.10.2 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 7.32.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 + + eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.10.2 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.57.1 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 + + eslint-plugin-n@15.7.0(eslint@8.57.1): + dependencies: + builtins: 5.1.0 + eslint: 8.57.1 + eslint-plugin-es: 4.1.0(eslint@8.57.1) + eslint-utils: 3.0.0(eslint@8.57.1) + ignore: 5.3.2 + is-core-module: 2.16.1 + minimatch: 3.1.2 + resolve: 1.22.10 + semver: 7.7.1 + + eslint-plugin-node@11.1.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + eslint-plugin-es: 3.0.1(eslint@8.57.1) + eslint-utils: 2.1.0 + ignore: 5.3.2 + minimatch: 3.1.2 + resolve: 1.22.10 + semver: 6.3.1 + + eslint-plugin-promise@6.6.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-plugin-react-hooks@4.6.2(eslint@7.32.0): + dependencies: + eslint: 7.32.0 + + eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-plugin-react@7.31.8(eslint@7.32.0): + dependencies: + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.3 + doctrine: 2.1.0 + eslint: 7.32.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.hasown: 1.1.4 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + + eslint-plugin-react@7.37.4(eslint@8.57.1): + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.1 + eslint: 8.57.1 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + + eslint-plugin-turbo@2.4.4(eslint@7.32.0)(turbo@2.4.4): + dependencies: + dotenv: 16.0.3 + eslint: 7.32.0 + turbo: 2.4.4 + + eslint-plugin-unicorn@44.0.2(eslint@8.57.1): + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + ci-info: 3.9.0 + clean-regexp: 1.0.0 + eslint: 8.57.1 + eslint-utils: 3.0.0(eslint@8.57.1) + esquery: 1.6.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + safe-regex: 2.1.1 + semver: 7.7.1 + strip-indent: 3.0.0 + + eslint-plugin-vue@9.32.0(eslint@8.57.1): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + eslint: 8.57.1 + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.2 + semver: 7.7.1 + vue-eslint-parser: 9.4.3(eslint@8.57.1) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-utils@2.1.0: + dependencies: + eslint-visitor-keys: 1.3.0 + + eslint-utils@3.0.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 2.1.0 + + eslint-visitor-keys@1.3.0: {} + + eslint-visitor-keys@2.1.0: {} + + eslint-visitor-keys@3.4.3: {} + + eslint-webpack-plugin@4.2.0(eslint@8.57.1)(webpack@5.97.1): + dependencies: + '@types/eslint': 8.56.12 + eslint: 8.57.1 + jest-worker: 29.7.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + schema-utils: 4.3.0 + webpack: 5.97.1 + + eslint@7.32.0: + dependencies: + '@babel/code-frame': 7.12.11 + '@eslint/eslintrc': 0.4.3 + '@humanwhocodes/config-array': 0.5.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0(supports-color@9.4.0) + doctrine: 3.0.0 + enquirer: 2.4.1 + escape-string-regexp: 4.0.0 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + eslint-visitor-keys: 2.1.0 + espree: 7.3.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 5.1.2 + globals: 13.24.0 + ignore: 4.0.6 + import-fresh: 3.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + progress: 2.0.3 + regexpp: 3.2.0 + semver: 7.7.1 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + table: 6.9.0 + text-table: 0.2.0 + v8-compile-cache: 2.4.0 + transitivePeerDependencies: + - supports-color + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.1 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.3.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0(supports-color@9.4.0) + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@7.3.1: + dependencies: + acorn: 7.4.1 + acorn-jsx: 5.3.2(acorn@7.4.1) + eslint-visitor-keys: 1.3.0 + + espree@9.6.1: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.6 + + esutils@2.0.3: {} + + etag@1.8.1: {} + + eth-rpc-errors@4.0.3: + dependencies: + fast-safe-stringify: 2.1.1 + + ethereum-cryptography@0.1.3: + dependencies: + '@types/pbkdf2': 3.1.2 + '@types/secp256k1': 4.0.6 + blakejs: 1.2.1 + browserify-aes: 1.2.0 + bs58check: 2.1.2 + create-hash: 1.2.0 + create-hmac: 1.1.7 + hash.js: 1.1.7 + keccak: 3.0.4 + pbkdf2: 3.1.2 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + scrypt-js: 3.0.1 + secp256k1: 4.0.4 + setimmediate: 1.0.5 + + ethereumjs-abi@0.6.8: + dependencies: + bn.js: 4.12.1 + ethereumjs-util: 6.2.1 + + ethereumjs-util@6.2.1: + dependencies: + '@types/bn.js': 4.11.6 + bn.js: 4.12.1 + create-hash: 1.2.0 + elliptic: 6.6.1 + ethereum-cryptography: 0.1.3 + ethjs-util: 0.1.6 + rlp: 2.2.7 + + ethereumjs-util@7.1.5: + dependencies: + '@types/bn.js': 5.1.6 + bn.js: 5.2.1 + create-hash: 1.2.0 + ethereum-cryptography: 0.1.3 + rlp: 2.2.7 + + ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10): + 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(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + ethjs-util@0.1.6: + dependencies: + is-hex-prefixed: 1.0.0 + strip-hex-prefix: 1.0.0 + + event-target-shim@5.0.1: {} + + eventemitter3@4.0.7: {} + + eventemitter3@5.0.1: {} + + events@3.3.0: {} + + evp_bytestokey@1.0.3: + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@7.2.0: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + exit@0.1.2: {} + + expect@29.7.0: + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + + extendable-error@0.1.7: {} + + extension-port-stream@2.1.1: + dependencies: + webextension-polyfill: 0.12.0 + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + externality@1.0.2: + dependencies: + enhanced-resolve: 5.18.1 + mlly: 1.7.4 + pathe: 1.1.2 + ufo: 1.5.3 + + eyes@0.1.8: {} + + fast-deep-equal@2.0.1: {} + + fast-deep-equal@3.1.3: {} + + fast-fifo@1.3.2: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-npm-meta@0.2.2: {} + + fast-safe-stringify@2.1.1: {} + + fast-stable-stringify@1.0.0: {} + + fast-uri@3.0.6: {} + + fastestsmallesttextencoderdecoder@1.0.22: {} + + fastq@1.19.0: + dependencies: + reusify: 1.0.4 + + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + + fdir@6.4.3(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + + fewcha-plugin-wallet-adapter@0.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@aptos-labs/wallet-adapter-core': 2.2.0 + '@fewcha/web3': 0.1.38(bufferutil@4.0.9)(utf-8-validate@5.0.10) + aptos: 1.21.0 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - utf-8-validate + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + file-uri-to-path@1.0.0: {} + + filelist@1.0.4: + dependencies: + minimatch: 5.1.6 + + filename-reserved-regex@2.0.0: {} + + filenamify@4.3.0: + dependencies: + filename-reserved-regex: 2.0.0 + strip-outer: 1.0.1 + trim-repeated: 1.0.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-cache-dir@3.3.2: + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + + find-root@1.1.0: {} + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.2 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.2: {} + + follow-redirects@1.15.9: {} + + for-each@0.3.4: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + fraction.js@4.3.7: {} + + fresh@0.5.2: {} + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 + + functional-red-black-tree@1.0.1: {} + + functions-have-names@1.2.3: {} + + fuse.js@7.1.0: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.2.7: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-nonce@1.0.1: {} + + get-package-type@0.1.0: {} + + get-port-please@3.1.2: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@5.2.0: + dependencies: + pump: 3.0.2 + + get-stream@6.0.1: {} + + get-stream@8.0.1: {} + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + + get-tsconfig@4.10.0: + dependencies: + resolve-pkg-maps: 1.0.0 + + gh-pages@5.0.0: + dependencies: + async: 3.2.6 + commander: 2.20.3 + email-addresses: 5.0.0 + filenamify: 4.3.0 + find-cache-dir: 3.3.2 + fs-extra: 8.1.0 + globby: 6.1.0 + + giget@1.2.4: + dependencies: + citty: 0.1.6 + consola: 3.4.0 + defu: 6.1.4 + node-fetch-native: 1.6.6 + nypm: 0.5.2 + ohash: 1.1.4 + pathe: 2.0.2 + tar: 6.2.1 + + git-config-path@2.0.0: {} + + git-up@8.0.0: + dependencies: + is-ssh: 1.4.0 + parse-url: 9.2.0 + + git-url-parse@16.0.0: + dependencies: + git-up: 8.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@10.3.10: + dependencies: + foreground-child: 3.3.0 + jackspeak: 2.3.6 + minimatch: 9.0.5 + minipass: 7.1.2 + path-scurry: 1.11.1 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@7.1.7: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + global-directory@4.0.1: + dependencies: + ini: 4.1.1 + + globals@11.12.0: {} + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + globby@14.1.0: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.3 + ignore: 7.0.3 + path-type: 6.0.0 + slash: 5.1.0 + unicorn-magic: 0.3.0 + + globby@6.1.0: + dependencies: + array-union: 1.0.2 + glob: 7.2.3 + object-assign: 4.1.1 + pify: 2.3.0 + pinkie-promise: 2.0.1 + + google-fonts-helper@3.6.0: + dependencies: + deepmerge: 4.3.1 + hookable: 5.5.3 + ofetch: 1.4.1 + ufo: 1.5.3 + + google-protobuf@3.21.4: {} + + gopd@1.2.0: {} + + got@11.8.6: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + gql.tada@1.8.10(graphql@16.10.0)(typescript@5.7.3): + dependencies: + '@0no-co/graphql.web': 1.1.1(graphql@16.10.0) + '@0no-co/graphqlsp': 1.12.16(graphql@16.10.0)(typescript@5.7.3) + '@gql.tada/cli-utils': 1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.7.3))(graphql@16.10.0)(typescript@5.7.3) + '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - '@gql.tada/svelte-support' + - '@gql.tada/vue-support' + - graphql + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + graphql-request@7.1.2(graphql@16.10.0): + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) + graphql: 16.10.0 + + graphql-tag@2.12.6(graphql@16.10.0): + dependencies: + graphql: 16.10.0 + tslib: 2.8.1 + + graphql@16.10.0: {} + + gzip-size@7.0.0: + dependencies: + duplexer: 0.1.2 + + h3@1.15.0: + dependencies: + cookie-es: 1.2.2 + crossws: 0.3.3 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.0 + ohash: 1.1.4 + radix3: 1.1.2 + ufo: 1.5.4 + uncrypto: 0.1.3 + + has-bigints@1.1.0: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hash-base@3.1.0: + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + safe-buffer: 5.2.1 + + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + hi-base32@0.5.1: {} + + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + + hookable@5.5.3: {} + + hosted-git-info@2.8.9: {} + + html-escaper@2.0.2: {} + + html-tags@3.3.1: {} + + http-assert@1.5.0: + dependencies: + deep-equal: 1.0.1 + http-errors: 1.8.1 + + http-cache-semantics@4.1.1: {} + + http-errors@1.6.3: + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + + http-errors@1.8.1: + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-shutdown@1.2.2: {} + + http-status-codes@2.3.0: {} + + http2-wrapper@1.0.3: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + https-proxy-agent@7.0.6(supports-color@9.4.0): + dependencies: + agent-base: 7.1.3 + debug: 4.4.0(supports-color@9.4.0) + transitivePeerDependencies: + - supports-color + + httpxy@0.1.7: {} + + human-id@1.0.2: {} + + human-signals@2.1.0: {} + + human-signals@4.3.1: {} + + human-signals@5.0.0: {} + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + idb-keyval@6.2.1: + optional: true + + ieee754@1.2.1: {} + + ignore@4.0.6: {} + + ignore@5.3.2: {} + + ignore@7.0.3: {} + + image-meta@0.2.1: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-lazy@4.0.0: {} + + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + impound@0.2.0(rollup@4.34.6): + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + mlly: 1.7.4 + pathe: 1.1.2 + unenv: 1.10.0 + unplugin: 1.16.1 + transitivePeerDependencies: + - rollup + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + index-to-position@0.1.2: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.3: {} + + inherits@2.0.4: {} + + ini@1.3.8: {} + + ini@4.1.1: {} + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + + interpret@1.4.0: {} + + ioredis@5.5.0: + dependencies: + '@ioredis/commands': 1.2.0 + cluster-key-slot: 1.1.2 + debug: 4.4.0(supports-color@9.4.0) + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + + iron-webcrypto@1.2.1: {} + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + + is-arrayish@0.2.1: {} + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.3 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 + + is-bun-module@1.3.0: + dependencies: + semver: 7.7.1 + + is-callable@1.2.7: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-docker@2.2.1: {} + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.3 + + is-fullwidth-code-point@3.0.0: {} + + is-generator-fn@2.1.0: {} + + is-generator-function@1.1.0: + dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hex-prefixed@1.0.0: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-installed-globally@1.0.0: + dependencies: + global-directory: 4.0.1 + is-path-inside: 4.0.0 + + is-map@2.0.3: {} + + is-module@1.0.0: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-path-inside@4.0.0: {} + + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.6 + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.3 + + is-ssh@1.4.0: + dependencies: + protocols: 2.0.1 + + is-stream@2.0.1: {} + + is-stream@3.0.0: {} + + is-string@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-subdir@1.2.0: + dependencies: + better-path-resolve: 1.0.0 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.3 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.18 + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.3 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + + is-what@4.1.16: {} + + is-windows@1.0.2: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + is64bit@2.0.0: + dependencies: + system-architecture: 0.1.0 + + isarray@1.0.0: {} + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + dependencies: + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.26.8 + '@babel/parser': 7.26.8 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-instrument@6.0.3: + dependencies: + '@babel/core': 7.26.8 + '@babel/parser': 7.26.8 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.7.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.4.0(supports-color@9.4.0) + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.1.7: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + iterator.prototype@1.1.5: + dependencies: + define-data-property: 1.1.4 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + has-symbols: 1.1.0 + set-function-name: 2.0.2 + + jackspeak@2.3.6: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jake@10.9.2: + dependencies: + async: 3.2.6 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + + jayson@3.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@types/connect': 3.4.38 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + JSONStream: 1.3.5 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + json-stringify-safe: 5.0.1 + lodash: 4.17.21 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + jayson@4.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@types/connect': 3.4.38 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + JSONStream: 1.3.5 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + json-stringify-safe: 5.0.1 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + jest-changed-files@29.7.0: + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + + jest-circus@29.7.0(babel-plugin-macros@3.1.0): + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.17 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.5.3(babel-plugin-macros@3.1.0) + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.1.0 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-cli@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest-config@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0): + dependencies: + '@babel/core': 7.26.8 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.8) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.17.17 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-diff@29.7.0: + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-docblock@29.7.0: + dependencies: + detect-newline: 3.1.0 + + jest-each@29.7.0: + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + + jest-environment-node@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.17 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-haste-map@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 20.17.17 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-leak-detector@29.7.0: + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-matcher-utils@29.7.0: + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.26.2 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.17.17 + jest-util: 29.7.0 + + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + optionalDependencies: + jest-resolve: 29.7.0 + + jest-regex-util@29.6.3: {} + + jest-resolve-dependencies@29.7.0: + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + jest-resolve@29.7.0: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.10 + resolve.exports: 2.0.3 + slash: 3.0.0 + + jest-runner@29.7.0: + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.17 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + + jest-runtime@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.17 + chalk: 4.1.2 + cjs-module-lexer: 1.4.3 + collect-v8-coverage: 1.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + + jest-snapshot@29.7.0: + dependencies: + '@babel/core': 7.26.8 + '@babel/generator': 7.26.8 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.8) + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.8) + '@babel/types': 7.26.8 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.8) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.7.1 + transitivePeerDependencies: + - supports-color + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.17.17 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@29.7.0: + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + + jest-watcher@29.7.0: + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.17.17 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + + jest-worker@27.5.1: + dependencies: + '@types/node': 20.17.17 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest-worker@29.7.0: + dependencies: + '@types/node': 20.17.17 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jiti@1.21.7: {} + + jiti@2.4.2: {} + + jju@1.4.0: {} + + jose@5.10.0: {} + + joycon@3.1.1: {} + + js-base64@3.7.7: {} + + js-levenshtein@1.1.6: {} + + js-sha256@0.9.0: {} + + js-sha3@0.8.0: {} + + js-sha512@0.8.0: {} + + js-tokens@4.0.0: {} + + js-tokens@9.0.1: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsesc@3.1.0: {} + + json-bigint@1.0.0: + dependencies: + bignumber.js: 9.1.2 + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-rpc-engine@6.1.0: + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + eth-rpc-errors: 4.0.3 + + json-rpc-middleware-stream@3.0.0: + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + readable-stream: 2.3.8 + + json-rpc-protocol@0.13.2: + dependencies: + make-error: 1.3.6 + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json-stringify-safe@5.0.1: {} + + json2mq@0.2.0: + dependencies: + string-convert: 0.2.1 + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonparse@1.3.1: {} + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + + jwt-decode@4.0.0: {} + + keccak256@1.0.6: + dependencies: + bn.js: 5.2.1 + buffer: 6.0.3 + keccak: 3.0.4 + + keccak@3.0.4: + dependencies: + node-addon-api: 2.0.2 + node-gyp-build: 4.8.4 + readable-stream: 3.6.2 + + keygrip@1.1.0: + dependencies: + tsscmp: 1.0.6 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kleur@3.0.3: {} + + klona@2.0.6: {} + + knitwork@1.2.0: {} + + koa-compose@4.1.0: {} + + koa-convert@2.0.0: + dependencies: + co: 4.6.0 + koa-compose: 4.1.0 + + koa-send@5.0.1: + dependencies: + debug: 4.4.0(supports-color@9.4.0) + http-errors: 1.8.1 + resolve-path: 1.4.0 + transitivePeerDependencies: + - supports-color + + koa-static@5.0.0: + dependencies: + debug: 3.2.7 + koa-send: 5.0.1 + transitivePeerDependencies: + - supports-color + + koa@2.15.3: + dependencies: + accepts: 1.3.8 + cache-content-type: 1.0.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookies: 0.9.1 + debug: 4.4.0(supports-color@9.4.0) + delegates: 1.0.0 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + fresh: 0.5.2 + http-assert: 1.5.0 + http-errors: 1.8.1 + is-generator-function: 1.1.0 + koa-compose: 4.1.0 + koa-convert: 2.0.0 + on-finished: 2.4.1 + only: 0.0.2 + parseurl: 1.3.3 + statuses: 1.5.0 + type-is: 1.6.18 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + kolorist@1.8.0: {} + + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + + launch-editor@2.9.1: + dependencies: + picocolors: 1.1.1 + shell-quote: 1.8.2 + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + + leven@3.1.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + libsodium-sumo@0.7.15: {} + + libsodium-wrappers-sumo@0.7.15: + dependencies: + libsodium-sumo: 0.7.15 + + lilconfig@2.1.0: {} + + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + + listhen@1.9.0: + dependencies: + '@parcel/watcher': 2.5.1 + '@parcel/watcher-wasm': 2.5.1 + citty: 0.1.6 + clipboardy: 4.0.0 + consola: 3.4.0 + crossws: 0.3.3 + defu: 6.1.4 + get-port-please: 3.1.2 + h3: 1.15.0 + http-shutdown: 1.2.2 + jiti: 2.4.2 + mlly: 1.7.4 + node-forge: 1.3.1 + pathe: 1.1.2 + std-env: 3.8.0 + ufo: 1.5.4 + untun: 0.1.3 + uqr: 0.1.2 + + load-tsconfig@0.2.5: {} + + loader-runner@4.3.0: {} + + local-pkg@0.4.3: {} + + local-pkg@0.5.1: + dependencies: + mlly: 1.7.4 + pkg-types: 1.3.1 + + local-pkg@1.0.0: + dependencies: + mlly: 1.7.4 + pkg-types: 1.3.1 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.defaults@4.2.0: {} + + lodash.get@4.4.2: {} + + lodash.isarguments@3.1.0: {} + + lodash.isequal@4.5.0: {} + + lodash.memoize@4.1.2: {} + + lodash.merge@4.6.2: {} + + lodash.sortby@4.7.0: {} + + lodash.startcase@4.4.0: {} + + lodash.truncate@4.4.2: {} + + lodash.uniq@4.5.0: {} + + lodash@4.17.21: {} + + long@4.0.0: {} + + long@5.3.1: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lossless-json@1.0.5: {} + + lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + + lowercase-keys@2.0.0: {} + + lru-cache@10.4.3: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + lucide-react@0.383.0(react@18.3.1): + dependencies: + react: 18.3.1 + + lucide-vue-next@0.396.0(vue@3.5.13(typescript@5.7.3)): + dependencies: + vue: 3.5.13(typescript@5.7.3) + + magic-string-ast@0.7.0: + dependencies: + magic-string: 0.30.17 + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + magicast@0.3.5: + dependencies: + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 + source-map-js: 1.2.1 + + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + + make-dir@4.0.0: + dependencies: + semver: 7.7.1 + + make-error@1.3.6: {} + + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + + map-obj@4.3.0: {} + + math-intrinsics@1.1.0: {} + + md5.js@1.3.5: + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + mdn-data@2.0.28: {} + + mdn-data@2.0.30: {} + + media-typer@0.3.0: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + mime@3.0.0: {} + + mime@4.0.6: {} + + mimic-fn@2.1.0: {} + + mimic-fn@4.0.0: {} + + mimic-response@1.0.1: {} + + mimic-response@3.1.0: {} + + min-indent@1.0.1: {} + + minimalistic-assert@1.0.1: {} + + minimalistic-crypto-utils@1.0.1: {} + + minimatch@3.0.8: + dependencies: + brace-expansion: 1.1.11 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minipass@7.1.2: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + minizlib@3.0.1: + dependencies: + minipass: 7.1.2 + rimraf: 5.0.10 + + mitt@3.0.1: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mkdirp@1.0.4: {} + + mkdirp@3.0.1: {} + + mlly@1.7.4: + dependencies: + acorn: 8.14.0 + pathe: 2.0.2 + pkg-types: 1.3.1 + ufo: 1.5.4 + + mri@1.2.0: {} + + mrmime@2.0.0: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + muggle-string@0.3.1: {} + + muggle-string@0.4.1: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.8: {} + + nanoid@5.0.9: {} + + nanotar@0.2.0: {} + + natural-compare@1.4.0: {} + + negotiator@0.6.3: {} + + neo-async@2.6.2: {} + + next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + next@14.2.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@next/env': 14.2.24 + '@swc/helpers': 0.5.5 + busboy: 1.6.0 + caniuse-lite: 1.0.30001699 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.1(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 14.2.24 + '@next/swc-darwin-x64': 14.2.24 + '@next/swc-linux-arm64-gnu': 14.2.24 + '@next/swc-linux-arm64-musl': 14.2.24 + '@next/swc-linux-x64-gnu': 14.2.24 + '@next/swc-linux-x64-musl': 14.2.24 + '@next/swc-win32-arm64-msvc': 14.2.24 + '@next/swc-win32-ia32-msvc': 14.2.24 + '@next/swc-win32-x64-msvc': 14.2.24 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + nitropack@2.10.4(idb-keyval@6.2.1)(typescript@5.7.3): + dependencies: + '@cloudflare/kv-asset-handler': 0.3.4 + '@netlify/functions': 2.8.2 + '@rollup/plugin-alias': 5.1.1(rollup@4.34.6) + '@rollup/plugin-commonjs': 28.0.2(rollup@4.34.6) + '@rollup/plugin-inject': 5.0.5(rollup@4.34.6) + '@rollup/plugin-json': 6.1.0(rollup@4.34.6) + '@rollup/plugin-node-resolve': 15.3.1(rollup@4.34.6) + '@rollup/plugin-replace': 6.0.2(rollup@4.34.6) + '@rollup/plugin-terser': 0.4.4(rollup@4.34.6) + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + '@types/http-proxy': 1.17.16 + '@vercel/nft': 0.27.10(rollup@4.34.6) + archiver: 7.0.1 + c12: 2.0.1(magicast@0.3.5) + chokidar: 3.6.0 + citty: 0.1.6 + compatx: 0.1.8 + confbox: 0.1.8 + consola: 3.4.0 + cookie-es: 1.2.2 + croner: 9.0.0 + crossws: 0.3.3 + db0: 0.2.3 + defu: 6.1.4 + destr: 2.0.3 + dot-prop: 9.0.0 + esbuild: 0.24.2 + escape-string-regexp: 5.0.0 + etag: 1.8.1 + fs-extra: 11.3.0 + globby: 14.1.0 + gzip-size: 7.0.0 + h3: 1.15.0 + hookable: 5.5.3 + httpxy: 0.1.7 + ioredis: 5.5.0 + jiti: 2.4.2 + klona: 2.0.6 + knitwork: 1.2.0 + listhen: 1.9.0 + magic-string: 0.30.17 + magicast: 0.3.5 + mime: 4.0.6 + mlly: 1.7.4 + node-fetch-native: 1.6.6 + ofetch: 1.4.1 + ohash: 1.1.4 + openapi-typescript: 7.6.1(typescript@5.7.3) + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.1 + pretty-bytes: 6.1.1 + radix3: 1.1.2 + rollup: 4.34.6 + rollup-plugin-visualizer: 5.14.0(rollup@4.34.6) + scule: 1.3.0 + semver: 7.7.1 + serve-placeholder: 2.0.2 + serve-static: 1.16.2 + std-env: 3.8.0 + ufo: 1.5.4 + uncrypto: 0.1.3 + unctx: 2.4.1 + unenv: 1.10.0 + unimport: 3.14.6(rollup@4.34.6) + unstorage: 1.14.4(db0@0.2.3)(idb-keyval@6.2.1)(ioredis@5.5.0) + untyped: 1.5.2 + unwasm: 0.3.9 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/kv' + - aws4fetch + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - mysql2 + - rolldown + - sqlite3 + - supports-color + - typescript + - uploadthing + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 + + node-addon-api@2.0.2: {} + + node-addon-api@5.1.0: {} + + node-addon-api@7.1.1: {} + + node-fetch-native@1.6.6: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-forge@1.3.1: {} + + node-gyp-build@4.8.4: {} + + node-int64@0.4.0: {} + + node-mock-http@1.0.0: {} + + node-releases@2.0.19: {} + + nopt@8.1.0: + dependencies: + abbrev: 3.0.0 + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.10 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + normalize-url@6.1.0: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + nuxt@3.15.4(@parcel/watcher@2.5.1)(@types/node@22.7.5)(bufferutil@4.0.9)(db0@0.2.3)(eslint@8.57.1)(idb-keyval@6.2.1)(ioredis@5.5.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.6)(terser@5.38.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(yaml@2.7.0): + dependencies: + '@nuxt/cli': 3.21.1(magicast@0.3.5) + '@nuxt/devalue': 2.0.2 + '@nuxt/devtools': 1.7.0(bufferutil@4.0.9)(rollup@4.34.6)(utf-8-validate@5.0.10)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) + '@nuxt/kit': 3.15.4(magicast@0.3.5) + '@nuxt/schema': 3.15.4 + '@nuxt/telemetry': 2.6.4(magicast@0.3.5) + '@nuxt/vite-builder': 3.15.4(@types/node@22.7.5)(eslint@8.57.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.34.6)(terser@5.38.1)(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))(yaml@2.7.0) + '@unhead/dom': 1.11.18 + '@unhead/shared': 1.11.18 + '@unhead/ssr': 1.11.18 + '@unhead/vue': 1.11.18(vue@3.5.13(typescript@5.7.3)) + '@vue/shared': 3.5.13 + acorn: 8.14.0 + c12: 2.0.1(magicast@0.3.5) + chokidar: 4.0.3 + compatx: 0.1.8 + consola: 3.4.0 + cookie-es: 1.2.2 + defu: 6.1.4 + destr: 2.0.3 + devalue: 5.1.1 + errx: 0.1.0 + esbuild: 0.24.2 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + globby: 14.1.0 + h3: 1.15.0 + hookable: 5.5.3 + ignore: 7.0.3 + impound: 0.2.0(rollup@4.34.6) + jiti: 2.4.2 + klona: 2.0.6 + knitwork: 1.2.0 + magic-string: 0.30.17 + mlly: 1.7.4 + nanotar: 0.2.0 + nitropack: 2.10.4(idb-keyval@6.2.1)(typescript@5.7.3) + nypm: 0.5.2 + ofetch: 1.4.1 + ohash: 1.1.4 + pathe: 2.0.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.1 + radix3: 1.1.2 + scule: 1.3.0 + semver: 7.7.1 + std-env: 3.8.0 + strip-literal: 3.0.0 + tinyglobby: 0.2.10 + ufo: 1.5.4 + ultrahtml: 1.5.3 + uncrypto: 0.1.3 + unctx: 2.4.1 + unenv: 1.10.0 + unhead: 1.11.18 + unimport: 4.1.0 + unplugin: 2.1.2 + unplugin-vue-router: 0.11.2(rollup@4.34.6)(vue-router@4.5.0(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3)) + unstorage: 1.14.4(db0@0.2.3)(idb-keyval@6.2.1)(ioredis@5.5.0) + untyped: 1.5.2 + vue: 3.5.13(typescript@5.7.3) + vue-bundle-renderer: 2.1.1 + vue-devtools-stub: 0.1.0 + vue-router: 4.5.0(vue@3.5.13(typescript@5.7.3)) + optionalDependencies: + '@parcel/watcher': 2.5.1 + '@types/node': 22.7.5 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@biomejs/biome' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/kv' + - aws4fetch + - better-sqlite3 + - bufferutil + - db0 + - drizzle-orm + - encoding + - eslint + - idb-keyval + - ioredis + - less + - lightningcss + - magicast + - meow + - mysql2 + - optionator + - rolldown + - rollup + - sass + - sass-embedded + - sqlite3 + - stylelint + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - uploadthing + - utf-8-validate + - vite + - vls + - vti + - vue-tsc + - xml2js + - yaml + + nypm@0.4.1: + dependencies: + citty: 0.1.6 + consola: 3.4.0 + pathe: 1.1.2 + pkg-types: 1.3.1 + tinyexec: 0.3.2 + ufo: 1.5.4 + + nypm@0.5.2: + dependencies: + citty: 0.1.6 + consola: 3.4.0 + pathe: 2.0.2 + pkg-types: 1.3.1 + tinyexec: 0.3.2 + ufo: 1.5.4 + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + object-inspect@1.13.4: {} + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.entries@1.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + + object.hasown@1.1.4: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + ofetch@1.4.1: + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.6 + ufo: 1.5.4 + + ohash@1.1.4: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + only@0.0.2: {} + + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + + open@7.4.2: + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + openapi-typescript@7.6.1(typescript@5.7.3): + dependencies: + '@redocly/openapi-core': 1.28.5(supports-color@9.4.0) + ansi-colors: 4.1.3 + change-case: 5.4.4 + parse-json: 8.1.0 + supports-color: 9.4.0 + typescript: 5.7.3 + yargs-parser: 21.1.1 + + optimism@0.18.1: + dependencies: + '@wry/caches': 1.0.1 + '@wry/context': 0.7.4 + '@wry/trie': 0.5.0 + tslib: 2.8.1 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + os-tmpdir@1.0.2: {} + + outdent@0.5.0: {} + + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.2.7 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-cancelable@2.1.1: {} + + p-filter@2.1.0: + dependencies: + p-map: 2.1.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@2.1.0: {} + + p-try@2.2.0: {} + + package-json-from-dist@1.0.1: {} + + package-manager-detector@0.2.9: {} + + packrup@0.1.2: {} + + pako@2.1.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-git-config@3.0.0: + dependencies: + git-config-path: 2.0.0 + ini: 1.3.8 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.26.2 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-json@8.1.0: + dependencies: + '@babel/code-frame': 7.26.2 + index-to-position: 0.1.2 + type-fest: 4.34.1 + + parse-path@7.0.0: + dependencies: + protocols: 2.0.1 + + parse-url@9.2.0: + dependencies: + '@types/parse-path': 7.0.3 + parse-path: 7.0.0 + + parseurl@1.3.3: {} + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-to-regexp@6.3.0: {} + + path-type@4.0.0: {} + + path-type@6.0.0: {} + + pathe@1.1.2: {} + + pathe@2.0.2: {} + + pbkdf2@3.1.2: + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + perfect-debounce@1.0.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pify@2.3.0: {} + + pify@4.0.1: {} + + pinkie-promise@2.0.1: + dependencies: + pinkie: 2.0.4 + + pinkie@2.0.4: {} + + pirates@4.0.6: {} + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.2 + + pluralize@8.0.0: {} + + portfinder@1.0.32: + dependencies: + async: 2.6.4 + debug: 3.2.7 + mkdirp: 0.5.6 + transitivePeerDependencies: + - supports-color + + poseidon-lite@0.2.1: {} + + possible-typed-array-names@1.1.0: {} + + postcss-calc@10.1.1(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-selector-parser: 7.1.0 + postcss-value-parser: 4.2.0 + + postcss-colormin@7.0.2(postcss@8.5.1): + dependencies: + browserslist: 4.24.4 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-convert-values@7.0.4(postcss@8.5.1): + dependencies: + browserslist: 4.24.4 + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-discard-comments@7.0.3(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-selector-parser: 6.1.2 + + postcss-discard-duplicates@7.0.1(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + + postcss-discard-empty@7.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + + postcss-discard-overridden@7.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + + postcss-import@15.1.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.10 + + postcss-js@4.0.1(postcss@8.5.1): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.1 + + postcss-load-config@3.1.4(postcss@8.5.1): + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + optionalDependencies: + postcss: 8.5.1 + + postcss-load-config@4.0.2(postcss@8.5.1): + dependencies: + lilconfig: 3.1.3 + yaml: 2.7.0 + optionalDependencies: + postcss: 8.5.1 + + postcss-merge-longhand@7.0.4(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.4(postcss@8.5.1) + + postcss-merge-rules@7.0.4(postcss@8.5.1): + dependencies: + browserslist: 4.24.4 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.0(postcss@8.5.1) + postcss: 8.5.1 + postcss-selector-parser: 6.1.2 + + postcss-minify-font-values@7.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@7.0.0(postcss@8.5.1): + dependencies: + colord: 2.9.3 + cssnano-utils: 5.0.0(postcss@8.5.1) + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-minify-params@7.0.2(postcss@8.5.1): + dependencies: + browserslist: 4.24.4 + cssnano-utils: 5.0.0(postcss@8.5.1) + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-minify-selectors@7.0.4(postcss@8.5.1): + dependencies: + cssesc: 3.0.0 + postcss: 8.5.1 + postcss-selector-parser: 6.1.2 + + postcss-nested@6.2.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-selector-parser: 6.1.2 + + postcss-nesting@13.0.1(postcss@8.5.1): + dependencies: + '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.1 + postcss-selector-parser: 7.1.0 + + postcss-normalize-charset@7.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + + postcss-normalize-display-values@7.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@7.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@7.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@7.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@7.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@7.0.2(postcss@8.5.1): + dependencies: + browserslist: 4.24.4 + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@7.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@7.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-ordered-values@7.0.1(postcss@8.5.1): + dependencies: + cssnano-utils: 5.0.0(postcss@8.5.1) + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-reduce-initial@7.0.2(postcss@8.5.1): + dependencies: + browserslist: 4.24.4 + caniuse-api: 3.0.0 + postcss: 8.5.1 + + postcss-reduce-transforms@7.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-selector-parser@7.1.0: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-svgo@7.0.1(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + svgo: 3.3.2 + + postcss-unique-selectors@7.0.3(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-selector-parser: 6.1.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.31: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.5.1: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier@2.8.8: {} + + prettier@3.5.0: {} + + prettier@3.5.3: {} + + pretty-bytes@6.1.1: {} + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + process-nextick-args@2.0.1: {} + + process@0.11.10: {} + + progress@2.0.3: {} + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + protobufjs@6.11.4: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/long': 4.0.2 + '@types/node': 20.17.17 + long: 4.0.0 + + protobufjs@7.4.0: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 20.17.17 + long: 5.3.1 + + protocols@2.0.1: {} + + proxy-from-env@1.1.0: {} + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + punycode@2.3.1: {} + + pure-rand@6.1.0: {} + + queue-microtask@1.2.3: {} + + quick-lru@5.1.1: {} + + radix-vue@1.9.13(vue@3.5.13(typescript@5.7.3)): + dependencies: + '@floating-ui/dom': 1.6.13 + '@floating-ui/vue': 1.1.6(vue@3.5.13(typescript@5.7.3)) + '@internationalized/date': 3.7.0 + '@internationalized/number': 3.6.0 + '@tanstack/vue-virtual': 3.13.0(vue@3.5.13(typescript@5.7.3)) + '@vueuse/core': 10.11.1(vue@3.5.13(typescript@5.7.3)) + '@vueuse/shared': 10.11.1(vue@3.5.13(typescript@5.7.3)) + aria-hidden: 1.2.4 + defu: 6.1.4 + fast-deep-equal: 3.1.3 + nanoid: 5.0.9 + vue: 3.5.13(typescript@5.7.3) + transitivePeerDependencies: + - '@vue/composition-api' + + radix3@1.1.2: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + rc-cascader@3.33.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-select: 14.16.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tree: 5.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-checkbox@3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-collapse@3.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-dialog@9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-drawer@7.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-dropdown@4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/async-validator': 5.0.4 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-image@7.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-dialog: 9.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-input-number@9.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/mini-decimal': 1.1.0 + classnames: 2.5.1 + rc-input: 1.7.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-input@1.7.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-mentions@2.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-input: 1.7.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-menu: 9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-textarea: 1.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-menu@9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-overflow: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-motion@2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-notification@5.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-overflow@1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-pagination@5.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-picker@4.9.2(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-overflow: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + dayjs: 1.11.13 + + rc-progress@4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-rate@2.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-resize-observer@1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + resize-observer-polyfill: 1.5.1 + + rc-segmented@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-select@14.16.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-overflow: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-virtual-list: 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-slider@11.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-steps@6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-switch@4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-table@7.50.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/context': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-virtual-list: 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-tabs@15.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-dropdown: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-menu: 9.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-textarea@1.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-input: 1.7.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-tooltip@6.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + '@rc-component/trigger': 2.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-tree-select@5.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-select: 14.16.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tree: 5.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-tree@5.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-virtual-list: 3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-upload@4.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-util@5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + + rc-virtual-list@3.18.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + classnames: 2.5.1 + rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc9@2.1.2: + dependencies: + defu: 6.1.4 + destr: 2.0.3 + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-is@16.13.1: {} + + react-is@18.3.1: {} + + react-is@19.0.0: {} + + react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): + dependencies: + react: 18.3.1 + react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.18 + + react-remove-scroll@2.6.3(@types/react@18.3.18)(react@18.3.1): + dependencies: + react: 18.3.1 + react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + + react-router-dom@6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@remix-run/router': 1.22.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router: 6.29.0(react@18.3.1) + + react-router@6.29.0(react@18.3.1): + dependencies: + '@remix-run/router': 1.22.0 + react: 18.3.1 + + react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): + dependencies: + get-nonce: 1.0.1 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.18 + + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.7 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + read-yaml-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readdirp@4.1.1: {} + + readonly-date@1.0.0: {} + + rechoir@0.6.2: + dependencies: + resolve: 1.22.10 + + redis-errors@1.2.0: {} + + redis-parser@3.0.0: + dependencies: + redis-errors: 1.2.0 + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regenerator-runtime@0.14.1: {} + + regexp-tree@0.1.27: {} + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + regexpp@3.2.0: {} + + rehackt@0.1.0(@types/react@18.3.18)(react@18.3.1): + optionalDependencies: + '@types/react': 18.3.18 + react: 18.3.1 + + replace-in-file@6.3.5: + dependencies: + chalk: 4.1.2 + glob: 7.2.3 + yargs: 17.7.2 + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resize-observer-polyfill@1.5.1: {} + + resolve-alpn@1.2.1: {} + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve-path@1.4.0: + dependencies: + http-errors: 1.6.3 + path-is-absolute: 1.0.1 + + resolve-pkg-maps@1.0.0: {} + + resolve.exports@2.0.3: {} + + resolve@1.19.0: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + responselike@2.0.1: + dependencies: + lowercase-keys: 2.0.0 + + reusify@1.0.4: {} + + rfdc@1.4.1: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rimraf@5.0.10: + dependencies: + glob: 10.4.5 + + ripemd160@2.0.2: + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + + rlp@2.2.7: + dependencies: + bn.js: 5.2.1 + + rollup-plugin-typescript2@0.36.0(rollup@4.34.6)(typescript@4.9.5): + dependencies: + '@rollup/pluginutils': 4.2.1 + find-cache-dir: 3.3.2 + fs-extra: 10.1.0 + rollup: 4.34.6 + semver: 7.7.1 + tslib: 2.8.1 + typescript: 4.9.5 + + rollup-plugin-visualizer@5.14.0(rollup@4.34.6): + dependencies: + open: 8.4.2 + picomatch: 4.0.2 + source-map: 0.7.4 + yargs: 17.7.2 + optionalDependencies: + rollup: 4.34.6 + + rollup@2.79.2: + optionalDependencies: + fsevents: 2.3.3 + + rollup@4.34.6: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.34.6 + '@rollup/rollup-android-arm64': 4.34.6 + '@rollup/rollup-darwin-arm64': 4.34.6 + '@rollup/rollup-darwin-x64': 4.34.6 + '@rollup/rollup-freebsd-arm64': 4.34.6 + '@rollup/rollup-freebsd-x64': 4.34.6 + '@rollup/rollup-linux-arm-gnueabihf': 4.34.6 + '@rollup/rollup-linux-arm-musleabihf': 4.34.6 + '@rollup/rollup-linux-arm64-gnu': 4.34.6 + '@rollup/rollup-linux-arm64-musl': 4.34.6 + '@rollup/rollup-linux-loongarch64-gnu': 4.34.6 + '@rollup/rollup-linux-powerpc64le-gnu': 4.34.6 + '@rollup/rollup-linux-riscv64-gnu': 4.34.6 + '@rollup/rollup-linux-s390x-gnu': 4.34.6 + '@rollup/rollup-linux-x64-gnu': 4.34.6 + '@rollup/rollup-linux-x64-musl': 4.34.6 + '@rollup/rollup-win32-arm64-msvc': 4.34.6 + '@rollup/rollup-win32-ia32-msvc': 4.34.6 + '@rollup/rollup-win32-x64-msvc': 4.34.6 + fsevents: 2.3.3 + + rpc-websockets@7.11.2: + dependencies: + eventemitter3: 4.0.7 + uuid: 8.3.2 + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + rpc-websockets@9.0.4: + dependencies: + '@swc/helpers': 0.5.15 + '@types/uuid': 8.3.4 + '@types/ws': 8.5.14 + buffer: 6.0.3 + eventemitter3: 5.0.1 + uuid: 8.3.2 + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + run-applescript@7.0.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@7.8.1: + dependencies: + tslib: 2.8.1 + + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safe-regex@2.1.1: + dependencies: + regexp-tree: 0.1.27 + + safer-buffer@2.1.2: {} + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + schema-utils@4.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) + + scroll-into-view-if-needed@3.1.0: + dependencies: + compute-scroll-into-view: 3.1.1 + + scrypt-js@3.0.1: {} + + scule@1.3.0: {} + + secp256k1@4.0.4: + dependencies: + elliptic: 6.6.1 + node-addon-api: 5.1.0 + node-gyp-build: 4.8.4 + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.5.4: + dependencies: + lru-cache: 6.0.0 + + semver@7.7.1: {} + + send@0.19.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + serve-placeholder@2.0.2: + dependencies: + defu: 6.1.4 + + serve-static@1.16.2: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0 + transitivePeerDependencies: + - supports-color + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.7 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + + setimmediate@1.0.5: {} + + setprototypeof@1.1.0: {} + + setprototypeof@1.2.0: {} + + sha.js@2.4.11: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + shadcn-nuxt@0.10.4(magicast@0.3.5): + dependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5) + '@oxc-parser/wasm': 0.1.0 + transitivePeerDependencies: + - magicast + - supports-color + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shell-quote@1.8.2: {} + + shelljs@0.8.5: + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 + + shx@0.3.4: + dependencies: + minimist: 1.2.8 + shelljs: 0.8.5 + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + simple-git@3.27.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.4.0(supports-color@9.4.0) + transitivePeerDependencies: + - supports-color + + sirv@3.0.0: + dependencies: + '@polka/url': 1.0.0-next.28 + mrmime: 2.0.0 + totalist: 3.0.1 + + sisteransi@1.0.5: {} + + slash@3.0.0: {} + + slash@5.1.0: {} + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + smob@1.5.0: {} + + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + + snakecase-keys@5.5.0: + dependencies: + map-obj: 4.3.0 + snake-case: 3.0.4 + type-fest: 3.13.1 + + source-map-js@1.2.1: {} + + source-map-support@0.5.13: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.5.7: {} + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + + spawndamnit@3.0.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.21 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.21 + + spdx-license-ids@3.0.21: {} + + speakingurl@14.0.1: {} + + sprintf-js@1.0.3: {} + + stable-hash@0.0.4: {} + + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + standard-as-callback@2.1.0: {} + + statuses@1.5.0: {} + + statuses@2.0.1: {} + + std-env@3.8.0: {} + + store2@2.14.4: {} + + streamsearch@1.1.0: {} + + streamx@2.22.0: + dependencies: + fast-fifo: 1.3.2 + text-decoder: 1.2.3 + optionalDependencies: + bare-events: 2.5.4 + + string-argv@0.3.2: {} + + string-convert@0.2.1: {} + + string-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.0 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.9 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom@3.0.0: {} + + strip-bom@4.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-final-newline@3.0.0: {} + + strip-hex-prefix@1.0.0: + dependencies: + is-hex-prefixed: 1.0.0 + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@3.1.1: {} + + strip-literal@2.1.1: + dependencies: + js-tokens: 9.0.1 + + strip-literal@3.0.0: + dependencies: + js-tokens: 9.0.1 + + strip-outer@1.0.1: + dependencies: + escape-string-regexp: 1.0.5 + + styled-jsx@5.1.1(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + + stylehacks@7.0.4(postcss@8.5.1): + dependencies: + browserslist: 4.24.4 + postcss: 8.5.1 + postcss-selector-parser: 6.1.2 + + stylis@4.2.0: {} + + stylis@4.3.6: {} + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + superjson@2.2.2: + dependencies: + copy-anything: 3.0.5 + + superstruct@0.15.5: {} + + superstruct@1.0.4: {} + + superstruct@2.0.2: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-color@9.4.0: {} + + supports-preserve-symlinks-flag@1.0.0: {} + + svg-tags@1.0.0: {} + + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.1.1 + + symbol-observable@2.0.3: {} + + symbol-observable@4.0.0: {} + + system-architecture@0.1.0: {} + + table@6.9.0: + dependencies: + ajv: 8.17.1 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + tailwind-config-viewer@2.0.4(tailwindcss@3.4.17): + dependencies: + '@koa/router': 12.0.2 + commander: 6.2.1 + fs-extra: 9.1.0 + koa: 2.15.3 + koa-static: 5.0.0 + open: 7.4.2 + portfinder: 1.0.32 + replace-in-file: 6.3.5 + tailwindcss: 3.4.17 + transitivePeerDependencies: + - supports-color + + tailwind-merge@2.6.0: {} + + tailwindcss-animate@1.0.7(tailwindcss@3.4.17): + dependencies: + tailwindcss: 3.4.17 + + tailwindcss@3.4.17: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.1 + postcss-import: 15.1.0(postcss@8.5.1) + postcss-js: 4.0.1(postcss@8.5.1) + postcss-load-config: 4.0.2(postcss@8.5.1) + postcss-nested: 6.2.0(postcss@8.5.1) + postcss-selector-parser: 6.1.2 + resolve: 1.22.10 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tapable@2.2.1: {} + + tar-stream@3.1.7: + dependencies: + b4a: 1.6.7 + fast-fifo: 1.3.2 + streamx: 2.22.0 + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + tar@7.4.3: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.0.1 + mkdirp: 3.0.1 + yallist: 5.0.0 + + term-size@2.2.1: {} + + terser-webpack-plugin@5.3.11(webpack@5.97.1): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 4.3.0 + serialize-javascript: 6.0.2 + terser: 5.38.1 + webpack: 5.97.1 + + terser@5.38.1: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.14.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + + text-decoder@1.2.3: + dependencies: + b4a: 1.6.7 + + text-encoding-utf-8@1.0.2: {} + + text-table@0.2.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + throttle-debounce@5.0.2: {} + + through@2.3.8: {} + + tiny-invariant@1.3.3: {} + + tinyexec@0.3.2: {} + + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + tmpl@1.0.5: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toggle-selection@1.0.6: {} + + toidentifier@1.0.1: {} + + toml@3.0.0: {} + + totalist@3.0.1: {} + + tr46@0.0.3: {} + + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + + trim-repeated@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + ts-api-utils@1.4.3(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + + ts-interface-checker@0.1.13: {} + + ts-invariant@0.10.3: + dependencies: + tslib: 2.8.1 + + ts-jest@29.2.5(@babel/core@7.26.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.8))(esbuild@0.14.54)(jest@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0))(typescript@5.7.3): + dependencies: + bs-logger: 0.2.6 + ejs: 3.1.10 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.1 + typescript: 5.7.3 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.26.8 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.8) + esbuild: 0.14.54 + + ts-jest@29.2.5(@babel/core@7.26.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.8))(jest@29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0))(typescript@4.9.5): + dependencies: + bs-logger: 0.2.6 + ejs: 3.1.10 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@20.17.17)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.1 + typescript: 4.9.5 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.26.8 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.8) + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@1.14.1: {} + + tslib@2.7.0: {} + + tslib@2.8.1: {} + + tsscmp@1.0.6: {} + + tsup@5.12.9(postcss@8.5.1)(typescript@4.9.5): + dependencies: + bundle-require: 3.1.2(esbuild@0.14.54) + cac: 6.7.14 + chokidar: 3.6.0 + debug: 4.4.0(supports-color@9.4.0) + esbuild: 0.14.54 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 3.1.4(postcss@8.5.1) + resolve-from: 5.0.0 + rollup: 2.79.2 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.5.1 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + - ts-node + + tsup@5.12.9(postcss@8.5.1)(typescript@5.7.3): + dependencies: + bundle-require: 3.1.2(esbuild@0.14.54) + cac: 6.7.14 + chokidar: 3.6.0 + debug: 4.4.0(supports-color@9.4.0) + esbuild: 0.14.54 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 3.1.4(postcss@8.5.1) + resolve-from: 5.0.0 + rollup: 2.79.2 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.5.1 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + - ts-node + + tsutils@3.21.0(typescript@4.9.5): + dependencies: + tslib: 1.14.1 + typescript: 4.9.5 + + turbo-darwin-64@2.4.4: + optional: true + + turbo-darwin-arm64@2.4.4: + optional: true + + turbo-linux-64@2.4.4: + optional: true + + turbo-linux-arm64@2.4.4: + optional: true + + turbo-windows-64@2.4.4: + optional: true + + turbo-windows-arm64@2.4.4: + optional: true + + turbo@2.4.4: + optionalDependencies: + turbo-darwin-64: 2.4.4 + turbo-darwin-arm64: 2.4.4 + turbo-linux-64: 2.4.4 + turbo-linux-arm64: 2.4.4 + turbo-windows-64: 2.4.4 + turbo-windows-arm64: 2.4.4 + + tweetnacl-util@0.15.1: {} + + tweetnacl@1.0.3: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.0.8: {} + + type-fest@0.20.2: {} + + type-fest@0.21.3: {} + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + type-fest@3.13.1: {} + + type-fest@4.34.1: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.4 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.4 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.4 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 + + typescript@4.9.5: {} + + typescript@5.4.2: {} + + typescript@5.7.3: {} + + ufo@1.5.3: {} + + ufo@1.5.4: {} + + ultrahtml@1.5.3: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.3 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + uncrypto@0.1.3: {} + + unctx@2.4.1: + dependencies: + acorn: 8.14.0 + estree-walker: 3.0.3 + magic-string: 0.30.17 + unplugin: 2.1.2 + + undici-types@6.19.8: {} + + unenv@1.10.0: + dependencies: + consola: 3.4.0 + defu: 6.1.4 + mime: 3.0.0 + node-fetch-native: 1.6.6 + pathe: 1.1.2 + + unhead@1.11.18: + dependencies: + '@unhead/dom': 1.11.18 + '@unhead/schema': 1.11.18 + '@unhead/shared': 1.11.18 + hookable: 5.5.3 + + unicorn-magic@0.3.0: {} + + unimport@3.14.6(rollup@4.34.6): + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + acorn: 8.14.0 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.3 + local-pkg: 1.0.0 + magic-string: 0.30.17 + mlly: 1.7.4 + pathe: 2.0.2 + picomatch: 4.0.2 + pkg-types: 1.3.1 + scule: 1.3.0 + strip-literal: 2.1.1 + unplugin: 1.16.1 + transitivePeerDependencies: + - rollup + + unimport@4.1.0: + dependencies: + acorn: 8.14.0 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.3 + local-pkg: 1.0.0 + magic-string: 0.30.17 + mlly: 1.7.4 + pathe: 2.0.2 + picomatch: 4.0.2 + pkg-types: 1.3.1 + scule: 1.3.0 + strip-literal: 3.0.0 + unplugin: 2.1.2 + unplugin-utils: 0.2.3 + + universalify@0.1.2: {} + + universalify@2.0.1: {} + + unplugin-utils@0.2.3: + dependencies: + pathe: 2.0.2 + picomatch: 4.0.2 + + unplugin-vue-router@0.11.2(rollup@4.34.6)(vue-router@4.5.0(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3)): + dependencies: + '@babel/types': 7.26.8 + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + '@vue-macros/common': 1.16.1(vue@3.5.13(typescript@5.7.3)) + ast-walker-scope: 0.6.2 + chokidar: 3.6.0 + fast-glob: 3.3.3 + json5: 2.2.3 + local-pkg: 1.0.0 + magic-string: 0.30.17 + mlly: 1.7.4 + pathe: 2.0.2 + scule: 1.3.0 + unplugin: 2.1.2 + yaml: 2.7.0 + optionalDependencies: + vue-router: 4.5.0(vue@3.5.13(typescript@5.7.3)) + transitivePeerDependencies: + - rollup + - vue + + unplugin@1.16.1: + dependencies: + acorn: 8.14.0 + webpack-virtual-modules: 0.6.2 + + unplugin@2.1.2: + dependencies: + acorn: 8.14.0 + webpack-virtual-modules: 0.6.2 + + unstorage@1.14.4(db0@0.2.3)(idb-keyval@6.2.1)(ioredis@5.5.0): + dependencies: + anymatch: 3.1.3 + chokidar: 3.6.0 + destr: 2.0.3 + h3: 1.15.0 + lru-cache: 10.4.3 + node-fetch-native: 1.6.6 + ofetch: 1.4.1 + ufo: 1.5.4 + optionalDependencies: + db0: 0.2.3 + idb-keyval: 6.2.1 + ioredis: 5.5.0 + + untun@0.1.3: + dependencies: + citty: 0.1.6 + consola: 3.4.0 + pathe: 1.1.2 + + untyped@1.5.2: + dependencies: + '@babel/core': 7.26.8 + '@babel/standalone': 7.26.8 + '@babel/types': 7.26.8 + citty: 0.1.6 + defu: 6.1.4 + jiti: 2.4.2 + knitwork: 1.2.0 + scule: 1.3.0 + transitivePeerDependencies: + - supports-color + + unwasm@0.3.9: + dependencies: + knitwork: 1.2.0 + magic-string: 0.30.17 + mlly: 1.7.4 + pathe: 1.1.2 + pkg-types: 1.3.1 + unplugin: 1.16.1 + + update-browserslist-db@1.1.2(browserslist@4.24.4): + dependencies: + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 + + uqr@0.1.2: {} + + uri-js-replace@1.0.1: {} + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + urlpattern-polyfill@8.0.2: {} + + use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1): + dependencies: + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.18 + + use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): + dependencies: + detect-node-es: 1.1.0 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.18 + + utf-8-validate@5.0.10: + dependencies: + node-gyp-build: 4.8.4 + optional: true + + util-deprecate@1.0.2: {} + + uuid@8.3.2: {} + + uuid@9.0.1: {} + + v8-compile-cache@2.4.0: {} + + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + + valibot@0.36.0: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + validator@13.12.0: {} + + vary@1.1.2: {} + + vite-hot-client@0.2.4(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)): + dependencies: + vite: 6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) + + vite-node@3.0.5(@types/node@22.7.5)(terser@5.38.1): + dependencies: + cac: 6.7.14 + debug: 4.4.0(supports-color@9.4.0) + es-module-lexer: 1.6.0 + pathe: 2.0.2 + vite: 5.3.6(@types/node@22.7.5)(terser@5.38.1) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vite-plugin-checker@0.8.0(eslint@8.57.1)(optionator@0.9.4)(typescript@5.7.3)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)): + dependencies: + '@babel/code-frame': 7.26.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + chokidar: 3.6.0 + commander: 8.3.0 + fast-glob: 3.3.3 + fs-extra: 11.3.0 + npm-run-path: 4.0.1 + strip-ansi: 6.0.1 + tiny-invariant: 1.3.3 + vite: 6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) + vscode-languageclient: 7.0.0 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + optionalDependencies: + eslint: 8.57.1 + optionator: 0.9.4 + typescript: 5.7.3 + + vite-plugin-compression@0.5.1(vite@5.3.6(@types/node@22.7.5)(terser@5.38.1)): + dependencies: + chalk: 4.1.2 + debug: 4.4.0(supports-color@9.4.0) + fs-extra: 10.1.0 + vite: 5.3.6(@types/node@22.7.5)(terser@5.38.1) + transitivePeerDependencies: + - supports-color + + vite-plugin-css-injected-by-js@3.5.2(vite@5.3.6(@types/node@22.7.5)(terser@5.38.1)): + dependencies: + vite: 5.3.6(@types/node@22.7.5)(terser@5.38.1) + + vite-plugin-dts@3.9.1(@types/node@22.7.5)(rollup@4.34.6)(typescript@4.9.5)(vite@5.3.6(@types/node@22.7.5)(terser@5.38.1)): + dependencies: + '@microsoft/api-extractor': 7.43.0(@types/node@22.7.5) + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + '@vue/language-core': 1.8.27(typescript@4.9.5) + debug: 4.4.0(supports-color@9.4.0) + kolorist: 1.8.0 + magic-string: 0.30.17 + typescript: 4.9.5 + vue-tsc: 1.8.27(typescript@4.9.5) + optionalDependencies: + vite: 5.3.6(@types/node@22.7.5)(terser@5.38.1) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + + vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)): + dependencies: + '@rollup/pluginutils': 4.2.1 + '@types/eslint': 8.56.12 + eslint: 8.57.1 + rollup: 2.79.2 + vite: 6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) + + vite-plugin-inspect@0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.34.6)(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + debug: 4.4.0(supports-color@9.4.0) + error-stack-parser-es: 0.1.5 + fs-extra: 11.3.0 + open: 10.1.0 + perfect-debounce: 1.0.0 + picocolors: 1.1.1 + sirv: 3.0.0 + vite: 6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) + optionalDependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5) + transitivePeerDependencies: + - rollup + - supports-color + + vite-plugin-vue-inspector@5.3.1(vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0)): + dependencies: + '@babel/core': 7.26.8 + '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.8) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.8) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.8) + '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.8) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.8) + '@vue/compiler-dom': 3.5.13 + kolorist: 1.8.0 + magic-string: 0.30.17 + vite: 6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + + vite@5.3.6(@types/node@22.7.5)(terser@5.38.1): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.1 + rollup: 4.34.6 + optionalDependencies: + '@types/node': 22.7.5 + fsevents: 2.3.3 + terser: 5.38.1 + + vite@6.1.0(@types/node@22.7.5)(jiti@2.4.2)(terser@5.38.1)(yaml@2.7.0): + dependencies: + esbuild: 0.24.2 + postcss: 8.5.1 + rollup: 4.34.6 + optionalDependencies: + '@types/node': 22.7.5 + fsevents: 2.3.3 + jiti: 2.4.2 + terser: 5.38.1 + yaml: 2.7.0 + + vlq@2.0.4: {} + + vscode-jsonrpc@6.0.0: {} + + vscode-languageclient@7.0.0: + dependencies: + minimatch: 3.1.2 + semver: 7.7.1 + vscode-languageserver-protocol: 3.16.0 + + vscode-languageserver-protocol@3.16.0: + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.16.0: {} + + vscode-languageserver@7.0.0: + dependencies: + vscode-languageserver-protocol: 3.16.0 + + vscode-uri@3.1.0: {} + + vue-bundle-renderer@2.1.1: + dependencies: + ufo: 1.5.4 + + vue-demi@0.14.10(vue@3.5.13(typescript@5.7.3)): + dependencies: + vue: 3.5.13(typescript@5.7.3) + + vue-devtools-stub@0.1.0: {} + + vue-eslint-parser@9.4.3(eslint@8.57.1): + dependencies: + debug: 4.4.0(supports-color@9.4.0) + eslint: 8.57.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + lodash: 4.17.21 + semver: 7.7.1 + transitivePeerDependencies: + - supports-color + + vue-router@4.5.0(vue@3.5.13(typescript@5.7.3)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.13(typescript@5.7.3) + + vue-template-compiler@2.7.16: + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + vue-tsc@1.8.27(typescript@4.9.5): + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@4.9.5) + semver: 7.7.1 + typescript: 4.9.5 + + vue-tsc@2.2.0(typescript@4.9.5): + dependencies: + '@volar/typescript': 2.4.11 + '@vue/language-core': 2.2.0(typescript@4.9.5) + typescript: 4.9.5 + + vue@3.5.13(typescript@4.9.5): + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-sfc': 3.5.13 + '@vue/runtime-dom': 3.5.13 + '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@4.9.5)) + '@vue/shared': 3.5.13 + optionalDependencies: + typescript: 4.9.5 + + vue@3.5.13(typescript@5.7.3): + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-sfc': 3.5.13 + '@vue/runtime-dom': 3.5.13 + '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.3)) + '@vue/shared': 3.5.13 + optionalDependencies: + typescript: 5.7.3 + + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + + watchpack@2.4.2: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + webextension-polyfill-ts@0.25.0: + dependencies: + webextension-polyfill: 0.7.0 + + webextension-polyfill@0.12.0: {} + + webextension-polyfill@0.7.0: {} + + webidl-conversions@3.0.1: {} + + webidl-conversions@4.0.2: {} + + webpack-sources@3.2.3: {} + + webpack-virtual-modules@0.6.2: {} + + webpack@5.97.1: + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.14.0 + browserslist: 4.24.4 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.18.1 + es-module-lexer: 1.6.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.11(webpack@5.97.1) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.3 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.0 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.18 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.18: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + for-each: 0.3.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@3.0.1: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + ws@8.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + + xml-name-validator@4.0.0: {} + + xstream@11.14.0: + dependencies: + globalthis: 1.0.4 + symbol-observable: 2.0.3 + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yallist@5.0.0: {} + + yaml-ast-parser@0.0.43: {} + + yaml@1.10.2: {} + + yaml@2.7.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + ylru@1.4.0: {} + + yocto-queue@0.1.0: {} + + z-schema@5.0.5: + dependencies: + lodash.get: 4.4.2 + lodash.isequal: 4.5.0 + validator: 13.12.0 + optionalDependencies: + commander: 9.5.0 + + zen-observable-ts@1.2.5: + dependencies: + zen-observable: 0.8.15 + + zen-observable@0.8.15: {} + + zhead@2.2.4: {} + + zip-stream@6.0.1: + dependencies: + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.7.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3ff5faaa..84935dc0 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,3 @@ packages: - "apps/*" - - "packages/*" + - "packages/**/*" diff --git a/turbo.json b/turbo.json index d0aebe26..9f052ae1 100644 --- a/turbo.json +++ b/turbo.json @@ -3,7 +3,9 @@ "globalEnv": [ "GAID", "NEXT_PUBLIC_APTOS_API_KEY_TESNET", - "NEXT_PUBLIC_APTOS_API_KEY_DEVNET" + "NEXT_PUBLIC_APTOS_API_KEY_DEVNET", + "NEXT_PUBLIC_SWAP_CCTP_MAIN_SIGNER_PRIVATE_KEY", + "NEXT_PUBLIC_SWAP_CCTP_SPONSOR_ACCOUNT_PRIVATE_KEY" ], "tasks": { "build": { From 62764a4261c99f29ac6086dc9c22a8ab59d54c18 Mon Sep 17 00:00:00 2001 From: maayan Date: Fri, 14 Mar 2025 16:55:55 -0400 Subject: [PATCH 7/7] add signInWith support --- .../components/walletSelector/WalletItem.tsx | 30 ++++++- .../walletSelector/WalletSelector.tsx | 23 ++++-- apps/nextjs-example/src/app/swap/page.tsx | 19 ----- .../cross-chain-react/src/WalletProvider.tsx | 13 +-- .../cross-chain-react/src/useWallet.tsx | 2 +- .../eip6963/src/index.ts | 10 +++ .../eip6963/src/utils.ts | 74 +++++++++++++++-- .../solana/src/index.ts | 12 ++- .../solana/src/utils.ts | 81 +++++++++++++++---- 9 files changed, 210 insertions(+), 54 deletions(-) diff --git a/apps/nextjs-example/src/app/swap/components/walletSelector/WalletItem.tsx b/apps/nextjs-example/src/app/swap/components/walletSelector/WalletItem.tsx index 4d3c0323..7ffdd95d 100644 --- a/apps/nextjs-example/src/app/swap/components/walletSelector/WalletItem.tsx +++ b/apps/nextjs-example/src/app/swap/components/walletSelector/WalletItem.tsx @@ -19,6 +19,8 @@ export interface WalletItemProps extends HeadlessComponentProps { wallet: AdapterWallet; /** A callback to be invoked when the wallet is connected. */ onConnect?: () => void; + /** A callback to be invoked when the wallet is signed in. */ + onSignInWith?: () => void; } function useWalletItemContext(displayName: string) { @@ -34,17 +36,23 @@ function useWalletItemContext(displayName: string) { const WalletItemContext = createContext<{ wallet: AdapterWallet; connectWallet: () => void; + signInWithWallet: () => void; } | null>(null); const Root = forwardRef( - ({ wallet, onConnect, className, asChild, children }, ref) => { - const { connect } = useCrossChainWallet(); + ({ wallet, onConnect, className, asChild, children, onSignInWith }, ref) => { + const { connect, signInWith } = useCrossChainWallet(); const { toast } = useToast(); const connectWallet = useCallback(async () => { await connect(wallet); onConnect?.(); }, [wallet, onConnect]); + const signInWithWallet = useCallback(async () => { + await signInWith(wallet); + onSignInWith?.(); + }, [wallet, onSignInWith]); + // const isWalletReady = // wallet.readyState === WalletReadyState.Installed || // wallet.readyState === WalletReadyState.Loadable; @@ -57,7 +65,9 @@ const Root = forwardRef( const Component = asChild ? Slot : "div"; return ( - + {children} @@ -105,6 +115,19 @@ const ConnectButton = createHeadlessComponent( } ); +const SignInWithButton = createHeadlessComponent( + "WalletItem.SignInWithButton", + "button", + (displayName) => { + const context = useWalletItemContext(displayName); + + return { + onClick: context.signInWithWallet, + children: "Sign In", + }; + } +); + const InstallLink = createHeadlessComponent( "WalletItem.InstallLink", "a", @@ -126,6 +149,7 @@ export const WalletItem = Object.assign(Root, { Name, ConnectButton, InstallLink, + SignInWithButton, }); export interface HeadlessComponentProps { diff --git a/apps/nextjs-example/src/app/swap/components/walletSelector/WalletSelector.tsx b/apps/nextjs-example/src/app/swap/components/walletSelector/WalletSelector.tsx index 7eb265b5..b764cf77 100644 --- a/apps/nextjs-example/src/app/swap/components/walletSelector/WalletSelector.tsx +++ b/apps/nextjs-example/src/app/swap/components/walletSelector/WalletSelector.tsx @@ -119,7 +119,12 @@ function ConnectWalletDialog({ close, sourceChain }: ConnectWalletDialogProps) {
{wallets.map((wallet) => ( - + ))}
@@ -129,13 +134,15 @@ function ConnectWalletDialog({ close, sourceChain }: ConnectWalletDialogProps) { interface WalletRowProps { wallet: AdapterWallet; onConnect?: () => void; + onSignInWith?: () => void; } -function WalletRow({ wallet, onConnect }: WalletRowProps) { +function WalletRow({ wallet, onConnect, onSignInWith }: WalletRowProps) { return (
@@ -147,9 +154,15 @@ function WalletRow({ wallet, onConnect }: WalletRowProps) { ) : ( - - - +
+ + + + or + + + +
)} ); diff --git a/apps/nextjs-example/src/app/swap/page.tsx b/apps/nextjs-example/src/app/swap/page.tsx index 2b4b1016..233aaed3 100644 --- a/apps/nextjs-example/src/app/swap/page.tsx +++ b/apps/nextjs-example/src/app/swap/page.tsx @@ -188,18 +188,6 @@ export default function Swap() { } }; - const onSignIn = async () => { - try { - await signInWith(); - } catch (error: any) { - toast({ - variant: "destructive", - title: "Error", - description: error, - }); - } - }; - return (
@@ -232,13 +220,6 @@ export default function Swap() {
-
-

Sign Message

- -
-

CCTP transfer

diff --git a/packages/cross-chain/cross-chain-react/src/WalletProvider.tsx b/packages/cross-chain/cross-chain-react/src/WalletProvider.tsx index 45ff2045..951912e4 100644 --- a/packages/cross-chain/cross-chain-react/src/WalletProvider.tsx +++ b/packages/cross-chain/cross-chain-react/src/WalletProvider.tsx @@ -176,15 +176,18 @@ export const AptosCrossChainWalletProvider: FC< } }; - const signInWith = async () => { + const signInWith = async (wallet: AdapterWallet) => { try { - if (!wallet) { - throw new Error("Wallet is not connected"); - } if (!wallet.signIn) { - throw new Error("Wallet does not support signIn"); + throw new Error("Wallet does not support signIn").message; } const response = await wallet.signIn(); + setState((state) => ({ + ...state, + connected: true, + wallet: wallet, + account: response.account, + })); console.log("WalletProvider signInWithWallet response", response); } catch (error) { if (onError) onError(error); diff --git a/packages/cross-chain/cross-chain-react/src/useWallet.tsx b/packages/cross-chain/cross-chain-react/src/useWallet.tsx index 7e463361..d7ca0c04 100644 --- a/packages/cross-chain/cross-chain-react/src/useWallet.tsx +++ b/packages/cross-chain/cross-chain-react/src/useWallet.tsx @@ -22,8 +22,8 @@ export interface WalletContextState { getEthereumWallets: () => ReadonlyArray; getAptosWallets: () => ReadonlyArray; connect: (wallet: AdapterWallet) => Promise; + signInWith: (wallet: AdapterWallet) => Promise; disconnect: () => Promise; - signInWith: () => Promise; getQuote: ( amount: string, sourceChain: Chain diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/index.ts b/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/index.ts index fe1e6f9b..5d40e592 100644 --- a/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/index.ts +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/index.ts @@ -219,6 +219,16 @@ export class Eip6963Wallet extends AdapterWallet< return result.args; } + async signIn() { + const result = await this.eip6963Wallet.features["aptos:signIn"]!.signIn({ + nonce: Math.random().toString(16), + }); + if (result.status === UserResponseStatus.REJECTED) { + throw new Error("User rejected the request").message; + } + return result.args; + } + async onAccountChange() { await this.eip6963Wallet.features[ "eip6963:onAccountChange" diff --git a/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/utils.ts b/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/utils.ts index 8a8f296b..0f0e5043 100644 --- a/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/utils.ts +++ b/packages/cross-chain/wallet-adapter-aggregator/eip6963/src/utils.ts @@ -3,6 +3,8 @@ import { AptosFeatures, AptosOnAccountChangeInput, AptosOnNetworkChangeInput, + AptosSignInInput, + AptosSignInOutput, AptosSignMessageInput, AptosSignMessageOutput, UserResponse, @@ -56,7 +58,7 @@ const APTOS_REQUIRED_FEATURES = ( disconnect: async () => { try { eip6963Wallet.provider.on("disconnect", (error: any) => { - console.error("EIP-6963 wallet disconnected", error); + throw new Error("EIP-6963 wallet disconnected" + error).message; }); } catch (error) { throw new Error("Failed to disconnect").message; @@ -81,10 +83,14 @@ const APTOS_REQUIRED_FEATURES = ( signMessage: async (message: AptosSignMessageInput) => { const accounts = await eip6963Wallet.provider .request({ method: "eth_requestAccounts" }) - .catch(console.error); + .catch((error: any) => { + throw new Error("Error signing message" + error).message; + }); + const msg = `0x${Buffer.from(message.message, "utf8").toString("hex")}`; + const signature = await eip6963Wallet.provider.request({ method: "personal_sign", - params: [message.message, accounts[0]], + params: [msg, accounts[0]], }); const response: AptosSignMessageOutput = { // address?: string; @@ -115,10 +121,66 @@ const APTOS_REQUIRED_FEATURES = ( }, version: "1.0.0", }, + "aptos:signIn": { + signIn: async (input: AptosSignInInput) => { + try { + const accounts = await eip6963Wallet.provider + .request({ method: "eth_requestAccounts" }) + .catch((error: any) => { + throw new Error("Error signing in" + error).message; + }); + const domain = window.location.origin; + const from = accounts[0]; + const chainId = await eip6963Wallet.provider.request({ + method: "eth_chainId", + }); + const siweMessage = `${domain} wants you to sign in with your Ethereum account:\n${from}\n\n${input.statement}\n\nURI: ${domain}\nVersion: ${input.version ?? "0.1.0"}\nChain ID: ${parseInt(chainId, 16)}\nNonce: ${input.nonce}\nIssued At: ${new Date().toLocaleString()}`; + const msg = `0x${Buffer.from(siweMessage, "utf8").toString("hex")}`; + const signature = await eip6963Wallet.provider.request({ + method: "personal_sign", + params: [msg, accounts[0]], + }); + const response: AptosSignInOutput = { + //@ts-ignore + account: { + address: accounts[0], + publicKey: ethers.getBytes(accounts[0]) as any, + }, + input: { + ...input, + domain: input.uri || "", + address: accounts[0], + uri: input.uri || "", + version: input.version || "0.1.0", + chainId: input.chainId || "1", // TODO: get chain id once Solana RPC/Connection config is supported + }, + plainText: siweMessage, + signingMessage: new TextEncoder().encode(msg), + signature: signature as any, + type: "", + }; + + return { + status: UserResponseStatus.APPROVED, + args: response, + }; + } catch (error: any) { + if ( + error instanceof Error && + error.message.includes("refused connection") + ) { + return { + status: UserResponseStatus.REJECTED, + }; + } + throw error; + } + }, + version: "0.1.0", + }, "aptos:onNetworkChange": { onNetworkChange: async (callback: AptosOnNetworkChangeInput) => { eip6963Wallet.provider.on("chainChanged", (chainId: string) => { - console.log("chainId", chainId); callback({ // TODO: create an internal chainId->name mapping database name: parseInt(chainId) as any, @@ -139,7 +201,9 @@ const EIP6963_ADDITIONAL_FEATURES = ( account: async () => { const accounts = await eip6963Wallet.provider .request({ method: "eth_requestAccounts" }) - .catch(console.error); + .catch((error: any) => { + throw new Error("Error getting account" + error).message; + }); return { address: accounts[0], publicKey: ethers.getBytes(accounts[0]), diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/src/index.ts b/packages/cross-chain/wallet-adapter-aggregator/solana/src/index.ts index 176b1eda..b6d4b721 100644 --- a/packages/cross-chain/wallet-adapter-aggregator/solana/src/index.ts +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/src/index.ts @@ -138,7 +138,17 @@ export class SolanaWallet extends AdapterWallet< "solana:signTransaction" ].signTransaction(transaction); if (result.status === UserResponseStatus.REJECTED) { - throw new Error("User rejected"); + throw new Error("User rejected the request").message; + } + return result.args; + } + + async signIn() { + const result = await this.solanaWallet.features["aptos:signIn"]!.signIn({ + nonce: Math.random().toString(16), + }); + if (result.status === UserResponseStatus.REJECTED) { + throw new Error("User rejected the request").message; } return result.args; } diff --git a/packages/cross-chain/wallet-adapter-aggregator/solana/src/utils.ts b/packages/cross-chain/wallet-adapter-aggregator/solana/src/utils.ts index cf147c9b..40c2c3d8 100644 --- a/packages/cross-chain/wallet-adapter-aggregator/solana/src/utils.ts +++ b/packages/cross-chain/wallet-adapter-aggregator/solana/src/utils.ts @@ -8,6 +8,8 @@ import { APTOS_CHAINS, AptosFeatures, AptosOnAccountChangeInput, + AptosSignInInput, + AptosSignInOutput, AptosSignMessageInput, AptosSignMessageOutput, UserResponse, @@ -56,7 +58,7 @@ const APTOS_REQUIRED_FEATURES = ( "aptos:account": { account: async () => { if (!solanaWallet.publicKey) { - throw new Error("Disconnected"); + throw new Error("No account found").message; } return deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey); }, @@ -74,14 +76,13 @@ const APTOS_REQUIRED_FEATURES = ( args: deriveAccountInfoFromSolanaPublicKey(solanaWallet.publicKey), status: UserResponseStatus.APPROVED, }; - } catch (e) { - console.log("e", e); + } catch (e: any) { if (e instanceof WalletConnectionError) { return { status: UserResponseStatus.REJECTED, }; } - throw e; + throw new Error("Error connecting to wallet" + e).message; } }, version: "1.0.0", @@ -90,8 +91,8 @@ const APTOS_REQUIRED_FEATURES = ( disconnect: async () => { try { await solanaWallet.disconnect(); - } catch (e) { - throw new Error("Failed to disconnect"); + } catch (e: any) { + throw new Error("Failed to disconnect" + e).message; } }, version: "1.0.0", @@ -100,7 +101,7 @@ const APTOS_REQUIRED_FEATURES = ( network: async () => { throw new Error( "Fetch network info not supported by Solana wallet adapter" - ); + ).message; }, version: "1.0.0", }, @@ -111,9 +112,11 @@ const APTOS_REQUIRED_FEATURES = ( const messageToSign = new TextEncoder().encode(message.message); const signature = await solanaWallet.signMessage(messageToSign); const response: AptosSignMessageOutput = { - // address?: string; + address: deriveAccountInfoFromSolanaPublicKey( + new PublicKey(solanaWallet.publicKey!) + ).address.toString(), // application?: string; - // chainId?: number; + // chainId?: number; // TODO: get chain id once Solana RPC/Connection config is supported fullMessage: message.message, message: message.message, nonce: message.nonce, @@ -124,20 +127,20 @@ const APTOS_REQUIRED_FEATURES = ( status: UserResponseStatus.APPROVED, args: response, }; - } catch (e) { + } catch (e: any) { if (e instanceof Error && e.message.includes("rejected")) { return { status: UserResponseStatus.REJECTED, }; } - throw e; + throw new Error("Error signing message" + e).message; } }, version: "1.0.0", }, "aptos:signTransaction": { signTransaction: async (transaction: AnyRawTransaction) => { - throw new Error("Not yet implemented"); + throw new Error("signTransaction not yet implemented").message; }, version: "1.0.0", }, @@ -164,10 +167,57 @@ const APTOS_REQUIRED_FEATURES = ( onNetworkChange: async () => { throw new Error( "onNetworkChange not yet implemented in solana wallet adapter" - ); + ).message; }, version: "1.0.0", }, + "aptos:signIn": { + signIn: async (input: AptosSignInInput) => { + try { + if (!solanaWallet.signIn) { + throw new Error(`signIn not supported in ${solanaWallet.name}`) + .message; + } + const result = await solanaWallet.signIn({ + nonce: Math.random().toString(16), + }); + const response: AptosSignInOutput = { + account: deriveAccountInfoFromSolanaPublicKey( + new PublicKey(result.account.publicKey) + ), + input: { + ...input, + domain: input.uri || "", + address: deriveAccountInfoFromSolanaPublicKey( + new PublicKey(result.account.publicKey) + ).address.toString(), + uri: input.uri || "", + version: input.version || "0.1.0", + chainId: input.chainId || "1", // TODO: get chain id once Solana RPC/Connection config is supported + }, + plainText: new TextDecoder().decode(result.signedMessage), + signingMessage: result.signedMessage, + signature: + result.signatureType === "ed25519" + ? new Ed25519Signature(result.signature) + : (result.signature as any), + type: result.signatureType || "ed25519", + }; + return { + status: UserResponseStatus.APPROVED, + args: response, + }; + } catch (e: any) { + if (e instanceof Error && e.message.includes("rejected")) { + return { + status: UserResponseStatus.REJECTED, + }; + } + throw new Error("Error signing in" + e).message; + } + }, + version: "0.1.0", + }, }; }; @@ -179,7 +229,8 @@ const SOLANA_ADDITIONAL_FEATURES = ( signTransaction: async ( transaction: Transaction ): Promise> => { - if (!solanaWallet.signTransaction) throw new Error("Not supported"); + if (!solanaWallet.signTransaction) + throw new Error("signTransaction not supported").message; try { const signature = await solanaWallet.signTransaction(transaction); return { @@ -192,7 +243,7 @@ const SOLANA_ADDITIONAL_FEATURES = ( status: UserResponseStatus.REJECTED, }; } - throw e; + throw new Error("Error signing transaction" + e).message; } }, version: "1.0.0",