@dappworks/kit 0.4.230 → 0.4.231
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/chunk-NO4O46V2.mjs +1052 -0
- package/dist/chunk-NO4O46V2.mjs.map +1 -0
- package/dist/index.d.mts +19 -3
- package/dist/index.mjs +5 -1
- package/dist/wallet.mjs +26 -701
- package/dist/wallet.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-DRTTNPZI.mjs +0 -298
- package/dist/chunk-DRTTNPZI.mjs.map +0 -1
package/dist/wallet.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../module/Wallet/provider.tsx","../module/Wallet/index.tsx","../module/Wallet/walletPluginStore.tsx","../module/Wallet/walletConfigStore.ts","../module/Wallet/SuccessTxDialog/index.tsx","../module/Wallet/type.ts","../module/Wallet/RpcList/index.tsx"],"names":["React","useEffect","useConnectModal","Icon","_a","SafeAppsSDK","observer"],"mappings":"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","sourcesContent":["import { RainbowKitProvider, darkTheme, lightTheme } from '@rainbow-me/rainbowkit';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useReconnect, useWalletClient, WagmiProvider } from 'wagmi';\nimport { RootStore } from \"../../store\";\nimport { WalletStore } from '.';\nimport { WalletConfigStore } from './walletConfigStore'\nimport { reaction } from 'mobx';\nimport { type Chain } from \"viem/chains\";\nimport { iotex } from './type';\nimport SafeAppsSDK from '@safe-global/safe-apps-sdk';\nimport { observer } from 'mobx-react-lite';\nconst queryClient = new QueryClient();\nexport const WalletProvider = observer((({\n children,\n theme,\n appName,\n supportedChains,\n compatibleMode = true,\n}: {\n children: React.ReactNode,\n theme?: 'dark' | 'light',\n appName?: string,\n supportedChains?: Chain[],\n compatibleMode?: boolean,\n debug?: boolean,\n}) => {\n //@ts-ignore\n const walletConfig = RootStore.Get(WalletConfigStore, { args: { supportedChains: supportedChains ?? [iotex] } });\n useEffect(() => {\n if (appName) {\n walletConfig.appName = appName\n }\n if (compatibleMode != undefined) {\n walletConfig.compatibleMode = compatibleMode\n }\n }, [appName, compatibleMode])\n useEffect(() => {\n const sdk = new SafeAppsSDK()\n sdk.safe.getEnvironmentInfo().then(({ origin }) => {\n if (origin) {\n walletConfig.isInSafeApp = true\n }\n })\n }, [])\n return (\n <WagmiProvider config={walletConfig.rainbowKitConfig} reconnectOnMount={walletConfig.reconnectOnMount}>\n <QueryClientProvider client={queryClient} >\n <RainbowKitProvider locale=\"en\" theme={theme == 'dark' ? darkTheme() : lightTheme()}>\n {children}\n {\n compatibleMode ? <WalletConnectcompatibleMode /> : <WalletConnect />\n }\n </RainbowKitProvider>\n </QueryClientProvider>\n </WagmiProvider>\n );\n}));\n\n//There are problems with safeWallet calls in compatibility mode\nexport const WalletConnectcompatibleMode = () => {\n const wallet = RootStore.Get(WalletStore);\n wallet.use();\n return <></>;\n};\n\nexport const WalletConnect = () => {\n const wallet = RootStore.Get(WalletStore);\n wallet.useWalletClientWithoutCompatibleMode();\n wallet.use();\n return <></>;\n};\n","import React, { useEffect } from \"react\";\nimport { Store } from \"../../store/standard/base\";\nimport { PublicClient, type HttpTransport, WalletClient, TransactionReceipt, createWalletClient, custom, publicActions, SwitchChainErrorType, UserRejectedRequestError } from \"viem\";\nimport { PromiseHook } from '../../store/standard/PromiseHook';\nimport { AddressMode, WalletTransactionHistoryType } from \"./type\";\nimport EventEmitter from \"events\";\nimport { SwitchChainMutateAsync } from \"wagmi/query\";\nimport { Config, useAccount, useConnect, useDisconnect, useReconnect, useSwitchChain, useWalletClient, } from \"wagmi\";\nimport { Chain, useConnectModal, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { RootStore } from \"../../store\";\nimport { ToastPlugin } from \"../Toast/Toast\";\nimport { WalletHistoryStore, WalletRpcStore } from './walletPluginStore';\nimport SafeAppsSDK, { TransactionStatus } from '@safe-global/safe-apps-sdk';\nimport { ShowSuccessTxDialog } from './SuccessTxDialog'\nimport { WalletConfigStore } from \"./walletConfigStore\";\nimport { AIem } from \"../../aiem\";\nimport { helper } from \"../../lib/helper\";\nimport { iotex } from \"viem/chains\";\n\nexport class WalletStore implements Store {\n sid = 'wallet';\n autoObservable = true;\n account: `0x${string}` = null;\n isSuccessDialogOpen = false;\n // isInSafeApp = false;\n get isInSafeApp() {\n return RootStore.Get(WalletConfigStore).isInSafeApp\n }\n isConnect = false;\n walletClient: WalletClient;\n event = new EventEmitter();\n switchChain: SwitchChainMutateAsync<Config, unknown> | undefined;\n updateTicker = 0;\n addressMode: AddressMode = '0x';\n isIoTeXChain: boolean = false;\n setAddressMode(mode: AddressMode) {\n this.addressMode = mode;\n localStorage.setItem('addressMode', mode);\n }\n get accountFormat() {\n return this.account ? helper.address.convertAddress(this.addressMode, this.account) : '-';\n }\n get connectAccountEllipsisFormat() {\n return this.account ? helper.string.truncate(helper.address.convertAddress(this.addressMode, this.account), 11, '...') : '-';\n }\n get accountEllipsisFormat() {\n return this.account ? helper.string.truncate(helper.address.convertAddress(this.addressMode, this.account), 16, '...') : '-';\n }\n get supportedChains() {\n return RootStore.Get(WalletConfigStore).supportedChains\n }\n chain: Chain | undefined;\n openConnectModal: any;\n disconnect: any;\n balance = PromiseHook.wrap({\n func: async () => {\n if (!this.publicClient || !this.account) return helper.number.warpBigNumber('0');\n const balance = await this.publicClient.getBalance({\n address: this.account,\n });\n if (balance) {\n return helper.number.warpBigNumber(balance?.toString() ?? '0');\n }\n },\n });\n\n constructor(args?: Partial<WalletStore>) {\n Object.assign(this, args);\n }\n\n use() {\n // const { data: walletClient, isSuccess } = useWalletClient();\n const { chain, address, isConnected } = useAccount();\n const { switchChainAsync } = useSwitchChain();\n const { openConnectModal } = useConnectModal();\n const { connect } = useConnect();\n const { disconnect } = useDisconnect();\n const walletConfigStore = RootStore.Get(WalletConfigStore);\n this.set({\n //@ts-ignore\n connect,\n // @ts-ignore \n // walletClient,\n openConnectModal,\n switchChain: switchChainAsync,\n disconnect\n })\n\n useEffect(() => {\n RootStore.Get(WalletHistoryStore).set({ isRender: true })\n this.set({\n isConnect: isConnected,\n account: address,\n chain,\n })\n if (chain?.id == 4689) {\n this.isIoTeXChain = true\n } else {\n this.isIoTeXChain = false\n }\n walletConfigStore.set({\n isConnect: isConnected,\n })\n if (this.account) {\n this.updateTicker++;\n walletConfigStore.set({\n walletUpdateTick: this.updateTicker,\n })\n this.event.emit('walletAccount:ready');\n }\n this.useWalletClientWithCompatibleMode()\n }, [address, isConnected, chain])\n\n useEffect(() => {\n setTimeout(() => {\n this.balance.call()\n }, 1500)\n }, [this.updateTicker])\n }\n\n private useWalletClientWithCompatibleMode() {\n if (RootStore.Get(WalletConfigStore).compatibleMode) {\n if (this.account) {\n this.walletClient = createWalletClient({\n account: this.account,\n chain: this.chain,\n transport: custom(window.ethereum!)\n }).extend(publicActions)\n }\n console.log(this.walletClient, 'this.walletClientxxx')\n }\n }\n\n useWalletClientWithoutCompatibleMode() {\n const { data: walletClient } = useWalletClient()\n this.set({\n walletClient\n })\n }\n\n //always return or return default chain\n get publicClient(): PublicClient<HttpTransport, Chain, any, any> {\n if (this.chain && this.supportedChains.some(i => i.id === this.chain.id)) {\n if (this.chain.id == 4689) {\n return AIem.PubClient('4689', { rpcUrls: { default: { http: [RootStore.Get(WalletRpcStore).curRpc.value] } }, multicall: true })\n }\n return AIem.PubClient(this.chain.id.toString())\n } else {\n return AIem.PubClient('4689')\n }\n }\n\n set(args: Partial<WalletStore>) {\n Object.assign(this, args);\n }\n\n toJSON() {\n const { account } = this;\n return { account };\n }\n\n async prepare(chainId?: number): Promise<WalletStore> {\n const walletRpcStore = RootStore.Get(WalletRpcStore)\n return new Promise<WalletStore>(async (res, rej) => {\n try {\n if (this.account) {\n if ((!chainId || (Number(this.chain?.id) == Number(chainId))) && this.walletClient) {\n res(this);\n }\n const interval = setInterval(() => {\n if (this.chain?.id == chainId) {\n try {\n console.log('useWalletClientWithCompatibleMode')\n this.useWalletClientWithCompatibleMode()\n res(this);\n } catch (error) {\n console.log(error, 'myerror')\n rej(error);\n }\n clearInterval(interval);\n }\n }, 1000);\n\n if (chainId != this.chain?.id) {\n try {\n walletRpcStore.switchOrAddChain(chainId ?? 4689)\n } catch (error) {\n rej(error)\n }\n }\n } else {\n this.openConnectModal();\n const interval = setInterval(() => {\n if (this.account) {\n clearInterval(interval);\n res(this);\n }\n }, 1000);\n }\n } catch (error) {\n rej(error);\n }\n });\n }\n\n\n async waitForTransactionReceipt({ hash }) {\n // https://github.com/wevm/wagmi/discussions/3463#discussioncomment-8139187\n if (this.isInSafeApp) {\n // console.log('isInSafeApp', this.isInSafeApp);\n const sdk = new SafeAppsSDK();\n while (true) {\n const queued = await sdk.txs.getBySafeTxHash(hash);\n if (queued.txStatus === TransactionStatus.AWAITING_CONFIRMATIONS || queued.txStatus === TransactionStatus.AWAITING_EXECUTION || queued.txStatus === TransactionStatus.CANCELLED) {\n await new Promise((resolve) => setTimeout(resolve, 2000));\n } else {\n return this.publicClient.waitForTransactionReceipt({ hash: queued.txHash! as `0x${string}` });\n }\n }\n } else {\n return this.publicClient.waitForTransactionReceipt({ hash });\n }\n }\n\n static async SendTx(...args: Parameters<WalletStore['sendTx']>) {\n return RootStore.Get(WalletStore).sendTx(...args);\n }\n static async SendRawTx(...args: Parameters<WalletStore['sendRawTx']>) {\n return RootStore.Get(WalletStore).sendRawTx(...args);\n }\n async sendTx({\n chainId,\n tx,\n autoAlert = true,\n loadingText,\n successText,\n onError,\n historyItem,\n showSuccessDialog = false,\n }: {\n chainId: number | string;\n tx: any;\n autoAlert?: boolean;\n loadingText?: string;\n successText?: string;\n showSuccessDialog?: boolean;\n historyItem?: Pick<WalletTransactionHistoryType, 'msg' | 'type'>;\n onError?: (error: any) => void;\n }) {\n const toast = RootStore.Get(ToastPlugin);\n let hash;\n const historyStore = RootStore.Get(WalletHistoryStore)\n try {\n if (loadingText) toast.loading(loadingText);\n if (!chainId) throw new Error('chainId, address, data is required');\n await RootStore.Get(WalletStore).prepare(Number(chainId));\n hash = await tx();\n if (historyItem) {\n historyStore.recordHistory({ ...historyItem, tx: hash, timestamp: Date.now(), status: 'loading', chainId: Number(chainId) });\n }\n const receipt = await this.waitForTransactionReceipt({ hash });\n if (receipt.status == 'success') {\n toast.dismiss();\n toast.success('The transaction was successful');\n if (historyItem) {\n if (showSuccessDialog) {\n ShowSuccessTxDialog({ msg: historyItem.msg, hash: hash });\n }\n historyStore.updateHistoryStatusByTx(hash, 'success');\n }\n } else {\n toast.dismiss();\n toast.error('The transaction failed');\n historyStore.updateHistoryStatusByTx(hash, 'fail');\n }\n if (successText) toast.success(successText);\n this.updateTicker++;\n return receipt;\n } catch (error) {\n console.log(error);\n toast.dismiss();\n if (autoAlert) {\n const msg = /reason=\"[A-Za-z0-9_ :\"]*/g.exec(error?.message);\n console.log('sendTx', error?.message);\n if (error?.message?.includes('rejected') || String(error).toLowerCase().includes('rejected') || String(error).toLowerCase().includes('denied')) {\n toast.error('User rejected transaction');\n // onError?.(error);\n return;\n }\n if (error?.message?.includes('The Transaction may not be processed on a block yet') || error?.message?.includes('could not be found')) {\n if (historyItem) {\n historyStore.updateHistoryStatusByTx(hash, 'success');\n }\n toast.success('The transaction was successful');\n return;\n }\n\n if (msg) {\n // toast.error(msg as unknown as string);\n onError?.(new Error(msg as unknown as string || 'Transaction failed'));\n } else {\n if (error?.message.includes('viem')) {\n const messageArr = error?.message.split('\\n');\n console.log('messageArr---', messageArr);\n if (messageArr.length > 0) {\n // toast.error(messageArr[0]);\n onError?.(new Error(messageArr[0] || 'Transaction failed'));\n }\n } else {\n // toast.error(String(error?.message || error));\n onError?.(new Error(error?.message || 'Transaction failed'));\n }\n }\n } else {\n onError?.(error);\n throw error;\n }\n }\n }\n async sendRawTx({\n chainId,\n address,\n data,\n value = '0',\n autoAlert = true,\n onSended,\n onSuccess,\n onError,\n historyItem,\n loadingText,\n showSuccessDialog = false,\n }: {\n loadingText?: string;\n chainId: number | string;\n address: string;\n data: string | null;\n value?: string;\n autoRefresh?: boolean;\n autoAlert?: boolean;\n historyItem?: Pick<WalletTransactionHistoryType, 'msg' | 'type'>;\n showTransactionSubmitDialog?: boolean;\n showSuccessDialog?: boolean;\n onSended?: ({ res }: { res: TransactionReceipt }) => void;\n onSuccess?: ({ res }: { res: TransactionReceipt }) => void;\n onError?: (error: any) => void;\n }): Promise<TransactionReceipt | undefined> {\n chainId = Number(chainId);\n const toast = RootStore.Get(ToastPlugin);\n try {\n if (!chainId || !address) throw new Error('chainId, address, is required');\n await RootStore.Get(WalletStore).prepare(chainId);\n if (loadingText) toast.loading(loadingText);\n const historyStore = RootStore.Get(WalletHistoryStore)\n // @ts-ignore\n const hash = await this.walletClient.sendTransaction({\n account: this.account,\n to: address as `0x${string}`,\n data: data as `0x${string}`,\n value: value ? BigInt(value) : undefined,\n });\n let receipt = await this.waitForTransactionReceipt({ hash });\n if (historyItem) {\n historyStore.recordHistory({ ...historyItem, tx: receipt.transactionHash, timestamp: Date.now(), status: 'loading', chainId: Number(chainId) });\n }\n onSended ? onSended({ res: receipt }) : null;\n if (receipt.status == 'success') {\n if (historyItem) {\n if (showSuccessDialog) {\n ShowSuccessTxDialog({ msg: historyItem.msg, hash: hash });\n }\n historyStore.updateHistoryStatusByTx(receipt.transactionHash, 'success');\n }\n onSuccess && onSuccess({ res: receipt });\n toast.dismiss();\n toast.success('The transaction was successful');\n } else {\n if (historyItem) {\n historyStore.updateHistoryStatusByTx(receipt.transactionHash, 'fail');\n }\n onError && onError?.(new Error('The transaction failed'));\n toast.dismiss();\n toast.error('The transaction failed');\n }\n return receipt;\n } catch (error) {\n console.log(error, 'xty')\n toast.dismiss();\n onError?.(error)\n console.log(error.message);\n const msg = /reason=\"[A-Za-z0-9_ :\"]*/g.exec(error?.message);\n // Details: Transaction was rejected\n if (error?.message?.includes('rejected') || error?.message?.includes('cancel') || String(error).toLowerCase().includes('rejected') || String(error).toLowerCase().includes('user denied')) {\n autoAlert && toast.error('User rejected transaction');\n return;\n }\n if (error?.message?.includes('Price slippage check')) {\n autoAlert && toast.error('The latest pool price has changed, please try to increase the slippage tolerance or reload the page.');\n return;\n }\n if (error?.message.includes('viem')) {\n const messageArr = error?.message.split('\\n');\n console.log('messageArr---', messageArr);\n if (messageArr.length > 0) {\n // toast.error(messageArr[0]);\n onError?.(new Error(messageArr[0] ?? 'Transaction failed'));\n return;\n }\n }\n\n // if (msg) {\n // autoAlert && toast.error(msg as unknown as string);\n // } else {\n // autoAlert && toast.error(String(error.message));\n // }\n if (!autoAlert) {\n onError?.(error);\n throw error;\n }\n }\n }\n}","import React from 'react';\nimport { Icon } from \"@iconify/react\";\nimport { RootStore } from \"../../store\";\nimport { Store } from \"../../store/standard/base\";\nimport { StorageState } from '../../store/standard/StorageState';\nimport { ToastPlugin } from \"../Toast/Toast\";\nimport { WalletTransactionHistoryType } from \"./type\";\nimport { WalletStore } from \".\";\nimport { helper } from \"../../lib/helper\";\nimport { Chain, toHex } from 'viem';\nimport { WalletConfigStore } from './walletConfigStore';\n\nconst defaultRPCList = [\n { name: 'https://babel-api.fastblocks.io', latency: 0, height: 0, custom: false },\n { name: 'https://babel-api.mainnet.iotex.one', latency: 0, height: 0, },\n { name: 'https://babel-api.mainnet.iotex.io', latency: 0, height: 0, },\n { name: 'https://iotex-network.rpc.thirdweb.com', latency: 0, height: 0, },\n { name: 'https://iotexrpc.com', latency: 0, height: 0, },\n { name: 'https://iotex.api.onfinality.io/public', latency: 0, height: 0, },\n { name: 'https://rpc.ankr.com/iotex', latency: 0, height: 0, },\n]\nexport class WalletRpcStore implements Store {\n sid = 'WalletPluginStore';\n autoObservable = true\n curRpc = new StorageState({ default: 'https://babel-api.mainnet.iotex.one', key: 'curRPC-v2', value: 'https://babel-api.mainnet.iotex.one' });\n isAutoSelectRpc = new StorageState({ key: 'isAutoSelectRpc', default: true });\n customRpc = '';\n rpcList = new StorageState({ key: 'customRpcList-v2', default: defaultRPCList, value: [] })\n showCustomRpc = false;\n get currentRpc() {\n console.log(this.rpcList.value?.find(i => i.name == this.curRpc))\n return this.rpcList.value?.find(i => i.name == this.curRpc.value) || null\n }\n addCustomRpc() {\n const item = { name: this.customRpc, latency: 0, height: 0, custom: true }\n if (defaultRPCList.find(i => i.name === item.name)) {\n return RootStore.Get(ToastPlugin).error('Rpc already exists')\n }\n if (this.rpcList.value) {\n this.rpcList.save([...this.rpcList.value, item])\n this.refresh()\n return\n }\n this.rpcList.save([...defaultRPCList, item])\n this.refresh()\n }\n async addToMetamask(url) {\n try {\n if (typeof window == 'undefined') return;\n await window?.ethereum?.request({\n method: 'wallet_addEthereumChain',\n params: [{\n chainId: `0x${(4689).toString(16)}`,\n chainName: 'IoTeX Mainnet',\n nativeCurrency: {\n name: 'IoTeX',\n symbol: 'IOTX',\n decimals: 18,\n },\n rpcUrls: [url],\n blockExplorerUrls: ['https://iotexscan.io'],\n }]\n });\n RootStore.Get(ToastPlugin).success('Network added');\n console.log('Network added');\n } catch (error) {\n console.error('Failed to add network', error);\n }\n }\n async switchOrAddChain(chainId: number) {\n return new Promise(async (resolve, reject) => {\n try {\n await window.ethereum.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: toHex(chainId) }],\n });\n resolve(true)\n } catch (switchError) {\n if (switchError.code === 4902) {\n try {\n await this.addToMetamaskById(chainId)\n } catch (addError) {\n reject(addError)\n }\n } else {\n reject(switchError)\n }\n }\n })\n }\n async addToMetamaskById(id: number) {\n return new Promise(async (resolve, reject) => {\n try {\n if (typeof window == 'undefined') return;\n const chain = RootStore.Get(WalletConfigStore).supportedChains.find(i => i.id == id)\n const res = await window.ethereum.request({\n method: 'wallet_addEthereumChain',\n params: [{\n \"chainId\": toHex(chain.id),\n \"chainName\": chain.name,\n \"nativeCurrency\": {\n \"name\": chain.nativeCurrency.name,\n \"symbol\": chain.nativeCurrency.symbol,\n \"decimals\": chain.nativeCurrency.decimals,\n },\n \"rpcUrls\": JSON.parse(JSON.stringify(chain.rpcUrls.default.http)),\n \"blockExplorerUrls\": [chain.blockExplorers.default.url],\n }]\n });\n console.log(res)\n resolve(res)\n } catch (switchError) {\n reject(false)\n }\n })\n }\n refresh() {\n this.showCustomRpc = false\n this.customRpc = ''\n setTimeout(() => {\n this.testRpc()\n }, 500)\n }\n latencyColor(latency: number) {\n if (latency < 0) {\n return 'text-red-500'\n }\n if (latency < 1) {\n return 'text-green-500'\n }\n if (latency < 2) {\n return 'text-yellow-500'\n }\n return 'text-red-500'\n }\n async testRpcFunction(url: string): Promise<{ url: string, lentency: number, height: number }> {\n const start = performance.now();\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n method: 'eth_getBlockByNumber',\n params: [\"latest\", false],\n id: 1,\n }),\n });\n\n if (!response.ok) {\n throw new Error(`Error from server: ${response.status}`);\n }\n const res = await response.json();\n console.log(res)\n const end = performance.now();\n return { url, lentency: Number(helper.number.numberFormat(((end - start) / 1000), '0.000', { fallback: '-1' })), height: parseInt(res.result.number, 16) };\n } catch (error) {\n console.error('RPC Latency Test Failed:', error);\n return { url, lentency: -1, height: -1 };\n }\n }\n testRpc() {\n this.rpcList?.value.forEach(i => {\n this.testRpcFunction(i.name).then(res => {\n i.latency = res.lentency\n i.height = res.height\n })\n })\n this.rpcList.save(this.rpcList.value)\n }\n removeRpc(name: string) {\n this.rpcList.save(this.rpcList.value.filter(i => i.name !== name))\n }\n scoreIcon(score: number) {\n if (score < 0) {\n return <Icon icon=\"codicon:error\" width=\"18\" height=\"18\" style={{ color: \"#FF0000\" }} />\n }\n if (score < 1) {\n return <Icon icon=\"icon-park-solid:check-one\" width=\"18\" height=\"18\" style={{ color: \"#289726\" }} />\n }\n if (score < 2) {\n return <Icon icon=\"bxs:error\" width=\"18\" height=\"18\" style={{ color: \"#FFA500\" }} />\n }\n return <Icon icon=\"codicon:error\" width=\"18\" height=\"18\" style={{ color: \"#FF0000\" }} />\n }\n get wallet() {\n return RootStore.Get(WalletStore)\n }\n // debounceAutoSelectRpc = pDebounce(this.autoSelectRpc, 3000)\n async autoSelectRpc() {\n console.log('autoSelectRpc')\n for (let i = 0; i < this.rpcList.value.length; i++) {\n const item = this.rpcList.value[i]\n const res = await this.testRpcFunction(item.name)\n if (res.lentency != -1 || res.height > 0) {\n this.curRpc.save(item.name)\n break;\n }\n }\n }\n}\n\nexport class WalletHistoryStore implements Store {\n sid = 'WalletHistoryStore';\n isRender = false\n autoObservable = true\n set(params: Partial<WalletHistoryStore>) {\n Object.assign(this, params);\n }\n private history = new StorageState<WalletTransactionHistoryType[] | null>({ value: [], key: 'history' });\n get historyList(): WalletTransactionHistoryType[] {\n if (this.isRender) {\n return this.history.value\n }\n return []\n }\n recordHistory(item: WalletTransactionHistoryType) {\n let value: WalletTransactionHistoryType[] | null = this.history.load();\n if (!value) {\n value = [item];\n } else {\n value = [...value, item];\n }\n this.history.setValue(value);\n }\n updateHistoryStatusByTx(tx: string | null, status: 'loading' | 'success' | 'fail') {\n let value: WalletTransactionHistoryType[] | null = this.history.load();\n if (!value) {\n return;\n }\n value = value.map((i) => {\n if (i.tx == tx) {\n i.status = status;\n return i;\n }\n if (!tx) {\n i.status = status;\n }\n return i;\n });\n this.history.setValue(value);\n }\n clearHistory() {\n this.history.setValue(null);\n }\n}\n","import { Chain, Wallet, useConnectModal, getDefaultConfig, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { walletConnectWallet, metaMaskWallet, iopayWallet, okxWallet, binanceWallet, safeWallet } from '@rainbow-me/rainbowkit/wallets';\nimport { iotex } from 'viem/chains';\nimport { ObjectPool, Store } from '../..';\n\nexport class WalletConfigStore implements Store {\n sid = 'WalletConfigStore';\n autoObservable = true\n\n appName = 'Dappkit';\n projectId = 'b69e844f38265667350efd78e3e1a5fb'\n // @ts-ignore\n supportedChains: Chain[];\n defaultChainId = 4689;\n updateTicker = 1\n walletUpdateTick = 0;\n isConnect = false;\n isInSafeApp = false;\n // This mode to resolve and walletClient and nextui in some extreme cases cause page infinite redraw bugs\n compatibleMode = true;\n\n constructor(args: Partial<WalletConfigStore>) {\n Object.assign(this, args);\n }\n\n set(params: Partial<WalletConfigStore>) {\n Object.assign(this, params);\n this.updateTicker += 1\n }\n\n get reconnectOnMount() {\n if (!this.compatibleMode)\n return true\n\n if (!this.isConnect && this.walletUpdateTick == 0) {\n return true\n }\n if (!this.isConnect && this.walletUpdateTick != 0) {\n return false\n }\n if (this.isConnect) {\n return true\n }\n }\n\n get rainbowKitConfig() {\n return ObjectPool.get(`rainbowKitConfig-${this.supportedChains?.map(i => i.id).join('-')}`, () => {\n return getDefaultConfig({\n appName: this.appName,\n projectId: this.projectId,\n //@ts-ignore\n chains: this.supportedChains,\n wallets: [{\n groupName: 'Recommended',\n wallets: [iopayWallet, metaMaskWallet],\n },\n {\n groupName: 'Others',\n wallets: [metaMaskWallet, walletConnectWallet, iopayWallet, okxWallet, binanceWallet, safeWallet],\n }]\n });\n });\n }\n}","import { Icon } from \"@iconify/react\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { RootStore } from \"../../../store\";\nimport { DialogStore } from \"../../../module/Dialog\";\ninterface IProps {\n msg: string,\n hash: string,\n}\n\nconst SuccessTxDialog = observer((props: IProps) => {\n return <div className='flex-col gap-4 py-10'>\n <div className='w-full flex items-center justify-center'>\n <Icon icon=\"icon-park-solid:check-one\" width=\"48\" height=\"48\" className='text-green-500' /></div>\n <div className='text-2xl font-[900] text-center mt-4'>{props.msg}</div>\n <div className='flex items-center justify-center text-green-500 text-sm mt-6 gap-2 cursor-pointer hover:text-green-600 transition'\n onClick={e => window.open(`https://iotexscan.io/tx/${props.hash}`, '_blank')}>View on IoTeXScan <Icon icon=\"material-symbols:chip-extraction-rounded\" width=\"18\" height=\"18\" /></div>\n </div>\n})\nexport const ShowSuccessTxDialog = ({ msg, hash }) => {\n RootStore.Get(DialogStore).setData({\n title: '',\n content: <SuccessTxDialog msg={msg} hash={hash} />,\n isOpen: true,\n })\n}","import { iotex as _iotex, iotexTestnet as _iotexTestnet, type Chain } from \"viem/chains\";\n\nexport type NetworkObject = {\n name: string;\n chainId: number;\n rpcUrl: string;\n logoUrl: string;\n explorerUrl: string;\n explorerName: string;\n nativeCoin: string;\n type: 'mainnet' | 'testnet';\n};\n\nexport type WalletTransactionHistoryType = {\n chainId: number;\n tx?: string;\n msg: string;\n timestamp: number;\n type: string;\n status: 'loading' | 'success' | 'fail';\n};\n\nexport type AddressMode = 'io' | '0x';\n\nexport const iotex = {\n iconUrl: 'https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png',\n ..._iotex,\n} as Chain;\nexport const iotexTestnet = {\n iconUrl: 'https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png',\n ..._iotexTestnet,\n} as Chain;;","import { Icon } from '@iconify/react';\nimport { Button, Checkbox, Chip, Input, Listbox, ListboxItem, Popover, PopoverContent, PopoverTrigger, Radio, RadioGroup, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow, Tooltip } from '@nextui-org/react';\nimport { observer, useLocalObservable } from 'mobx-react-lite';\nimport React from 'react';\nimport { useEffect } from 'react';\nimport { RootStore } from \"../../../store\";\nimport { WalletStore } from \"..\";\nimport { WalletRpcStore } from '../walletPluginStore';\nimport { ToastPlugin } from '../../Toast/Toast';\n\n\nconst RpcList = observer(() => {\n const wallet = RootStore.Get(WalletStore)\n const rpcStore = RootStore.Get(WalletRpcStore)\n useEffect(() => {\n rpcStore.testRpc()\n }, [])\n\n return (\n <div className='mb-3 mt-4'>\n <div className='w-full flex mb-2 mt-2'>\n <div className='flex items-center justify-center gap-2'>\n <Checkbox size='sm' isSelected={rpcStore.isAutoSelectRpc.value} onValueChange={e => rpcStore.isAutoSelectRpc.save(e)}>Auto select rpc</Checkbox>\n <Tooltip content={<div className='w-[300px]'>Once selected, if the current RPC cannot send a request, an available RPC will be automatically chosen.</div>}>\n <Icon icon=\"ph:question\" width=\"18\" height=\"18\" className='text-gray-500' />\n </Tooltip>\n </div>\n\n <Button startContent={<Icon icon=\"tabler:test-pipe\" width=\"18\" height=\"18\" />} className='ml-auto' onClick={e => {\n rpcStore.testRpc()\n }}>Test</Button>\n <Popover placement=\"bottom\" offset={20} showArrow isOpen={rpcStore.showCustomRpc} onOpenChange={(open) => rpcStore.showCustomRpc = (open)}>\n <PopoverTrigger>\n <Button color=\"primary\" startContent={<Icon icon=\"basil:add-solid\" width=\"18\" height=\"18\" />} className='ml-4'>Add custom rpc</Button>\n </PopoverTrigger>\n <PopoverContent>\n <div className=\"px-1 py-2\">\n <Input\n type=\"url\"\n className='mb-4'\n placeholder=\"https://rpc.com\"\n value={rpcStore.customRpc}\n onValueChange={(value) => {\n rpcStore.customRpc = value;\n }}\n />\n <Button color='primary' isDisabled={!rpcStore.customRpc} onClick={e => rpcStore.addCustomRpc()}>Save</Button>\n </div>\n </PopoverContent>\n </Popover>\n\n </div>\n\n <Table\n color=\"success\"\n selectionMode=\"single\"\n defaultSelectedKeys={[rpcStore.curRpc.value]}\n aria-label=\"Example static collection table\"\n >\n <TableHeader>\n <TableColumn>RPC Server Address</TableColumn>\n <TableColumn align='center'>Score</TableColumn>\n <TableColumn align='center'>Height</TableColumn>\n <TableColumn align='center'>Latency</TableColumn>\n <TableColumn align='center'>Action</TableColumn>\n </TableHeader>\n <TableBody >\n {\n rpcStore.rpcList?.value?.map((item, index) => {\n return <TableRow className='cursor-pointer' key={item.name} onClick={e => {\n rpcStore.curRpc.save(item.name)\n RootStore.Get(ToastPlugin).success('Set rpc success')\n }} >\n <TableCell >{item.name}</TableCell>\n <TableCell >{rpcStore.scoreIcon(item.latency)}</TableCell>\n <TableCell>{item.height}</TableCell>\n <TableCell className={rpcStore.latencyColor(item.latency)}>{item.latency}s</TableCell>\n <TableCell>\n <div className=\"relative flex items-center gap-2\">\n <Tooltip content=\"Add to metamask\">\n <span className=\"text-lg text-danger cursor-pointer active:opacity-50\" onClick={e => {\n e.stopPropagation()\n rpcStore.addToMetamask(item.name)\n }}>\n <Icon icon=\"logos:metamask-icon\" width=\"18\" height=\"18\" />\n </span>\n </Tooltip>\n {\n item.custom && <Tooltip content=\"Remove\">\n <span className=\"text-lg text-danger cursor-pointer active:opacity-50\" onClick={e => {\n e.stopPropagation()\n rpcStore.removeRpc(item.name)\n }}>\n <Icon icon=\"solar:trash-bin-minimalistic-broken\" width=\"20\" height=\"20\" />\n </span>\n </Tooltip>\n }\n </div>\n </TableCell>\n </TableRow>\n })\n }\n </TableBody>\n </Table>\n </div>\n );\n});\n\nexport { RpcList };\n"]}
|
|
1
|
+
{"version":3,"sources":["../module/Wallet/provider.tsx","../module/Wallet/type.ts","../module/Wallet/RpcList/index.tsx"],"names":["observer","React","useEffect"],"mappings":"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","sourcesContent":["import { RainbowKitProvider, darkTheme, lightTheme } from '@rainbow-me/rainbowkit';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useReconnect, useWalletClient, WagmiProvider } from 'wagmi';\nimport { RootStore } from \"../../store\";\nimport { WalletStore } from '.';\nimport { WalletConfigStore } from './walletConfigStore'\nimport { reaction } from 'mobx';\nimport { type Chain } from \"viem/chains\";\nimport { iotex } from './type';\nimport SafeAppsSDK from '@safe-global/safe-apps-sdk';\nimport { observer } from 'mobx-react-lite';\nconst queryClient = new QueryClient();\nexport const WalletProvider = observer((({\n children,\n theme,\n appName,\n supportedChains,\n compatibleMode = true,\n}: {\n children: React.ReactNode,\n theme?: 'dark' | 'light',\n appName?: string,\n supportedChains?: Chain[],\n compatibleMode?: boolean,\n debug?: boolean,\n}) => {\n //@ts-ignore\n const walletConfig = RootStore.Get(WalletConfigStore, { args: { supportedChains: supportedChains ?? [iotex] } });\n useEffect(() => {\n if (appName) {\n walletConfig.appName = appName\n }\n if (compatibleMode != undefined) {\n walletConfig.compatibleMode = compatibleMode\n }\n }, [appName, compatibleMode])\n useEffect(() => {\n const sdk = new SafeAppsSDK()\n sdk.safe.getEnvironmentInfo().then(({ origin }) => {\n if (origin) {\n walletConfig.isInSafeApp = true\n }\n })\n }, [])\n return (\n <WagmiProvider config={walletConfig.rainbowKitConfig} reconnectOnMount={walletConfig.reconnectOnMount}>\n <QueryClientProvider client={queryClient} >\n <RainbowKitProvider locale=\"en\" theme={theme == 'dark' ? darkTheme() : lightTheme()}>\n {children}\n {\n compatibleMode ? <WalletConnectcompatibleMode /> : <WalletConnect />\n }\n </RainbowKitProvider>\n </QueryClientProvider>\n </WagmiProvider>\n );\n}));\n\n//There are problems with safeWallet calls in compatibility mode\nexport const WalletConnectcompatibleMode = () => {\n const wallet = RootStore.Get(WalletStore);\n wallet.use();\n return <></>;\n};\n\nexport const WalletConnect = () => {\n const wallet = RootStore.Get(WalletStore);\n wallet.useWalletClientWithoutCompatibleMode();\n wallet.use();\n return <></>;\n};\n","import { iotex as _iotex, iotexTestnet as _iotexTestnet, type Chain } from \"viem/chains\";\n\nexport type NetworkObject = {\n name: string;\n chainId: number;\n rpcUrl: string;\n logoUrl: string;\n explorerUrl: string;\n explorerName: string;\n nativeCoin: string;\n type: 'mainnet' | 'testnet';\n};\n\nexport type WalletTransactionHistoryType = {\n chainId: number;\n tx?: string;\n msg: string;\n timestamp: number;\n type: string;\n status: 'loading' | 'success' | 'fail';\n};\n\nexport type AddressMode = 'io' | '0x';\n\nexport const iotex = {\n iconUrl: 'https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png',\n ..._iotex,\n} as Chain;\nexport const iotexTestnet = {\n iconUrl: 'https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png',\n ..._iotexTestnet,\n} as Chain;;","import { Icon } from '@iconify/react';\nimport { Button, Checkbox, Chip, Input, Listbox, ListboxItem, Popover, PopoverContent, PopoverTrigger, Radio, RadioGroup, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow, Tooltip } from '@nextui-org/react';\nimport { observer, useLocalObservable } from 'mobx-react-lite';\nimport React from 'react';\nimport { useEffect } from 'react';\nimport { RootStore } from \"../../../store\";\nimport { WalletStore } from \"..\";\nimport { WalletRpcStore } from '../walletPluginStore';\nimport { ToastPlugin } from '../../Toast/Toast';\n\n\nconst RpcList = observer(() => {\n const wallet = RootStore.Get(WalletStore)\n const rpcStore = RootStore.Get(WalletRpcStore)\n useEffect(() => {\n rpcStore.testRpc()\n }, [])\n\n return (\n <div className='mb-3 mt-4'>\n <div className='w-full flex mb-2 mt-2'>\n <div className='flex items-center justify-center gap-2'>\n <Checkbox size='sm' isSelected={rpcStore.isAutoSelectRpc.value} onValueChange={e => rpcStore.isAutoSelectRpc.save(e)}>Auto select rpc</Checkbox>\n <Tooltip content={<div className='w-[300px]'>Once selected, if the current RPC cannot send a request, an available RPC will be automatically chosen.</div>}>\n <Icon icon=\"ph:question\" width=\"18\" height=\"18\" className='text-gray-500' />\n </Tooltip>\n </div>\n\n <Button startContent={<Icon icon=\"tabler:test-pipe\" width=\"18\" height=\"18\" />} className='ml-auto' onClick={e => {\n rpcStore.testRpc()\n }}>Test</Button>\n <Popover placement=\"bottom\" offset={20} showArrow isOpen={rpcStore.showCustomRpc} onOpenChange={(open) => rpcStore.showCustomRpc = (open)}>\n <PopoverTrigger>\n <Button color=\"primary\" startContent={<Icon icon=\"basil:add-solid\" width=\"18\" height=\"18\" />} className='ml-4'>Add custom rpc</Button>\n </PopoverTrigger>\n <PopoverContent>\n <div className=\"px-1 py-2\">\n <Input\n type=\"url\"\n className='mb-4'\n placeholder=\"https://rpc.com\"\n value={rpcStore.customRpc}\n onValueChange={(value) => {\n rpcStore.customRpc = value;\n }}\n />\n <Button color='primary' isDisabled={!rpcStore.customRpc} onClick={e => rpcStore.addCustomRpc()}>Save</Button>\n </div>\n </PopoverContent>\n </Popover>\n\n </div>\n\n <Table\n color=\"success\"\n selectionMode=\"single\"\n defaultSelectedKeys={[rpcStore.curRpc.value]}\n aria-label=\"Example static collection table\"\n >\n <TableHeader>\n <TableColumn>RPC Server Address</TableColumn>\n <TableColumn align='center'>Score</TableColumn>\n <TableColumn align='center'>Height</TableColumn>\n <TableColumn align='center'>Latency</TableColumn>\n <TableColumn align='center'>Action</TableColumn>\n </TableHeader>\n <TableBody >\n {\n rpcStore.rpcList?.value?.map((item, index) => {\n return <TableRow className='cursor-pointer' key={item.name} onClick={e => {\n rpcStore.curRpc.save(item.name)\n RootStore.Get(ToastPlugin).success('Set rpc success')\n }} >\n <TableCell >{item.name}</TableCell>\n <TableCell >{rpcStore.scoreIcon(item.latency)}</TableCell>\n <TableCell>{item.height}</TableCell>\n <TableCell className={rpcStore.latencyColor(item.latency)}>{item.latency}s</TableCell>\n <TableCell>\n <div className=\"relative flex items-center gap-2\">\n <Tooltip content=\"Add to metamask\">\n <span className=\"text-lg text-danger cursor-pointer active:opacity-50\" onClick={e => {\n e.stopPropagation()\n rpcStore.addToMetamask(item.name)\n }}>\n <Icon icon=\"logos:metamask-icon\" width=\"18\" height=\"18\" />\n </span>\n </Tooltip>\n {\n item.custom && <Tooltip content=\"Remove\">\n <span className=\"text-lg text-danger cursor-pointer active:opacity-50\" onClick={e => {\n e.stopPropagation()\n rpcStore.removeRpc(item.name)\n }}>\n <Icon icon=\"solar:trash-bin-minimalistic-broken\" width=\"20\" height=\"20\" />\n </span>\n </Tooltip>\n }\n </div>\n </TableCell>\n </TableRow>\n })\n }\n </TableBody>\n </Table>\n </div>\n );\n});\n\nexport { RpcList };\n"]}
|
package/package.json
CHANGED
package/dist/chunk-DRTTNPZI.mjs
DELETED
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
import { RootStore } from './chunk-XSGTWROT.mjs';
|
|
2
|
-
import { helper } from './chunk-R4N52NI2.mjs';
|
|
3
|
-
import { observable, makeAutoObservable } from 'mobx';
|
|
4
|
-
import BigNumber2 from 'bignumber.js';
|
|
5
|
-
import React from 'react';
|
|
6
|
-
import { observer } from 'mobx-react-lite';
|
|
7
|
-
|
|
8
|
-
//@ts-ignore
|
|
9
|
-
observable();
|
|
10
|
-
var PromiseHook = class {
|
|
11
|
-
static Get(cls) {
|
|
12
|
-
try {
|
|
13
|
-
return async ({ args, select, id, unselect }) => {
|
|
14
|
-
let instance;
|
|
15
|
-
if (!id || !this.entities[id]) {
|
|
16
|
-
instance = new cls(args);
|
|
17
|
-
instance.refresh = async () => {
|
|
18
|
-
const hooks = Object.entries(instance).filter((i) => {
|
|
19
|
-
if (!this.isPromiseHook(instance[i[0]]))
|
|
20
|
-
return false;
|
|
21
|
-
if (i[1].lazy)
|
|
22
|
-
return false;
|
|
23
|
-
if (select && !select[i[0]])
|
|
24
|
-
return false;
|
|
25
|
-
if (unselect && unselect[i[0]])
|
|
26
|
-
return false;
|
|
27
|
-
return true;
|
|
28
|
-
}).map((i) => {
|
|
29
|
-
const hook = instance[i[0]];
|
|
30
|
-
return hook;
|
|
31
|
-
});
|
|
32
|
-
await Promise.all(hooks.map((i) => i.call()));
|
|
33
|
-
};
|
|
34
|
-
if (id) {
|
|
35
|
-
this.entities[id] = instance;
|
|
36
|
-
}
|
|
37
|
-
} else {
|
|
38
|
-
instance = this.entities[id];
|
|
39
|
-
}
|
|
40
|
-
await instance.refresh();
|
|
41
|
-
return instance;
|
|
42
|
-
};
|
|
43
|
-
} catch (e) {
|
|
44
|
-
throw e;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
static isPromiseHook(target) {
|
|
48
|
-
return (target == null ? void 0 : target._type) == "promiseHook";
|
|
49
|
-
}
|
|
50
|
-
//ttl : ms
|
|
51
|
-
static wrap({ func, defaultValue, lazy }) {
|
|
52
|
-
let context;
|
|
53
|
-
const call = (args) => {
|
|
54
|
-
context.loading = true;
|
|
55
|
-
if (!context._call) {
|
|
56
|
-
context._call = func(args).then((i) => {
|
|
57
|
-
context.value = i;
|
|
58
|
-
context.loading = false;
|
|
59
|
-
context._call = null;
|
|
60
|
-
return i;
|
|
61
|
-
}).catch((i) => {
|
|
62
|
-
console.error(i, func);
|
|
63
|
-
context.value = defaultValue;
|
|
64
|
-
context._call = null;
|
|
65
|
-
context.loading = false;
|
|
66
|
-
throw i;
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
return context._call;
|
|
70
|
-
};
|
|
71
|
-
const get = async (args) => {
|
|
72
|
-
if (!context.value) {
|
|
73
|
-
return call(args);
|
|
74
|
-
}
|
|
75
|
-
return context.value;
|
|
76
|
-
};
|
|
77
|
-
if (!context) {
|
|
78
|
-
context = observable({
|
|
79
|
-
_type: "promiseHook",
|
|
80
|
-
_value: defaultValue,
|
|
81
|
-
get value() {
|
|
82
|
-
return context["_value"];
|
|
83
|
-
},
|
|
84
|
-
set value(val) {
|
|
85
|
-
context["_value"] = val;
|
|
86
|
-
},
|
|
87
|
-
get,
|
|
88
|
-
lazy,
|
|
89
|
-
loading: false,
|
|
90
|
-
call,
|
|
91
|
-
defaultValue,
|
|
92
|
-
toJSON() {
|
|
93
|
-
return context.value;
|
|
94
|
-
},
|
|
95
|
-
toString() {
|
|
96
|
-
return context.value;
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
return context;
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
PromiseHook.entities = observable([]);
|
|
104
|
-
var BigNumberState = class {
|
|
105
|
-
constructor(args) {
|
|
106
|
-
this.value = new BigNumber2(0);
|
|
107
|
-
this.loading = false;
|
|
108
|
-
this.decimals = 18;
|
|
109
|
-
this.fixed = 6;
|
|
110
|
-
Object.assign(this, args);
|
|
111
|
-
makeAutoObservable(this, {
|
|
112
|
-
getFormat: false
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
get format() {
|
|
116
|
-
if (this.loading)
|
|
117
|
-
return "...";
|
|
118
|
-
return this.getFormat();
|
|
119
|
-
}
|
|
120
|
-
getFormat({ decimals = this.decimals, fixed = this.fixed } = {}) {
|
|
121
|
-
if (this.loading)
|
|
122
|
-
return "...";
|
|
123
|
-
if (this.formatter)
|
|
124
|
-
return this.formatter(this);
|
|
125
|
-
return helper.number.toPrecisionFloor(new BigNumber2(this.value).dividedBy(10 ** decimals).toFixed(), {
|
|
126
|
-
decimals: fixed
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
setDecimals(decimals) {
|
|
130
|
-
this.decimals = decimals;
|
|
131
|
-
}
|
|
132
|
-
setValue(value) {
|
|
133
|
-
this.value = value;
|
|
134
|
-
this.setLoading(false);
|
|
135
|
-
}
|
|
136
|
-
setLoading(val) {
|
|
137
|
-
this.loading = val;
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
var BigNumberInputState = class {
|
|
141
|
-
constructor(args) {
|
|
142
|
-
this.value = new BigNumber2(0);
|
|
143
|
-
this.format = "";
|
|
144
|
-
this.loading = false;
|
|
145
|
-
this.decimals = 18;
|
|
146
|
-
Object.assign(this, args);
|
|
147
|
-
makeAutoObservable(this);
|
|
148
|
-
}
|
|
149
|
-
get noDecimasValue() {
|
|
150
|
-
return new BigNumber2(this.value).dividedBy(10 ** this.decimals);
|
|
151
|
-
}
|
|
152
|
-
setValue(value) {
|
|
153
|
-
this.value = new BigNumber2(value);
|
|
154
|
-
this.format = helper.number.warpBigNumber(this.value.toFixed(), this.decimals, { format: "0.000", fallback: "" }).format;
|
|
155
|
-
this.setLoading(false);
|
|
156
|
-
}
|
|
157
|
-
setFormat(val) {
|
|
158
|
-
this.format = val;
|
|
159
|
-
this.value = new BigNumber2(val).multipliedBy(10 ** this.decimals);
|
|
160
|
-
}
|
|
161
|
-
setLoading(val) {
|
|
162
|
-
this.loading = val;
|
|
163
|
-
}
|
|
164
|
-
setDecimals(val) {
|
|
165
|
-
this.decimals = val;
|
|
166
|
-
}
|
|
167
|
-
get isZero() {
|
|
168
|
-
return this.value.isZero() && this.format == "";
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
var StorageState = class _StorageState {
|
|
172
|
-
constructor(args) {
|
|
173
|
-
this.value = null;
|
|
174
|
-
this.default = null;
|
|
175
|
-
Object.assign(this, args);
|
|
176
|
-
makeAutoObservable(this);
|
|
177
|
-
this.load();
|
|
178
|
-
}
|
|
179
|
-
static safeParse(val) {
|
|
180
|
-
try {
|
|
181
|
-
return JSON.parse(val);
|
|
182
|
-
} catch (error) {
|
|
183
|
-
return val;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
load() {
|
|
187
|
-
var _a;
|
|
188
|
-
try {
|
|
189
|
-
if (typeof window == "undefined")
|
|
190
|
-
return;
|
|
191
|
-
const value = (_a = window == null ? void 0 : window.localStorage) == null ? void 0 : _a.getItem(this.key);
|
|
192
|
-
this.value = _StorageState.safeParse(value);
|
|
193
|
-
if (this.value == null) {
|
|
194
|
-
this.value = this.default;
|
|
195
|
-
}
|
|
196
|
-
return this.value;
|
|
197
|
-
} catch (error) {
|
|
198
|
-
console.error(error);
|
|
199
|
-
return null;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
save(value) {
|
|
203
|
-
try {
|
|
204
|
-
if (typeof window == "undefined")
|
|
205
|
-
return;
|
|
206
|
-
if (value !== null || value !== void 0) {
|
|
207
|
-
this.value = value;
|
|
208
|
-
}
|
|
209
|
-
window == null ? void 0 : window.localStorage.setItem(this.key, JSON.stringify(value));
|
|
210
|
-
} catch (error) {
|
|
211
|
-
console.error(error);
|
|
212
|
-
return null;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
setValue(value) {
|
|
216
|
-
this.save(value);
|
|
217
|
-
}
|
|
218
|
-
clear() {
|
|
219
|
-
try {
|
|
220
|
-
if (typeof window == "undefined")
|
|
221
|
-
return;
|
|
222
|
-
window == null ? void 0 : window.localStorage.removeItem(this.key);
|
|
223
|
-
} catch (error) {
|
|
224
|
-
return null;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
};
|
|
228
|
-
var StorageListState = class _StorageListState {
|
|
229
|
-
constructor(args) {
|
|
230
|
-
this.list = [];
|
|
231
|
-
Object.assign(this, args);
|
|
232
|
-
makeAutoObservable(this);
|
|
233
|
-
this.load();
|
|
234
|
-
}
|
|
235
|
-
static safeParse(val) {
|
|
236
|
-
try {
|
|
237
|
-
return JSON.parse(val);
|
|
238
|
-
} catch (error) {
|
|
239
|
-
return val;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
load() {
|
|
243
|
-
try {
|
|
244
|
-
const value = localStorage.getItem(this.key);
|
|
245
|
-
if (value) {
|
|
246
|
-
this.list = _StorageListState.safeParse(value);
|
|
247
|
-
}
|
|
248
|
-
return _StorageListState.safeParse(value);
|
|
249
|
-
} catch (error) {
|
|
250
|
-
console.error(error);
|
|
251
|
-
return null;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
push(value) {
|
|
255
|
-
this.list.push(value);
|
|
256
|
-
this.save();
|
|
257
|
-
}
|
|
258
|
-
remove(index) {
|
|
259
|
-
this.list.splice(index, 1);
|
|
260
|
-
this.save();
|
|
261
|
-
}
|
|
262
|
-
save() {
|
|
263
|
-
try {
|
|
264
|
-
localStorage.setItem(this.key, JSON.stringify(this.list));
|
|
265
|
-
} catch (error) {
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
clear() {
|
|
269
|
-
try {
|
|
270
|
-
localStorage.removeItem(this.key);
|
|
271
|
-
this.list = [];
|
|
272
|
-
} catch (error) {
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
};
|
|
276
|
-
|
|
277
|
-
// store/standard/ObjectPool.ts
|
|
278
|
-
var _ObjectPool = class _ObjectPool {
|
|
279
|
-
static get(key, func) {
|
|
280
|
-
if (!_ObjectPool.pool[key]) {
|
|
281
|
-
_ObjectPool.pool[key] = func();
|
|
282
|
-
}
|
|
283
|
-
return _ObjectPool.pool[key];
|
|
284
|
-
}
|
|
285
|
-
};
|
|
286
|
-
_ObjectPool.pool = {};
|
|
287
|
-
var ObjectPool = _ObjectPool;
|
|
288
|
-
var AppProvider = observer(({ children }) => {
|
|
289
|
-
const rootStore2 = RootStore.init();
|
|
290
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, rootStore2.providers.map((store) => {
|
|
291
|
-
const Component = store.provider;
|
|
292
|
-
return /* @__PURE__ */ React.createElement(Component, { rootStore: rootStore2, key: store.sid });
|
|
293
|
-
}), children && children);
|
|
294
|
-
});
|
|
295
|
-
|
|
296
|
-
export { AppProvider, BigNumberInputState, BigNumberState, ObjectPool, PromiseHook, StorageListState, StorageState };
|
|
297
|
-
//# sourceMappingURL=out.js.map
|
|
298
|
-
//# sourceMappingURL=chunk-DRTTNPZI.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../store/standard/PromiseHook.ts","../store/standard/BigNumberState.ts","../store/standard/BigNumberInputState.ts","../store/standard/StorageState.ts","../store/standard/StorageListState.ts","../store/standard/ObjectPool.ts","../module/AppProvider.tsx"],"names":["BigNumber","makeAutoObservable","rootStore"],"mappings":"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","sourcesContent":["import { observable } from \"mobx\";\n\nexport class KV {\n //@ts-ignore\n static datas = observable();\n}\n\nexport abstract class ContractBase {\n // chainId?: number;\n // address?: string;\n}\n\nexport type ContractClass<T extends ContractBase> = new (args: Partial<T>) => T;\n\nexport type PromiseHookData<T, U> = { value: Awaited<U>; get: T; call: T; func: T; loading: boolean; errorRetry: number };\n\nexport class PromiseHook {\n static entities = observable([]);\n static Get<T extends ContractBase>(\n cls: ContractClass<T>,\n ): (args: { args: Partial<T>; id?: string; select?: { [key in keyof Partial<T>]: boolean }; unselect?: { [key in keyof Partial<T>]: boolean } }) => Promise<T & { refresh: () => Promise<void> }> {\n try {\n return async ({ args, select, id, unselect }) => {\n let instance: any;\n //@ts-ignore\n if (!id || !this.entities[id]) {\n instance = new cls(args);\n\n instance.refresh = async () => {\n const hooks = Object.entries(instance)\n .filter((i) => {\n if (!this.isPromiseHook(instance[i[0]])) return false;\n //@ts-ignore\n if (i[1].lazy) return false;\n if (select && !select[i[0]]) return false;\n if (unselect && unselect[i[0]]) return false;\n return true;\n })\n .map((i) => {\n const hook = instance[i[0]];\n return hook;\n });\n\n await Promise.all(hooks.map((i) => i.call()));\n };\n if (id) {\n //@ts-ignore\n this.entities[id] = instance;\n }\n } else {\n instance = this.entities[id!];\n }\n\n await instance.refresh();\n return instance;\n };\n } catch (e) {\n throw e;\n }\n }\n\n static isPromiseHook(target) {\n return target?._type == \"promiseHook\";\n }\n\n //ttl : ms\n static wrap<T extends (...args: any[]) => Promise<any>, U = ReturnType<T>>({ func, defaultValue, lazy }: { func: T; defaultValue?: Awaited<U>; lazy?: boolean }): PromiseHookData<T, U> {\n let context;\n const call = (args) => {\n context.loading = true;\n if (!context._call) {\n context._call = func(args)\n .then((i) => {\n context.value = i;\n context.loading = false;\n context._call = null;\n return i;\n })\n .catch((i) => {\n console.error(i, func);\n context.value = defaultValue;\n context._call = null;\n context.loading = false;\n throw i;\n });\n }\n\n return context._call;\n };\n const get = async (args: any) => {\n if (!context.value) {\n return call(args);\n }\n return context.value;\n };\n\n if (!context) {\n context = observable({\n _type: \"promiseHook\",\n _value: defaultValue,\n get value() {\n return context[\"_value\"];\n },\n set value(val) {\n context[\"_value\"] = val;\n },\n get,\n lazy,\n\n loading: false,\n call,\n defaultValue,\n toJSON() {\n return context.value;\n },\n toString() {\n return context.value;\n },\n });\n }\n\n return context;\n }\n}\n","import BigNumber from \"bignumber.js\";\nimport { makeAutoObservable } from \"mobx\";\nimport { helper } from \"../../lib/helper\";\n\nexport class BigNumberState {\n value = new BigNumber(0);\n loading = false;\n decimals = 18;\n fixed = 6;\n formatter?: Function;\n constructor(args: Partial<BigNumberState>) {\n Object.assign(this, args);\n makeAutoObservable(this, {\n getFormat: false,\n });\n }\n get format() {\n if (this.loading) return \"...\";\n return this.getFormat();\n }\n\n getFormat({ decimals = this.decimals, fixed = this.fixed }: { decimals?: number; fixed?: number } = {}) {\n if (this.loading) return \"...\";\n if (this.formatter) return this.formatter(this);\n return helper.number.toPrecisionFloor(new BigNumber(this.value).dividedBy(10 ** decimals).toFixed(), {\n decimals: fixed,\n });\n }\n\n setDecimals(decimals: number) {\n this.decimals = decimals;\n }\n\n setValue(value: BigNumber) {\n this.value = value;\n this.setLoading(false);\n }\n\n setLoading(val) {\n this.loading = val;\n }\n}\n","import BigNumber from 'bignumber.js';\nimport { makeAutoObservable } from 'mobx';\nimport { helper } from '../../lib/helper';\nexport class BigNumberInputState {\n value = new BigNumber(0);\n format = '';\n loading = false;\n decimals = 18;\n formatter?: Function;\n constructor(args: Partial<BigNumberInputState>) {\n Object.assign(this, args);\n makeAutoObservable(this);\n }\n get noDecimasValue(): BigNumber {\n return new BigNumber(this.value).dividedBy(10 ** this.decimals);\n }\n setValue(value: any) {\n this.value = new BigNumber(value);\n // this.format = helper.number.toPrecisionFloor(new BigNumber(this.value).dividedBy(10 ** this.decimals).toFixed());\n this.format = helper.number.warpBigNumber(this.value.toFixed(), this.decimals, { format: '0.000', fallback: '' }).format;\n this.setLoading(false);\n }\n setFormat(val: any) {\n this.format = val;\n // this.format = helper.number.toPrecisionFloor(this.format);\n // this.format = helper.number.warpBigNumber(this.value.toFixed(), this.decimals, { format: '0.000', fallback: '' }).format;\n this.value = new BigNumber(val).multipliedBy(10 ** this.decimals);\n }\n setLoading(val: boolean) {\n this.loading = val;\n }\n setDecimals(val: number) {\n this.decimals = val;\n }\n get isZero(): boolean {\n return this.value.isZero() && this.format == '';\n }\n}\n","import { makeAutoObservable } from \"mobx\";\n\nexport class StorageState<T> {\n key: string;\n value: T | any = null;\n default: T | any = null;\n constructor(args: Partial<StorageState<T>>) {\n Object.assign(this, args);\n makeAutoObservable(this);\n this.load();\n }\n\n static safeParse(val: any) {\n try {\n return JSON.parse(val);\n } catch (error) {\n return val;\n }\n }\n\n load() {\n try {\n if (typeof window == 'undefined') return\n const value = window?.localStorage?.getItem(this.key);\n this.value = StorageState.safeParse(value);\n if (this.value == null) {\n this.value = this.default;\n }\n return this.value;\n } catch (error) {\n console.error(error);\n return null;\n }\n }\n\n save(value?: T) {\n try {\n if (typeof window == 'undefined') return\n if (value !== null || value !== undefined) {\n this.value = value;\n }\n window?.localStorage.setItem(this.key, JSON.stringify(value));\n } catch (error) {\n console.error(error);\n return null;\n }\n }\n\n setValue(value?: T) {\n this.save(value);\n }\n\n clear() {\n try {\n if (typeof window == 'undefined') return\n window?.localStorage.removeItem(this.key);\n } catch (error) {\n return null;\n }\n }\n}\n","import { makeAutoObservable } from \"mobx\";\n\nimport { helper } from \"../../lib/helper\";\nimport { _ } from \"../../lib/lodash\";\n\nexport class StorageListState<T = any> {\n key: string;\n list: T[] = [];\n\n static safeParse(val: any) {\n try {\n return JSON.parse(val);\n } catch (error) {\n return val;\n }\n }\n\n constructor(args: { key: string; }) {\n Object.assign(this, args);\n makeAutoObservable(this);\n this.load();\n }\n\n\n load() {\n try {\n const value = localStorage.getItem(this.key);\n if (value) {\n this.list = StorageListState.safeParse(value);\n }\n return StorageListState.safeParse(value)\n } catch (error) {\n console.error(error);\n return null;\n }\n }\n\n\n push(value: T) {\n this.list.push(value);\n this.save();\n }\n\n remove(index: number) {\n this.list.splice(index, 1);\n this.save();\n }\n\n private save() {\n try {\n localStorage.setItem(this.key, JSON.stringify(this.list));\n } catch (error) {\n }\n }\n\n clear() {\n try {\n localStorage.removeItem(this.key);\n this.list = [];\n } catch (error) {\n }\n }\n}\n","\n\nexport class ObjectPool {\n static pool: { [key: string]: any } = {};\n\n static get<T extends (...args: any[]) => any, U = ReturnType<T>>(key: string, func: T): U {\n if (!ObjectPool.pool[key]) {\n ObjectPool.pool[key] = func();\n }\n return ObjectPool.pool[key];\n }\n}","import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { RootStore } from \"../store/root\";\n\nexport const AppProvider = observer(({ children }: { children?: React.ReactNode }) => {\n const rootStore = RootStore.init()\n return (\n <>\n {rootStore.providers.map((store) => {\n const Component: any = store.provider;\n return <Component rootStore={rootStore} key={store.sid} />;\n })}\n {children && children}\n </>\n )\n})"]}
|