@orderly.network/wallet-connector 2.8.10-alpha.0 → 2.8.11-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -170,8 +170,7 @@ function InitEvm(props) {
170
170
  console.error("Error fetching data:", error);
171
171
  });
172
172
  }, []);
173
- if (!initialized)
174
- return null;
173
+ if (!initialized) return null;
175
174
  return props.children;
176
175
  }
177
176
  var fetchChainInfo = async (url) => {
@@ -616,5 +615,5 @@ var WalletConnectorProvider = (props) => {
616
615
  };
617
616
 
618
617
  exports.WalletConnectorProvider = WalletConnectorProvider;
619
- //# sourceMappingURL=out.js.map
618
+ //# sourceMappingURL=index.js.map
620
619
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/provider.tsx","../src/SolanaProvider.tsx","../src/initEvm.tsx","../src/config.ts","../src/main.tsx","../src/useEvm.tsx","../src/useSOL.tsx"],"names":["React","WalletAdapterNetwork","merge","useEffect","useMemo","useRef","useState","ChainNamespace","WalletNotReadyError","useScreen","wallet","signMessage","signTransaction","sendTransaction"],"mappings":"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","sourcesContent":["import React, { type PropsWithChildren } from \"react\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\nimport { EMPTY_OBJECT } from \"@orderly.network/types\";\nimport { SolanaProvider } from \"./SolanaProvider\";\nimport { InitEvm } from \"./initEvm\";\nimport { Main } from \"./main\";\nimport { EvmInitialProps, SolanaInitialProps } from \"./types\";\n\nexport interface WalletConnectorProviderProps {\n solanaInitial?: SolanaInitialProps;\n evmInitial?: EvmInitialProps;\n}\n\nexport const WalletConnectorProvider: React.FC<\n PropsWithChildren<WalletConnectorProviderProps>\n> = (props) => {\n return (\n <SolanaProvider {...(props.solanaInitial ?? EMPTY_OBJECT)}>\n <InitEvm {...(props.evmInitial ?? EMPTY_OBJECT)}>\n <Main\n solanaNetwork={\n props.solanaInitial?.network ?? WalletAdapterNetwork.Devnet\n }\n >\n {props.children}\n </Main>\n </InitEvm>\n </SolanaProvider>\n );\n};\n","import React, { createContext, useContext, useMemo } from \"react\";\nimport {\n createDefaultAddressSelector,\n createDefaultAuthorizationResultCache,\n SolanaMobileWalletAdapter,\n} from \"@solana-mobile/wallet-adapter-mobile\";\nimport {\n Adapter,\n WalletAdapterNetwork,\n WalletError,\n WalletNotReadyError,\n} from \"@solana/wallet-adapter-base\";\nimport {\n ConnectionProvider,\n WalletProvider,\n} from \"@solana/wallet-adapter-react\";\nimport { WalletModalProvider } from \"@solana/wallet-adapter-react-ui\";\nimport { PhantomWalletAdapter } from \"@solana/wallet-adapter-wallets\";\nimport { clusterApiUrl } from \"@solana/web3.js\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { getGlobalObject } from \"@orderly.network/utils\";\nimport { SolanaInitialProps } from \"./types\";\nimport \"@solana/wallet-adapter-react-ui/styles.css\";\n\nconst SolanaContext = createContext<{\n network: WalletAdapterNetwork;\n endpoint: string;\n}>({\n network: WalletAdapterNetwork.Devnet,\n endpoint: \"\",\n});\n\nexport const useSolanaContext = () => {\n const context = useContext(SolanaContext);\n\n if (context === undefined) {\n throw new Error(\"useSolanaContext must be used within a SolanaProvider\");\n }\n\n return context;\n};\n\nexport function SolanaProvider({ children, ...props }: SolanaInitialProps) {\n const { isMobile } = useScreen();\n const network = useMemo(\n () => props.network ?? WalletAdapterNetwork.Devnet,\n [props.network],\n );\n\n const endpoint = useMemo(() => {\n if (network === WalletAdapterNetwork.Mainnet) {\n return props.mainnetRpc ?? \"\";\n }\n if (network === WalletAdapterNetwork.Devnet) {\n return props.devnetRpc ?? \"\";\n }\n return \"\";\n }, [network, props.mainnetRpc, props.devnetRpc]);\n\n const mobileWalletNotFoundHanlder = (adapter: SolanaMobileWalletAdapter) => {\n console.log(\"-- mobile wallet adapter\", adapter);\n return Promise.reject(new WalletNotReadyError(\"wallet not ready\"));\n };\n\n const handleSolanaError = (error: WalletError, adapter?: Adapter) => {\n console.log(\"-- solanan error\", error);\n console.log(\"-- solana adapter\", adapter);\n\n if (!isMobile && error instanceof WalletNotReadyError) {\n window.open(adapter?.url, \"_blank\");\n }\n };\n\n const wallets = useMemo(() => {\n let uri = \"\";\n if (typeof window !== \"undefined\") {\n const location = (getGlobalObject() as any).location;\n uri = `${location.protocol}//${location.host}`;\n }\n\n return (\n props.wallets ?? [\n new PhantomWalletAdapter(),\n new SolanaMobileWalletAdapter({\n addressSelector: createDefaultAddressSelector(),\n appIdentity: {\n uri,\n },\n authorizationResultCache: createDefaultAuthorizationResultCache(),\n chain: network,\n onWalletNotFound: mobileWalletNotFoundHanlder,\n }),\n ]\n );\n }, [props.wallets, network]);\n\n const contextValue = useMemo(\n () => ({\n network,\n endpoint,\n }),\n [network, endpoint],\n );\n\n return (\n <SolanaContext.Provider value={contextValue}>\n <WalletProvider\n wallets={wallets}\n onError={props.onError ?? handleSolanaError}\n autoConnect={true}\n >\n <WalletModalProvider className=\"oui-pointer-events-auto\">\n {children}\n </WalletModalProvider>\n </WalletProvider>\n </SolanaContext.Provider>\n );\n}\n","import React, { PropsWithChildren, useEffect, useState } from \"react\";\nimport { useSimpleDI } from \"@orderly.network/hooks\";\nimport type { InitOptions, OnboardAPI } from \"@web3-onboard/core\";\nimport { Optional } from \"@orderly.network/types\";\nimport { initConfig } from \"./config\";\nimport { merge } from \"lodash\";\n\n\nexport type ConnectorInitOptions = Optional<\n InitOptions,\n | \"apiKey\"\n | \"connect\"\n | \"wallets\"\n | \"chains\"\n | \"appMetadata\"\n | \"accountCenter\"\n | \"theme\"\n>;\n\nexport interface WalletConnectorProviderProps {\n apiKey?: string;\n options?: ConnectorInitOptions;\n // skip board configuration if already initialized\n skipInit?: boolean;\n}\n\nexport function InitEvm(\n props: PropsWithChildren<WalletConnectorProviderProps>\n) {\n const [initialized, setInitialized] = useState(!!props.skipInit);\n\n const { get, register } = useSimpleDI();\n\n useEffect(() => {\n document.body.style.setProperty(\"--onboard-modal-z-index\", \"88\");\n }, []);\n\n useEffect(() => {\n if (props.skipInit) {\n return;\n }\n\n let onboardAPI = get(\"onboardAPI\") as OnboardAPI;\n\n if (onboardAPI) {\n console.log(\"[Orderly SDK]:onboardAPI already initialized\");\n setInitialized(true);\n return;\n }\n\n Promise.all([\n fetchChainInfo('https://testnet-api.orderly.org/v1/public/chain_info'),\n fetchChainInfo('https://api.orderly.org/v1/public/chain_info'),\n ])\n .then(([testChainInfo, mainnetChainInfo]) => {\n const testChains = processChainInfo(testChainInfo);\n const mainnetChains = processChainInfo(mainnetChainInfo);\n\n let options = props.options || {};\n options = merge({ chains: [...testChains, ...mainnetChains] }, options);\n\n onboardAPI = initConfig(props.apiKey, options as InitOptions);\n register('onboardAPI', onboardAPI);\n setInitialized(true);\n })\n .catch((error) => {\n console.error('Error fetching data:', error);\n });\n }, []);\n\n if (!initialized) return null;\n\n return props.children\n}\n\nconst fetchChainInfo = async (url: string) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to fetch data from ${url}`);\n }\n return response.json();\n};\n\nconst processChainInfo = (chainInfo: any) =>\n chainInfo?.data?.rows?.map((row: any) => ({\n id: Number(row.chain_id),\n token: row.currency_symbol,\n label: row.name,\n rpcUrl: row.public_rpc_url,\n blockExplorerUrl: row.explorer_base_url,\n })) || [];\n","import injectedModule from \"@web3-onboard/injected-wallets\";\nimport { init } from \"@web3-onboard/react\";\nimport type { InitOptions, OnboardAPI } from \"@web3-onboard/core\";\nimport binanceModule from \"@binance/w3w-blocknative-connector\";\n// import bitgetWalletModule from \"@web3-onboard/bitget\";\nimport { merge } from \"lodash\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\n\n// initialize the module with options\nconst binance = binanceModule({ options: { lng: \"en\" } });\n// const bitgetWallet = bitgetWalletModule();\n\nexport const initConfig: (\n apiKey?: string,\n options?: InitOptions\n) => OnboardAPI = (apiKey, options) => {\n const defaultOptions = {\n apiKey,\n connect: {\n // autoConnectAllPreviousWallet: true,\n autoConnectLastWallet: true,\n },\n wallets: [injectedModule(), binance],\n chains: [],\n appMetadata: {\n name: \"Orderly\",\n // icon: blocknativeIcon,\n description: \"Orderly\",\n recommendedInjectedWallets: [\n { name: \"Coinbase\", url: \"https://wallet.coinbase.com/\" },\n { name: \"MetaMask\", url: \"https://metamask.io\" },\n { name: \"Trezor\", url: \"https://trezor.io/\" },\n { name: \"Walletconnect\", url: \"https://walletconnect.com/\" },\n { name: \"Ledger\", url: \"https://www.ledger.com/\" },\n ],\n agreement: {\n version: \"1.0.0\",\n termsUrl: \"https://www.blocknative.com/terms-conditions\",\n privacyUrl: \"https://www.blocknative.com/privacy-policy\",\n },\n gettingStartedGuide: \"https://blocknative.com\",\n explore: \"https://blocknative.com\",\n },\n accountCenter: {\n desktop: {\n enabled: false,\n },\n mobile: {\n enabled: false,\n },\n },\n theme: \"dark\",\n } as InitOptions;\n\n const mergedOptions = merge(defaultOptions, options);\n\n return init(mergedOptions);\n};\n\nexport enum SolanaChainIdEnum {\n MAINNET = 900900900,\n DEVNET = 901901901,\n}\n\nexport const SolanaChains = new Map([[WalletAdapterNetwork.Devnet, 901901901], [WalletAdapterNetwork.Mainnet, 900900900]]);\n\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\nimport { WalletConnectorContext } from \"@orderly.network/hooks\";\nimport type { WalletConnectorContextState } from \"@orderly.network/hooks\";\nimport { ChainNamespace } from \"@orderly.network/types\";\nimport { hex2int } from \"@orderly.network/utils\";\nimport { SolanaChains } from \"./config\";\nimport { useEvm } from \"./useEvm\";\nimport { useSOL } from \"./useSOL\";\n\nexport const Main: React.FC<\n React.PropsWithChildren<{ solanaNetwork: WalletAdapterNetwork }>\n> = (props) => {\n const sol = useSOL();\n const evm = useEvm();\n\n const [namespace, setNamespace] = useState<ChainNamespace | null>(null);\n\n const newNamespace = useRef<ChainNamespace | null>();\n\n const connect = async (options: any) => {\n if (Array.from(SolanaChains.values()).includes(options.chainId)) {\n newNamespace.current = ChainNamespace.solana;\n // connect solana\n return sol.connect().then((res) => {\n if (res) {\n return res;\n }\n });\n }\n newNamespace.current = ChainNamespace.evm;\n const evmOption = options.autoSelect\n ? {\n autoSelect: options.autoSelect,\n }\n : undefined;\n\n return evm\n .connect(evmOption)\n .then((res) => {\n if (!res.length) {\n return Promise.reject({ message: \"user reject\" });\n }\n return res;\n })\n .catch((e) => {\n return Promise.reject(e);\n });\n };\n\n const disconnect = async () => {\n if (namespace === ChainNamespace.evm) {\n return evm.disconnect();\n }\n if (namespace === ChainNamespace.solana) {\n return sol.disconnect();\n }\n };\n\n const connecting =\n newNamespace.current == ChainNamespace.solana\n ? sol.connecting\n : evm.connecting;\n\n // console.log('-- connecting', connecting);\n\n const wallet =\n namespace === ChainNamespace.solana && sol.connected\n ? sol.wallet\n : namespace === ChainNamespace.evm && evm.connected\n ? evm.wallet\n : null;\n\n const connectedChain =\n namespace === ChainNamespace.solana\n ? sol.connectedChain\n : evm.connectedChain;\n\n const setChain = (chain: any) => {\n // solana connect\n const chainId =\n typeof chain.chainId === \"number\"\n ? chain.chainId\n : hex2int(chain.chainId);\n // console.log('-- setchain chain',{\n // chain, chainId,\n // });\n\n let tempNamespace: ChainNamespace = ChainNamespace.evm;\n if (Array.from(SolanaChains.values()).includes(chainId)) {\n tempNamespace = ChainNamespace.solana;\n }\n\n if (namespace === tempNamespace && namespace === ChainNamespace.evm) {\n // todo switch chan on block native\n\n return evm.changeChain(chain);\n }\n if (namespace !== tempNamespace) {\n return connect({ chainId: chainId }).then();\n }\n };\n\n useEffect(() => {\n if (sol.connected && evm.connected) {\n if (newNamespace.current === ChainNamespace.solana) {\n evm.disconnect().then();\n setNamespace(ChainNamespace.solana);\n return;\n } else {\n setNamespace(ChainNamespace.evm);\n sol.disconnect().then();\n return;\n }\n }\n\n if (sol.connected) {\n setNamespace(ChainNamespace.solana);\n return;\n }\n if (evm.connected) {\n setNamespace(ChainNamespace.evm);\n return;\n }\n }, [newNamespace.current, sol.connected, evm.connected]);\n\n const memoizedValue = useMemo<WalletConnectorContextState>(() => {\n return {\n connect: connect as any,\n disconnect: disconnect as any,\n connecting,\n wallet: wallet as any,\n setChain: setChain as any,\n connectedChain: connectedChain as any,\n namespace: namespace,\n chains: [],\n settingChain: false,\n };\n }, [\n connect,\n disconnect,\n connecting,\n wallet,\n setChain,\n connectedChain,\n namespace,\n ]);\n\n return (\n <WalletConnectorContext.Provider value={memoizedValue}>\n {props.children}\n </WalletConnectorContext.Provider>\n );\n};\n","import { useConnectWallet, useSetChain } from \"@web3-onboard/react\";\nimport { useMemo } from \"react\";\n\nexport function useEvm() {\n const [\n {\n wallet, // the wallet that has been connected or null if not yet connected\n connecting, // boolean indicating if connection is in progress\n },\n connect, // function to call to initiate user to connect wallet\n evmDisconnect, // function to call with wallet<DisconnectOptions> to disconnect wallet\n updateBalances, // function to be called with an optional array of wallet addresses connected through Onboard to update balance or empty/no params to update all connected wallets\n setWalletModules, // function to be called with an array of wallet modules to conditionally allow connection of wallet types i.e. setWalletModules([ledger, trezor, injected])\n setPrimaryWallet, // function that can set the primary wallet and/or primary account within that wallet. The wallet that is set needs to be passed in for the first parameter and if you would like to set the primary account, the address of that account also needs to be passed in\n ] = useConnectWallet();\n\n const [\n {\n chains, // the list of chains that web3-onboard was initialized with\n connectedChain: evmConnectChain, // the current chain the user's wallet is connected to\n settingChain, // boolean indicating if the chain is in the process of being set\n },\n setChain, // function to call to initiate user to switch chains in their wallet\n ] = useSetChain();\n\n const connected = useMemo(() => {\n return !!(wallet && wallet.accounts && wallet.accounts[0] && wallet.accounts[0].address);\n }, [wallet]);\n\n const disconnect = async () => {\n console.log('-- disconnect evm xxxxxxxxxxxx');\n if (!wallet) {\n return;\n }\n return evmDisconnect({\n label: wallet.label,\n });\n };\n\n const connectedChain = useMemo(() => {\n return evmConnectChain\n ? { ...evmConnectChain, id: parseInt(evmConnectChain.id) }\n : null;\n }, [evmConnectChain]);\n\n const changeChain = (chain: { chainId: string}): Promise<any> =>{\n return setChain(chain);\n }\n\n return {\n connect,\n connected,\n disconnect,\n connecting,\n wallet,\n connectedChain,\n changeChain,\n\n };\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n WalletAdapterNetwork,\n WalletNotReadyError,\n WalletReadyState,\n} from \"@solana/wallet-adapter-base\";\nimport { useConnection, useWallet } from \"@solana/wallet-adapter-react\";\nimport { useWalletModal } from \"@solana/wallet-adapter-react-ui\";\nimport {\n useEventEmitter,\n useLocalStorage,\n useStorageLedgerAddress,\n WalletState,\n} from \"@orderly.network/hooks\";\nimport { ChainNamespace, LedgerWalletKey } from \"@orderly.network/types\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { useSolanaContext } from \"./SolanaProvider\";\nimport { SolanaChainIdEnum, SolanaChains } from \"./config\";\n\nexport function useSOL() {\n const [wallet, setWallet] = useState<WalletState | null>(null);\n const { isMobile } = useScreen();\n const { endpoint, network } = useSolanaContext();\n const { setVisible: setModalVisible, visible } = useWalletModal();\n const { setLedgerAddress } = useStorageLedgerAddress();\n const {\n signMessage,\n signTransaction,\n sendTransaction,\n publicKey,\n wallet: solanaWallet,\n connect: solanaConnect,\n disconnect: solanaDisconnect,\n connecting,\n } = useWallet();\n\n // 1 for open, 2 for close, null for default\n const selectModalVisibleRef = useRef<boolean>(false);\n\n const [connected, setConnected] = useState(false);\n\n const isManual = useRef(false);\n const solanaPromiseRef = useRef<{\n walletSelect: Promise<any> | null;\n connect: Promise<any> | null;\n walletSelectResolve: (value: any) => void;\n walletSelectReject: (value: any) => void;\n connectResolve: (value: any) => void;\n connectReject: (value: any) => void;\n }>({\n walletSelect: null,\n connect: null,\n walletSelectResolve: () => {},\n walletSelectReject: () => {},\n connectReject: () => {},\n connectResolve: () => {},\n });\n const ee = useEventEmitter();\n\n const initPromiseRef = () => {\n console.log(\"-- init solana promise\");\n solanaPromiseRef.current.walletSelectResolve = () => {};\n solanaPromiseRef.current.walletSelectReject = () => {};\n solanaPromiseRef.current.connectReject = () => {};\n solanaPromiseRef.current.connectReject = () => {};\n solanaPromiseRef.current.connect = null;\n solanaPromiseRef.current.walletSelect = null;\n solanaPromiseRef.current.walletSelect = new Promise((resolve, reject) => {\n solanaPromiseRef.current.walletSelectResolve = resolve;\n solanaPromiseRef.current.walletSelectReject = reject;\n });\n solanaPromiseRef.current.connect = new Promise((resolve, reject) => {\n solanaPromiseRef.current.connectResolve = resolve;\n solanaPromiseRef.current.connectReject = reject;\n });\n };\n\n const handleSolanaError = useCallback(\n (e: Error) => {\n console.log(\"solan connect error\", e);\n\n if (e instanceof WalletNotReadyError) {\n if (isMobile) {\n console.log(\"-- need toast wallet not ready\", e);\n ee.emit(\"wallet:connect-error\", {\n message: \"Please open the wallet app and use the in-app browser.\",\n });\n }\n }\n solanaDisconnect().then();\n },\n [isMobile, ee],\n );\n\n const connect = async () => {\n initPromiseRef();\n isManual.current = true;\n if (!solanaPromiseRef.current) {\n return;\n }\n if (!solanaWallet) {\n setModalVisible(true);\n selectModalVisibleRef.current = true;\n } else {\n solanaPromiseRef.current.walletSelectResolve(solanaWallet);\n if (!publicKey) {\n try {\n await solanaConnect();\n } catch (e) {\n solanaPromiseRef.current.connectReject(e);\n }\n } else {\n solanaPromiseRef.current.connectResolve({\n userAddress: publicKey.toBase58(),\n signMessage,\n signTransaction,\n sendTransaction,\n });\n }\n }\n\n console.log(\"-- connect fn\", solanaWallet, publicKey);\n return Promise.all([\n solanaPromiseRef.current.walletSelect,\n solanaPromiseRef.current.connect,\n ])\n .then(\n ([\n wallet,\n { userAddress, signMessage, signTransaction, sendTransaction },\n ]) => {\n // console.log('-- connect sol res',{\n // wallet,\n // userAddress, signMessage, sendTransaction\n // });\n const tempWallet = {\n label: wallet.adapter.name,\n icon: \"\",\n provider: {\n rpcUrl: endpoint,\n network: network,\n signMessage: signMessage,\n signTransaction,\n sendTransaction,\n publicKey,\n },\n accounts: [\n {\n address: userAddress,\n },\n ],\n chains: [\n {\n id: SolanaChains.get(network)!,\n namespace: ChainNamespace.solana,\n },\n ],\n };\n if (wallet.adapter.name === \"Ledger\") {\n setLedgerAddress(userAddress);\n }\n setWallet(tempWallet as WalletState);\n setConnected(true);\n return [tempWallet];\n },\n )\n .catch((e) => {\n console.log(\"connect solana error\", e);\n handleSolanaError(e);\n return Promise.reject(e);\n })\n .finally(() => {\n isManual.current = false;\n });\n };\n\n const disconnect = async () => {\n console.log(\"--- discconnect sol\");\n await solanaDisconnect();\n setWallet(null);\n setConnected(false);\n return [];\n };\n\n const connectedChain = useMemo(() => {\n if (!publicKey) {\n return null;\n }\n return {\n id:\n network === WalletAdapterNetwork.Mainnet\n ? SolanaChainIdEnum.MAINNET\n : SolanaChainIdEnum.DEVNET,\n namespace: ChainNamespace.solana,\n };\n }, [publicKey]);\n\n useEffect(() => {\n if (selectModalVisibleRef.current) {\n if (!visible && !solanaWallet && solanaPromiseRef.current) {\n console.log(\n \"-- select modal visible ref\",\n selectModalVisibleRef.current,\n );\n console.log(\"-- use reject solana select modal\");\n solanaPromiseRef.current.walletSelectReject(\"user reject\");\n selectModalVisibleRef.current = false;\n } else if (solanaWallet) {\n selectModalVisibleRef.current = false;\n }\n }\n }, [\n visible,\n solanaWallet,\n solanaPromiseRef.current,\n selectModalVisibleRef.current,\n ]);\n\n useEffect(() => {\n if (!solanaWallet || !publicKey) {\n console.log(\"--- not connect sol\", solanaWallet, publicKey);\n setConnected(false);\n return;\n }\n console.log(\"-- publick\", {\n publicKey: publicKey.toBase58(),\n isManual: isManual.current,\n });\n\n if (isManual.current) {\n if (solanaPromiseRef.current) {\n solanaPromiseRef.current.connectResolve({\n userAddress: publicKey?.toBase58(),\n signMessage,\n signTransaction,\n sendTransaction,\n });\n }\n return;\n }\n const userAddress = publicKey.toBase58();\n setWallet({\n label: solanaWallet.adapter.name,\n icon: \"\",\n provider: {\n signMessage: signMessage!,\n signTransaction: signTransaction!,\n sendTransaction: sendTransaction!,\n rpcUrl: endpoint,\n network: network,\n publicKey,\n },\n accounts: [\n {\n address: userAddress,\n },\n ],\n chains: [\n {\n id: SolanaChains.get(network)!,\n namespace: ChainNamespace.solana,\n },\n ],\n });\n if (solanaWallet.adapter.name === \"Ledger\") {\n setLedgerAddress(userAddress);\n }\n\n setConnected(true);\n }, [\n publicKey,\n solanaWallet,\n signMessage,\n signTransaction,\n isManual,\n sendTransaction,\n endpoint,\n network,\n ]);\n\n useEffect(() => {\n if (!solanaWallet) {\n return;\n }\n console.log(\"-- public key\", publicKey, { isMobile });\n if (\n isMobile &&\n solanaWallet.readyState === WalletReadyState.Loadable &&\n !isManual.current\n ) {\n solanaDisconnect().then();\n return;\n }\n\n console.log(\"-- solana refresh auto connect\", solanaWallet);\n\n if (solanaPromiseRef.current) {\n solanaPromiseRef.current.walletSelectResolve(solanaWallet);\n }\n }, [solanaWallet, publicKey, handleSolanaError, isMobile]);\n\n return {\n connected,\n connect,\n disconnect,\n connecting,\n wallet,\n connectedChain,\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/SolanaProvider.tsx","../src/config.ts","../src/initEvm.tsx","../src/useEvm.tsx","../src/useSOL.tsx","../src/main.tsx","../src/provider.tsx"],"names":["createContext","WalletAdapterNetwork","useContext","useScreen","useMemo","WalletNotReadyError","getGlobalObject","PhantomWalletAdapter","SolanaMobileWalletAdapter","createDefaultAddressSelector","createDefaultAuthorizationResultCache","React","WalletProvider","WalletModalProvider","binanceModule","injectedModule","merge","init","useState","useSimpleDI","useEffect","useConnectWallet","useSetChain","useWalletModal","useStorageLedgerAddress","useWallet","useRef","useEventEmitter","useCallback","wallet","signMessage","signTransaction","sendTransaction","ChainNamespace","WalletReadyState","hex2int","WalletConnectorContext","EMPTY_OBJECT"],"mappings":"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","file":"index.js","sourcesContent":["import React, { createContext, useContext, useMemo } from \"react\";\nimport {\n createDefaultAddressSelector,\n createDefaultAuthorizationResultCache,\n SolanaMobileWalletAdapter,\n} from \"@solana-mobile/wallet-adapter-mobile\";\nimport {\n Adapter,\n WalletAdapterNetwork,\n WalletError,\n WalletNotReadyError,\n} from \"@solana/wallet-adapter-base\";\nimport {\n ConnectionProvider,\n WalletProvider,\n} from \"@solana/wallet-adapter-react\";\nimport { WalletModalProvider } from \"@solana/wallet-adapter-react-ui\";\nimport { PhantomWalletAdapter } from \"@solana/wallet-adapter-wallets\";\nimport { clusterApiUrl } from \"@solana/web3.js\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { getGlobalObject } from \"@orderly.network/utils\";\nimport { SolanaInitialProps } from \"./types\";\nimport \"@solana/wallet-adapter-react-ui/styles.css\";\n\nconst SolanaContext = createContext<{\n network: WalletAdapterNetwork;\n endpoint: string;\n}>({\n network: WalletAdapterNetwork.Devnet,\n endpoint: \"\",\n});\n\nexport const useSolanaContext = () => {\n const context = useContext(SolanaContext);\n\n if (context === undefined) {\n throw new Error(\"useSolanaContext must be used within a SolanaProvider\");\n }\n\n return context;\n};\n\nexport function SolanaProvider({ children, ...props }: SolanaInitialProps) {\n const { isMobile } = useScreen();\n const network = useMemo(\n () => props.network ?? WalletAdapterNetwork.Devnet,\n [props.network],\n );\n\n const endpoint = useMemo(() => {\n if (network === WalletAdapterNetwork.Mainnet) {\n return props.mainnetRpc ?? \"\";\n }\n if (network === WalletAdapterNetwork.Devnet) {\n return props.devnetRpc ?? \"\";\n }\n return \"\";\n }, [network, props.mainnetRpc, props.devnetRpc]);\n\n const mobileWalletNotFoundHanlder = (adapter: SolanaMobileWalletAdapter) => {\n console.log(\"-- mobile wallet adapter\", adapter);\n return Promise.reject(new WalletNotReadyError(\"wallet not ready\"));\n };\n\n const handleSolanaError = (error: WalletError, adapter?: Adapter) => {\n console.log(\"-- solanan error\", error);\n console.log(\"-- solana adapter\", adapter);\n\n if (!isMobile && error instanceof WalletNotReadyError) {\n window.open(adapter?.url, \"_blank\");\n }\n };\n\n const wallets = useMemo(() => {\n let uri = \"\";\n if (typeof window !== \"undefined\") {\n const location = (getGlobalObject() as any).location;\n uri = `${location.protocol}//${location.host}`;\n }\n\n return (\n props.wallets ?? [\n new PhantomWalletAdapter(),\n new SolanaMobileWalletAdapter({\n addressSelector: createDefaultAddressSelector(),\n appIdentity: {\n uri,\n },\n authorizationResultCache: createDefaultAuthorizationResultCache(),\n chain: network,\n onWalletNotFound: mobileWalletNotFoundHanlder,\n }),\n ]\n );\n }, [props.wallets, network]);\n\n const contextValue = useMemo(\n () => ({\n network,\n endpoint,\n }),\n [network, endpoint],\n );\n\n return (\n <SolanaContext.Provider value={contextValue}>\n <WalletProvider\n wallets={wallets}\n onError={props.onError ?? handleSolanaError}\n autoConnect={true}\n >\n <WalletModalProvider className=\"oui-pointer-events-auto\">\n {children}\n </WalletModalProvider>\n </WalletProvider>\n </SolanaContext.Provider>\n );\n}\n","import injectedModule from \"@web3-onboard/injected-wallets\";\nimport { init } from \"@web3-onboard/react\";\nimport type { InitOptions, OnboardAPI } from \"@web3-onboard/core\";\nimport binanceModule from \"@binance/w3w-blocknative-connector\";\n// import bitgetWalletModule from \"@web3-onboard/bitget\";\nimport { merge } from \"lodash\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\n\n// initialize the module with options\nconst binance = binanceModule({ options: { lng: \"en\" } });\n// const bitgetWallet = bitgetWalletModule();\n\nexport const initConfig: (\n apiKey?: string,\n options?: InitOptions\n) => OnboardAPI = (apiKey, options) => {\n const defaultOptions = {\n apiKey,\n connect: {\n // autoConnectAllPreviousWallet: true,\n autoConnectLastWallet: true,\n },\n wallets: [injectedModule(), binance],\n chains: [],\n appMetadata: {\n name: \"Orderly\",\n // icon: blocknativeIcon,\n description: \"Orderly\",\n recommendedInjectedWallets: [\n { name: \"Coinbase\", url: \"https://wallet.coinbase.com/\" },\n { name: \"MetaMask\", url: \"https://metamask.io\" },\n { name: \"Trezor\", url: \"https://trezor.io/\" },\n { name: \"Walletconnect\", url: \"https://walletconnect.com/\" },\n { name: \"Ledger\", url: \"https://www.ledger.com/\" },\n ],\n agreement: {\n version: \"1.0.0\",\n termsUrl: \"https://www.blocknative.com/terms-conditions\",\n privacyUrl: \"https://www.blocknative.com/privacy-policy\",\n },\n gettingStartedGuide: \"https://blocknative.com\",\n explore: \"https://blocknative.com\",\n },\n accountCenter: {\n desktop: {\n enabled: false,\n },\n mobile: {\n enabled: false,\n },\n },\n theme: \"dark\",\n } as InitOptions;\n\n const mergedOptions = merge(defaultOptions, options);\n\n return init(mergedOptions);\n};\n\nexport enum SolanaChainIdEnum {\n MAINNET = 900900900,\n DEVNET = 901901901,\n}\n\nexport const SolanaChains = new Map([[WalletAdapterNetwork.Devnet, 901901901], [WalletAdapterNetwork.Mainnet, 900900900]]);\n\n","import React, { PropsWithChildren, useEffect, useState } from \"react\";\nimport { useSimpleDI } from \"@orderly.network/hooks\";\nimport type { InitOptions, OnboardAPI } from \"@web3-onboard/core\";\nimport { Optional } from \"@orderly.network/types\";\nimport { initConfig } from \"./config\";\nimport { merge } from \"lodash\";\n\n\nexport type ConnectorInitOptions = Optional<\n InitOptions,\n | \"apiKey\"\n | \"connect\"\n | \"wallets\"\n | \"chains\"\n | \"appMetadata\"\n | \"accountCenter\"\n | \"theme\"\n>;\n\nexport interface WalletConnectorProviderProps {\n apiKey?: string;\n options?: ConnectorInitOptions;\n // skip board configuration if already initialized\n skipInit?: boolean;\n}\n\nexport function InitEvm(\n props: PropsWithChildren<WalletConnectorProviderProps>\n) {\n const [initialized, setInitialized] = useState(!!props.skipInit);\n\n const { get, register } = useSimpleDI();\n\n useEffect(() => {\n document.body.style.setProperty(\"--onboard-modal-z-index\", \"88\");\n }, []);\n\n useEffect(() => {\n if (props.skipInit) {\n return;\n }\n\n let onboardAPI = get(\"onboardAPI\") as OnboardAPI;\n\n if (onboardAPI) {\n console.log(\"[Orderly SDK]:onboardAPI already initialized\");\n setInitialized(true);\n return;\n }\n\n Promise.all([\n fetchChainInfo('https://testnet-api.orderly.org/v1/public/chain_info'),\n fetchChainInfo('https://api.orderly.org/v1/public/chain_info'),\n ])\n .then(([testChainInfo, mainnetChainInfo]) => {\n const testChains = processChainInfo(testChainInfo);\n const mainnetChains = processChainInfo(mainnetChainInfo);\n\n let options = props.options || {};\n options = merge({ chains: [...testChains, ...mainnetChains] }, options);\n\n onboardAPI = initConfig(props.apiKey, options as InitOptions);\n register('onboardAPI', onboardAPI);\n setInitialized(true);\n })\n .catch((error) => {\n console.error('Error fetching data:', error);\n });\n }, []);\n\n if (!initialized) return null;\n\n return props.children\n}\n\nconst fetchChainInfo = async (url: string) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to fetch data from ${url}`);\n }\n return response.json();\n};\n\nconst processChainInfo = (chainInfo: any) =>\n chainInfo?.data?.rows?.map((row: any) => ({\n id: Number(row.chain_id),\n token: row.currency_symbol,\n label: row.name,\n rpcUrl: row.public_rpc_url,\n blockExplorerUrl: row.explorer_base_url,\n })) || [];\n","import { useConnectWallet, useSetChain } from \"@web3-onboard/react\";\nimport { useMemo } from \"react\";\n\nexport function useEvm() {\n const [\n {\n wallet, // the wallet that has been connected or null if not yet connected\n connecting, // boolean indicating if connection is in progress\n },\n connect, // function to call to initiate user to connect wallet\n evmDisconnect, // function to call with wallet<DisconnectOptions> to disconnect wallet\n updateBalances, // function to be called with an optional array of wallet addresses connected through Onboard to update balance or empty/no params to update all connected wallets\n setWalletModules, // function to be called with an array of wallet modules to conditionally allow connection of wallet types i.e. setWalletModules([ledger, trezor, injected])\n setPrimaryWallet, // function that can set the primary wallet and/or primary account within that wallet. The wallet that is set needs to be passed in for the first parameter and if you would like to set the primary account, the address of that account also needs to be passed in\n ] = useConnectWallet();\n\n const [\n {\n chains, // the list of chains that web3-onboard was initialized with\n connectedChain: evmConnectChain, // the current chain the user's wallet is connected to\n settingChain, // boolean indicating if the chain is in the process of being set\n },\n setChain, // function to call to initiate user to switch chains in their wallet\n ] = useSetChain();\n\n const connected = useMemo(() => {\n return !!(wallet && wallet.accounts && wallet.accounts[0] && wallet.accounts[0].address);\n }, [wallet]);\n\n const disconnect = async () => {\n console.log('-- disconnect evm xxxxxxxxxxxx');\n if (!wallet) {\n return;\n }\n return evmDisconnect({\n label: wallet.label,\n });\n };\n\n const connectedChain = useMemo(() => {\n return evmConnectChain\n ? { ...evmConnectChain, id: parseInt(evmConnectChain.id) }\n : null;\n }, [evmConnectChain]);\n\n const changeChain = (chain: { chainId: string}): Promise<any> =>{\n return setChain(chain);\n }\n\n return {\n connect,\n connected,\n disconnect,\n connecting,\n wallet,\n connectedChain,\n changeChain,\n\n };\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n WalletAdapterNetwork,\n WalletNotReadyError,\n WalletReadyState,\n} from \"@solana/wallet-adapter-base\";\nimport { useConnection, useWallet } from \"@solana/wallet-adapter-react\";\nimport { useWalletModal } from \"@solana/wallet-adapter-react-ui\";\nimport {\n useEventEmitter,\n useLocalStorage,\n useStorageLedgerAddress,\n WalletState,\n} from \"@orderly.network/hooks\";\nimport { ChainNamespace, LedgerWalletKey } from \"@orderly.network/types\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { useSolanaContext } from \"./SolanaProvider\";\nimport { SolanaChainIdEnum, SolanaChains } from \"./config\";\n\nexport function useSOL() {\n const [wallet, setWallet] = useState<WalletState | null>(null);\n const { isMobile } = useScreen();\n const { endpoint, network } = useSolanaContext();\n const { setVisible: setModalVisible, visible } = useWalletModal();\n const { setLedgerAddress } = useStorageLedgerAddress();\n const {\n signMessage,\n signTransaction,\n sendTransaction,\n publicKey,\n wallet: solanaWallet,\n connect: solanaConnect,\n disconnect: solanaDisconnect,\n connecting,\n } = useWallet();\n\n // 1 for open, 2 for close, null for default\n const selectModalVisibleRef = useRef<boolean>(false);\n\n const [connected, setConnected] = useState(false);\n\n const isManual = useRef(false);\n const solanaPromiseRef = useRef<{\n walletSelect: Promise<any> | null;\n connect: Promise<any> | null;\n walletSelectResolve: (value: any) => void;\n walletSelectReject: (value: any) => void;\n connectResolve: (value: any) => void;\n connectReject: (value: any) => void;\n }>({\n walletSelect: null,\n connect: null,\n walletSelectResolve: () => {},\n walletSelectReject: () => {},\n connectReject: () => {},\n connectResolve: () => {},\n });\n const ee = useEventEmitter();\n\n const initPromiseRef = () => {\n console.log(\"-- init solana promise\");\n solanaPromiseRef.current.walletSelectResolve = () => {};\n solanaPromiseRef.current.walletSelectReject = () => {};\n solanaPromiseRef.current.connectReject = () => {};\n solanaPromiseRef.current.connectReject = () => {};\n solanaPromiseRef.current.connect = null;\n solanaPromiseRef.current.walletSelect = null;\n solanaPromiseRef.current.walletSelect = new Promise((resolve, reject) => {\n solanaPromiseRef.current.walletSelectResolve = resolve;\n solanaPromiseRef.current.walletSelectReject = reject;\n });\n solanaPromiseRef.current.connect = new Promise((resolve, reject) => {\n solanaPromiseRef.current.connectResolve = resolve;\n solanaPromiseRef.current.connectReject = reject;\n });\n };\n\n const handleSolanaError = useCallback(\n (e: Error) => {\n console.log(\"solan connect error\", e);\n\n if (e instanceof WalletNotReadyError) {\n if (isMobile) {\n console.log(\"-- need toast wallet not ready\", e);\n ee.emit(\"wallet:connect-error\", {\n message: \"Please open the wallet app and use the in-app browser.\",\n });\n }\n }\n solanaDisconnect().then();\n },\n [isMobile, ee],\n );\n\n const connect = async () => {\n initPromiseRef();\n isManual.current = true;\n if (!solanaPromiseRef.current) {\n return;\n }\n if (!solanaWallet) {\n setModalVisible(true);\n selectModalVisibleRef.current = true;\n } else {\n solanaPromiseRef.current.walletSelectResolve(solanaWallet);\n if (!publicKey) {\n try {\n await solanaConnect();\n } catch (e) {\n solanaPromiseRef.current.connectReject(e);\n }\n } else {\n solanaPromiseRef.current.connectResolve({\n userAddress: publicKey.toBase58(),\n signMessage,\n signTransaction,\n sendTransaction,\n });\n }\n }\n\n console.log(\"-- connect fn\", solanaWallet, publicKey);\n return Promise.all([\n solanaPromiseRef.current.walletSelect,\n solanaPromiseRef.current.connect,\n ])\n .then(\n ([\n wallet,\n { userAddress, signMessage, signTransaction, sendTransaction },\n ]) => {\n // console.log('-- connect sol res',{\n // wallet,\n // userAddress, signMessage, sendTransaction\n // });\n const tempWallet = {\n label: wallet.adapter.name,\n icon: \"\",\n provider: {\n rpcUrl: endpoint,\n network: network,\n signMessage: signMessage,\n signTransaction,\n sendTransaction,\n publicKey,\n },\n accounts: [\n {\n address: userAddress,\n },\n ],\n chains: [\n {\n id: SolanaChains.get(network)!,\n namespace: ChainNamespace.solana,\n },\n ],\n };\n if (wallet.adapter.name === \"Ledger\") {\n setLedgerAddress(userAddress);\n }\n setWallet(tempWallet as WalletState);\n setConnected(true);\n return [tempWallet];\n },\n )\n .catch((e) => {\n console.log(\"connect solana error\", e);\n handleSolanaError(e);\n return Promise.reject(e);\n })\n .finally(() => {\n isManual.current = false;\n });\n };\n\n const disconnect = async () => {\n console.log(\"--- discconnect sol\");\n await solanaDisconnect();\n setWallet(null);\n setConnected(false);\n return [];\n };\n\n const connectedChain = useMemo(() => {\n if (!publicKey) {\n return null;\n }\n return {\n id:\n network === WalletAdapterNetwork.Mainnet\n ? SolanaChainIdEnum.MAINNET\n : SolanaChainIdEnum.DEVNET,\n namespace: ChainNamespace.solana,\n };\n }, [publicKey]);\n\n useEffect(() => {\n if (selectModalVisibleRef.current) {\n if (!visible && !solanaWallet && solanaPromiseRef.current) {\n console.log(\n \"-- select modal visible ref\",\n selectModalVisibleRef.current,\n );\n console.log(\"-- use reject solana select modal\");\n solanaPromiseRef.current.walletSelectReject(\"user reject\");\n selectModalVisibleRef.current = false;\n } else if (solanaWallet) {\n selectModalVisibleRef.current = false;\n }\n }\n }, [\n visible,\n solanaWallet,\n solanaPromiseRef.current,\n selectModalVisibleRef.current,\n ]);\n\n useEffect(() => {\n if (!solanaWallet || !publicKey) {\n console.log(\"--- not connect sol\", solanaWallet, publicKey);\n setConnected(false);\n return;\n }\n console.log(\"-- publick\", {\n publicKey: publicKey.toBase58(),\n isManual: isManual.current,\n });\n\n if (isManual.current) {\n if (solanaPromiseRef.current) {\n solanaPromiseRef.current.connectResolve({\n userAddress: publicKey?.toBase58(),\n signMessage,\n signTransaction,\n sendTransaction,\n });\n }\n return;\n }\n const userAddress = publicKey.toBase58();\n setWallet({\n label: solanaWallet.adapter.name,\n icon: \"\",\n provider: {\n signMessage: signMessage!,\n signTransaction: signTransaction!,\n sendTransaction: sendTransaction!,\n rpcUrl: endpoint,\n network: network,\n publicKey,\n },\n accounts: [\n {\n address: userAddress,\n },\n ],\n chains: [\n {\n id: SolanaChains.get(network)!,\n namespace: ChainNamespace.solana,\n },\n ],\n });\n if (solanaWallet.adapter.name === \"Ledger\") {\n setLedgerAddress(userAddress);\n }\n\n setConnected(true);\n }, [\n publicKey,\n solanaWallet,\n signMessage,\n signTransaction,\n isManual,\n sendTransaction,\n endpoint,\n network,\n ]);\n\n useEffect(() => {\n if (!solanaWallet) {\n return;\n }\n console.log(\"-- public key\", publicKey, { isMobile });\n if (\n isMobile &&\n solanaWallet.readyState === WalletReadyState.Loadable &&\n !isManual.current\n ) {\n solanaDisconnect().then();\n return;\n }\n\n console.log(\"-- solana refresh auto connect\", solanaWallet);\n\n if (solanaPromiseRef.current) {\n solanaPromiseRef.current.walletSelectResolve(solanaWallet);\n }\n }, [solanaWallet, publicKey, handleSolanaError, isMobile]);\n\n return {\n connected,\n connect,\n disconnect,\n connecting,\n wallet,\n connectedChain,\n };\n}\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\nimport { WalletConnectorContext } from \"@orderly.network/hooks\";\nimport type { WalletConnectorContextState } from \"@orderly.network/hooks\";\nimport { ChainNamespace } from \"@orderly.network/types\";\nimport { hex2int } from \"@orderly.network/utils\";\nimport { SolanaChains } from \"./config\";\nimport { useEvm } from \"./useEvm\";\nimport { useSOL } from \"./useSOL\";\n\nexport const Main: React.FC<\n React.PropsWithChildren<{ solanaNetwork: WalletAdapterNetwork }>\n> = (props) => {\n const sol = useSOL();\n const evm = useEvm();\n\n const [namespace, setNamespace] = useState<ChainNamespace | null>(null);\n\n const newNamespace = useRef<ChainNamespace | null>();\n\n const connect = async (options: any) => {\n if (Array.from(SolanaChains.values()).includes(options.chainId)) {\n newNamespace.current = ChainNamespace.solana;\n // connect solana\n return sol.connect().then((res) => {\n if (res) {\n return res;\n }\n });\n }\n newNamespace.current = ChainNamespace.evm;\n const evmOption = options.autoSelect\n ? {\n autoSelect: options.autoSelect,\n }\n : undefined;\n\n return evm\n .connect(evmOption)\n .then((res) => {\n if (!res.length) {\n return Promise.reject({ message: \"user reject\" });\n }\n return res;\n })\n .catch((e) => {\n return Promise.reject(e);\n });\n };\n\n const disconnect = async () => {\n if (namespace === ChainNamespace.evm) {\n return evm.disconnect();\n }\n if (namespace === ChainNamespace.solana) {\n return sol.disconnect();\n }\n };\n\n const connecting =\n newNamespace.current == ChainNamespace.solana\n ? sol.connecting\n : evm.connecting;\n\n // console.log('-- connecting', connecting);\n\n const wallet =\n namespace === ChainNamespace.solana && sol.connected\n ? sol.wallet\n : namespace === ChainNamespace.evm && evm.connected\n ? evm.wallet\n : null;\n\n const connectedChain =\n namespace === ChainNamespace.solana\n ? sol.connectedChain\n : evm.connectedChain;\n\n const setChain = (chain: any) => {\n // solana connect\n const chainId =\n typeof chain.chainId === \"number\"\n ? chain.chainId\n : hex2int(chain.chainId);\n // console.log('-- setchain chain',{\n // chain, chainId,\n // });\n\n let tempNamespace: ChainNamespace = ChainNamespace.evm;\n if (Array.from(SolanaChains.values()).includes(chainId)) {\n tempNamespace = ChainNamespace.solana;\n }\n\n if (namespace === tempNamespace && namespace === ChainNamespace.evm) {\n // todo switch chan on block native\n\n return evm.changeChain(chain);\n }\n if (namespace !== tempNamespace) {\n return connect({ chainId: chainId }).then();\n }\n };\n\n useEffect(() => {\n if (sol.connected && evm.connected) {\n if (newNamespace.current === ChainNamespace.solana) {\n evm.disconnect().then();\n setNamespace(ChainNamespace.solana);\n return;\n } else {\n setNamespace(ChainNamespace.evm);\n sol.disconnect().then();\n return;\n }\n }\n\n if (sol.connected) {\n setNamespace(ChainNamespace.solana);\n return;\n }\n if (evm.connected) {\n setNamespace(ChainNamespace.evm);\n return;\n }\n }, [newNamespace.current, sol.connected, evm.connected]);\n\n const memoizedValue = useMemo<WalletConnectorContextState>(() => {\n return {\n connect: connect as any,\n disconnect: disconnect as any,\n connecting,\n wallet: wallet as any,\n setChain: setChain as any,\n connectedChain: connectedChain as any,\n namespace: namespace,\n chains: [],\n settingChain: false,\n };\n }, [\n connect,\n disconnect,\n connecting,\n wallet,\n setChain,\n connectedChain,\n namespace,\n ]);\n\n return (\n <WalletConnectorContext.Provider value={memoizedValue}>\n {props.children}\n </WalletConnectorContext.Provider>\n );\n};\n","import React, { type PropsWithChildren } from \"react\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\nimport { EMPTY_OBJECT } from \"@orderly.network/types\";\nimport { SolanaProvider } from \"./SolanaProvider\";\nimport { InitEvm } from \"./initEvm\";\nimport { Main } from \"./main\";\nimport { EvmInitialProps, SolanaInitialProps } from \"./types\";\n\nexport interface WalletConnectorProviderProps {\n solanaInitial?: SolanaInitialProps;\n evmInitial?: EvmInitialProps;\n}\n\nexport const WalletConnectorProvider: React.FC<\n PropsWithChildren<WalletConnectorProviderProps>\n> = (props) => {\n return (\n <SolanaProvider {...(props.solanaInitial ?? EMPTY_OBJECT)}>\n <InitEvm {...(props.evmInitial ?? EMPTY_OBJECT)}>\n <Main\n solanaNetwork={\n props.solanaInitial?.network ?? WalletAdapterNetwork.Devnet\n }\n >\n {props.children}\n </Main>\n </InitEvm>\n </SolanaProvider>\n );\n};\n"]}
package/dist/index.mjs CHANGED
@@ -162,8 +162,7 @@ function InitEvm(props) {
162
162
  console.error("Error fetching data:", error);
163
163
  });
164
164
  }, []);
165
- if (!initialized)
166
- return null;
165
+ if (!initialized) return null;
167
166
  return props.children;
168
167
  }
169
168
  var fetchChainInfo = async (url) => {
@@ -608,5 +607,5 @@ var WalletConnectorProvider = (props) => {
608
607
  };
609
608
 
610
609
  export { WalletConnectorProvider };
611
- //# sourceMappingURL=out.js.map
610
+ //# sourceMappingURL=index.mjs.map
612
611
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/provider.tsx","../src/SolanaProvider.tsx","../src/initEvm.tsx","../src/config.ts","../src/main.tsx","../src/useEvm.tsx","../src/useSOL.tsx"],"names":["React","WalletAdapterNetwork","merge","useEffect","useMemo","useRef","useState","ChainNamespace","WalletNotReadyError","useScreen","wallet","signMessage","signTransaction","sendTransaction"],"mappings":"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","sourcesContent":["import React, { type PropsWithChildren } from \"react\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\nimport { EMPTY_OBJECT } from \"@orderly.network/types\";\nimport { SolanaProvider } from \"./SolanaProvider\";\nimport { InitEvm } from \"./initEvm\";\nimport { Main } from \"./main\";\nimport { EvmInitialProps, SolanaInitialProps } from \"./types\";\n\nexport interface WalletConnectorProviderProps {\n solanaInitial?: SolanaInitialProps;\n evmInitial?: EvmInitialProps;\n}\n\nexport const WalletConnectorProvider: React.FC<\n PropsWithChildren<WalletConnectorProviderProps>\n> = (props) => {\n return (\n <SolanaProvider {...(props.solanaInitial ?? EMPTY_OBJECT)}>\n <InitEvm {...(props.evmInitial ?? EMPTY_OBJECT)}>\n <Main\n solanaNetwork={\n props.solanaInitial?.network ?? WalletAdapterNetwork.Devnet\n }\n >\n {props.children}\n </Main>\n </InitEvm>\n </SolanaProvider>\n );\n};\n","import React, { createContext, useContext, useMemo } from \"react\";\nimport {\n createDefaultAddressSelector,\n createDefaultAuthorizationResultCache,\n SolanaMobileWalletAdapter,\n} from \"@solana-mobile/wallet-adapter-mobile\";\nimport {\n Adapter,\n WalletAdapterNetwork,\n WalletError,\n WalletNotReadyError,\n} from \"@solana/wallet-adapter-base\";\nimport {\n ConnectionProvider,\n WalletProvider,\n} from \"@solana/wallet-adapter-react\";\nimport { WalletModalProvider } from \"@solana/wallet-adapter-react-ui\";\nimport { PhantomWalletAdapter } from \"@solana/wallet-adapter-wallets\";\nimport { clusterApiUrl } from \"@solana/web3.js\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { getGlobalObject } from \"@orderly.network/utils\";\nimport { SolanaInitialProps } from \"./types\";\nimport \"@solana/wallet-adapter-react-ui/styles.css\";\n\nconst SolanaContext = createContext<{\n network: WalletAdapterNetwork;\n endpoint: string;\n}>({\n network: WalletAdapterNetwork.Devnet,\n endpoint: \"\",\n});\n\nexport const useSolanaContext = () => {\n const context = useContext(SolanaContext);\n\n if (context === undefined) {\n throw new Error(\"useSolanaContext must be used within a SolanaProvider\");\n }\n\n return context;\n};\n\nexport function SolanaProvider({ children, ...props }: SolanaInitialProps) {\n const { isMobile } = useScreen();\n const network = useMemo(\n () => props.network ?? WalletAdapterNetwork.Devnet,\n [props.network],\n );\n\n const endpoint = useMemo(() => {\n if (network === WalletAdapterNetwork.Mainnet) {\n return props.mainnetRpc ?? \"\";\n }\n if (network === WalletAdapterNetwork.Devnet) {\n return props.devnetRpc ?? \"\";\n }\n return \"\";\n }, [network, props.mainnetRpc, props.devnetRpc]);\n\n const mobileWalletNotFoundHanlder = (adapter: SolanaMobileWalletAdapter) => {\n console.log(\"-- mobile wallet adapter\", adapter);\n return Promise.reject(new WalletNotReadyError(\"wallet not ready\"));\n };\n\n const handleSolanaError = (error: WalletError, adapter?: Adapter) => {\n console.log(\"-- solanan error\", error);\n console.log(\"-- solana adapter\", adapter);\n\n if (!isMobile && error instanceof WalletNotReadyError) {\n window.open(adapter?.url, \"_blank\");\n }\n };\n\n const wallets = useMemo(() => {\n let uri = \"\";\n if (typeof window !== \"undefined\") {\n const location = (getGlobalObject() as any).location;\n uri = `${location.protocol}//${location.host}`;\n }\n\n return (\n props.wallets ?? [\n new PhantomWalletAdapter(),\n new SolanaMobileWalletAdapter({\n addressSelector: createDefaultAddressSelector(),\n appIdentity: {\n uri,\n },\n authorizationResultCache: createDefaultAuthorizationResultCache(),\n chain: network,\n onWalletNotFound: mobileWalletNotFoundHanlder,\n }),\n ]\n );\n }, [props.wallets, network]);\n\n const contextValue = useMemo(\n () => ({\n network,\n endpoint,\n }),\n [network, endpoint],\n );\n\n return (\n <SolanaContext.Provider value={contextValue}>\n <WalletProvider\n wallets={wallets}\n onError={props.onError ?? handleSolanaError}\n autoConnect={true}\n >\n <WalletModalProvider className=\"oui-pointer-events-auto\">\n {children}\n </WalletModalProvider>\n </WalletProvider>\n </SolanaContext.Provider>\n );\n}\n","import React, { PropsWithChildren, useEffect, useState } from \"react\";\nimport { useSimpleDI } from \"@orderly.network/hooks\";\nimport type { InitOptions, OnboardAPI } from \"@web3-onboard/core\";\nimport { Optional } from \"@orderly.network/types\";\nimport { initConfig } from \"./config\";\nimport { merge } from \"lodash\";\n\n\nexport type ConnectorInitOptions = Optional<\n InitOptions,\n | \"apiKey\"\n | \"connect\"\n | \"wallets\"\n | \"chains\"\n | \"appMetadata\"\n | \"accountCenter\"\n | \"theme\"\n>;\n\nexport interface WalletConnectorProviderProps {\n apiKey?: string;\n options?: ConnectorInitOptions;\n // skip board configuration if already initialized\n skipInit?: boolean;\n}\n\nexport function InitEvm(\n props: PropsWithChildren<WalletConnectorProviderProps>\n) {\n const [initialized, setInitialized] = useState(!!props.skipInit);\n\n const { get, register } = useSimpleDI();\n\n useEffect(() => {\n document.body.style.setProperty(\"--onboard-modal-z-index\", \"88\");\n }, []);\n\n useEffect(() => {\n if (props.skipInit) {\n return;\n }\n\n let onboardAPI = get(\"onboardAPI\") as OnboardAPI;\n\n if (onboardAPI) {\n console.log(\"[Orderly SDK]:onboardAPI already initialized\");\n setInitialized(true);\n return;\n }\n\n Promise.all([\n fetchChainInfo('https://testnet-api.orderly.org/v1/public/chain_info'),\n fetchChainInfo('https://api.orderly.org/v1/public/chain_info'),\n ])\n .then(([testChainInfo, mainnetChainInfo]) => {\n const testChains = processChainInfo(testChainInfo);\n const mainnetChains = processChainInfo(mainnetChainInfo);\n\n let options = props.options || {};\n options = merge({ chains: [...testChains, ...mainnetChains] }, options);\n\n onboardAPI = initConfig(props.apiKey, options as InitOptions);\n register('onboardAPI', onboardAPI);\n setInitialized(true);\n })\n .catch((error) => {\n console.error('Error fetching data:', error);\n });\n }, []);\n\n if (!initialized) return null;\n\n return props.children\n}\n\nconst fetchChainInfo = async (url: string) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to fetch data from ${url}`);\n }\n return response.json();\n};\n\nconst processChainInfo = (chainInfo: any) =>\n chainInfo?.data?.rows?.map((row: any) => ({\n id: Number(row.chain_id),\n token: row.currency_symbol,\n label: row.name,\n rpcUrl: row.public_rpc_url,\n blockExplorerUrl: row.explorer_base_url,\n })) || [];\n","import injectedModule from \"@web3-onboard/injected-wallets\";\nimport { init } from \"@web3-onboard/react\";\nimport type { InitOptions, OnboardAPI } from \"@web3-onboard/core\";\nimport binanceModule from \"@binance/w3w-blocknative-connector\";\n// import bitgetWalletModule from \"@web3-onboard/bitget\";\nimport { merge } from \"lodash\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\n\n// initialize the module with options\nconst binance = binanceModule({ options: { lng: \"en\" } });\n// const bitgetWallet = bitgetWalletModule();\n\nexport const initConfig: (\n apiKey?: string,\n options?: InitOptions\n) => OnboardAPI = (apiKey, options) => {\n const defaultOptions = {\n apiKey,\n connect: {\n // autoConnectAllPreviousWallet: true,\n autoConnectLastWallet: true,\n },\n wallets: [injectedModule(), binance],\n chains: [],\n appMetadata: {\n name: \"Orderly\",\n // icon: blocknativeIcon,\n description: \"Orderly\",\n recommendedInjectedWallets: [\n { name: \"Coinbase\", url: \"https://wallet.coinbase.com/\" },\n { name: \"MetaMask\", url: \"https://metamask.io\" },\n { name: \"Trezor\", url: \"https://trezor.io/\" },\n { name: \"Walletconnect\", url: \"https://walletconnect.com/\" },\n { name: \"Ledger\", url: \"https://www.ledger.com/\" },\n ],\n agreement: {\n version: \"1.0.0\",\n termsUrl: \"https://www.blocknative.com/terms-conditions\",\n privacyUrl: \"https://www.blocknative.com/privacy-policy\",\n },\n gettingStartedGuide: \"https://blocknative.com\",\n explore: \"https://blocknative.com\",\n },\n accountCenter: {\n desktop: {\n enabled: false,\n },\n mobile: {\n enabled: false,\n },\n },\n theme: \"dark\",\n } as InitOptions;\n\n const mergedOptions = merge(defaultOptions, options);\n\n return init(mergedOptions);\n};\n\nexport enum SolanaChainIdEnum {\n MAINNET = 900900900,\n DEVNET = 901901901,\n}\n\nexport const SolanaChains = new Map([[WalletAdapterNetwork.Devnet, 901901901], [WalletAdapterNetwork.Mainnet, 900900900]]);\n\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\nimport { WalletConnectorContext } from \"@orderly.network/hooks\";\nimport type { WalletConnectorContextState } from \"@orderly.network/hooks\";\nimport { ChainNamespace } from \"@orderly.network/types\";\nimport { hex2int } from \"@orderly.network/utils\";\nimport { SolanaChains } from \"./config\";\nimport { useEvm } from \"./useEvm\";\nimport { useSOL } from \"./useSOL\";\n\nexport const Main: React.FC<\n React.PropsWithChildren<{ solanaNetwork: WalletAdapterNetwork }>\n> = (props) => {\n const sol = useSOL();\n const evm = useEvm();\n\n const [namespace, setNamespace] = useState<ChainNamespace | null>(null);\n\n const newNamespace = useRef<ChainNamespace | null>();\n\n const connect = async (options: any) => {\n if (Array.from(SolanaChains.values()).includes(options.chainId)) {\n newNamespace.current = ChainNamespace.solana;\n // connect solana\n return sol.connect().then((res) => {\n if (res) {\n return res;\n }\n });\n }\n newNamespace.current = ChainNamespace.evm;\n const evmOption = options.autoSelect\n ? {\n autoSelect: options.autoSelect,\n }\n : undefined;\n\n return evm\n .connect(evmOption)\n .then((res) => {\n if (!res.length) {\n return Promise.reject({ message: \"user reject\" });\n }\n return res;\n })\n .catch((e) => {\n return Promise.reject(e);\n });\n };\n\n const disconnect = async () => {\n if (namespace === ChainNamespace.evm) {\n return evm.disconnect();\n }\n if (namespace === ChainNamespace.solana) {\n return sol.disconnect();\n }\n };\n\n const connecting =\n newNamespace.current == ChainNamespace.solana\n ? sol.connecting\n : evm.connecting;\n\n // console.log('-- connecting', connecting);\n\n const wallet =\n namespace === ChainNamespace.solana && sol.connected\n ? sol.wallet\n : namespace === ChainNamespace.evm && evm.connected\n ? evm.wallet\n : null;\n\n const connectedChain =\n namespace === ChainNamespace.solana\n ? sol.connectedChain\n : evm.connectedChain;\n\n const setChain = (chain: any) => {\n // solana connect\n const chainId =\n typeof chain.chainId === \"number\"\n ? chain.chainId\n : hex2int(chain.chainId);\n // console.log('-- setchain chain',{\n // chain, chainId,\n // });\n\n let tempNamespace: ChainNamespace = ChainNamespace.evm;\n if (Array.from(SolanaChains.values()).includes(chainId)) {\n tempNamespace = ChainNamespace.solana;\n }\n\n if (namespace === tempNamespace && namespace === ChainNamespace.evm) {\n // todo switch chan on block native\n\n return evm.changeChain(chain);\n }\n if (namespace !== tempNamespace) {\n return connect({ chainId: chainId }).then();\n }\n };\n\n useEffect(() => {\n if (sol.connected && evm.connected) {\n if (newNamespace.current === ChainNamespace.solana) {\n evm.disconnect().then();\n setNamespace(ChainNamespace.solana);\n return;\n } else {\n setNamespace(ChainNamespace.evm);\n sol.disconnect().then();\n return;\n }\n }\n\n if (sol.connected) {\n setNamespace(ChainNamespace.solana);\n return;\n }\n if (evm.connected) {\n setNamespace(ChainNamespace.evm);\n return;\n }\n }, [newNamespace.current, sol.connected, evm.connected]);\n\n const memoizedValue = useMemo<WalletConnectorContextState>(() => {\n return {\n connect: connect as any,\n disconnect: disconnect as any,\n connecting,\n wallet: wallet as any,\n setChain: setChain as any,\n connectedChain: connectedChain as any,\n namespace: namespace,\n chains: [],\n settingChain: false,\n };\n }, [\n connect,\n disconnect,\n connecting,\n wallet,\n setChain,\n connectedChain,\n namespace,\n ]);\n\n return (\n <WalletConnectorContext.Provider value={memoizedValue}>\n {props.children}\n </WalletConnectorContext.Provider>\n );\n};\n","import { useConnectWallet, useSetChain } from \"@web3-onboard/react\";\nimport { useMemo } from \"react\";\n\nexport function useEvm() {\n const [\n {\n wallet, // the wallet that has been connected or null if not yet connected\n connecting, // boolean indicating if connection is in progress\n },\n connect, // function to call to initiate user to connect wallet\n evmDisconnect, // function to call with wallet<DisconnectOptions> to disconnect wallet\n updateBalances, // function to be called with an optional array of wallet addresses connected through Onboard to update balance or empty/no params to update all connected wallets\n setWalletModules, // function to be called with an array of wallet modules to conditionally allow connection of wallet types i.e. setWalletModules([ledger, trezor, injected])\n setPrimaryWallet, // function that can set the primary wallet and/or primary account within that wallet. The wallet that is set needs to be passed in for the first parameter and if you would like to set the primary account, the address of that account also needs to be passed in\n ] = useConnectWallet();\n\n const [\n {\n chains, // the list of chains that web3-onboard was initialized with\n connectedChain: evmConnectChain, // the current chain the user's wallet is connected to\n settingChain, // boolean indicating if the chain is in the process of being set\n },\n setChain, // function to call to initiate user to switch chains in their wallet\n ] = useSetChain();\n\n const connected = useMemo(() => {\n return !!(wallet && wallet.accounts && wallet.accounts[0] && wallet.accounts[0].address);\n }, [wallet]);\n\n const disconnect = async () => {\n console.log('-- disconnect evm xxxxxxxxxxxx');\n if (!wallet) {\n return;\n }\n return evmDisconnect({\n label: wallet.label,\n });\n };\n\n const connectedChain = useMemo(() => {\n return evmConnectChain\n ? { ...evmConnectChain, id: parseInt(evmConnectChain.id) }\n : null;\n }, [evmConnectChain]);\n\n const changeChain = (chain: { chainId: string}): Promise<any> =>{\n return setChain(chain);\n }\n\n return {\n connect,\n connected,\n disconnect,\n connecting,\n wallet,\n connectedChain,\n changeChain,\n\n };\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n WalletAdapterNetwork,\n WalletNotReadyError,\n WalletReadyState,\n} from \"@solana/wallet-adapter-base\";\nimport { useConnection, useWallet } from \"@solana/wallet-adapter-react\";\nimport { useWalletModal } from \"@solana/wallet-adapter-react-ui\";\nimport {\n useEventEmitter,\n useLocalStorage,\n useStorageLedgerAddress,\n WalletState,\n} from \"@orderly.network/hooks\";\nimport { ChainNamespace, LedgerWalletKey } from \"@orderly.network/types\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { useSolanaContext } from \"./SolanaProvider\";\nimport { SolanaChainIdEnum, SolanaChains } from \"./config\";\n\nexport function useSOL() {\n const [wallet, setWallet] = useState<WalletState | null>(null);\n const { isMobile } = useScreen();\n const { endpoint, network } = useSolanaContext();\n const { setVisible: setModalVisible, visible } = useWalletModal();\n const { setLedgerAddress } = useStorageLedgerAddress();\n const {\n signMessage,\n signTransaction,\n sendTransaction,\n publicKey,\n wallet: solanaWallet,\n connect: solanaConnect,\n disconnect: solanaDisconnect,\n connecting,\n } = useWallet();\n\n // 1 for open, 2 for close, null for default\n const selectModalVisibleRef = useRef<boolean>(false);\n\n const [connected, setConnected] = useState(false);\n\n const isManual = useRef(false);\n const solanaPromiseRef = useRef<{\n walletSelect: Promise<any> | null;\n connect: Promise<any> | null;\n walletSelectResolve: (value: any) => void;\n walletSelectReject: (value: any) => void;\n connectResolve: (value: any) => void;\n connectReject: (value: any) => void;\n }>({\n walletSelect: null,\n connect: null,\n walletSelectResolve: () => {},\n walletSelectReject: () => {},\n connectReject: () => {},\n connectResolve: () => {},\n });\n const ee = useEventEmitter();\n\n const initPromiseRef = () => {\n console.log(\"-- init solana promise\");\n solanaPromiseRef.current.walletSelectResolve = () => {};\n solanaPromiseRef.current.walletSelectReject = () => {};\n solanaPromiseRef.current.connectReject = () => {};\n solanaPromiseRef.current.connectReject = () => {};\n solanaPromiseRef.current.connect = null;\n solanaPromiseRef.current.walletSelect = null;\n solanaPromiseRef.current.walletSelect = new Promise((resolve, reject) => {\n solanaPromiseRef.current.walletSelectResolve = resolve;\n solanaPromiseRef.current.walletSelectReject = reject;\n });\n solanaPromiseRef.current.connect = new Promise((resolve, reject) => {\n solanaPromiseRef.current.connectResolve = resolve;\n solanaPromiseRef.current.connectReject = reject;\n });\n };\n\n const handleSolanaError = useCallback(\n (e: Error) => {\n console.log(\"solan connect error\", e);\n\n if (e instanceof WalletNotReadyError) {\n if (isMobile) {\n console.log(\"-- need toast wallet not ready\", e);\n ee.emit(\"wallet:connect-error\", {\n message: \"Please open the wallet app and use the in-app browser.\",\n });\n }\n }\n solanaDisconnect().then();\n },\n [isMobile, ee],\n );\n\n const connect = async () => {\n initPromiseRef();\n isManual.current = true;\n if (!solanaPromiseRef.current) {\n return;\n }\n if (!solanaWallet) {\n setModalVisible(true);\n selectModalVisibleRef.current = true;\n } else {\n solanaPromiseRef.current.walletSelectResolve(solanaWallet);\n if (!publicKey) {\n try {\n await solanaConnect();\n } catch (e) {\n solanaPromiseRef.current.connectReject(e);\n }\n } else {\n solanaPromiseRef.current.connectResolve({\n userAddress: publicKey.toBase58(),\n signMessage,\n signTransaction,\n sendTransaction,\n });\n }\n }\n\n console.log(\"-- connect fn\", solanaWallet, publicKey);\n return Promise.all([\n solanaPromiseRef.current.walletSelect,\n solanaPromiseRef.current.connect,\n ])\n .then(\n ([\n wallet,\n { userAddress, signMessage, signTransaction, sendTransaction },\n ]) => {\n // console.log('-- connect sol res',{\n // wallet,\n // userAddress, signMessage, sendTransaction\n // });\n const tempWallet = {\n label: wallet.adapter.name,\n icon: \"\",\n provider: {\n rpcUrl: endpoint,\n network: network,\n signMessage: signMessage,\n signTransaction,\n sendTransaction,\n publicKey,\n },\n accounts: [\n {\n address: userAddress,\n },\n ],\n chains: [\n {\n id: SolanaChains.get(network)!,\n namespace: ChainNamespace.solana,\n },\n ],\n };\n if (wallet.adapter.name === \"Ledger\") {\n setLedgerAddress(userAddress);\n }\n setWallet(tempWallet as WalletState);\n setConnected(true);\n return [tempWallet];\n },\n )\n .catch((e) => {\n console.log(\"connect solana error\", e);\n handleSolanaError(e);\n return Promise.reject(e);\n })\n .finally(() => {\n isManual.current = false;\n });\n };\n\n const disconnect = async () => {\n console.log(\"--- discconnect sol\");\n await solanaDisconnect();\n setWallet(null);\n setConnected(false);\n return [];\n };\n\n const connectedChain = useMemo(() => {\n if (!publicKey) {\n return null;\n }\n return {\n id:\n network === WalletAdapterNetwork.Mainnet\n ? SolanaChainIdEnum.MAINNET\n : SolanaChainIdEnum.DEVNET,\n namespace: ChainNamespace.solana,\n };\n }, [publicKey]);\n\n useEffect(() => {\n if (selectModalVisibleRef.current) {\n if (!visible && !solanaWallet && solanaPromiseRef.current) {\n console.log(\n \"-- select modal visible ref\",\n selectModalVisibleRef.current,\n );\n console.log(\"-- use reject solana select modal\");\n solanaPromiseRef.current.walletSelectReject(\"user reject\");\n selectModalVisibleRef.current = false;\n } else if (solanaWallet) {\n selectModalVisibleRef.current = false;\n }\n }\n }, [\n visible,\n solanaWallet,\n solanaPromiseRef.current,\n selectModalVisibleRef.current,\n ]);\n\n useEffect(() => {\n if (!solanaWallet || !publicKey) {\n console.log(\"--- not connect sol\", solanaWallet, publicKey);\n setConnected(false);\n return;\n }\n console.log(\"-- publick\", {\n publicKey: publicKey.toBase58(),\n isManual: isManual.current,\n });\n\n if (isManual.current) {\n if (solanaPromiseRef.current) {\n solanaPromiseRef.current.connectResolve({\n userAddress: publicKey?.toBase58(),\n signMessage,\n signTransaction,\n sendTransaction,\n });\n }\n return;\n }\n const userAddress = publicKey.toBase58();\n setWallet({\n label: solanaWallet.adapter.name,\n icon: \"\",\n provider: {\n signMessage: signMessage!,\n signTransaction: signTransaction!,\n sendTransaction: sendTransaction!,\n rpcUrl: endpoint,\n network: network,\n publicKey,\n },\n accounts: [\n {\n address: userAddress,\n },\n ],\n chains: [\n {\n id: SolanaChains.get(network)!,\n namespace: ChainNamespace.solana,\n },\n ],\n });\n if (solanaWallet.adapter.name === \"Ledger\") {\n setLedgerAddress(userAddress);\n }\n\n setConnected(true);\n }, [\n publicKey,\n solanaWallet,\n signMessage,\n signTransaction,\n isManual,\n sendTransaction,\n endpoint,\n network,\n ]);\n\n useEffect(() => {\n if (!solanaWallet) {\n return;\n }\n console.log(\"-- public key\", publicKey, { isMobile });\n if (\n isMobile &&\n solanaWallet.readyState === WalletReadyState.Loadable &&\n !isManual.current\n ) {\n solanaDisconnect().then();\n return;\n }\n\n console.log(\"-- solana refresh auto connect\", solanaWallet);\n\n if (solanaPromiseRef.current) {\n solanaPromiseRef.current.walletSelectResolve(solanaWallet);\n }\n }, [solanaWallet, publicKey, handleSolanaError, isMobile]);\n\n return {\n connected,\n connect,\n disconnect,\n connecting,\n wallet,\n connectedChain,\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/SolanaProvider.tsx","../src/config.ts","../src/initEvm.tsx","../src/useEvm.tsx","../src/useSOL.tsx","../src/main.tsx","../src/provider.tsx"],"names":["WalletAdapterNetwork","merge","useMemo","useState","useScreen","WalletNotReadyError","wallet","signMessage","signTransaction","sendTransaction","useEffect","useRef","ChainNamespace","React"],"mappings":"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","file":"index.mjs","sourcesContent":["import React, { createContext, useContext, useMemo } from \"react\";\nimport {\n createDefaultAddressSelector,\n createDefaultAuthorizationResultCache,\n SolanaMobileWalletAdapter,\n} from \"@solana-mobile/wallet-adapter-mobile\";\nimport {\n Adapter,\n WalletAdapterNetwork,\n WalletError,\n WalletNotReadyError,\n} from \"@solana/wallet-adapter-base\";\nimport {\n ConnectionProvider,\n WalletProvider,\n} from \"@solana/wallet-adapter-react\";\nimport { WalletModalProvider } from \"@solana/wallet-adapter-react-ui\";\nimport { PhantomWalletAdapter } from \"@solana/wallet-adapter-wallets\";\nimport { clusterApiUrl } from \"@solana/web3.js\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { getGlobalObject } from \"@orderly.network/utils\";\nimport { SolanaInitialProps } from \"./types\";\nimport \"@solana/wallet-adapter-react-ui/styles.css\";\n\nconst SolanaContext = createContext<{\n network: WalletAdapterNetwork;\n endpoint: string;\n}>({\n network: WalletAdapterNetwork.Devnet,\n endpoint: \"\",\n});\n\nexport const useSolanaContext = () => {\n const context = useContext(SolanaContext);\n\n if (context === undefined) {\n throw new Error(\"useSolanaContext must be used within a SolanaProvider\");\n }\n\n return context;\n};\n\nexport function SolanaProvider({ children, ...props }: SolanaInitialProps) {\n const { isMobile } = useScreen();\n const network = useMemo(\n () => props.network ?? WalletAdapterNetwork.Devnet,\n [props.network],\n );\n\n const endpoint = useMemo(() => {\n if (network === WalletAdapterNetwork.Mainnet) {\n return props.mainnetRpc ?? \"\";\n }\n if (network === WalletAdapterNetwork.Devnet) {\n return props.devnetRpc ?? \"\";\n }\n return \"\";\n }, [network, props.mainnetRpc, props.devnetRpc]);\n\n const mobileWalletNotFoundHanlder = (adapter: SolanaMobileWalletAdapter) => {\n console.log(\"-- mobile wallet adapter\", adapter);\n return Promise.reject(new WalletNotReadyError(\"wallet not ready\"));\n };\n\n const handleSolanaError = (error: WalletError, adapter?: Adapter) => {\n console.log(\"-- solanan error\", error);\n console.log(\"-- solana adapter\", adapter);\n\n if (!isMobile && error instanceof WalletNotReadyError) {\n window.open(adapter?.url, \"_blank\");\n }\n };\n\n const wallets = useMemo(() => {\n let uri = \"\";\n if (typeof window !== \"undefined\") {\n const location = (getGlobalObject() as any).location;\n uri = `${location.protocol}//${location.host}`;\n }\n\n return (\n props.wallets ?? [\n new PhantomWalletAdapter(),\n new SolanaMobileWalletAdapter({\n addressSelector: createDefaultAddressSelector(),\n appIdentity: {\n uri,\n },\n authorizationResultCache: createDefaultAuthorizationResultCache(),\n chain: network,\n onWalletNotFound: mobileWalletNotFoundHanlder,\n }),\n ]\n );\n }, [props.wallets, network]);\n\n const contextValue = useMemo(\n () => ({\n network,\n endpoint,\n }),\n [network, endpoint],\n );\n\n return (\n <SolanaContext.Provider value={contextValue}>\n <WalletProvider\n wallets={wallets}\n onError={props.onError ?? handleSolanaError}\n autoConnect={true}\n >\n <WalletModalProvider className=\"oui-pointer-events-auto\">\n {children}\n </WalletModalProvider>\n </WalletProvider>\n </SolanaContext.Provider>\n );\n}\n","import injectedModule from \"@web3-onboard/injected-wallets\";\nimport { init } from \"@web3-onboard/react\";\nimport type { InitOptions, OnboardAPI } from \"@web3-onboard/core\";\nimport binanceModule from \"@binance/w3w-blocknative-connector\";\n// import bitgetWalletModule from \"@web3-onboard/bitget\";\nimport { merge } from \"lodash\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\n\n// initialize the module with options\nconst binance = binanceModule({ options: { lng: \"en\" } });\n// const bitgetWallet = bitgetWalletModule();\n\nexport const initConfig: (\n apiKey?: string,\n options?: InitOptions\n) => OnboardAPI = (apiKey, options) => {\n const defaultOptions = {\n apiKey,\n connect: {\n // autoConnectAllPreviousWallet: true,\n autoConnectLastWallet: true,\n },\n wallets: [injectedModule(), binance],\n chains: [],\n appMetadata: {\n name: \"Orderly\",\n // icon: blocknativeIcon,\n description: \"Orderly\",\n recommendedInjectedWallets: [\n { name: \"Coinbase\", url: \"https://wallet.coinbase.com/\" },\n { name: \"MetaMask\", url: \"https://metamask.io\" },\n { name: \"Trezor\", url: \"https://trezor.io/\" },\n { name: \"Walletconnect\", url: \"https://walletconnect.com/\" },\n { name: \"Ledger\", url: \"https://www.ledger.com/\" },\n ],\n agreement: {\n version: \"1.0.0\",\n termsUrl: \"https://www.blocknative.com/terms-conditions\",\n privacyUrl: \"https://www.blocknative.com/privacy-policy\",\n },\n gettingStartedGuide: \"https://blocknative.com\",\n explore: \"https://blocknative.com\",\n },\n accountCenter: {\n desktop: {\n enabled: false,\n },\n mobile: {\n enabled: false,\n },\n },\n theme: \"dark\",\n } as InitOptions;\n\n const mergedOptions = merge(defaultOptions, options);\n\n return init(mergedOptions);\n};\n\nexport enum SolanaChainIdEnum {\n MAINNET = 900900900,\n DEVNET = 901901901,\n}\n\nexport const SolanaChains = new Map([[WalletAdapterNetwork.Devnet, 901901901], [WalletAdapterNetwork.Mainnet, 900900900]]);\n\n","import React, { PropsWithChildren, useEffect, useState } from \"react\";\nimport { useSimpleDI } from \"@orderly.network/hooks\";\nimport type { InitOptions, OnboardAPI } from \"@web3-onboard/core\";\nimport { Optional } from \"@orderly.network/types\";\nimport { initConfig } from \"./config\";\nimport { merge } from \"lodash\";\n\n\nexport type ConnectorInitOptions = Optional<\n InitOptions,\n | \"apiKey\"\n | \"connect\"\n | \"wallets\"\n | \"chains\"\n | \"appMetadata\"\n | \"accountCenter\"\n | \"theme\"\n>;\n\nexport interface WalletConnectorProviderProps {\n apiKey?: string;\n options?: ConnectorInitOptions;\n // skip board configuration if already initialized\n skipInit?: boolean;\n}\n\nexport function InitEvm(\n props: PropsWithChildren<WalletConnectorProviderProps>\n) {\n const [initialized, setInitialized] = useState(!!props.skipInit);\n\n const { get, register } = useSimpleDI();\n\n useEffect(() => {\n document.body.style.setProperty(\"--onboard-modal-z-index\", \"88\");\n }, []);\n\n useEffect(() => {\n if (props.skipInit) {\n return;\n }\n\n let onboardAPI = get(\"onboardAPI\") as OnboardAPI;\n\n if (onboardAPI) {\n console.log(\"[Orderly SDK]:onboardAPI already initialized\");\n setInitialized(true);\n return;\n }\n\n Promise.all([\n fetchChainInfo('https://testnet-api.orderly.org/v1/public/chain_info'),\n fetchChainInfo('https://api.orderly.org/v1/public/chain_info'),\n ])\n .then(([testChainInfo, mainnetChainInfo]) => {\n const testChains = processChainInfo(testChainInfo);\n const mainnetChains = processChainInfo(mainnetChainInfo);\n\n let options = props.options || {};\n options = merge({ chains: [...testChains, ...mainnetChains] }, options);\n\n onboardAPI = initConfig(props.apiKey, options as InitOptions);\n register('onboardAPI', onboardAPI);\n setInitialized(true);\n })\n .catch((error) => {\n console.error('Error fetching data:', error);\n });\n }, []);\n\n if (!initialized) return null;\n\n return props.children\n}\n\nconst fetchChainInfo = async (url: string) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to fetch data from ${url}`);\n }\n return response.json();\n};\n\nconst processChainInfo = (chainInfo: any) =>\n chainInfo?.data?.rows?.map((row: any) => ({\n id: Number(row.chain_id),\n token: row.currency_symbol,\n label: row.name,\n rpcUrl: row.public_rpc_url,\n blockExplorerUrl: row.explorer_base_url,\n })) || [];\n","import { useConnectWallet, useSetChain } from \"@web3-onboard/react\";\nimport { useMemo } from \"react\";\n\nexport function useEvm() {\n const [\n {\n wallet, // the wallet that has been connected or null if not yet connected\n connecting, // boolean indicating if connection is in progress\n },\n connect, // function to call to initiate user to connect wallet\n evmDisconnect, // function to call with wallet<DisconnectOptions> to disconnect wallet\n updateBalances, // function to be called with an optional array of wallet addresses connected through Onboard to update balance or empty/no params to update all connected wallets\n setWalletModules, // function to be called with an array of wallet modules to conditionally allow connection of wallet types i.e. setWalletModules([ledger, trezor, injected])\n setPrimaryWallet, // function that can set the primary wallet and/or primary account within that wallet. The wallet that is set needs to be passed in for the first parameter and if you would like to set the primary account, the address of that account also needs to be passed in\n ] = useConnectWallet();\n\n const [\n {\n chains, // the list of chains that web3-onboard was initialized with\n connectedChain: evmConnectChain, // the current chain the user's wallet is connected to\n settingChain, // boolean indicating if the chain is in the process of being set\n },\n setChain, // function to call to initiate user to switch chains in their wallet\n ] = useSetChain();\n\n const connected = useMemo(() => {\n return !!(wallet && wallet.accounts && wallet.accounts[0] && wallet.accounts[0].address);\n }, [wallet]);\n\n const disconnect = async () => {\n console.log('-- disconnect evm xxxxxxxxxxxx');\n if (!wallet) {\n return;\n }\n return evmDisconnect({\n label: wallet.label,\n });\n };\n\n const connectedChain = useMemo(() => {\n return evmConnectChain\n ? { ...evmConnectChain, id: parseInt(evmConnectChain.id) }\n : null;\n }, [evmConnectChain]);\n\n const changeChain = (chain: { chainId: string}): Promise<any> =>{\n return setChain(chain);\n }\n\n return {\n connect,\n connected,\n disconnect,\n connecting,\n wallet,\n connectedChain,\n changeChain,\n\n };\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n WalletAdapterNetwork,\n WalletNotReadyError,\n WalletReadyState,\n} from \"@solana/wallet-adapter-base\";\nimport { useConnection, useWallet } from \"@solana/wallet-adapter-react\";\nimport { useWalletModal } from \"@solana/wallet-adapter-react-ui\";\nimport {\n useEventEmitter,\n useLocalStorage,\n useStorageLedgerAddress,\n WalletState,\n} from \"@orderly.network/hooks\";\nimport { ChainNamespace, LedgerWalletKey } from \"@orderly.network/types\";\nimport { useScreen } from \"@orderly.network/ui\";\nimport { useSolanaContext } from \"./SolanaProvider\";\nimport { SolanaChainIdEnum, SolanaChains } from \"./config\";\n\nexport function useSOL() {\n const [wallet, setWallet] = useState<WalletState | null>(null);\n const { isMobile } = useScreen();\n const { endpoint, network } = useSolanaContext();\n const { setVisible: setModalVisible, visible } = useWalletModal();\n const { setLedgerAddress } = useStorageLedgerAddress();\n const {\n signMessage,\n signTransaction,\n sendTransaction,\n publicKey,\n wallet: solanaWallet,\n connect: solanaConnect,\n disconnect: solanaDisconnect,\n connecting,\n } = useWallet();\n\n // 1 for open, 2 for close, null for default\n const selectModalVisibleRef = useRef<boolean>(false);\n\n const [connected, setConnected] = useState(false);\n\n const isManual = useRef(false);\n const solanaPromiseRef = useRef<{\n walletSelect: Promise<any> | null;\n connect: Promise<any> | null;\n walletSelectResolve: (value: any) => void;\n walletSelectReject: (value: any) => void;\n connectResolve: (value: any) => void;\n connectReject: (value: any) => void;\n }>({\n walletSelect: null,\n connect: null,\n walletSelectResolve: () => {},\n walletSelectReject: () => {},\n connectReject: () => {},\n connectResolve: () => {},\n });\n const ee = useEventEmitter();\n\n const initPromiseRef = () => {\n console.log(\"-- init solana promise\");\n solanaPromiseRef.current.walletSelectResolve = () => {};\n solanaPromiseRef.current.walletSelectReject = () => {};\n solanaPromiseRef.current.connectReject = () => {};\n solanaPromiseRef.current.connectReject = () => {};\n solanaPromiseRef.current.connect = null;\n solanaPromiseRef.current.walletSelect = null;\n solanaPromiseRef.current.walletSelect = new Promise((resolve, reject) => {\n solanaPromiseRef.current.walletSelectResolve = resolve;\n solanaPromiseRef.current.walletSelectReject = reject;\n });\n solanaPromiseRef.current.connect = new Promise((resolve, reject) => {\n solanaPromiseRef.current.connectResolve = resolve;\n solanaPromiseRef.current.connectReject = reject;\n });\n };\n\n const handleSolanaError = useCallback(\n (e: Error) => {\n console.log(\"solan connect error\", e);\n\n if (e instanceof WalletNotReadyError) {\n if (isMobile) {\n console.log(\"-- need toast wallet not ready\", e);\n ee.emit(\"wallet:connect-error\", {\n message: \"Please open the wallet app and use the in-app browser.\",\n });\n }\n }\n solanaDisconnect().then();\n },\n [isMobile, ee],\n );\n\n const connect = async () => {\n initPromiseRef();\n isManual.current = true;\n if (!solanaPromiseRef.current) {\n return;\n }\n if (!solanaWallet) {\n setModalVisible(true);\n selectModalVisibleRef.current = true;\n } else {\n solanaPromiseRef.current.walletSelectResolve(solanaWallet);\n if (!publicKey) {\n try {\n await solanaConnect();\n } catch (e) {\n solanaPromiseRef.current.connectReject(e);\n }\n } else {\n solanaPromiseRef.current.connectResolve({\n userAddress: publicKey.toBase58(),\n signMessage,\n signTransaction,\n sendTransaction,\n });\n }\n }\n\n console.log(\"-- connect fn\", solanaWallet, publicKey);\n return Promise.all([\n solanaPromiseRef.current.walletSelect,\n solanaPromiseRef.current.connect,\n ])\n .then(\n ([\n wallet,\n { userAddress, signMessage, signTransaction, sendTransaction },\n ]) => {\n // console.log('-- connect sol res',{\n // wallet,\n // userAddress, signMessage, sendTransaction\n // });\n const tempWallet = {\n label: wallet.adapter.name,\n icon: \"\",\n provider: {\n rpcUrl: endpoint,\n network: network,\n signMessage: signMessage,\n signTransaction,\n sendTransaction,\n publicKey,\n },\n accounts: [\n {\n address: userAddress,\n },\n ],\n chains: [\n {\n id: SolanaChains.get(network)!,\n namespace: ChainNamespace.solana,\n },\n ],\n };\n if (wallet.adapter.name === \"Ledger\") {\n setLedgerAddress(userAddress);\n }\n setWallet(tempWallet as WalletState);\n setConnected(true);\n return [tempWallet];\n },\n )\n .catch((e) => {\n console.log(\"connect solana error\", e);\n handleSolanaError(e);\n return Promise.reject(e);\n })\n .finally(() => {\n isManual.current = false;\n });\n };\n\n const disconnect = async () => {\n console.log(\"--- discconnect sol\");\n await solanaDisconnect();\n setWallet(null);\n setConnected(false);\n return [];\n };\n\n const connectedChain = useMemo(() => {\n if (!publicKey) {\n return null;\n }\n return {\n id:\n network === WalletAdapterNetwork.Mainnet\n ? SolanaChainIdEnum.MAINNET\n : SolanaChainIdEnum.DEVNET,\n namespace: ChainNamespace.solana,\n };\n }, [publicKey]);\n\n useEffect(() => {\n if (selectModalVisibleRef.current) {\n if (!visible && !solanaWallet && solanaPromiseRef.current) {\n console.log(\n \"-- select modal visible ref\",\n selectModalVisibleRef.current,\n );\n console.log(\"-- use reject solana select modal\");\n solanaPromiseRef.current.walletSelectReject(\"user reject\");\n selectModalVisibleRef.current = false;\n } else if (solanaWallet) {\n selectModalVisibleRef.current = false;\n }\n }\n }, [\n visible,\n solanaWallet,\n solanaPromiseRef.current,\n selectModalVisibleRef.current,\n ]);\n\n useEffect(() => {\n if (!solanaWallet || !publicKey) {\n console.log(\"--- not connect sol\", solanaWallet, publicKey);\n setConnected(false);\n return;\n }\n console.log(\"-- publick\", {\n publicKey: publicKey.toBase58(),\n isManual: isManual.current,\n });\n\n if (isManual.current) {\n if (solanaPromiseRef.current) {\n solanaPromiseRef.current.connectResolve({\n userAddress: publicKey?.toBase58(),\n signMessage,\n signTransaction,\n sendTransaction,\n });\n }\n return;\n }\n const userAddress = publicKey.toBase58();\n setWallet({\n label: solanaWallet.adapter.name,\n icon: \"\",\n provider: {\n signMessage: signMessage!,\n signTransaction: signTransaction!,\n sendTransaction: sendTransaction!,\n rpcUrl: endpoint,\n network: network,\n publicKey,\n },\n accounts: [\n {\n address: userAddress,\n },\n ],\n chains: [\n {\n id: SolanaChains.get(network)!,\n namespace: ChainNamespace.solana,\n },\n ],\n });\n if (solanaWallet.adapter.name === \"Ledger\") {\n setLedgerAddress(userAddress);\n }\n\n setConnected(true);\n }, [\n publicKey,\n solanaWallet,\n signMessage,\n signTransaction,\n isManual,\n sendTransaction,\n endpoint,\n network,\n ]);\n\n useEffect(() => {\n if (!solanaWallet) {\n return;\n }\n console.log(\"-- public key\", publicKey, { isMobile });\n if (\n isMobile &&\n solanaWallet.readyState === WalletReadyState.Loadable &&\n !isManual.current\n ) {\n solanaDisconnect().then();\n return;\n }\n\n console.log(\"-- solana refresh auto connect\", solanaWallet);\n\n if (solanaPromiseRef.current) {\n solanaPromiseRef.current.walletSelectResolve(solanaWallet);\n }\n }, [solanaWallet, publicKey, handleSolanaError, isMobile]);\n\n return {\n connected,\n connect,\n disconnect,\n connecting,\n wallet,\n connectedChain,\n };\n}\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\nimport { WalletConnectorContext } from \"@orderly.network/hooks\";\nimport type { WalletConnectorContextState } from \"@orderly.network/hooks\";\nimport { ChainNamespace } from \"@orderly.network/types\";\nimport { hex2int } from \"@orderly.network/utils\";\nimport { SolanaChains } from \"./config\";\nimport { useEvm } from \"./useEvm\";\nimport { useSOL } from \"./useSOL\";\n\nexport const Main: React.FC<\n React.PropsWithChildren<{ solanaNetwork: WalletAdapterNetwork }>\n> = (props) => {\n const sol = useSOL();\n const evm = useEvm();\n\n const [namespace, setNamespace] = useState<ChainNamespace | null>(null);\n\n const newNamespace = useRef<ChainNamespace | null>();\n\n const connect = async (options: any) => {\n if (Array.from(SolanaChains.values()).includes(options.chainId)) {\n newNamespace.current = ChainNamespace.solana;\n // connect solana\n return sol.connect().then((res) => {\n if (res) {\n return res;\n }\n });\n }\n newNamespace.current = ChainNamespace.evm;\n const evmOption = options.autoSelect\n ? {\n autoSelect: options.autoSelect,\n }\n : undefined;\n\n return evm\n .connect(evmOption)\n .then((res) => {\n if (!res.length) {\n return Promise.reject({ message: \"user reject\" });\n }\n return res;\n })\n .catch((e) => {\n return Promise.reject(e);\n });\n };\n\n const disconnect = async () => {\n if (namespace === ChainNamespace.evm) {\n return evm.disconnect();\n }\n if (namespace === ChainNamespace.solana) {\n return sol.disconnect();\n }\n };\n\n const connecting =\n newNamespace.current == ChainNamespace.solana\n ? sol.connecting\n : evm.connecting;\n\n // console.log('-- connecting', connecting);\n\n const wallet =\n namespace === ChainNamespace.solana && sol.connected\n ? sol.wallet\n : namespace === ChainNamespace.evm && evm.connected\n ? evm.wallet\n : null;\n\n const connectedChain =\n namespace === ChainNamespace.solana\n ? sol.connectedChain\n : evm.connectedChain;\n\n const setChain = (chain: any) => {\n // solana connect\n const chainId =\n typeof chain.chainId === \"number\"\n ? chain.chainId\n : hex2int(chain.chainId);\n // console.log('-- setchain chain',{\n // chain, chainId,\n // });\n\n let tempNamespace: ChainNamespace = ChainNamespace.evm;\n if (Array.from(SolanaChains.values()).includes(chainId)) {\n tempNamespace = ChainNamespace.solana;\n }\n\n if (namespace === tempNamespace && namespace === ChainNamespace.evm) {\n // todo switch chan on block native\n\n return evm.changeChain(chain);\n }\n if (namespace !== tempNamespace) {\n return connect({ chainId: chainId }).then();\n }\n };\n\n useEffect(() => {\n if (sol.connected && evm.connected) {\n if (newNamespace.current === ChainNamespace.solana) {\n evm.disconnect().then();\n setNamespace(ChainNamespace.solana);\n return;\n } else {\n setNamespace(ChainNamespace.evm);\n sol.disconnect().then();\n return;\n }\n }\n\n if (sol.connected) {\n setNamespace(ChainNamespace.solana);\n return;\n }\n if (evm.connected) {\n setNamespace(ChainNamespace.evm);\n return;\n }\n }, [newNamespace.current, sol.connected, evm.connected]);\n\n const memoizedValue = useMemo<WalletConnectorContextState>(() => {\n return {\n connect: connect as any,\n disconnect: disconnect as any,\n connecting,\n wallet: wallet as any,\n setChain: setChain as any,\n connectedChain: connectedChain as any,\n namespace: namespace,\n chains: [],\n settingChain: false,\n };\n }, [\n connect,\n disconnect,\n connecting,\n wallet,\n setChain,\n connectedChain,\n namespace,\n ]);\n\n return (\n <WalletConnectorContext.Provider value={memoizedValue}>\n {props.children}\n </WalletConnectorContext.Provider>\n );\n};\n","import React, { type PropsWithChildren } from \"react\";\nimport { WalletAdapterNetwork } from \"@solana/wallet-adapter-base\";\nimport { EMPTY_OBJECT } from \"@orderly.network/types\";\nimport { SolanaProvider } from \"./SolanaProvider\";\nimport { InitEvm } from \"./initEvm\";\nimport { Main } from \"./main\";\nimport { EvmInitialProps, SolanaInitialProps } from \"./types\";\n\nexport interface WalletConnectorProviderProps {\n solanaInitial?: SolanaInitialProps;\n evmInitial?: EvmInitialProps;\n}\n\nexport const WalletConnectorProvider: React.FC<\n PropsWithChildren<WalletConnectorProviderProps>\n> = (props) => {\n return (\n <SolanaProvider {...(props.solanaInitial ?? EMPTY_OBJECT)}>\n <InitEvm {...(props.evmInitial ?? EMPTY_OBJECT)}>\n <Main\n solanaNetwork={\n props.solanaInitial?.network ?? WalletAdapterNetwork.Devnet\n }\n >\n {props.children}\n </Main>\n </InitEvm>\n </SolanaProvider>\n );\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orderly.network/wallet-connector",
3
- "version": "2.8.10-alpha.0",
3
+ "version": "2.8.11-alpha.0",
4
4
  "description": "",
5
5
  "main": "dist/index.mjs",
6
6
  "module": "dist/index.mjs",
@@ -25,17 +25,17 @@
25
25
  "@solana-mobile/wallet-adapter-mobile": "^2.1.4",
26
26
  "@solana/web3.js": "^1.95.3",
27
27
  "rxjs": "^7.5.5",
28
- "@orderly.network/types": "2.8.10-alpha.0",
29
- "@orderly.network/core": "2.8.10-alpha.0",
30
- "@orderly.network/hooks": "2.8.10-alpha.0",
31
- "@orderly.network/utils": "2.8.10-alpha.0",
32
- "@orderly.network/ui": "2.8.10-alpha.0"
28
+ "@orderly.network/hooks": "2.8.11-alpha.0",
29
+ "@orderly.network/types": "2.8.11-alpha.0",
30
+ "@orderly.network/utils": "2.8.11-alpha.0",
31
+ "@orderly.network/core": "2.8.11-alpha.0",
32
+ "@orderly.network/ui": "2.8.11-alpha.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/react": "^18.2.38",
36
36
  "react": "^18.2.0",
37
- "tsup": "^7.1.0",
38
- "tsconfig": "0.11.10-alpha.0"
37
+ "tsup": "^8.5.1",
38
+ "tsconfig": "0.11.11-alpha.0"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "react": ">=18"