diff --git a/examples/vite/src/App.tsx b/examples/vite/src/App.tsx index c25082cc..6058a325 100644 --- a/examples/vite/src/App.tsx +++ b/examples/vite/src/App.tsx @@ -5,7 +5,13 @@ import { WalletKitConfig, WalletKitProvider, } from '@node-real/walletkit'; -import { defaultEvmConfig, trustWallet, metaMask, walletConnect } from '@node-real/walletkit/evm'; +import { + defaultEvmConfig, + trustWallet, + metaMask, + walletConnect, + binanceWallet, +} from '@node-real/walletkit/evm'; import { mainnet } from 'viem/chains'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { useAccount, useDisconnect } from 'wagmi'; @@ -20,7 +26,7 @@ const config: WalletKitConfig = { autoConnect: true, initialChainId: 1, walletConnectProjectId: '518ee55b46bc23b5b496b03b1322aa13', - wallets: [metaMask(), trustWallet(), walletConnect()], + wallets: [binanceWallet(), metaMask(), trustWallet(), walletConnect()], chains: [mainnet], }), }; diff --git a/packages/walletkit/__dev__/App.tsx b/packages/walletkit/__dev__/App.tsx index 67162406..fce3f600 100644 --- a/packages/walletkit/__dev__/App.tsx +++ b/packages/walletkit/__dev__/App.tsx @@ -1,8 +1,8 @@ import './style.css'; import { ConnectModal, + isMobile, useConnectModal, - useSwitchNetworkModal, WalletKitConfig, WalletKitProvider, } from '@/core/index'; @@ -27,7 +27,7 @@ import { } from '@/solana/index'; import { bsc, mainnet, dfk } from 'viem/chains'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; -import { useAccount, useConnectors, useDisconnect } from 'wagmi'; +import { useAccount, useDisconnect } from 'wagmi'; import { defaultTronConfig, tronLink, useTronWallet } from '@/tron/index'; import { uxuyWallet } from '@/evm/wallets/uxuyWallet'; import { useEvmSwitchChain } from '@/evm/hooks/useEvmSwitchChain'; @@ -93,9 +93,43 @@ export default function App() { ); } +export const getIsAndroid = () => { + const ua = navigator.userAgent; + const android = Boolean(ua.match(/Android/i)); + return android; +}; + +export const getHref = (isAndroid: boolean, wc?: string) => { + const appID = 'xoqXxUSMRccLCrZNRebmzj'; + const startPagePath = 'L3BhZ2VzL2Rhc2hib2FyZC1uZXcvaW5kZXg='; + + let qs = `appId=${appID}&startPagePath=${startPagePath}`; + if (wc) { + const startPageQuery = encodeURI( + `wc=${encodeURIComponent(wc)}&isDeepLink=true&id=${+new Date()}`, + ); + qs = `${qs}&startPageQuery=${startPageQuery}`; + } + const host = '//app.binance.com'; + if (isAndroid) { + return `bnc:${host}/mp/app?${qs}`; + } + return `https:${host}/?_dp=${encodeURI(`/mp/app?${qs}`)}`; +}; + +export const openBinanceDeepLink = (wc?: string) => { + const href = getHref(true, wc); + if (!isMobile()) return; + + const a = document.createElement('a'); + a.href = href; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); +}; + function ConnectButton() { const { onOpen } = useConnectModal(); - const { onOpen: openSwitchNetwork } = useSwitchNetworkModal(); const { address, chainId } = useAccount(); const { disconnect } = useDisconnect(); @@ -103,12 +137,6 @@ function ConnectButton() { const { address: tronAddress, disconnect: tronDisconnect } = useTronWallet(); const { switchChain } = useEvmSwitchChain(); - const connectors = useConnectors(); - - connectors?.forEach((e) => { - console.log(e.id); - }); - return ( <>
diff --git a/packages/walletkit/package.json b/packages/walletkit/package.json index 9d7e45b0..04e94f96 100644 --- a/packages/walletkit/package.json +++ b/packages/walletkit/package.json @@ -53,6 +53,8 @@ "wagmi": "^2" }, "dependencies": { + "@binance/w3w-ethereum-provider": "1.1.8-alpha.0", + "@binance/w3w-utils": "^1.1.6", "@binance/w3w-wagmi-connector-v2": "^1.2.3", "@metamask/jazzicon": "^2", "@solana/wallet-adapter-react": "^0", diff --git a/packages/walletkit/src/core/providers/RouteProvider/index.tsx b/packages/walletkit/src/core/providers/RouteProvider/index.tsx index 8fe62bed..613ee530 100644 --- a/packages/walletkit/src/core/providers/RouteProvider/index.tsx +++ b/packages/walletkit/src/core/providers/RouteProvider/index.tsx @@ -1,4 +1,4 @@ -import { useState, useRef, useMemo, useCallback, useEffect } from 'react'; +import { useState, useRef, useMemo, useCallback } from 'react'; import { RouteContext } from './context'; import { EvmConnectingView } from '@/evm/components/EvmConnectingView'; import { EvmQRCodeView } from '@/evm/components/EvmQRCodeView'; diff --git a/packages/walletkit/src/evm/components/SetEvmWalletClickRef/index.tsx b/packages/walletkit/src/evm/components/SetEvmWalletClickRef/index.tsx index db7c807b..b2269801 100644 --- a/packages/walletkit/src/evm/components/SetEvmWalletClickRef/index.tsx +++ b/packages/walletkit/src/evm/components/SetEvmWalletClickRef/index.tsx @@ -1,4 +1,4 @@ -import { isMobile, isPC, isTMA } from '@/core/base/utils/mobile'; +import { isMobile, isTMA } from '@/core/base/utils/mobile'; import { UseWalletRenderProps } from '@/core/hooks/useWalletRender'; import { useConnectModal } from '@/core/modals/ConnectModal/context'; import { ViewRoutes } from '@/core/providers/RouteProvider'; @@ -8,7 +8,7 @@ import { openLink } from '@/core/utils/common'; import { useEvmConnect } from '@/evm/hooks/useEvmConnect'; import { useWalletConnectModal } from '@/evm/hooks/useWalletConnectModal'; import { - binanceWeb3Wallet, + binanceWallet, codexFieldWallet, EvmWallet, isWalletConnect, @@ -84,7 +84,7 @@ export function SetEvmWalletClickRef(props: SetEvmWalletClickRefProps) { disconnect(); clearTimeout(timerRef.current); - const useSDK = [binanceWeb3Wallet().id].includes(walletId) && isPC(); + const useSDK = [binanceWallet().id].includes(walletId); const delay = useSDK ? 0 : 300; const handleJumping = () => { @@ -99,13 +99,13 @@ export function SetEvmWalletClickRef(props: SetEvmWalletClickRefProps) { return; } + // 1. TMA if (isTMA()) { if ([uxuyWallet().id, codexFieldWallet().id].includes(walletId)) { jumpToConnectingView(); return; } - // 1. TMA if (isMobile()) { // 1.1 mobile if (isWalletConnect(walletId)) { diff --git a/packages/walletkit/src/evm/utils/defaultEvmConfig.ts b/packages/walletkit/src/evm/utils/defaultEvmConfig.ts index 6b1ef53c..9292bc97 100644 --- a/packages/walletkit/src/evm/utils/defaultEvmConfig.ts +++ b/packages/walletkit/src/evm/utils/defaultEvmConfig.ts @@ -1,7 +1,7 @@ import { http, createConfig, CreateConnectorFn, type CreateConfigParameters } from 'wagmi'; import { Chain, mainnet } from 'wagmi/chains'; import { - binanceWeb3Wallet, + binanceWallet, coinbaseWallet, EvmWallet, isWalletConnect, @@ -72,8 +72,8 @@ export function defaultEvmConfig(params: CustomizedEvmConfig) { if (connector.id === 'codex-field-wallet') { (connector as any).id = codexFieldWallet().id; } - if (connector.id === 'BinanceW3WSDK') { - (connector as any).id = binanceWeb3Wallet().id; + if (connector.id === 'wallet.binance.com') { + (connector as any).id = binanceWallet().id; } }); diff --git a/packages/walletkit/src/evm/wallets/binanceWallet/index.tsx b/packages/walletkit/src/evm/wallets/binanceWallet/index.tsx index 6aacd8e5..9a7abcc5 100644 --- a/packages/walletkit/src/evm/wallets/binanceWallet/index.tsx +++ b/packages/walletkit/src/evm/wallets/binanceWallet/index.tsx @@ -1,19 +1,22 @@ import { BinanceW3WParameters, getWagmiConnectorV2 } from '@binance/w3w-wagmi-connector-v2'; -import { isAndroid, isTMA } from '@/core/base/utils/mobile'; +import { isInBinance } from '@binance/w3w-utils'; +import { isMobile, isTMA } from '@/core/base/utils/mobile'; import { binanceWalletConfig } from '@/core/configs/binanceWallet'; import { EvmWallet } from '../types'; import { getEvmInjectedProvider } from '../utils'; +import { sleep } from 'tronweb/utils'; +import { injected } from '../injected'; export interface BinanceWalletOptions extends Partial { connectorOptions?: BinanceW3WParameters; } export function binanceWallet(props: BinanceWalletOptions = {}): EvmWallet { - const { connectorOptions, ...restProps } = props; + const { connectorOptions = {}, ...restProps } = props; return { ...binanceWalletConfig, - id: 'binanceWallet', + id: 'binanceWeb3Wallet', walletType: 'evm', showQRCode: false, platforms: ['tg-android', 'tg-ios', 'tg-pc', 'browser-android', 'browser-ios', 'browser-pc'], @@ -34,13 +37,49 @@ export function binanceWallet(props: BinanceWalletOptions = {}): EvmWallet { return http; }, getUri(uri) { - let encodedUri = encodeURIComponent(uri); - if (isTMA() && isAndroid()) { - encodedUri = encodeURIComponent(encodedUri); - } + const encodedUri = encodeURIComponent(uri); return `https://app.binance.com/cedefi/wc?uri=${encodedUri}`; }, getCreateConnectorFn() { + if (isInBinance()) { + let isReady = false; + + return injected({ + shimDisconnect: true, + target: { + id: this.id, + name: binanceWallet().name, + async provider() { + if (isMobile() && binanceWallet().isInstalled() && !isReady) { + await sleep(3000); + } + isReady = true; + return getProvider(); + }, + }, + ...connectorOptions, + }); + } + + if (typeof window !== 'undefined') { + const originalAppendChild = document.body.appendChild; + + document.body.appendChild = function (node, ...params) { + if (node instanceof HTMLAnchorElement && node.href?.startsWith('bnc://')) { + node.href = `https://app.binance.com/en/download?_dp=${window.btoa(node.href)}`; + node.target = '_blank'; + // node.href = node.href.replace('bnc://', 'https://'); + + // const qs = node.href.replace('bnc://app.binance.com/mp/app?', ''); + // node.href = `https://app.binance.com/?_dp=${encodeURI(`/mp/app?${qs}`)}`; + const div = document.createElement('div'); + div.textContent = node.href; + document.body.appendChild(div); + } + return originalAppendChild.call(document.body, node, ...params) as any; + }; + } + const connector = getWagmiConnectorV2(); return connector({ ...connectorOptions, @@ -50,14 +89,6 @@ export function binanceWallet(props: BinanceWalletOptions = {}): EvmWallet { }; } -// binance web3 wallet changes its name to `binance wallet`, retaining the previous wallet id -export function binanceWeb3Wallet(props: BinanceWalletOptions = {}): EvmWallet { - return { - ...binanceWallet(props), - id: 'binanceWeb3Wallet', - }; -} - function getProvider() { if (typeof window === 'undefined') return; return getEvmInjectedProvider('isBinance'); diff --git a/packages/walletkit/src/evm/wallets/codexFieldWallet/index.tsx b/packages/walletkit/src/evm/wallets/codexFieldWallet/index.tsx index 1235617b..db0b0fb6 100644 --- a/packages/walletkit/src/evm/wallets/codexFieldWallet/index.tsx +++ b/packages/walletkit/src/evm/wallets/codexFieldWallet/index.tsx @@ -5,6 +5,7 @@ import { } from 'codexfield-wallet-connector'; import { getEvmGlobalData } from '@/evm/globalData'; import { codexFieldWalletConfig } from '@/core/configs/codexFieldWallet'; +import { isTMA } from '@/core/base/utils/mobile'; interface CodexFieldWalletOptions extends Partial { connectorOptions?: Partial; @@ -20,7 +21,7 @@ export function codexFieldWallet(props: CodexFieldWalletOptions = {}): EvmWallet showQRCode: false, platforms: ['tg-android', 'tg-ios', 'tg-pc'], isInstalled() { - return true; + return isTMA(); }, getDeepLink() { return undefined; diff --git a/packages/walletkit/src/evm/wallets/uxuyWallet/index.tsx b/packages/walletkit/src/evm/wallets/uxuyWallet/index.tsx index 6e16bd14..85eb336f 100644 --- a/packages/walletkit/src/evm/wallets/uxuyWallet/index.tsx +++ b/packages/walletkit/src/evm/wallets/uxuyWallet/index.tsx @@ -1,6 +1,7 @@ import { uxuyWalletConfig } from '@/core/configs/uyuxWallet'; import { injected } from '../injected'; import { EvmWallet, InjectedEvmWalletOptions } from '../types'; +import { isTMA } from '@/core/base/utils/mobile'; export function uxuyWallet(props: InjectedEvmWalletOptions = {}): EvmWallet { const { connectorOptions, ...restProps } = props; @@ -12,7 +13,7 @@ export function uxuyWallet(props: InjectedEvmWalletOptions = {}): EvmWallet { showQRCode: false, platforms: ['tg-android', 'tg-ios', 'tg-pc'], isInstalled() { - return true; + return isTMA(); }, getDeepLink() { return undefined; diff --git a/packages/walletkit/vite.config.ts.timestamp-1736263509573-ec0e407905397.mjs b/packages/walletkit/vite.config.ts.timestamp-1736263509573-ec0e407905397.mjs new file mode 100644 index 00000000..d2b0e97d --- /dev/null +++ b/packages/walletkit/vite.config.ts.timestamp-1736263509573-ec0e407905397.mjs @@ -0,0 +1,61 @@ +// vite.config.ts +import { defineConfig } from "file:///Users/liwen/Documents/node-real/walletkit/node_modules/.pnpm/vite@4.5.5_@types+node@22.7.5_lightningcss@1.27.0_terser@5.37.0/node_modules/vite/dist/node/index.js"; +import react from "file:///Users/liwen/Documents/node-real/walletkit/node_modules/.pnpm/@vitejs+plugin-react@4.3.4_vite@4.5.5_@types+node@22.7.5_lightningcss@1.27.0_terser@5.37.0_/node_modules/@vitejs/plugin-react/dist/index.mjs"; +import dts from "file:///Users/liwen/Documents/node-real/walletkit/node_modules/.pnpm/vite-plugin-dts@3.9.1_@types+node@22.7.5_rollup@4.28.1_typescript@5.7.2_vite@4.5.5_@types+nod_hqvoadjptfr5fbnz34ggrdvpia/node_modules/vite-plugin-dts/dist/index.mjs"; +import peerDepsExternal from "file:///Users/liwen/Documents/node-real/walletkit/node_modules/.pnpm/rollup-plugin-peer-deps-external@2.2.4_rollup@4.28.1/node_modules/rollup-plugin-peer-deps-external/dist/rollup-plugin-peer-deps-external.js"; +import { vanillaExtractPlugin } from "file:///Users/liwen/Documents/node-real/walletkit/node_modules/.pnpm/@vanilla-extract+vite-plugin@3.9.5_@types+node@22.7.5_babel-plugin-macros@3.1.0_lightningcss@_cxnzwayg2birdbvurx6hdeqcfa/node_modules/@vanilla-extract/vite-plugin/dist/vanilla-extract-vite-plugin.cjs.js"; +import path from "path"; +import mkcert from "file:///Users/liwen/Documents/node-real/walletkit/node_modules/.pnpm/vite-plugin-mkcert@1.17.6_vite@4.5.5_@types+node@22.7.5_lightningcss@1.27.0_terser@5.37.0_/node_modules/vite-plugin-mkcert/dist/mkcert.mjs"; +var __vite_injected_original_dirname = "/Users/liwen/Documents/node-real/walletkit/packages/walletkit"; +var vite_config_default = defineConfig({ + server: { + https: false + }, + plugins: [ + react(), + vanillaExtractPlugin({ + identifiers: ({ hash }) => `wk_${hash}` + }), + // cssInjectedByJsPlugin({ + // injectCode: (cssCode: string) => { + // return `try{if(typeof document != 'undefined'){var elementStyle = document.createElement('style');elementStyle.appendChild(document.createTextNode(${cssCode}));document.head.insertBefore(elementStyle,document.head.firstChild);}}catch(e){console.error('vite-plugin-css-injected-by-js', e);}`; + // }, + // }), + dts({ + include: "src" + }), + mkcert() + ], + resolve: { + alias: { + "@": path.resolve(__vite_injected_original_dirname, "src") + } + }, + build: { + target: "esnext", + minify: false, + lib: { + formats: ["es"], + entry: { + "evm/index": "src/evm/index.ts", + "solana/index": "src/solana/index.ts", + "tron/index": "src/tron/index.ts", + "core/index": "src/core/index.ts" + } + }, + rollupOptions: { + plugins: [ + peerDepsExternal({ + includeDependencies: true + }) + ], + output: { + chunkFileNames: "chunks/chunk.js" + } + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvbGl3ZW4vRG9jdW1lbnRzL25vZGUtcmVhbC93YWxsZXRraXQvcGFja2FnZXMvd2FsbGV0a2l0XCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvbGl3ZW4vRG9jdW1lbnRzL25vZGUtcmVhbC93YWxsZXRraXQvcGFja2FnZXMvd2FsbGV0a2l0L3ZpdGUuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9saXdlbi9Eb2N1bWVudHMvbm9kZS1yZWFsL3dhbGxldGtpdC9wYWNrYWdlcy93YWxsZXRraXQvdml0ZS5jb25maWcudHNcIjtpbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJztcbmltcG9ydCByZWFjdCBmcm9tICdAdml0ZWpzL3BsdWdpbi1yZWFjdCc7XG5pbXBvcnQgZHRzIGZyb20gJ3ZpdGUtcGx1Z2luLWR0cyc7XG5pbXBvcnQgcGVlckRlcHNFeHRlcm5hbCBmcm9tICdyb2xsdXAtcGx1Z2luLXBlZXItZGVwcy1leHRlcm5hbCc7XG5pbXBvcnQgeyB2YW5pbGxhRXh0cmFjdFBsdWdpbiB9IGZyb20gJ0B2YW5pbGxhLWV4dHJhY3Qvdml0ZS1wbHVnaW4nO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgbWtjZXJ0IGZyb20gJ3ZpdGUtcGx1Z2luLW1rY2VydCc7XG4vLyBpbXBvcnQgY3NzSW5qZWN0ZWRCeUpzUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWNzcy1pbmplY3RlZC1ieS1qcyc7XG5cbi8vIGh0dHBzOi8vdml0ZWpzLmRldi9jb25maWcvXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICBzZXJ2ZXI6IHtcbiAgICBodHRwczogZmFsc2UsXG4gIH0sXG4gIHBsdWdpbnM6IFtcbiAgICByZWFjdCgpLFxuICAgIHZhbmlsbGFFeHRyYWN0UGx1Z2luKHtcbiAgICAgIGlkZW50aWZpZXJzOiAoeyBoYXNoIH0pID0+IGB3a18ke2hhc2h9YCxcbiAgICB9KSxcbiAgICAvLyBjc3NJbmplY3RlZEJ5SnNQbHVnaW4oe1xuICAgIC8vICAgaW5qZWN0Q29kZTogKGNzc0NvZGU6IHN0cmluZykgPT4ge1xuICAgIC8vICAgICByZXR1cm4gYHRyeXtpZih0eXBlb2YgZG9jdW1lbnQgIT0gJ3VuZGVmaW5lZCcpe3ZhciBlbGVtZW50U3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO2VsZW1lbnRTdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgke2Nzc0NvZGV9KSk7ZG9jdW1lbnQuaGVhZC5pbnNlcnRCZWZvcmUoZWxlbWVudFN0eWxlLGRvY3VtZW50LmhlYWQuZmlyc3RDaGlsZCk7fX1jYXRjaChlKXtjb25zb2xlLmVycm9yKCd2aXRlLXBsdWdpbi1jc3MtaW5qZWN0ZWQtYnktanMnLCBlKTt9YDtcbiAgICAvLyAgIH0sXG4gICAgLy8gfSksXG4gICAgZHRzKHtcbiAgICAgIGluY2x1ZGU6ICdzcmMnLFxuICAgIH0pLFxuICAgIG1rY2VydCgpLFxuICBdLFxuICByZXNvbHZlOiB7XG4gICAgYWxpYXM6IHtcbiAgICAgICdAJzogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3NyYycpLFxuICAgIH0sXG4gIH0sXG4gIGJ1aWxkOiB7XG4gICAgdGFyZ2V0OiAnZXNuZXh0JyxcbiAgICBtaW5pZnk6IGZhbHNlLFxuICAgIGxpYjoge1xuICAgICAgZm9ybWF0czogWydlcyddLFxuICAgICAgZW50cnk6IHtcbiAgICAgICAgJ2V2bS9pbmRleCc6ICdzcmMvZXZtL2luZGV4LnRzJyxcbiAgICAgICAgJ3NvbGFuYS9pbmRleCc6ICdzcmMvc29sYW5hL2luZGV4LnRzJyxcbiAgICAgICAgJ3Ryb24vaW5kZXgnOiAnc3JjL3Ryb24vaW5kZXgudHMnLFxuICAgICAgICAnY29yZS9pbmRleCc6ICdzcmMvY29yZS9pbmRleC50cycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcm9sbHVwT3B0aW9uczoge1xuICAgICAgcGx1Z2luczogW1xuICAgICAgICBwZWVyRGVwc0V4dGVybmFsKHtcbiAgICAgICAgICBpbmNsdWRlRGVwZW5kZW5jaWVzOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICBvdXRwdXQ6IHtcbiAgICAgICAgY2h1bmtGaWxlTmFtZXM6ICdjaHVua3MvY2h1bmsuanMnLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufSk7XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQXlXLFNBQVMsb0JBQW9CO0FBQ3RZLE9BQU8sV0FBVztBQUNsQixPQUFPLFNBQVM7QUFDaEIsT0FBTyxzQkFBc0I7QUFDN0IsU0FBUyw0QkFBNEI7QUFDckMsT0FBTyxVQUFVO0FBQ2pCLE9BQU8sWUFBWTtBQU5uQixJQUFNLG1DQUFtQztBQVV6QyxJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixRQUFRO0FBQUEsSUFDTixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04scUJBQXFCO0FBQUEsTUFDbkIsYUFBYSxDQUFDLEVBQUUsS0FBSyxNQUFNLE1BQU0sSUFBSTtBQUFBLElBQ3ZDLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFNRCxJQUFJO0FBQUEsTUFDRixTQUFTO0FBQUEsSUFDWCxDQUFDO0FBQUEsSUFDRCxPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsS0FBSyxLQUFLLFFBQVEsa0NBQVcsS0FBSztBQUFBLElBQ3BDO0FBQUEsRUFDRjtBQUFBLEVBQ0EsT0FBTztBQUFBLElBQ0wsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsS0FBSztBQUFBLE1BQ0gsU0FBUyxDQUFDLElBQUk7QUFBQSxNQUNkLE9BQU87QUFBQSxRQUNMLGFBQWE7QUFBQSxRQUNiLGdCQUFnQjtBQUFBLFFBQ2hCLGNBQWM7QUFBQSxRQUNkLGNBQWM7QUFBQSxNQUNoQjtBQUFBLElBQ0Y7QUFBQSxJQUNBLGVBQWU7QUFBQSxNQUNiLFNBQVM7QUFBQSxRQUNQLGlCQUFpQjtBQUFBLFVBQ2YscUJBQXFCO0FBQUEsUUFDdkIsQ0FBQztBQUFBLE1BQ0g7QUFBQSxNQUNBLFFBQVE7QUFBQSxRQUNOLGdCQUFnQjtBQUFBLE1BQ2xCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 64f98dcb..cd923869 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -142,6 +142,12 @@ importers: packages/walletkit: dependencies: + '@binance/w3w-ethereum-provider': + specifier: 1.1.8-alpha.0 + version: 1.1.8-alpha.0(bufferutil@4.0.8)(encoding@0.1.13)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.7.2))(utf-8-validate@5.0.10) + '@binance/w3w-utils': + specifier: ^1.1.6 + version: 1.1.6 '@binance/w3w-wagmi-connector-v2': specifier: ^1.2.3 version: 1.2.5(bufferutil@4.0.8)(encoding@0.1.13)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.7.2))(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.0.8)(typescript@5.7.2)(utf-8-validate@5.0.10))(wagmi@2.14.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.17)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.62.8)(@tanstack/react-query@5.62.8(react@18.3.1))(@types/react@18.3.17)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.0.8)(typescript@5.7.2)(utf-8-validate@5.0.10))) @@ -1213,9 +1219,15 @@ packages: '@binance/w3w-core@1.1.7': resolution: {integrity: sha512-Aipavg2sc8JyBsgvmdbpna0RmS1EVmaIIgZO3lQr+OV0Q2EKabAIZ5nZNQOEmhxAzOxcrCZAUaNu/tW17JfcGg==} + '@binance/w3w-core@1.1.8-alpha.0': + resolution: {integrity: sha512-fLTBqF4Yb7s4zFMhzHnmurQqszbiE9c8ZdmbELSkWgSwEHtEO7DAOAV61X9mCLLeCLpQkwz3sLULg/Agjr5iXA==} + '@binance/w3w-ethereum-provider@1.1.7': resolution: {integrity: sha512-fHHifGDidtYaXoboe1FzLZ5wKk0FzIvgq8SCuEtibXZK3d+iITF28gmCKZnp7BCuCjvuNvOCp3GNHcvY4ARPJg==} + '@binance/w3w-ethereum-provider@1.1.8-alpha.0': + resolution: {integrity: sha512-pmJWrv1npmqYYz1M3wtaXVY4rSJh2GYjNgRXoFb9SUJOklO8zHqKUjRoPWcHtWQTnEHmwzE4e/dIzE3tecRAjg==} + '@binance/w3w-http-client@1.1.4': resolution: {integrity: sha512-dovohLZThYNY2DNbM0XILjLsgo+ZMdMRRTkbdewrLcj1KkXwUn36K2tFsi/aDZXTBjWcNlziaGQYHmbuLEXTpw==} @@ -1225,6 +1237,9 @@ packages: '@binance/w3w-sign-client@1.1.7': resolution: {integrity: sha512-KmuQCJ6g0L2LS0LEUQWbugqWiB6Nx+GMCEVuyRhl1AxzAiDybolpx8bIYAIinUeWoO2NcDJdzn971tX+QkhjoQ==} + '@binance/w3w-sign-client@1.1.8-alpha.0': + resolution: {integrity: sha512-p/p/aN6bwCko6X6SGvHGIEW/8ePx/2FWecnAwZaqWmglOdc3u632MWYgTj814Vn6tM36kntY5GoYbGVPMPtQ2w==} + '@binance/w3w-socket-transport@1.1.4': resolution: {integrity: sha512-SFHknzRM74CMam95bcpcyGeYVHfET3vrANU6XROAVYTa+kCP2O6/tIZVO+WC5HyEJf2uNcJJAV1PVn3gq/3kKQ==} @@ -1234,6 +1249,9 @@ packages: '@binance/w3w-utils@1.1.4': resolution: {integrity: sha512-lWpxCj5IB8XNKmFotZ2MLsK4rP5ECyC5jHxbDuvjseMlZchEaWKRXViUcwIz3XdJPVM3DDArqqweLEyxCcsDtQ==} + '@binance/w3w-utils@1.1.6': + resolution: {integrity: sha512-NGT629vS9tRlbigtNn9wHtTYNB00oyDcsajO/kpAcDiQn4ktYs7+oTIr/qLvjP8Z3opTXpbooqMPITDY7DI0IA==} + '@binance/w3w-wagmi-connector-v2@1.2.5': resolution: {integrity: sha512-h6P7qVT+BoTvFAGn1twACrZc4v0MAGRNpFweeb+wYtV54tktxDFg8I9AZC7SnKMaXC9jazX0mLBDbWYz1S3vhg==} peerDependencies: @@ -11920,6 +11938,21 @@ snapshots: - ts-node - utf-8-validate + '@binance/w3w-core@1.1.8-alpha.0(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.7.2))(utf-8-validate@5.0.10)': + dependencies: + '@binance/w3w-qrcode-modal': 1.1.5(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.7.2)) + '@binance/w3w-socket-transport': 1.1.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@binance/w3w-types': 1.1.4 + '@binance/w3w-utils': 1.1.4 + '@ethersproject/abi': 5.7.0 + axios: 1.7.9(debug@4.4.0) + js-base64: 3.7.7 + transitivePeerDependencies: + - bufferutil + - debug + - ts-node + - utf-8-validate + '@binance/w3w-ethereum-provider@1.1.7(bufferutil@4.0.8)(encoding@0.1.13)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.7.2))(utf-8-validate@5.0.10)': dependencies: '@binance/w3w-http-client': 1.1.4(encoding@0.1.13) @@ -11935,6 +11968,21 @@ snapshots: - ts-node - utf-8-validate + '@binance/w3w-ethereum-provider@1.1.8-alpha.0(bufferutil@4.0.8)(encoding@0.1.13)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.7.2))(utf-8-validate@5.0.10)': + dependencies: + '@binance/w3w-http-client': 1.1.4(encoding@0.1.13) + '@binance/w3w-sign-client': 1.1.8-alpha.0(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.7.2))(utf-8-validate@5.0.10) + '@binance/w3w-types': 1.1.4 + '@binance/w3w-utils': 1.1.4 + eip1193-provider: 1.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + eventemitter3: 5.0.1 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - ts-node + - utf-8-validate + '@binance/w3w-http-client@1.1.4(encoding@0.1.13)': dependencies: '@binance/w3w-types': 1.1.4 @@ -11967,6 +12015,17 @@ snapshots: - ts-node - utf-8-validate + '@binance/w3w-sign-client@1.1.8-alpha.0(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.7.2))(utf-8-validate@5.0.10)': + dependencies: + '@binance/w3w-core': 1.1.8-alpha.0(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.7.2))(utf-8-validate@5.0.10) + '@binance/w3w-types': 1.1.4 + '@binance/w3w-utils': 1.1.4 + transitivePeerDependencies: + - bufferutil + - debug + - ts-node + - utf-8-validate + '@binance/w3w-socket-transport@1.1.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@binance/w3w-types': 1.1.4 @@ -11987,6 +12046,13 @@ snapshots: hash.js: 1.1.7 js-base64: 3.7.7 + '@binance/w3w-utils@1.1.6': + dependencies: + '@binance/w3w-types': 1.1.4 + eventemitter3: 5.0.1 + hash.js: 1.1.7 + js-base64: 3.7.7 + '@binance/w3w-wagmi-connector-v2@1.2.5(bufferutil@4.0.8)(encoding@0.1.13)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.7.2))(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.0.8)(typescript@5.7.2)(utf-8-validate@5.0.10))(wagmi@2.14.3(@react-native-async-storage/async-storage@1.24.0(react-native@0.76.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.17)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(utf-8-validate@5.0.10)))(@tanstack/query-core@5.62.8)(@tanstack/react-query@5.62.8(react@18.3.1))(@types/react@18.3.17)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.3.1)(typescript@5.7.2)(utf-8-validate@5.0.10)(viem@2.21.55(bufferutil@4.0.8)(typescript@5.7.2)(utf-8-validate@5.0.10)))': dependencies: '@binance/w3w-ethereum-provider': 1.1.7(bufferutil@4.0.8)(encoding@0.1.13)(ts-node@10.9.2(@types/node@22.7.5)(typescript@5.7.2))(utf-8-validate@5.0.10)