@dappworks/kit 0.5.33 → 0.5.34

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/wallet.mjs CHANGED
@@ -27,7 +27,14 @@ var iotex = __spreadValues({
27
27
  var iotexTestnet = __spreadValues({
28
28
  iconUrl: "https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png"
29
29
  }, iotexTestnet$1);
30
- var queryClient = new QueryClient();
30
+ var queryClient = new QueryClient({
31
+ defaultOptions: {
32
+ queries: {
33
+ refetchInterval: 2500,
34
+ refetchIntervalInBackground: false
35
+ }
36
+ }
37
+ });
31
38
  var WalletProvider = observer(({
32
39
  children,
33
40
  theme,
@@ -1 +1 @@
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';\r\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\r\nimport React, { useEffect, useMemo, useState } from 'react';\r\nimport { useReconnect, useWalletClient, WagmiProvider } from 'wagmi';\r\nimport { RootStore } from \"../../store\";\r\nimport { WalletStore } from '.';\r\nimport { WalletConfigStore } from './walletConfigStore'\r\nimport { reaction } from 'mobx';\r\nimport { type Chain } from \"viem/chains\";\r\nimport { iotex } from './type';\r\nimport SafeAppsSDK from '@safe-global/safe-apps-sdk';\r\nimport { observer } from 'mobx-react-lite';\r\nconst queryClient = new QueryClient();\r\nexport const WalletProvider = observer((({\r\n children,\r\n theme,\r\n appName,\r\n supportedChains,\r\n compatibleMode = true,\r\n rainbowKitProps,\r\n projectId\r\n}: {\r\n children: React.ReactNode,\r\n theme?: 'dark' | 'light',\r\n appName?: string,\r\n supportedChains?: Chain[],\r\n compatibleMode?: boolean,\r\n debug?: boolean,\r\n rainbowKitProps?: any,\r\n projectId?: string\r\n}) => {\r\n //@ts-ignore\r\n const walletConfig = RootStore.Get(WalletConfigStore, { args: { supportedChains: supportedChains ?? [iotex] } });\r\n useEffect(() => {\r\n if (appName) {\r\n walletConfig.appName = appName\r\n }\r\n if (compatibleMode != undefined) {\r\n walletConfig.compatibleMode = compatibleMode\r\n }\r\n if (projectId) {\r\n walletConfig.projectId = projectId\r\n }\r\n }, [appName, compatibleMode, projectId])\r\n useEffect(() => {\r\n const sdk = new SafeAppsSDK()\r\n sdk.safe.getEnvironmentInfo().then(({ origin }) => {\r\n if (origin) {\r\n walletConfig.isInSafeApp = true\r\n }\r\n })\r\n }, [])\r\n return (\r\n <WagmiProvider config={walletConfig.rainbowKitConfig} reconnectOnMount={walletConfig.reconnectOnMount}>\r\n <QueryClientProvider client={queryClient} >\r\n <RainbowKitProvider locale=\"en\" theme={theme == 'dark' ? darkTheme() : lightTheme()} {...rainbowKitProps}>\r\n {children}\r\n {\r\n compatibleMode ? <WalletConnectcompatibleMode /> : <WalletConnect />\r\n }\r\n </RainbowKitProvider>\r\n </QueryClientProvider>\r\n </WagmiProvider>\r\n );\r\n}));\r\n\r\n//There are problems with safeWallet calls in compatibility mode\r\nexport const WalletConnectcompatibleMode = () => {\r\n const wallet = RootStore.Get(WalletStore);\r\n wallet.use();\r\n return <></>;\r\n};\r\n\r\nexport const WalletConnect = () => {\r\n const wallet = RootStore.Get(WalletStore);\r\n wallet.useWalletClientWithoutCompatibleMode();\r\n wallet.use();\r\n return <></>;\r\n};\r\n","import { iotex as _iotex, iotexTestnet as _iotexTestnet, type Chain } from \"viem/chains\";\r\n\r\nexport type NetworkObject = {\r\n name: string;\r\n chainId: number;\r\n rpcUrl: string;\r\n logoUrl: string;\r\n explorerUrl: string;\r\n explorerName: string;\r\n nativeCoin: string;\r\n type: 'mainnet' | 'testnet';\r\n};\r\n\r\nexport type WalletTransactionHistoryType = {\r\n chainId: number;\r\n tx?: string;\r\n msg: string;\r\n timestamp: number;\r\n type: string;\r\n status: 'loading' | 'success' | 'fail';\r\n};\r\n\r\nexport type AddressMode = 'io' | '0x';\r\n\r\nexport const iotex = {\r\n iconUrl: 'https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png',\r\n ..._iotex,\r\n} as Chain;\r\nexport const iotexTestnet = {\r\n iconUrl: 'https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png',\r\n ..._iotexTestnet,\r\n} as Chain;;","import { Icon } from '@iconify/react';\r\nimport { Button, Checkbox, Chip, Input, Listbox, ListboxItem, Popover, PopoverContent, PopoverTrigger, Radio, RadioGroup, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow, Tooltip } from '@nextui-org/react';\r\nimport { observer, useLocalObservable } from 'mobx-react-lite';\r\nimport React from 'react';\r\nimport { useEffect } from 'react';\r\nimport { RootStore } from \"../../../store\";\r\nimport { WalletStore } from \"..\";\r\nimport { WalletRpcStore } from '../walletPluginStore';\r\nimport { ToastPlugin } from '../../Toast/Toast';\r\n\r\n\r\nconst RpcList = observer(() => {\r\n const wallet = RootStore.Get(WalletStore)\r\n const rpcStore = RootStore.Get(WalletRpcStore)\r\n useEffect(() => {\r\n rpcStore.testRpc()\r\n }, [])\r\n\r\n return (\r\n <div className='mb-3 mt-4'>\r\n <div className='w-full flex mb-2 mt-2'>\r\n <div className='flex items-center justify-center gap-2'>\r\n <Checkbox size='sm' isSelected={rpcStore.isAutoSelectRpc.value} onValueChange={e => rpcStore.isAutoSelectRpc.save(e)}>Auto select rpc</Checkbox>\r\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>}>\r\n <Icon icon=\"ph:question\" width=\"18\" height=\"18\" className='text-gray-500' />\r\n </Tooltip>\r\n </div>\r\n\r\n <Button startContent={<Icon icon=\"tabler:test-pipe\" width=\"18\" height=\"18\" />} className='ml-auto' onClick={e => {\r\n rpcStore.testRpc()\r\n }}>Test</Button>\r\n <Popover placement=\"bottom\" offset={20} showArrow isOpen={rpcStore.showCustomRpc} onOpenChange={(open) => rpcStore.showCustomRpc = (open)}>\r\n <PopoverTrigger>\r\n <Button color=\"primary\" startContent={<Icon icon=\"basil:add-solid\" width=\"18\" height=\"18\" />} className='ml-4'>Add custom rpc</Button>\r\n </PopoverTrigger>\r\n <PopoverContent>\r\n <div className=\"px-1 py-2\">\r\n <Input\r\n type=\"url\"\r\n className='mb-4'\r\n placeholder=\"https://rpc.com\"\r\n value={rpcStore.customRpc}\r\n onValueChange={(value) => {\r\n rpcStore.customRpc = value;\r\n }}\r\n />\r\n <Button color='primary' isDisabled={!rpcStore.customRpc} onClick={e => rpcStore.addCustomRpc()}>Save</Button>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n\r\n </div>\r\n\r\n <Table\r\n color=\"success\"\r\n selectionMode=\"single\"\r\n defaultSelectedKeys={[rpcStore.curRpc.value]}\r\n aria-label=\"Example static collection table\"\r\n >\r\n <TableHeader>\r\n <TableColumn>RPC Server Address</TableColumn>\r\n <TableColumn align='center'>Score</TableColumn>\r\n <TableColumn align='center'>Height</TableColumn>\r\n <TableColumn align='center'>Latency</TableColumn>\r\n <TableColumn align='center'>Action</TableColumn>\r\n </TableHeader>\r\n <TableBody >\r\n {\r\n rpcStore.rpcList?.value?.map((item, index) => {\r\n return <TableRow className='cursor-pointer' key={item.name} onClick={e => {\r\n rpcStore.curRpc.save(item.name)\r\n RootStore.Get(ToastPlugin).success('Set rpc success')\r\n }} >\r\n <TableCell >{item.name}</TableCell>\r\n <TableCell >{rpcStore.scoreIcon(item.latency)}</TableCell>\r\n <TableCell>{item.height}</TableCell>\r\n <TableCell className={rpcStore.latencyColor(item.latency)}>{item.latency}s</TableCell>\r\n <TableCell>\r\n <div className=\"relative flex items-center gap-2\">\r\n <Tooltip content=\"Add to metamask\">\r\n <span className=\"text-lg text-danger cursor-pointer active:opacity-50\" onClick={e => {\r\n e.stopPropagation()\r\n rpcStore.addToMetamask(item.name)\r\n }}>\r\n <Icon icon=\"logos:metamask-icon\" width=\"18\" height=\"18\" />\r\n </span>\r\n </Tooltip>\r\n {\r\n item.custom && <Tooltip content=\"Remove\">\r\n <span className=\"text-lg text-danger cursor-pointer active:opacity-50\" onClick={e => {\r\n e.stopPropagation()\r\n rpcStore.removeRpc(item.name)\r\n }}>\r\n <Icon icon=\"solar:trash-bin-minimalistic-broken\" width=\"20\" height=\"20\" />\r\n </span>\r\n </Tooltip>\r\n }\r\n </div>\r\n </TableCell>\r\n </TableRow>\r\n })\r\n }\r\n </TableBody>\r\n </Table>\r\n </div>\r\n );\r\n});\r\n\r\nexport { RpcList };\r\n"]}
1
+ {"version":3,"sources":["../module/Wallet/provider.tsx","../module/Wallet/type.ts","../module/Wallet/RpcList/index.tsx"],"names":["observer","React","useEffect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,oBAAoB,WAAW,kBAAkB;AAC1D,SAAS,aAAa,2BAA2B;AACjD,OAAO,SAAS,iBAAoC;AACpD,SAAwC,qBAAqB;;;ACH7D,SAAS,SAAS,QAAQ,gBAAgB,qBAAiC;AAwBpE,IAAM,QAAQ;AAAA,EACnB,SAAS;AAAA,GACN;AAEE,IAAM,eAAe;AAAA,EAC1B,SAAS;AAAA,GACN;;;ADpBL,OAAO,iBAAiB;AACxB,SAAS,gBAAgB;AACzB,IAAM,cAAc,IAAI,YAAY;AAAA,EAClC,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,iBAAiB;AAAA,MACjB,6BAA6B;AAAA,IAC/B;AAAA,EACF;AACF,CAAC;AACM,IAAM,iBAAiB,SAAU,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AACF,MASM;AAEJ,QAAM,eAAe,UAAU,IAAI,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,4CAAmB,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/G,YAAU,MAAM;AACd,QAAI,SAAS;AACX,mBAAa,UAAU;AAAA,IACzB;AACA,QAAI,kBAAkB,QAAW;AAC/B,mBAAa,iBAAiB;AAAA,IAChC;AACA,QAAI,WAAW;AACb,mBAAa,YAAY;AAAA,IAC3B;AAAA,EACF,GAAG,CAAC,SAAS,gBAAgB,SAAS,CAAC;AACvC,YAAU,MAAM;AACd,UAAM,MAAM,IAAI,YAAY;AAC5B,QAAI,KAAK,mBAAmB,EAAE,KAAK,CAAC,EAAE,OAAO,MAAM;AACjD,UAAI,QAAQ;AACV,qBAAa,cAAc;AAAA,MAC7B;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AACL,SACE,oCAAC,iBAAc,QAAQ,aAAa,kBAAkB,kBAAkB,aAAa,oBACnF,oCAAC,uBAAoB,QAAQ,eAC3B,oCAAC,qCAAmB,QAAO,MAAK,OAAO,SAAS,SAAS,UAAU,IAAI,WAAW,KAAO,kBACtF,UAEC,iBAAiB,oCAAC,iCAA4B,IAAK,oCAAC,mBAAc,CAEtE,CACF,CACF;AAEJ,CAAE;AAGK,IAAM,8BAA8B,MAAM;AAC/C,QAAM,SAAS,UAAU,IAAI,WAAW;AACxC,SAAO,IAAI;AACX,SAAO,wDAAE;AACX;AAEO,IAAM,gBAAgB,MAAM;AACjC,QAAM,SAAS,UAAU,IAAI,WAAW;AACxC,SAAO,qCAAqC;AAC5C,SAAO,IAAI;AACX,SAAO,wDAAE;AACX;;;AErFA,SAAS,YAAY;AACrB,SAAS,QAAQ,UAAgB,OAA6B,SAAS,gBAAgB,gBAAmC,OAAO,WAAW,WAAW,aAAa,aAAa,UAAU,eAAe;AAC1M,SAAS,YAAAA,iBAAoC;AAC7C,OAAOC,YAAW;AAClB,SAAS,aAAAC,kBAAiB;AAO1B,IAAM,UAAUF,UAAS,MAAM;AAX/B;AAYE,QAAM,SAAS,UAAU,IAAI,WAAW;AACxC,QAAM,WAAW,UAAU,IAAI,cAAc;AAC7C,EAAAE,WAAU,MAAM;AACd,aAAS,QAAQ;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,SACE,gBAAAD,OAAA,cAAC,SAAI,WAAU,eACb,gBAAAA,OAAA,cAAC,SAAI,WAAU,2BACb,gBAAAA,OAAA,cAAC,SAAI,WAAU,4CACb,gBAAAA,OAAA,cAAC,YAAS,MAAK,MAAK,YAAY,SAAS,gBAAgB,OAAO,eAAe,OAAK,SAAS,gBAAgB,KAAK,CAAC,KAAG,iBAAe,GACrI,gBAAAA,OAAA,cAAC,WAAQ,SAAS,gBAAAA,OAAA,cAAC,SAAI,WAAU,eAAY,yGAAuG,KAClJ,gBAAAA,OAAA,cAAC,QAAK,MAAK,eAAc,OAAM,MAAK,QAAO,MAAK,WAAU,iBAAgB,CAC5E,CACF,GAEA,gBAAAA,OAAA,cAAC,UAAO,cAAc,gBAAAA,OAAA,cAAC,QAAK,MAAK,oBAAmB,OAAM,MAAK,QAAO,MAAK,GAAI,WAAU,WAAU,SAAS,OAAK;AAC/G,aAAS,QAAQ;AAAA,EACnB,KAAG,MAAI,GACP,gBAAAA,OAAA,cAAC,WAAQ,WAAU,UAAS,QAAQ,IAAI,WAAS,MAAC,QAAQ,SAAS,eAAe,cAAc,CAAC,SAAS,SAAS,gBAAiB,QAClI,gBAAAA,OAAA,cAAC,sBACC,gBAAAA,OAAA,cAAC,UAAO,OAAM,WAAU,cAAc,gBAAAA,OAAA,cAAC,QAAK,MAAK,mBAAkB,OAAM,MAAK,QAAO,MAAK,GAAI,WAAU,UAAO,gBAAc,CAC/H,GACA,gBAAAA,OAAA,cAAC,sBACC,gBAAAA,OAAA,cAAC,SAAI,WAAU,eACb,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAU;AAAA,MACV,aAAY;AAAA,MACZ,OAAO,SAAS;AAAA,MAChB,eAAe,CAAC,UAAU;AACxB,iBAAS,YAAY;AAAA,MACvB;AAAA;AAAA,EACF,GACA,gBAAAA,OAAA,cAAC,UAAO,OAAM,WAAU,YAAY,CAAC,SAAS,WAAW,SAAS,OAAK,SAAS,aAAa,KAAG,MAAI,CACtG,CACF,CACF,CAEF,GAEA,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,eAAc;AAAA,MACd,qBAAqB,CAAC,SAAS,OAAO,KAAK;AAAA,MAC3C,cAAW;AAAA;AAAA,IAEX,gBAAAA,OAAA,cAAC,mBACC,gBAAAA,OAAA,cAAC,mBAAY,oBAAkB,GAC/B,gBAAAA,OAAA,cAAC,eAAY,OAAM,YAAS,OAAK,GACjC,gBAAAA,OAAA,cAAC,eAAY,OAAM,YAAS,QAAM,GAClC,gBAAAA,OAAA,cAAC,eAAY,OAAM,YAAS,SAAO,GACnC,gBAAAA,OAAA,cAAC,eAAY,OAAM,YAAS,QAAM,CACpC;AAAA,IACA,gBAAAA,OAAA,cAAC,kBAEG,oBAAS,YAAT,mBAAkB,UAAlB,mBAAyB,IAAI,CAAC,MAAM,UAAU;AAC5C,aAAO,gBAAAA,OAAA,cAAC,YAAS,WAAU,kBAAiB,KAAK,KAAK,MAAM,SAAS,OAAK;AACxE,iBAAS,OAAO,KAAK,KAAK,IAAI;AAC9B,kBAAU,IAAI,WAAW,EAAE,QAAQ,iBAAiB;AAAA,MACtD,KACE,gBAAAA,OAAA,cAAC,iBAAY,KAAK,IAAK,GACvB,gBAAAA,OAAA,cAAC,iBAAY,SAAS,UAAU,KAAK,OAAO,CAAE,GAC9C,gBAAAA,OAAA,cAAC,iBAAW,KAAK,MAAO,GACxB,gBAAAA,OAAA,cAAC,aAAU,WAAW,SAAS,aAAa,KAAK,OAAO,KAAI,KAAK,SAAQ,GAAC,GAC1E,gBAAAA,OAAA,cAAC,iBACC,gBAAAA,OAAA,cAAC,SAAI,WAAU,sCACb,gBAAAA,OAAA,cAAC,WAAQ,SAAQ,qBACf,gBAAAA,OAAA,cAAC,UAAK,WAAU,wDAAuD,SAAS,OAAK;AACnF,UAAE,gBAAgB;AAClB,iBAAS,cAAc,KAAK,IAAI;AAAA,MAClC,KACE,gBAAAA,OAAA,cAAC,QAAK,MAAK,uBAAsB,OAAM,MAAK,QAAO,MAAK,CAC1D,CACF,GAEE,KAAK,UAAU,gBAAAA,OAAA,cAAC,WAAQ,SAAQ,YAC9B,gBAAAA,OAAA,cAAC,UAAK,WAAU,wDAAuD,SAAS,OAAK;AACnF,UAAE,gBAAgB;AAClB,iBAAS,UAAU,KAAK,IAAI;AAAA,MAC9B,KACE,gBAAAA,OAAA,cAAC,QAAK,MAAK,uCAAsC,OAAM,MAAK,QAAO,MAAK,CAC1E,CACF,CAEJ,CACF,CACF;AAAA,IACF,EAEJ;AAAA,EACF,CACF;AAEJ,CAAC","sourcesContent":["import { RainbowKitProvider, darkTheme, lightTheme } from '@rainbow-me/rainbowkit';\r\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\r\nimport React, { useEffect, useMemo, useState } from 'react';\r\nimport { useReconnect, useWalletClient, WagmiProvider } from 'wagmi';\r\nimport { RootStore } from \"../../store\";\r\nimport { WalletStore } from '.';\r\nimport { WalletConfigStore } from './walletConfigStore'\r\nimport { reaction } from 'mobx';\r\nimport { type Chain } from \"viem/chains\";\r\nimport { iotex } from './type';\r\nimport SafeAppsSDK from '@safe-global/safe-apps-sdk';\r\nimport { observer } from 'mobx-react-lite';\r\nconst queryClient = new QueryClient({\r\n defaultOptions: {\r\n queries: {\r\n refetchInterval: 2500,\r\n refetchIntervalInBackground: false,\r\n },\r\n },\r\n});\r\nexport const WalletProvider = observer((({\r\n children,\r\n theme,\r\n appName,\r\n supportedChains,\r\n compatibleMode = true,\r\n rainbowKitProps,\r\n projectId\r\n}: {\r\n children: React.ReactNode,\r\n theme?: 'dark' | 'light',\r\n appName?: string,\r\n supportedChains?: Chain[],\r\n compatibleMode?: boolean,\r\n debug?: boolean,\r\n rainbowKitProps?: any,\r\n projectId?: string\r\n}) => {\r\n //@ts-ignore\r\n const walletConfig = RootStore.Get(WalletConfigStore, { args: { supportedChains: supportedChains ?? [iotex] } });\r\n useEffect(() => {\r\n if (appName) {\r\n walletConfig.appName = appName\r\n }\r\n if (compatibleMode != undefined) {\r\n walletConfig.compatibleMode = compatibleMode\r\n }\r\n if (projectId) {\r\n walletConfig.projectId = projectId\r\n }\r\n }, [appName, compatibleMode, projectId])\r\n useEffect(() => {\r\n const sdk = new SafeAppsSDK()\r\n sdk.safe.getEnvironmentInfo().then(({ origin }) => {\r\n if (origin) {\r\n walletConfig.isInSafeApp = true\r\n }\r\n })\r\n }, [])\r\n return (\r\n <WagmiProvider config={walletConfig.rainbowKitConfig} reconnectOnMount={walletConfig.reconnectOnMount}>\r\n <QueryClientProvider client={queryClient} >\r\n <RainbowKitProvider locale=\"en\" theme={theme == 'dark' ? darkTheme() : lightTheme()} {...rainbowKitProps}>\r\n {children}\r\n {\r\n compatibleMode ? <WalletConnectcompatibleMode /> : <WalletConnect />\r\n }\r\n </RainbowKitProvider>\r\n </QueryClientProvider>\r\n </WagmiProvider>\r\n );\r\n}));\r\n\r\n//There are problems with safeWallet calls in compatibility mode\r\nexport const WalletConnectcompatibleMode = () => {\r\n const wallet = RootStore.Get(WalletStore);\r\n wallet.use();\r\n return <></>;\r\n};\r\n\r\nexport const WalletConnect = () => {\r\n const wallet = RootStore.Get(WalletStore);\r\n wallet.useWalletClientWithoutCompatibleMode();\r\n wallet.use();\r\n return <></>;\r\n};\r\n","import { iotex as _iotex, iotexTestnet as _iotexTestnet, type Chain } from \"viem/chains\";\r\n\r\nexport type NetworkObject = {\r\n name: string;\r\n chainId: number;\r\n rpcUrl: string;\r\n logoUrl: string;\r\n explorerUrl: string;\r\n explorerName: string;\r\n nativeCoin: string;\r\n type: 'mainnet' | 'testnet';\r\n};\r\n\r\nexport type WalletTransactionHistoryType = {\r\n chainId: number;\r\n tx?: string;\r\n msg: string;\r\n timestamp: number;\r\n type: string;\r\n status: 'loading' | 'success' | 'fail';\r\n};\r\n\r\nexport type AddressMode = 'io' | '0x';\r\n\r\nexport const iotex = {\r\n iconUrl: 'https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png',\r\n ..._iotex,\r\n} as Chain;\r\nexport const iotexTestnet = {\r\n iconUrl: 'https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png',\r\n ..._iotexTestnet,\r\n} as Chain;;","import { Icon } from '@iconify/react';\r\nimport { Button, Checkbox, Chip, Input, Listbox, ListboxItem, Popover, PopoverContent, PopoverTrigger, Radio, RadioGroup, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow, Tooltip } from '@nextui-org/react';\r\nimport { observer, useLocalObservable } from 'mobx-react-lite';\r\nimport React from 'react';\r\nimport { useEffect } from 'react';\r\nimport { RootStore } from \"../../../store\";\r\nimport { WalletStore } from \"..\";\r\nimport { WalletRpcStore } from '../walletPluginStore';\r\nimport { ToastPlugin } from '../../Toast/Toast';\r\n\r\n\r\nconst RpcList = observer(() => {\r\n const wallet = RootStore.Get(WalletStore)\r\n const rpcStore = RootStore.Get(WalletRpcStore)\r\n useEffect(() => {\r\n rpcStore.testRpc()\r\n }, [])\r\n\r\n return (\r\n <div className='mb-3 mt-4'>\r\n <div className='w-full flex mb-2 mt-2'>\r\n <div className='flex items-center justify-center gap-2'>\r\n <Checkbox size='sm' isSelected={rpcStore.isAutoSelectRpc.value} onValueChange={e => rpcStore.isAutoSelectRpc.save(e)}>Auto select rpc</Checkbox>\r\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>}>\r\n <Icon icon=\"ph:question\" width=\"18\" height=\"18\" className='text-gray-500' />\r\n </Tooltip>\r\n </div>\r\n\r\n <Button startContent={<Icon icon=\"tabler:test-pipe\" width=\"18\" height=\"18\" />} className='ml-auto' onClick={e => {\r\n rpcStore.testRpc()\r\n }}>Test</Button>\r\n <Popover placement=\"bottom\" offset={20} showArrow isOpen={rpcStore.showCustomRpc} onOpenChange={(open) => rpcStore.showCustomRpc = (open)}>\r\n <PopoverTrigger>\r\n <Button color=\"primary\" startContent={<Icon icon=\"basil:add-solid\" width=\"18\" height=\"18\" />} className='ml-4'>Add custom rpc</Button>\r\n </PopoverTrigger>\r\n <PopoverContent>\r\n <div className=\"px-1 py-2\">\r\n <Input\r\n type=\"url\"\r\n className='mb-4'\r\n placeholder=\"https://rpc.com\"\r\n value={rpcStore.customRpc}\r\n onValueChange={(value) => {\r\n rpcStore.customRpc = value;\r\n }}\r\n />\r\n <Button color='primary' isDisabled={!rpcStore.customRpc} onClick={e => rpcStore.addCustomRpc()}>Save</Button>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n\r\n </div>\r\n\r\n <Table\r\n color=\"success\"\r\n selectionMode=\"single\"\r\n defaultSelectedKeys={[rpcStore.curRpc.value]}\r\n aria-label=\"Example static collection table\"\r\n >\r\n <TableHeader>\r\n <TableColumn>RPC Server Address</TableColumn>\r\n <TableColumn align='center'>Score</TableColumn>\r\n <TableColumn align='center'>Height</TableColumn>\r\n <TableColumn align='center'>Latency</TableColumn>\r\n <TableColumn align='center'>Action</TableColumn>\r\n </TableHeader>\r\n <TableBody >\r\n {\r\n rpcStore.rpcList?.value?.map((item, index) => {\r\n return <TableRow className='cursor-pointer' key={item.name} onClick={e => {\r\n rpcStore.curRpc.save(item.name)\r\n RootStore.Get(ToastPlugin).success('Set rpc success')\r\n }} >\r\n <TableCell >{item.name}</TableCell>\r\n <TableCell >{rpcStore.scoreIcon(item.latency)}</TableCell>\r\n <TableCell>{item.height}</TableCell>\r\n <TableCell className={rpcStore.latencyColor(item.latency)}>{item.latency}s</TableCell>\r\n <TableCell>\r\n <div className=\"relative flex items-center gap-2\">\r\n <Tooltip content=\"Add to metamask\">\r\n <span className=\"text-lg text-danger cursor-pointer active:opacity-50\" onClick={e => {\r\n e.stopPropagation()\r\n rpcStore.addToMetamask(item.name)\r\n }}>\r\n <Icon icon=\"logos:metamask-icon\" width=\"18\" height=\"18\" />\r\n </span>\r\n </Tooltip>\r\n {\r\n item.custom && <Tooltip content=\"Remove\">\r\n <span className=\"text-lg text-danger cursor-pointer active:opacity-50\" onClick={e => {\r\n e.stopPropagation()\r\n rpcStore.removeRpc(item.name)\r\n }}>\r\n <Icon icon=\"solar:trash-bin-minimalistic-broken\" width=\"20\" height=\"20\" />\r\n </span>\r\n </Tooltip>\r\n }\r\n </div>\r\n </TableCell>\r\n </TableRow>\r\n })\r\n }\r\n </TableBody>\r\n </Table>\r\n </div>\r\n );\r\n});\r\n\r\nexport { RpcList };\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dappworks/kit",
3
- "version": "0.5.33",
3
+ "version": "0.5.34",
4
4
  "description": "",
5
5
  "main": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.mts",