@dappworks/kit 0.4.177 → 0.4.179

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.d.mts CHANGED
@@ -3,11 +3,12 @@ import React__default from 'react';
3
3
  import { a as PromiseHookData, B as BigNumberState, S as StorageState } from './StorageState-qzikHBY8.js';
4
4
  import { S as Store } from './root-C3lZnoCI.js';
5
5
  import { WalletClient, PublicClient, HttpTransport, TransactionReceipt } from 'viem';
6
+ import { Chain } from 'viem/chains';
6
7
  import EventEmitter from 'events';
7
8
  import { SwitchChainMutate } from 'wagmi/query';
8
9
  import * as wagmi from 'wagmi';
9
10
  import { Config } from 'wagmi';
10
- import { Chain } from '@rainbow-me/rainbowkit';
11
+ import { Chain as Chain$1 } from '@rainbow-me/rainbowkit';
11
12
  import * as _rainbow_me_rainbowkit_dist_config_getDefaultConfig from '@rainbow-me/rainbowkit/dist/config/getDefaultConfig';
12
13
  import 'mobx';
13
14
  import 'bignumber.js';
@@ -36,9 +37,12 @@ type WalletTransactionHistoryType = {
36
37
  tx?: string;
37
38
  msg: string;
38
39
  timestamp: number;
39
- type: 'Approve' | 'Swap' | 'Liquidity' | 'Transfer';
40
+ type: string;
40
41
  status: 'loading' | 'success' | 'fail';
41
42
  };
43
+ type AddressMode = 'io' | '0x';
44
+ declare const iotex: Chain;
45
+ declare const iotexTestnet: Chain;
42
46
 
43
47
  declare class WalletStore implements Store {
44
48
  sid: string;
@@ -51,14 +55,21 @@ declare class WalletStore implements Store {
51
55
  event: EventEmitter<[never]>;
52
56
  switchChain: SwitchChainMutate<Config, unknown> | undefined;
53
57
  updateTicker: number;
54
- chain: Chain | undefined;
55
- get supportedChains(): Chain[];
58
+ addressMode: AddressMode;
59
+ get isIoTeXChain(): boolean;
60
+ setAddressMode(mode: AddressMode): void;
61
+ get accountFormat(): string;
62
+ get connectAccountEllipsisFormat(): string;
63
+ get accountEllipsisFormat(): string;
64
+ get supportedChains(): Chain$1[];
65
+ chain: Chain$1 | undefined;
56
66
  openConnectModal: any;
67
+ disconnect: any;
57
68
  balance: PromiseHookData<() => Promise<BigNumberState>, Promise<BigNumberState>>;
58
69
  constructor(args?: Partial<WalletStore>);
59
70
  get reconnectOnMount(): boolean;
60
71
  use(): void;
61
- get publicClient(): PublicClient<HttpTransport, Chain, any, any>;
72
+ get publicClient(): PublicClient<HttpTransport, Chain$1, any, any>;
62
73
  set(args: Partial<WalletStore>): void;
63
74
  toJSON(): {
64
75
  account: `0x${string}`;
@@ -143,10 +154,10 @@ declare class WalletConfigStore implements Store {
143
154
  autoObservable: boolean;
144
155
  appName: string;
145
156
  projectId: string;
146
- supportedChains: Chain[];
157
+ supportedChains: Chain$1[];
147
158
  defaultChainId: number;
148
159
  set(params: Partial<WalletConfigStore>): void;
149
160
  get rainbowKitConfig(): wagmi.Config<_rainbow_me_rainbowkit_dist_config_getDefaultConfig._chains, _rainbow_me_rainbowkit_dist_config_getDefaultConfig._transports>;
150
161
  }
151
162
 
152
- export { type NetworkObject, WalletConfigStore, WalletHistoryStore, WalletProvider, WalletRpcStore, WalletStore, type WalletTransactionHistoryType };
163
+ export { type AddressMode, type NetworkObject, WalletConfigStore, WalletHistoryStore, WalletProvider, WalletRpcStore, WalletStore, type WalletTransactionHistoryType, iotex, iotexTestnet };
package/dist/wallet.mjs CHANGED
@@ -14,12 +14,12 @@ import { RainbowKitProvider, darkTheme, lightTheme, getDefaultConfig, useConnect
14
14
  import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
15
15
  import React2, { useEffect } from 'react';
16
16
  import { observer } from 'mobx-react-lite';
17
- import { WagmiProvider, useWalletClient, useAccount, useSwitchChain, useConnect } from 'wagmi';
17
+ import { WagmiProvider, useWalletClient, useAccount, useSwitchChain, useConnect, useDisconnect } from 'wagmi';
18
18
  import BigNumber from 'bignumber.js';
19
19
  import EventEmitter from 'events';
20
20
  import { encodeFunctionData, hashMessage, hashTypedData } from 'viem';
21
21
  import { iopayWallet, metaMaskWallet, walletConnectWallet, okxWallet, binanceWallet } from '@rainbow-me/rainbowkit/wallets';
22
- import { iotex } from 'viem/chains';
22
+ import { iotex, iotexTestnet as iotexTestnet$1 } from 'viem/chains';
23
23
 
24
24
  // ../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/utils.js
25
25
  var require_utils = __commonJS({
@@ -1431,11 +1431,11 @@ function sortIcons(icons) {
1431
1431
  const prefix = icon.prefix;
1432
1432
  const name = icon.name;
1433
1433
  const providerStorage = storage2[provider] || (storage2[provider] = /* @__PURE__ */ Object.create(null));
1434
- const localStorage = providerStorage[prefix] || (providerStorage[prefix] = getStorage(provider, prefix));
1434
+ const localStorage2 = providerStorage[prefix] || (providerStorage[prefix] = getStorage(provider, prefix));
1435
1435
  let list;
1436
- if (name in localStorage.icons) {
1436
+ if (name in localStorage2.icons) {
1437
1437
  list = result.loaded;
1438
- } else if (prefix === "" || localStorage.missing.has(name)) {
1438
+ } else if (prefix === "" || localStorage2.missing.has(name)) {
1439
1439
  list = result.missing;
1440
1440
  } else {
1441
1441
  list = result.pending;
@@ -3299,6 +3299,7 @@ var WalletStore = class _WalletStore {
3299
3299
  this.isConnect = false;
3300
3300
  this.event = new EventEmitter();
3301
3301
  this.updateTicker = 0;
3302
+ this.addressMode = "0x";
3302
3303
  this.balance = PromiseHook.wrap({
3303
3304
  func: async () => {
3304
3305
  var _a;
@@ -3314,6 +3315,25 @@ var WalletStore = class _WalletStore {
3314
3315
  });
3315
3316
  Object.assign(this, args);
3316
3317
  }
3318
+ get isIoTeXChain() {
3319
+ if (this.chain && this.chain.id == 4689) {
3320
+ return true;
3321
+ }
3322
+ return false;
3323
+ }
3324
+ setAddressMode(mode) {
3325
+ this.addressMode = mode;
3326
+ localStorage.setItem("addressMode", mode);
3327
+ }
3328
+ get accountFormat() {
3329
+ return this.account ? helper.address.convertAddress(this.addressMode, this.account) : "-";
3330
+ }
3331
+ get connectAccountEllipsisFormat() {
3332
+ return this.account ? helper.string.truncate(helper.address.convertAddress(this.addressMode, this.account), 11, "...") : "-";
3333
+ }
3334
+ get accountEllipsisFormat() {
3335
+ return this.account ? helper.string.truncate(helper.address.convertAddress(this.addressMode, this.account), 16, "...") : "-";
3336
+ }
3317
3337
  get supportedChains() {
3318
3338
  return RootStore.Get(WalletConfigStore).supportedChains;
3319
3339
  }
@@ -3335,13 +3355,15 @@ var WalletStore = class _WalletStore {
3335
3355
  const { switchChain } = useSwitchChain();
3336
3356
  const { openConnectModal } = useConnectModal();
3337
3357
  const { connect } = useConnect();
3358
+ const { disconnect } = useDisconnect();
3338
3359
  this.set({
3339
3360
  //@ts-ignore
3340
3361
  connect,
3341
3362
  // @ts-ignore
3342
3363
  walletClient,
3343
3364
  openConnectModal,
3344
- switchChain
3365
+ switchChain,
3366
+ disconnect
3345
3367
  });
3346
3368
  useEffect(() => {
3347
3369
  RootStore.Get(WalletHistoryStore).set({ isRender: true });
@@ -3413,7 +3435,6 @@ var WalletStore = class _WalletStore {
3413
3435
  }
3414
3436
  async waitForTransactionReceipt({ hash }) {
3415
3437
  if (this.isInSafeApp) {
3416
- console.log("isInSafeApp", this.isInSafeApp);
3417
3438
  const sdk = new esm_default();
3418
3439
  while (true) {
3419
3440
  const queued = await sdk.txs.getBySafeTxHash(hash);
@@ -3625,7 +3646,13 @@ var WalletConnect = () => {
3625
3646
  wallet.use();
3626
3647
  return /* @__PURE__ */ React2.createElement(React2.Fragment, null);
3627
3648
  };
3649
+ var iotex2 = __spreadValues({
3650
+ iconUrl: "https://icons.llamao.fi/icons/chains/rsz_iotex.jpg"
3651
+ }, iotex);
3652
+ var iotexTestnet = __spreadValues({
3653
+ iconUrl: "https://icons.llamao.fi/icons/chains/rsz_iotex.jpg"
3654
+ }, iotexTestnet$1);
3628
3655
 
3629
- export { WalletConfigStore, WalletHistoryStore, WalletProvider, WalletRpcStore, WalletStore };
3656
+ export { WalletConfigStore, WalletHistoryStore, WalletProvider, WalletRpcStore, WalletStore, iotex2 as iotex, iotexTestnet };
3630
3657
  //# sourceMappingURL=out.js.map
3631
3658
  //# sourceMappingURL=wallet.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/utils.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/endpoint.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/config.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-info.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-apps.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/transactions.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/chains.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/common.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/master-copies.js","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/decoded-data.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-messages.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/notifications.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/relay.js","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/index.ts","../module/Wallet/provider.tsx","../module/Wallet/index.tsx","../../../node_modules/@iconify/react/dist/iconify.mjs","../module/Wallet/walletPluginStore.tsx","../../../node_modules/@safe-global/safe-apps-sdk/src/version.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/utils.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/messageFormatter.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/methods.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/sdk.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/gateway.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/txs/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/eth/constants.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/eth/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/safe/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/safe/signatures.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/permissions.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/wallet/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/decorators/requirePermissions.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/sdk.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/index.ts","../module/Wallet/SuccessTxDialog/index.tsx","../module/Wallet/walletConfigStore.ts"],"names":["ImplementationVersionState","SafeAppAccessPolicyTypes","SafeAppFeatures","SafeAppSocialPlatforms","Operation","TransactionStatus","TransferDirection","TransactionTokenType","SettingsInfoType","TransactionInfoType","ConflictType","TransactionListItemType","DetailedExecutionInfoType","DurationType","StartTimeValue","LabelValue","RPC_AUTHENTICATION","GAS_PRICE_TYPE","FEATURES","TokenType","ConfirmationViewTypes","SafeMessageListItemType","SafeMessageStatus","DeviceType","React","useEffect","observer","useConnectModal","storage","simpleNames","send","_window","Icon","InlineIcon","Methods","RestrictedMethods","_a"],"mappings":"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","sourcesContent":[null,null,null,null,null,null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=master-copies.js.map",null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=relay.js.map",null,"import { Chain, RainbowKitProvider, Wallet, connectorsForWallets, darkTheme, lightTheme } from '@rainbow-me/rainbowkit';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport React, { useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { WagmiProvider } from 'wagmi';\nimport { RootStore } from \"../../store\";\nimport { WalletStore } from '.';\nimport { WalletConfigStore } from './walletConfigStore'\n\nconst queryClient = new QueryClient();\nexport const WalletProvider = observer(({\n children,\n theme,\n appName\n}: {\n children: React.ReactNode,\n theme?: 'dark' | 'light',\n appName?: string,\n}) => {\n const walletConfig = RootStore.Get(WalletConfigStore);\n\n useEffect(() => {\n if (appName) {\n walletConfig.appName = appName\n }\n }, [appName])\n return (\n //@ts-ignore\n <WagmiProvider config={walletConfig.rainbowKitConfig} reconnectOnMount={true}>\n <QueryClientProvider client={queryClient} >\n <RainbowKitProvider locale=\"en\" theme={theme == 'dark' ? darkTheme() : lightTheme()}>\n {/* @ts-ignore */}\n {children}\n <WalletConnect />\n </RainbowKitProvider>\n </QueryClientProvider>\n </WagmiProvider>\n );\n});\n\nexport const WalletConnect = () => {\n const wallet = RootStore.Get(WalletStore);\n wallet.use();\n return <></>;\n};\n","import React, { useEffect } from \"react\";\nimport { Store } from \"../../store/standard/base\";\nimport { Account, PublicClient, type HttpTransport, WalletClient, TransactionReceipt } from \"viem\";\nimport { PromiseHook } from '../../store/standard/PromiseHook';\nimport { BigNumberState } from '../../store/standard/BigNumberState';\nimport BigNumber from 'bignumber.js';\nimport { WalletTransactionHistoryType } from \"./type\";\nimport EventEmitter from \"events\";\nimport { SwitchChainMutate } from \"wagmi/query\";\nimport { Config, useAccount, useConnect, useSwitchChain, useWalletClient, } from \"wagmi\";\nimport { Chain, useConnectModal, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { RootStore } from \"../../store\";\nimport { ToastPlugin } from \"../Toast/Toast\";\nimport { http, createPublicClient } from 'viem';\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\";\n\nexport class WalletStore implements Store {\n sid = 'wallet';\n\n autoObservable = true;\n account: `0x${string}` = '0x...';\n isSuccessDialogOpen = false;\n isInSafeApp = false;\n isConnect = false;\n walletClient: WalletClient;\n event = new EventEmitter();\n switchChain: SwitchChainMutate<Config, unknown> | undefined;\n updateTicker = 0;\n\n chain: Chain | undefined;\n get supportedChains() {\n return RootStore.Get(WalletConfigStore).supportedChains\n }\n openConnectModal: any;\n balance = PromiseHook.wrap({\n func: async () => {\n if (!this.publicClient || !this.account) return new BigNumberState({ value: new BigNumber(0) });\n const balance = await this.publicClient.getBalance({\n address: this.account,\n });\n if (balance) {\n return new BigNumberState({ value: new BigNumber(balance?.toString() ?? '0') });\n }\n },\n });\n\n constructor(args?: Partial<WalletStore>) {\n Object.assign(this, args);\n }\n\n get reconnectOnMount() {\n if (!this.isConnect && this.updateTicker == 0) {\n return true\n }\n if (!this.isConnect && this.updateTicker != 0) {\n return false\n }\n if (this.isConnect) {\n return true\n }\n }\n\n\n use() {\n console.log('use wallet')\n const { data: walletClient, isSuccess } = useWalletClient();\n const { chain, address, isConnected } = useAccount();\n const { switchChain } = useSwitchChain();\n const { openConnectModal } = useConnectModal();\n const { connect } = useConnect();\n\n this.set({\n //@ts-ignore\n connect,\n // @ts-ignore \n walletClient,\n openConnectModal,\n switchChain,\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 (this.account) {\n this.updateTicker++;\n this.event.emit('walletAccount:ready');\n }\n }, [address, isConnected, chain])\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 promise = new Promise<void>(async (res, rej) => {\n if (!window) return;\n if (this.account) {\n if (Number(this.chain?.id) == Number(chainId)) {\n res();\n return;\n }\n this.switchChain?.({ chainId: chainId ?? 4689 });\n const interval = setInterval(() => {\n if (this.switchChain) {\n if (this.chain?.id == chainId) {\n try {\n // //@ts-ignore\n // const provider = new ethers.providers.Web3Provider(window?.ethereum);\n // this.signer = provider.getSigner();\n } catch (error) { }\n clearInterval(interval);\n res();\n }\n }\n }, 1000);\n } else {\n try {\n this.openConnectModal();\n // this.connect?.({ chainId, connector: this.rainbowkitParams.connectors()[0] }) connect success but ui not change so\n const interval = setInterval(() => {\n if (this.account) {\n clearInterval(interval);\n res();\n }\n }, 1000);\n } catch (error) {\n rej(error);\n }\n }\n });\n\n await promise;\n return this;\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('user rejected transaction') || String(error).toLowerCase().includes('user rejected') || String(error).toLowerCase().includes('user 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?.(msg);\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?.(messageArr[0]);\n }\n } else {\n toast.error(String(error?.message || error));\n onError?.(String(error?.message || error));\n }\n }\n } else {\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?: ({ res }: { res: TransactionReceipt }) => 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 // console.log(hash)\n let receipt = await this.waitForTransactionReceipt({ hash });\n console.log(receipt);\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({ res: receipt });\n toast.dismiss();\n toast.error('The transaction failed');\n }\n return receipt;\n } catch (error) {\n toast.dismiss();\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('user rejected transaction') || error?.message?.includes('cancel') || String(error).toLowerCase().includes('user 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?.(messageArr[0]);\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 throw error;\n }\n }\n }\n}","import React from 'react';\n\nconst matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n // Allow provider without '@': \"provider:prefix:name\"\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIconName(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIconName(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIconName(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIconName = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!((icon.provider === \"\" || icon.provider.match(matchIconName)) && (allowSimpleName && icon.prefix === \"\" || icon.prefix.match(matchIconName)) && icon.name.match(matchIconName));\n};\n\nconst defaultIconDimensions = Object.freeze(\n {\n left: 0,\n top: 0,\n width: 16,\n height: 16\n }\n);\nconst defaultIconTransformations = Object.freeze({\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nconst defaultIconProps = Object.freeze({\n ...defaultIconDimensions,\n ...defaultIconTransformations\n});\nconst defaultExtendedIconProps = Object.freeze({\n ...defaultIconProps,\n body: \"\",\n hidden: false\n});\n\nfunction mergeIconTransformations(obj1, obj2) {\n const result = {};\n if (!obj1.hFlip !== !obj2.hFlip) {\n result.hFlip = true;\n }\n if (!obj1.vFlip !== !obj2.vFlip) {\n result.vFlip = true;\n }\n const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n if (rotate) {\n result.rotate = rotate;\n }\n return result;\n}\n\nfunction mergeIconData(parent, child) {\n const result = mergeIconTransformations(parent, child);\n for (const key in defaultExtendedIconProps) {\n if (key in defaultIconTransformations) {\n if (key in parent && !(key in result)) {\n result[key] = defaultIconTransformations[key];\n }\n } else if (key in child) {\n result[key] = child[key];\n } else if (key in parent) {\n result[key] = parent[key];\n }\n }\n return result;\n}\n\nfunction getIconsTree(data, names) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n const resolved = /* @__PURE__ */ Object.create(null);\n function resolve(name) {\n if (icons[name]) {\n return resolved[name] = [];\n }\n if (!(name in resolved)) {\n resolved[name] = null;\n const parent = aliases[name] && aliases[name].parent;\n const value = parent && resolve(parent);\n if (value) {\n resolved[name] = [parent].concat(value);\n }\n }\n return resolved[name];\n }\n (names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n return resolved;\n}\n\nfunction internalGetIconData(data, name, tree) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n let currentProps = {};\n function parse(name2) {\n currentProps = mergeIconData(\n icons[name2] || aliases[name2],\n currentProps\n );\n }\n parse(name);\n tree.forEach(parse);\n return mergeIconData(data, currentProps);\n}\n\nfunction parseIconSet(data, callback) {\n const names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach((name) => {\n callback(name, null);\n names.push(name);\n });\n }\n const tree = getIconsTree(data);\n for (const name in tree) {\n const item = tree[name];\n if (item) {\n callback(name, internalGetIconData(data, name, item));\n names.push(name);\n }\n }\n return names;\n}\n\nconst optionalPropertyDefaults = {\n provider: \"\",\n aliases: {},\n not_found: {},\n ...defaultIconDimensions\n};\nfunction checkOptionalProps(item, defaults) {\n for (const prop in defaults) {\n if (prop in item && typeof item[prop] !== typeof defaults[prop]) {\n return false;\n }\n }\n return true;\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n const data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n if (!checkOptionalProps(obj, optionalPropertyDefaults)) {\n return null;\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (!name.match(matchIconName) || typeof icon.body !== \"string\" || !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )) {\n return null;\n }\n }\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (!name.match(matchIconName) || typeof parent !== \"string\" || !icons[parent] && !aliases[parent] || !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )) {\n return null;\n }\n }\n return data;\n}\n\nconst dataStorage = /* @__PURE__ */ Object.create(null);\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ new Set()\n };\n}\nfunction getStorage(provider, prefix) {\n const providerStorage = dataStorage[provider] || (dataStorage[provider] = /* @__PURE__ */ Object.create(null));\n return providerStorage[prefix] || (providerStorage[prefix] = newStorage(provider, prefix));\n}\nfunction addIconSet(storage, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage.icons[name] = icon;\n } else {\n storage.missing.add(name);\n }\n });\n}\nfunction addIconToStorage(storage, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage.icons[name] = { ...icon };\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n const providers = typeof provider === \"string\" ? [provider] : Object.keys(dataStorage);\n providers.forEach((provider2) => {\n const prefixes = typeof provider2 === \"string\" && typeof prefix === \"string\" ? [prefix] : Object.keys(dataStorage[provider2] || {});\n prefixes.forEach((prefix2) => {\n const storage = getStorage(provider2, prefix2);\n allIcons = allIcons.concat(\n Object.keys(storage.icons).map(\n (name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name\n )\n );\n });\n });\n return allIcons;\n}\n\nlet simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n const icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n if (icon) {\n const storage = getStorage(icon.provider, icon.prefix);\n const iconName = icon.name;\n return storage.icons[iconName] || (storage.missing.has(iconName) ? null : void 0);\n }\n}\nfunction addIcon(name, data) {\n const icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n const storage = getStorage(icon.provider, icon.prefix);\n return addIconToStorage(storage, icon.name, data);\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = data.provider || \"\";\n }\n if (simpleNames && !provider && !data.prefix) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (icon && addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n const prefix = data.prefix;\n if (!validateIconName({\n provider,\n prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconExists(name) {\n return !!getIconData(name);\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? {\n ...defaultIconProps,\n ...result\n } : null;\n}\n\nconst defaultIconSizeCustomisations = Object.freeze({\n width: null,\n height: null\n});\nconst defaultIconCustomisations = Object.freeze({\n // Dimensions\n ...defaultIconSizeCustomisations,\n // Transformations\n ...defaultIconTransformations\n});\n\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision || 100;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nconst isUnsetKeyword = (value) => value === \"unset\" || value === \"undefined\" || value === \"none\";\nfunction iconToSVG(icon, customisations) {\n const fullIcon = {\n ...defaultIconProps,\n ...icon\n };\n const fullCustomisations = {\n ...defaultIconCustomisations,\n ...customisations\n };\n const box = {\n left: fullIcon.left,\n top: fullIcon.top,\n width: fullIcon.width,\n height: fullIcon.height\n };\n let body = fullIcon.body;\n [fullIcon, fullCustomisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\n \"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\"\n );\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\n \"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\"\n );\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\n \"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n case 2:\n transformations.unshift(\n \"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\"\n );\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\n \"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== box.top) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = '<g transform=\"' + transformations.join(\" \") + '\">' + body + \"</g>\";\n }\n });\n const customisationsWidth = fullCustomisations.width;\n const customisationsHeight = fullCustomisations.height;\n const boxWidth = box.width;\n const boxHeight = box.height;\n let width;\n let height;\n if (customisationsWidth === null) {\n height = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n width = calculateSize(height, boxWidth / boxHeight);\n } else {\n width = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n }\n const attributes = {};\n const setAttr = (prop, value) => {\n if (!isUnsetKeyword(value)) {\n attributes[prop] = value.toString();\n }\n };\n setAttr(\"width\", width);\n setAttr(\"height\", height);\n attributes.viewBox = box.left.toString() + \" \" + box.top.toString() + \" \" + boxWidth.toString() + \" \" + boxHeight.toString();\n return {\n attributes,\n body\n };\n}\n\nconst regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n const suffix = \"suffix\" + (Math.random() * 16777216 | Date.now()).toString(16);\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(\n // Allowed characters before id: [#;\"]\n // Allowed characters after id: [)\"], .[a-z]\n new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"),\n \"$1\" + newID + suffix + \"$3\"\n );\n });\n body = body.replace(new RegExp(suffix, \"g\"), \"\");\n return body;\n}\n\nconst storage = /* @__PURE__ */ Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\n\nfunction createAPIConfig(source) {\n let resources;\n if (typeof source.resources === \"string\") {\n resources = [source.resources];\n } else {\n resources = source.resources;\n if (!(resources instanceof Array) || !resources.length) {\n return null;\n }\n }\n const result = {\n // API hosts\n resources,\n // Root path\n path: source.path || \"/\",\n // URL length limit\n maxURL: source.maxURL || 500,\n // Timeout before next host is used.\n rotate: source.rotate || 750,\n // Timeout before failing query.\n timeout: source.timeout || 5e3,\n // Randomise default API end point.\n random: source.random === true,\n // Start index\n index: source.index || 0,\n // Receive data after time out (used if time out kicks in first, then API module sends data anyway).\n dataAfterTimeout: source.dataAfterTimeout !== false\n };\n return result;\n}\nconst configStorage = /* @__PURE__ */ Object.create(null);\nconst fallBackAPISources = [\n \"https://api.simplesvg.com\",\n \"https://api.unisvg.com\"\n];\nconst fallBackAPI = [];\nwhile (fallBackAPISources.length > 0) {\n if (fallBackAPISources.length === 1) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n if (Math.random() > 0.5) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n fallBackAPI.push(fallBackAPISources.pop());\n }\n }\n}\nconfigStorage[\"\"] = createAPIConfig({\n resources: [\"https://api.iconify.design\"].concat(fallBackAPI)\n});\nfunction addAPIProvider(provider, customConfig) {\n const config = createAPIConfig(customConfig);\n if (config === null) {\n return false;\n }\n configStorage[provider] = config;\n return true;\n}\nfunction getAPIConfig(provider) {\n return configStorage[provider];\n}\nfunction listAPIProviders() {\n return Object.keys(configStorage);\n}\n\nconst detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n};\nlet fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n const config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n let result;\n if (!config.maxURL) {\n result = 0;\n } else {\n let maxHostLength = 0;\n config.resources.forEach((item) => {\n const host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n const url = prefix + \".json?icons=\";\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n const maxLength = calculateMaxLength(provider, prefix);\n const type = \"icons\";\n let item = {\n type,\n provider,\n prefix,\n icons: []\n };\n let length = 0;\n icons.forEach((name, index) => {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type,\n provider,\n prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n const config = getAPIConfig(provider);\n if (config) {\n return config.path;\n }\n }\n return \"/\";\n}\nconst send = (host, params, callback) => {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n let path = getPath(params.provider);\n switch (params.type) {\n case \"icons\": {\n const prefix = params.prefix;\n const icons = params.icons;\n const iconsList = icons.join(\",\");\n const urlParams = new URLSearchParams({\n icons: iconsList\n });\n path += prefix + \".json?\" + urlParams.toString();\n break;\n }\n case \"custom\": {\n const uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n const status = response.status;\n if (status !== 200) {\n setTimeout(() => {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then((data) => {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(() => {\n if (data === 404) {\n callback(\"abort\", data);\n } else {\n callback(\"next\", defaultError);\n }\n });\n return;\n }\n setTimeout(() => {\n callback(\"success\", data);\n });\n }).catch(() => {\n callback(\"next\", defaultError);\n });\n};\nconst fetchAPIModule = {\n prepare,\n send\n};\n\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = /* @__PURE__ */ Object.create(null);\n icons.sort((a, b) => {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n let lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach((icon) => {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const providerStorage = storage[provider] || (storage[provider] = /* @__PURE__ */ Object.create(null));\n const localStorage = providerStorage[prefix] || (providerStorage[prefix] = getStorage(provider, prefix));\n let list;\n if (name in localStorage.icons) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing.has(name)) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n const item = {\n provider,\n prefix,\n name\n };\n list.push(item);\n });\n return result;\n}\n\nfunction removeCallback(storages, id) {\n storages.forEach((storage) => {\n const items = storage.loaderCallbacks;\n if (items) {\n storage.loaderCallbacks = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(storage) {\n if (!storage.pendingCallbacksFlag) {\n storage.pendingCallbacksFlag = true;\n setTimeout(() => {\n storage.pendingCallbacksFlag = false;\n const items = storage.loaderCallbacks ? storage.loaderCallbacks.slice(0) : [];\n if (!items.length) {\n return;\n }\n let hasPending = false;\n const provider = storage.provider;\n const prefix = storage.prefix;\n items.forEach((item) => {\n const icons = item.icons;\n const oldLength = icons.pending.length;\n icons.pending = icons.pending.filter((icon) => {\n if (icon.prefix !== prefix) {\n return true;\n }\n const name = icon.name;\n if (storage.icons[name]) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing.has(name)) {\n icons.missing.push({\n provider,\n prefix,\n name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([storage], item.id);\n }\n item.callback(\n icons.loaded.slice(0),\n icons.missing.slice(0),\n icons.pending.slice(0),\n item.abort\n );\n }\n });\n });\n }\n}\nlet idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n const id = idCounter++;\n const abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n const item = {\n id,\n icons,\n callback,\n abort\n };\n pendingSources.forEach((storage) => {\n (storage.loaderCallbacks || (storage.loaderCallbacks = [])).push(item);\n });\n return abort;\n}\n\nfunction listToIcons(list, validate = true, simpleNames = false) {\n const result = [];\n list.forEach((item) => {\n const icon = typeof item === \"string\" ? stringToIcon(item, validate, simpleNames) : item;\n if (icon) {\n result.push(icon);\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n const resourcesCount = config.resources.length;\n const startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n let resources;\n if (config.random) {\n let list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n const nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n const startTime = Date.now();\n let status = \"pending\";\n let queriesSent = 0;\n let lastError;\n let timer = null;\n let queue = [];\n let doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime,\n payload,\n status,\n queriesSent,\n queriesPending: queue.length,\n subscribe,\n abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach((callback) => {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n const isError = response !== \"success\";\n queue = queue.filter((queued) => queued !== item);\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach((callback) => {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n const resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n const item = {\n status: \"pending\",\n resource,\n callback: (status2, data) => {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction initRedundancy(cfg) {\n const config = {\n ...defaultConfig,\n ...cfg\n };\n let queries = [];\n function cleanup() {\n queries = queries.filter((item) => item().status === \"pending\");\n }\n function query(payload, queryCallback, doneCallback) {\n const query2 = sendQuery(\n config,\n payload,\n queryCallback,\n (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n }\n );\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n return queries.find((value) => {\n return callback(value);\n }) || null;\n }\n const instance = {\n query,\n find,\n setIndex: (index) => {\n config.index = index;\n },\n getIndex: () => config.index,\n cleanup\n };\n return instance;\n}\n\nfunction emptyCallback$1() {\n}\nconst redundancyCache = /* @__PURE__ */ Object.create(null);\nfunction getRedundancyCache(provider) {\n if (!redundancyCache[provider]) {\n const config = getAPIConfig(provider);\n if (!config) {\n return;\n }\n const redundancy = initRedundancy(config);\n const cachedReundancy = {\n config,\n redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n let redundancy;\n let send;\n if (typeof target === \"string\") {\n const api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n const cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n const config = createAPIConfig(target);\n if (config) {\n redundancy = initRedundancy(config);\n const moduleKey = target.resources ? target.resources[0] : \"\";\n const api = getAPIModule(moduleKey);\n if (api) {\n send = api.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\n\nconst browserCacheVersion = \"iconify2\";\nconst browserCachePrefix = \"iconify\";\nconst browserCacheCountKey = browserCachePrefix + \"-count\";\nconst browserCacheVersionKey = browserCachePrefix + \"-version\";\nconst browserStorageHour = 36e5;\nconst browserStorageCacheExpiration = 168;\n\nfunction getStoredItem(func, key) {\n try {\n return func.getItem(key);\n } catch (err) {\n }\n}\nfunction setStoredItem(func, key, value) {\n try {\n func.setItem(key, value);\n return true;\n } catch (err) {\n }\n}\nfunction removeStoredItem(func, key) {\n try {\n func.removeItem(key);\n } catch (err) {\n }\n}\n\nfunction setBrowserStorageItemsCount(storage, value) {\n return setStoredItem(storage, browserCacheCountKey, value.toString());\n}\nfunction getBrowserStorageItemsCount(storage) {\n return parseInt(getStoredItem(storage, browserCacheCountKey)) || 0;\n}\n\nconst browserStorageConfig = {\n local: true,\n session: true\n};\nconst browserStorageEmptyItems = {\n local: /* @__PURE__ */ new Set(),\n session: /* @__PURE__ */ new Set()\n};\nlet browserStorageStatus = false;\nfunction setBrowserStorageStatus(status) {\n browserStorageStatus = status;\n}\n\nlet _window = typeof window === \"undefined\" ? {} : window;\nfunction getBrowserStorage(key) {\n const attr = key + \"Storage\";\n try {\n if (_window && _window[attr] && typeof _window[attr].length === \"number\") {\n return _window[attr];\n }\n } catch (err) {\n }\n browserStorageConfig[key] = false;\n}\n\nfunction iterateBrowserStorage(key, callback) {\n const func = getBrowserStorage(key);\n if (!func) {\n return;\n }\n const version = getStoredItem(func, browserCacheVersionKey);\n if (version !== browserCacheVersion) {\n if (version) {\n const total2 = getBrowserStorageItemsCount(func);\n for (let i = 0; i < total2; i++) {\n removeStoredItem(func, browserCachePrefix + i.toString());\n }\n }\n setStoredItem(func, browserCacheVersionKey, browserCacheVersion);\n setBrowserStorageItemsCount(func, 0);\n return;\n }\n const minTime = Math.floor(Date.now() / browserStorageHour) - browserStorageCacheExpiration;\n const parseItem = (index) => {\n const name = browserCachePrefix + index.toString();\n const item = getStoredItem(func, name);\n if (typeof item !== \"string\") {\n return;\n }\n try {\n const data = JSON.parse(item);\n if (typeof data === \"object\" && typeof data.cached === \"number\" && data.cached > minTime && typeof data.provider === \"string\" && typeof data.data === \"object\" && typeof data.data.prefix === \"string\" && // Valid item: run callback\n callback(data, index)) {\n return true;\n }\n } catch (err) {\n }\n removeStoredItem(func, name);\n };\n let total = getBrowserStorageItemsCount(func);\n for (let i = total - 1; i >= 0; i--) {\n if (!parseItem(i)) {\n if (i === total - 1) {\n total--;\n setBrowserStorageItemsCount(func, total);\n } else {\n browserStorageEmptyItems[key].add(i);\n }\n }\n }\n}\n\nfunction initBrowserStorage() {\n if (browserStorageStatus) {\n return;\n }\n setBrowserStorageStatus(true);\n for (const key in browserStorageConfig) {\n iterateBrowserStorage(key, (item) => {\n const iconSet = item.data;\n const provider = item.provider;\n const prefix = iconSet.prefix;\n const storage = getStorage(\n provider,\n prefix\n );\n if (!addIconSet(storage, iconSet).length) {\n return false;\n }\n const lastModified = iconSet.lastModified || -1;\n storage.lastModifiedCached = storage.lastModifiedCached ? Math.min(storage.lastModifiedCached, lastModified) : lastModified;\n return true;\n });\n }\n}\n\nfunction updateLastModified(storage, lastModified) {\n const lastValue = storage.lastModifiedCached;\n if (\n // Matches or newer\n lastValue && lastValue >= lastModified\n ) {\n return lastValue === lastModified;\n }\n storage.lastModifiedCached = lastModified;\n if (lastValue) {\n for (const key in browserStorageConfig) {\n iterateBrowserStorage(key, (item) => {\n const iconSet = item.data;\n return item.provider !== storage.provider || iconSet.prefix !== storage.prefix || iconSet.lastModified === lastModified;\n });\n }\n }\n return true;\n}\nfunction storeInBrowserStorage(storage, data) {\n if (!browserStorageStatus) {\n initBrowserStorage();\n }\n function store(key) {\n let func;\n if (!browserStorageConfig[key] || !(func = getBrowserStorage(key))) {\n return;\n }\n const set = browserStorageEmptyItems[key];\n let index;\n if (set.size) {\n set.delete(index = Array.from(set).shift());\n } else {\n index = getBrowserStorageItemsCount(func);\n if (!setBrowserStorageItemsCount(func, index + 1)) {\n return;\n }\n }\n const item = {\n cached: Math.floor(Date.now() / browserStorageHour),\n provider: storage.provider,\n data\n };\n return setStoredItem(\n func,\n browserCachePrefix + index.toString(),\n JSON.stringify(item)\n );\n }\n if (data.lastModified && !updateLastModified(storage, data.lastModified)) {\n return;\n }\n if (!Object.keys(data.icons).length) {\n return;\n }\n if (data.not_found) {\n data = Object.assign({}, data);\n delete data.not_found;\n }\n if (!store(\"local\")) {\n store(\"session\");\n }\n}\n\nfunction emptyCallback() {\n}\nfunction loadedNewIcons(storage) {\n if (!storage.iconsLoaderFlag) {\n storage.iconsLoaderFlag = true;\n setTimeout(() => {\n storage.iconsLoaderFlag = false;\n updateCallbacks(storage);\n });\n }\n}\nfunction loadNewIcons(storage, icons) {\n if (!storage.iconsToLoad) {\n storage.iconsToLoad = icons;\n } else {\n storage.iconsToLoad = storage.iconsToLoad.concat(icons).sort();\n }\n if (!storage.iconsQueueFlag) {\n storage.iconsQueueFlag = true;\n setTimeout(() => {\n storage.iconsQueueFlag = false;\n const { provider, prefix } = storage;\n const icons2 = storage.iconsToLoad;\n delete storage.iconsToLoad;\n let api;\n if (!icons2 || !(api = getAPIModule(provider))) {\n return;\n }\n const params = api.prepare(provider, prefix, icons2);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data) => {\n if (typeof data !== \"object\") {\n item.icons.forEach((name) => {\n storage.missing.add(name);\n });\n } else {\n try {\n const parsed = addIconSet(\n storage,\n data\n );\n if (!parsed.length) {\n return;\n }\n const pending = storage.pendingIcons;\n if (pending) {\n parsed.forEach((name) => {\n pending.delete(name);\n });\n }\n storeInBrowserStorage(storage, data);\n } catch (err) {\n console.error(err);\n }\n }\n loadedNewIcons(storage);\n });\n });\n });\n }\n}\nconst loadIcons = (icons, callback) => {\n const cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n const sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n let callCallback = true;\n if (callback) {\n setTimeout(() => {\n if (callCallback) {\n callback(\n sortedIcons.loaded,\n sortedIcons.missing,\n sortedIcons.pending,\n emptyCallback\n );\n }\n });\n }\n return () => {\n callCallback = false;\n };\n }\n const newIcons = /* @__PURE__ */ Object.create(null);\n const sources = [];\n let lastProvider, lastPrefix;\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix } = icon;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push(getStorage(provider, prefix));\n const providerNewIcons = newIcons[provider] || (newIcons[provider] = /* @__PURE__ */ Object.create(null));\n if (!providerNewIcons[prefix]) {\n providerNewIcons[prefix] = [];\n }\n });\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix, name } = icon;\n const storage = getStorage(provider, prefix);\n const pendingQueue = storage.pendingIcons || (storage.pendingIcons = /* @__PURE__ */ new Set());\n if (!pendingQueue.has(name)) {\n pendingQueue.add(name);\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((storage) => {\n const { provider, prefix } = storage;\n if (newIcons[provider][prefix].length) {\n loadNewIcons(storage, newIcons[provider][prefix]);\n }\n });\n return callback ? storeCallback(callback, sortedIcons, sources) : emptyCallback;\n};\nconst loadIcon = (icon) => {\n return new Promise((fulfill, reject) => {\n const iconObj = typeof icon === \"string\" ? stringToIcon(icon, true) : icon;\n if (!iconObj) {\n reject(icon);\n return;\n }\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const data = getIconData(iconObj);\n if (data) {\n fulfill({\n ...defaultIconProps,\n ...data\n });\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nfunction toggleBrowserCache(storage, value) {\n switch (storage) {\n case \"local\":\n case \"session\":\n browserStorageConfig[storage] = value;\n break;\n case \"all\":\n for (const key in browserStorageConfig) {\n browserStorageConfig[key] = value;\n }\n break;\n }\n}\n\nfunction mergeCustomisations(defaults, item) {\n const result = {\n ...defaults\n };\n for (const key in item) {\n const value = item[key];\n const valueType = typeof value;\n if (key in defaultIconSizeCustomisations) {\n if (value === null || value && (valueType === \"string\" || valueType === \"number\")) {\n result[key] = value;\n }\n } else if (valueType === typeof result[key]) {\n result[key] = key === \"rotate\" ? value % 4 : value;\n }\n }\n return result;\n}\n\nconst separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\n\nfunction rotateFromString(value, defaultValue = 0) {\n const units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n const num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n let split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n let num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(num)) {\n return 0;\n }\n num = num / split;\n return num % 1 === 0 ? cleanup(num) : 0;\n }\n }\n return defaultValue;\n}\n\nfunction iconToHTML(body, attributes) {\n let renderAttribsHTML = body.indexOf(\"xlink:\") === -1 ? \"\" : ' xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n for (const attr in attributes) {\n renderAttribsHTML += \" \" + attr + '=\"' + attributes[attr] + '\"';\n }\n return '<svg xmlns=\"http://www.w3.org/2000/svg\"' + renderAttribsHTML + \">\" + body + \"</svg>\";\n}\n\nfunction encodeSVGforURL(svg) {\n return svg.replace(/\"/g, \"'\").replace(/%/g, \"%25\").replace(/#/g, \"%23\").replace(/</g, \"%3C\").replace(/>/g, \"%3E\").replace(/\\s+/g, \" \");\n}\nfunction svgToData(svg) {\n return \"data:image/svg+xml,\" + encodeSVGforURL(svg);\n}\nfunction svgToURL(svg) {\n return 'url(\"' + svgToData(svg) + '\")';\n}\n\nlet policy;\nfunction createPolicy() {\n try {\n policy = window.trustedTypes.createPolicy(\"iconify\", {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n createHTML: (s) => s\n });\n } catch (err) {\n policy = null;\n }\n}\nfunction cleanUpInnerHTML(html) {\n if (policy === void 0) {\n createPolicy();\n }\n return policy ? policy.createHTML(html) : html;\n}\n\nconst defaultExtendedIconCustomisations = {\n ...defaultIconCustomisations,\n inline: false,\n};\n\n/**\n * Default SVG attributes\n */\nconst svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlnsXlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n};\n/**\n * Style modes\n */\nconst commonProps = {\n display: 'inline-block',\n};\nconst monotoneProps = {\n backgroundColor: 'currentColor',\n};\nconst coloredProps = {\n backgroundColor: 'transparent',\n};\n// Dynamically add common props to variables above\nconst propsToAdd = {\n Image: 'var(--svg)',\n Repeat: 'no-repeat',\n Size: '100% 100%',\n};\nconst propsToAddTo = {\n WebkitMask: monotoneProps,\n mask: monotoneProps,\n background: coloredProps,\n};\nfor (const prefix in propsToAddTo) {\n const list = propsToAddTo[prefix];\n for (const prop in propsToAdd) {\n list[prefix + prop] = propsToAdd[prop];\n }\n}\n/**\n * Default values for customisations for inline icon\n */\nconst inlineDefaults = {\n ...defaultExtendedIconCustomisations,\n inline: true,\n};\n/**\n * Fix size: add 'px' to numbers\n */\nfunction fixSize(value) {\n return value + (value.match(/^[-0-9.]+$/) ? 'px' : '');\n}\n/**\n * Render icon\n */\nconst render = (\n// Icon must be validated before calling this function\nicon, \n// Partial properties\nprops, \n// True if icon should have vertical-align added\ninline, \n// Optional reference for SVG/SPAN, extracted by React.forwardRef()\nref) => {\n // Get default properties\n const defaultProps = inline\n ? inlineDefaults\n : defaultExtendedIconCustomisations;\n // Get all customisations\n const customisations = mergeCustomisations(defaultProps, props);\n // Check mode\n const mode = props.mode || 'svg';\n // Create style\n const style = {};\n const customStyle = props.style || {};\n // Create SVG component properties\n const componentProps = {\n ...(mode === 'svg' ? svgDefaults : {}),\n ref,\n };\n // Get element properties\n for (let key in props) {\n const value = props[key];\n if (value === void 0) {\n continue;\n }\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'children':\n case 'onLoad':\n case 'mode':\n case '_ref':\n case '_inline':\n break;\n // Boolean attributes\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] =\n value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n break;\n // Color: copy to style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n }\n else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n // Copy missing property if it does not exist in customisations\n default:\n if (defaultProps[key] === void 0) {\n componentProps[key] = value;\n }\n }\n }\n // Generate icon\n const item = iconToSVG(icon, customisations);\n const renderAttribs = item.attributes;\n // Inline display\n if (customisations.inline) {\n style.verticalAlign = '-0.125em';\n }\n if (mode === 'svg') {\n // Add style\n componentProps.style = {\n ...style,\n ...customStyle,\n };\n // Add icon stuff\n Object.assign(componentProps, renderAttribs);\n // Counter for ids based on \"id\" property to render icons consistently on server and client\n let localCounter = 0;\n let id = props.id;\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n }\n // Add icon stuff\n componentProps.dangerouslySetInnerHTML = {\n __html: cleanUpInnerHTML(replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyReact')),\n };\n return React.createElement('svg', componentProps);\n }\n // Render <span> with style\n const { body, width, height } = icon;\n const useMask = mode === 'mask' ||\n (mode === 'bg' ? false : body.indexOf('currentColor') !== -1);\n // Generate SVG\n const html = iconToHTML(body, {\n ...renderAttribs,\n width: width + '',\n height: height + '',\n });\n // Generate style\n componentProps.style = {\n ...style,\n '--svg': svgToURL(html),\n 'width': fixSize(renderAttribs.width),\n 'height': fixSize(renderAttribs.height),\n ...commonProps,\n ...(useMask ? monotoneProps : coloredProps),\n ...customStyle,\n };\n return React.createElement('span', componentProps);\n};\n\n/**\n * Enable cache\n */\nfunction enableCache(storage) {\n toggleBrowserCache(storage, true);\n}\n/**\n * Disable cache\n */\nfunction disableCache(storage) {\n toggleBrowserCache(storage, false);\n}\n/**\n * Initialise stuff\n */\n// Enable short names\nallowSimpleNames(true);\n// Set API module\nsetAPIModule('', fetchAPIModule);\n/**\n * Browser stuff\n */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n // Set cache and load existing cache\n initBrowserStorage();\n const _window = window;\n // Load icons from global \"IconifyPreload\"\n if (_window.IconifyPreload !== void 0) {\n const preload = _window.IconifyPreload;\n const err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach((item) => {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' ||\n item === null ||\n item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' ||\n typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window.IconifyProviders !== void 0) {\n const providers = _window.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (let key in providers) {\n const err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n const value = providers[key];\n if (typeof value !== 'object' ||\n !value ||\n value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n }\n }\n }\n}\nclass IconComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n // Render placeholder before component is mounted\n icon: null,\n };\n }\n /**\n * Abort loading icon\n */\n _abortLoading() {\n if (this._loading) {\n this._loading.abort();\n this._loading = null;\n }\n }\n /**\n * Update state\n */\n _setData(icon) {\n if (this.state.icon !== icon) {\n this.setState({\n icon,\n });\n }\n }\n /**\n * Check if icon should be loaded\n */\n _checkIcon(changed) {\n const state = this.state;\n const icon = this.props.icon;\n // Icon is an object\n if (typeof icon === 'object' &&\n icon !== null &&\n typeof icon.body === 'string') {\n // Stop loading\n this._icon = '';\n this._abortLoading();\n if (changed || state.icon === null) {\n // Set data if it was changed\n this._setData({\n data: icon,\n });\n }\n return;\n }\n // Invalid icon?\n let iconName;\n if (typeof icon !== 'string' ||\n (iconName = stringToIcon(icon, false, true)) === null) {\n this._abortLoading();\n this._setData(null);\n return;\n }\n // Load icon\n const data = getIconData(iconName);\n if (!data) {\n // Icon data is not available\n if (!this._loading || this._loading.name !== icon) {\n // New icon to load\n this._abortLoading();\n this._icon = '';\n this._setData(null);\n if (data !== null) {\n // Icon was not loaded\n this._loading = {\n name: icon,\n abort: loadIcons([iconName], this._checkIcon.bind(this, false)),\n };\n }\n }\n return;\n }\n // Icon data is available\n if (this._icon !== icon || state.icon === null) {\n // New icon or icon has been loaded\n this._abortLoading();\n this._icon = icon;\n // Add classes\n const classes = ['iconify'];\n if (iconName.prefix !== '') {\n classes.push('iconify--' + iconName.prefix);\n }\n if (iconName.provider !== '') {\n classes.push('iconify--' + iconName.provider);\n }\n // Set data\n this._setData({\n data,\n classes,\n });\n if (this.props.onLoad) {\n this.props.onLoad(icon);\n }\n }\n }\n /**\n * Component mounted\n */\n componentDidMount() {\n this._checkIcon(false);\n }\n /**\n * Component updated\n */\n componentDidUpdate(oldProps) {\n if (oldProps.icon !== this.props.icon) {\n this._checkIcon(true);\n }\n }\n /**\n * Abort loading\n */\n componentWillUnmount() {\n this._abortLoading();\n }\n /**\n * Render\n */\n render() {\n const props = this.props;\n const icon = this.state.icon;\n if (icon === null) {\n // Render placeholder\n return props.children\n ? props.children\n : React.createElement('span', {});\n }\n // Add classes\n let newProps = props;\n if (icon.classes) {\n newProps = {\n ...props,\n className: (typeof props.className === 'string'\n ? props.className + ' '\n : '') + icon.classes.join(' '),\n };\n }\n // Render icon\n return render({\n ...defaultIconProps,\n ...icon.data,\n }, newProps, props._inline, props._ref);\n }\n}\n/**\n * Block icon\n *\n * @param props - Component properties\n */\nconst Icon = React.forwardRef(function Icon(props, ref) {\n const newProps = {\n ...props,\n _ref: ref,\n _inline: false,\n };\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Inline icon (has negative verticalAlign that makes it behave like icon font)\n *\n * @param props - Component properties\n */\nconst InlineIcon = React.forwardRef(function InlineIcon(props, ref) {\n const newProps = {\n ...props,\n _ref: ref,\n _inline: true,\n };\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n};\n\nexport { Icon, InlineIcon, _api, addAPIProvider, addCollection, addIcon, iconToSVG as buildIcon, calculateSize, disableCache, enableCache, getIcon, iconExists, listIcons, loadIcon, loadIcons, replaceIDs };\n","import { 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\";\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 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 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 }; // 在发生错误时返回 -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 console.log(this.isRender, 'this.isRender')\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","export const getSDKVersion = () => '9.1.0';\n","// i.e. 0-255 -> '00'-'ff'\nconst dec2hex = (dec: number): string => dec.toString(16).padStart(2, '0');\n\nconst generateId = (len: number): string => {\n const arr = new Uint8Array((len || 40) / 2);\n window.crypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join('');\n};\n\nconst generateRequestId = (): string => {\n if (typeof window !== 'undefined') {\n return generateId(10);\n }\n\n return new Date().getTime().toString(36);\n};\n\nexport { generateRequestId };\n","import { ErrorResponse, SDKRequestData, RequestId, SuccessResponse, MethodToResponse } from '../types/index.js';\nimport { getSDKVersion } from '../version.js';\nimport { Methods } from './methods.js';\nimport { generateRequestId } from './utils.js';\n\nclass MessageFormatter {\n static makeRequest = <M extends Methods = Methods, P = unknown>(method: M, params: P): SDKRequestData<M, P> => {\n const id = generateRequestId();\n\n return {\n id,\n method,\n params,\n env: {\n sdkVersion: getSDKVersion(),\n },\n };\n };\n\n static makeResponse = (id: RequestId, data: MethodToResponse[Methods], version: string): SuccessResponse => ({\n id,\n success: true,\n version,\n data,\n });\n\n static makeErrorResponse = (id: RequestId, error: string, version: string): ErrorResponse => ({\n id,\n success: false,\n error,\n version,\n });\n}\n\nexport { MessageFormatter };\n","export enum Methods {\n sendTransactions = 'sendTransactions',\n rpcCall = 'rpcCall',\n getChainInfo = 'getChainInfo',\n getSafeInfo = 'getSafeInfo',\n getTxBySafeTxHash = 'getTxBySafeTxHash',\n getSafeBalances = 'getSafeBalances',\n signMessage = 'signMessage',\n signTypedMessage = 'signTypedMessage',\n getEnvironmentInfo = 'getEnvironmentInfo',\n getOffChainSignature = 'getOffChainSignature',\n requestAddressBook = 'requestAddressBook',\n wallet_getPermissions = 'wallet_getPermissions',\n wallet_requestPermissions = 'wallet_requestPermissions',\n}\n\nexport enum RestrictedMethods {\n requestAddressBook = 'requestAddressBook',\n}\n","import { MessageFormatter } from './messageFormatter.js';\nimport { Methods } from './methods.js';\nimport { InterfaceMessageEvent, Communicator, Response, SuccessResponse } from '../types/index.js';\n\n// eslint-disable-next-line\ntype Callback = (response: any) => void;\n\nclass PostMessageCommunicator implements Communicator {\n private readonly allowedOrigins: RegExp[] | null = null;\n private callbacks = new Map<string, Callback>();\n private debugMode = false;\n private isServer = typeof window === 'undefined';\n\n constructor(allowedOrigins: RegExp[] | null = null, debugMode = false) {\n this.allowedOrigins = allowedOrigins;\n this.debugMode = debugMode;\n\n if (!this.isServer) {\n window.addEventListener('message', this.onParentMessage);\n }\n }\n\n private isValidMessage = ({ origin, data, source }: InterfaceMessageEvent): boolean => {\n const emptyOrMalformed = !data;\n const sentFromParentEl = !this.isServer && source === window.parent;\n const majorVersionNumber = typeof data.version !== 'undefined' && parseInt(data.version.split('.')[0]);\n const allowedSDKVersion = typeof majorVersionNumber === 'number' && majorVersionNumber >= 1;\n let validOrigin = true;\n if (Array.isArray(this.allowedOrigins)) {\n validOrigin = this.allowedOrigins.find((regExp) => regExp.test(origin)) !== undefined;\n }\n\n return !emptyOrMalformed && sentFromParentEl && allowedSDKVersion && validOrigin;\n };\n\n private logIncomingMessage = (msg: InterfaceMessageEvent): void => {\n console.info(`Safe Apps SDK v1: A message was received from origin ${msg.origin}. `, msg.data);\n };\n\n private onParentMessage = (msg: InterfaceMessageEvent): void => {\n if (this.isValidMessage(msg)) {\n this.debugMode && this.logIncomingMessage(msg);\n this.handleIncomingMessage(msg.data);\n }\n };\n\n private handleIncomingMessage = (payload: InterfaceMessageEvent['data']): void => {\n const { id } = payload;\n\n const cb = this.callbacks.get(id);\n if (cb) {\n cb(payload);\n\n this.callbacks.delete(id);\n }\n };\n\n public send = <M extends Methods, P, R>(method: M, params: P): Promise<SuccessResponse<R>> => {\n const request = MessageFormatter.makeRequest(method, params);\n\n if (this.isServer) {\n throw new Error(\"Window doesn't exist\");\n }\n\n window.parent.postMessage(request, '*');\n return new Promise((resolve, reject) => {\n this.callbacks.set(request.id, (response: Response<R>) => {\n if (!response.success) {\n reject(new Error(response.error));\n return;\n }\n\n resolve(response);\n });\n });\n };\n}\n\nexport default PostMessageCommunicator;\nexport * from './methods.js';\n","import { ChainInfo as _ChainInfo } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type ChainInfo = Pick<\n _ChainInfo,\n 'chainName' | 'chainId' | 'shortName' | 'nativeCurrency' | 'blockExplorerUriTemplate'\n>;\n\nexport { NativeCurrency } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type BaseTransaction = {\n to: string;\n value: string;\n data: string;\n};\n\nexport type GetTxBySafeTxHashParams = {\n safeTxHash: string;\n};\n\nexport interface SendTransactionRequestParams {\n safeTxGas?: number;\n}\n\nexport interface SendTransactionsParams {\n txs: BaseTransaction[];\n params?: SendTransactionRequestParams;\n}\n\nexport type GetBalanceParams = { currency?: string };\n\nexport type SignMessageParams = {\n message: string;\n};\n\nexport interface TypedDataDomain {\n name?: string;\n version?: string;\n chainId?: string | number | bigint | { toNumber: () => number };\n verifyingContract?: string;\n salt?: string;\n}\n\nexport interface TypedDataTypes {\n name: string;\n type: string;\n}\n\nexport type TypedMessageTypes = { [key: string]: TypedDataTypes[] };\n\nexport type EIP712TypedData = {\n domain: TypedDataDomain;\n types: TypedMessageTypes;\n message: Record<string, any>;\n primaryType?: string;\n};\n\nexport type SignTypedMessageParams = {\n typedData: EIP712TypedData;\n};\n\nexport type SendTransactionsResponse = {\n safeTxHash: string;\n};\n\nexport type OffChainSignMessageResponse = {\n messageHash: string;\n};\n\nexport type SignMessageResponse = SendTransactionsResponse | OffChainSignMessageResponse;\n\nexport type SafeInfo = {\n safeAddress: string;\n chainId: number;\n threshold: number;\n owners: string[];\n isReadOnly: boolean;\n};\n\nexport type SafeInfoExtended = SafeInfo & {\n nonce: number;\n implementation: string;\n modules: string[] | null;\n fallbackHandler: string | null;\n guard: string | null;\n version: string | null;\n};\n\nexport type EnvironmentInfo = {\n origin: string;\n};\n\nexport type PostMessageOptions = {\n transfer?: any[];\n};\n\nexport type AddressBookItem = {\n address: string;\n chainId: string;\n name: string;\n};\n\nexport const isObjectEIP712TypedData = (obj?: unknown): obj is EIP712TypedData => {\n return typeof obj === 'object' && obj != null && 'domain' in obj && 'types' in obj && 'message' in obj;\n};\n","import { SafeBalanceResponse, TransactionDetails, TokenInfo } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport {\n AddOwner,\n ChangeImplementation,\n ChangeThreshold,\n Creation,\n Custom,\n DataDecoded,\n DetailedExecutionInfo,\n DisableModule,\n EnableModule,\n Erc20Transfer,\n Erc721Transfer,\n InternalTransaction,\n ModuleExecutionDetails,\n MultiSend,\n MultisigConfirmation,\n MultisigExecutionDetails,\n NativeCoinTransfer,\n Operation,\n Parameter,\n RemoveOwner,\n SafeAppInfo,\n SetFallbackHandler,\n SettingsChange,\n SettingsInfo,\n SwapOwner,\n TokenInfo,\n TokenType,\n TransactionData,\n TransactionInfo,\n TransactionStatus,\n Transfer,\n TransferDirection,\n TransferInfo,\n} from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type GatewayTransactionDetails = TransactionDetails;\n\nexport type TokenBalance = {\n tokenInfo: TokenInfo;\n balance: string;\n fiatBalance: string;\n fiatConversion: string;\n};\n\nexport type SafeBalances = SafeBalanceResponse;\n","import { Methods } from '../communication/methods.js';\nimport {\n GatewayTransactionDetails,\n SignMessageParams,\n SendTransactionsParams,\n GetTxBySafeTxHashParams,\n Communicator,\n SendTransactionsResponse,\n SignTypedMessageParams,\n EIP712TypedData,\n isObjectEIP712TypedData,\n SignMessageResponse,\n} from '../types/index.js';\n\nclass TXs {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getBySafeTxHash(safeTxHash: string): Promise<GatewayTransactionDetails> {\n if (!safeTxHash) {\n throw new Error('Invalid safeTxHash');\n }\n\n const response = await this.communicator.send<\n Methods.getTxBySafeTxHash,\n GetTxBySafeTxHashParams,\n GatewayTransactionDetails\n >(Methods.getTxBySafeTxHash, { safeTxHash });\n\n return response.data;\n }\n\n async signMessage(message: string): Promise<SignMessageResponse> {\n const messagePayload = {\n message,\n };\n\n const response = await this.communicator.send<Methods.signMessage, SignMessageParams, SignMessageResponse>(\n Methods.signMessage,\n messagePayload,\n );\n\n return response.data;\n }\n\n async signTypedMessage(typedData: EIP712TypedData): Promise<SignMessageResponse> {\n if (!isObjectEIP712TypedData(typedData)) {\n throw new Error('Invalid typed data');\n }\n\n const response = await this.communicator.send<\n Methods.signTypedMessage,\n SignTypedMessageParams,\n SignMessageResponse\n >(Methods.signTypedMessage, { typedData });\n\n return response.data;\n }\n\n async send({ txs, params }: SendTransactionsParams): Promise<SendTransactionsResponse> {\n if (!txs || !txs.length) {\n throw new Error('No transactions were passed');\n }\n\n const messagePayload = {\n txs,\n params,\n };\n\n const response = await this.communicator.send<\n Methods.sendTransactions,\n SendTransactionsParams,\n SendTransactionsResponse\n >(Methods.sendTransactions, messagePayload);\n\n return response.data;\n }\n}\n\nexport { TXs };\n","export const RPC_CALLS = {\n eth_call: 'eth_call',\n eth_gasPrice: 'eth_gasPrice',\n eth_getLogs: 'eth_getLogs',\n eth_getBalance: 'eth_getBalance',\n eth_getCode: 'eth_getCode',\n eth_getBlockByHash: 'eth_getBlockByHash',\n eth_getBlockByNumber: 'eth_getBlockByNumber',\n eth_getStorageAt: 'eth_getStorageAt',\n eth_getTransactionByHash: 'eth_getTransactionByHash',\n eth_getTransactionReceipt: 'eth_getTransactionReceipt',\n eth_getTransactionCount: 'eth_getTransactionCount',\n eth_estimateGas: 'eth_estimateGas',\n safe_setSettings: 'safe_setSettings',\n} as const;\n","import { RPC_CALLS } from '../eth/constants.js';\nimport {\n BlockNumberArg,\n RpcCallNames,\n Communicator,\n Log,\n BlockTransactionString,\n BlockTransactionObject,\n Web3TransactionObject,\n RPCPayload,\n TransactionConfig,\n Web3TransactionReceiptObject,\n PastLogsOptions,\n SafeSettings,\n} from '../types/index.js';\nimport { Methods } from '../communication/methods.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Formatter = (arg: any) => any;\n\nconst inputFormatters: Record<string, Formatter> = {\n defaultBlockParam: (arg = 'latest') => arg,\n returnFullTxObjectParam: (arg = false): boolean => arg,\n blockNumberToHex: (arg: BlockNumberArg): string =>\n Number.isInteger(arg) ? `0x${arg.toString(16)}` : (arg as string),\n};\n\ntype BuildRequestArgs = {\n call: RpcCallNames;\n formatters?: (Formatter | null)[];\n};\n\nclass Eth {\n public call;\n public getBalance;\n public getCode;\n public getStorageAt;\n public getPastLogs;\n public getBlockByHash;\n public getBlockByNumber;\n public getTransactionByHash;\n public getTransactionReceipt;\n public getTransactionCount;\n public getGasPrice;\n public getEstimateGas;\n public setSafeSettings;\n\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n this.call = this.buildRequest<[TransactionConfig, string?], string>({\n call: RPC_CALLS.eth_call,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getBalance = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getBalance,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getCode = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getCode,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getStorageAt = this.buildRequest<[string, number, string?], string>({\n call: RPC_CALLS.eth_getStorageAt,\n formatters: [null, inputFormatters.blockNumberToHex, inputFormatters.defaultBlockParam],\n });\n this.getPastLogs = this.buildRequest<[PastLogsOptions], Log[]>({\n call: RPC_CALLS.eth_getLogs,\n });\n this.getBlockByHash = this.buildRequest<[string, boolean?], BlockTransactionString | BlockTransactionObject>({\n call: RPC_CALLS.eth_getBlockByHash,\n formatters: [null, inputFormatters.returnFullTxObjectParam],\n });\n this.getBlockByNumber = this.buildRequest<\n [BlockNumberArg, boolean?],\n BlockTransactionString | BlockTransactionObject\n >({\n call: RPC_CALLS.eth_getBlockByNumber,\n formatters: [inputFormatters.blockNumberToHex, inputFormatters.returnFullTxObjectParam],\n });\n this.getTransactionByHash = this.buildRequest<[string], Web3TransactionObject>({\n call: RPC_CALLS.eth_getTransactionByHash,\n });\n this.getTransactionReceipt = this.buildRequest<[string], Web3TransactionReceiptObject>({\n call: RPC_CALLS.eth_getTransactionReceipt,\n });\n this.getTransactionCount = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getTransactionCount,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getGasPrice = this.buildRequest<never[], string>({\n call: RPC_CALLS.eth_gasPrice,\n });\n this.getEstimateGas = (transaction: TransactionConfig): Promise<number> =>\n this.buildRequest<[TransactionConfig], number>({\n call: RPC_CALLS.eth_estimateGas,\n })([transaction]);\n this.setSafeSettings = this.buildRequest<[SafeSettings], SafeSettings>({\n call: RPC_CALLS.safe_setSettings,\n });\n }\n\n private buildRequest<P = never[], R = unknown>(args: BuildRequestArgs) {\n const { call, formatters } = args;\n\n return async (params?: P): Promise<R> => {\n if (formatters && Array.isArray(params)) {\n formatters.forEach((formatter: ((...args: unknown[]) => unknown) | null, i) => {\n if (formatter) {\n params[i] = formatter(params[i]);\n }\n });\n }\n\n const payload: RPCPayload<P> = {\n call,\n params: params || [],\n };\n\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<P>, R>(Methods.rpcCall, payload);\n\n return response.data;\n };\n }\n}\n\nexport { Eth };\n","import { encodeFunctionData, Address, hashMessage, hashTypedData } from 'viem';\nimport { MAGIC_VALUE_BYTES, MAGIC_VALUE } from './signatures.js';\nimport { Methods } from '../communication/methods.js';\nimport { RPC_CALLS } from '../eth/constants.js';\nimport {\n Communicator,\n ChainInfo,\n SafeBalances,\n GetBalanceParams,\n RPCPayload,\n TransactionConfig,\n EnvironmentInfo,\n AddressBookItem,\n isObjectEIP712TypedData,\n EIP712TypedData,\n SafeInfoExtended,\n} from '../types/index.js';\nimport requirePermission from '../decorators/requirePermissions.js';\n\nclass Safe {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getChainInfo(): Promise<ChainInfo> {\n const response = await this.communicator.send<Methods.getChainInfo, undefined, ChainInfo>(\n Methods.getChainInfo,\n undefined,\n );\n\n return response.data;\n }\n\n async getInfo(): Promise<SafeInfoExtended> {\n const response = await this.communicator.send<Methods.getSafeInfo, undefined, SafeInfoExtended>(\n Methods.getSafeInfo,\n undefined,\n );\n\n return response.data;\n }\n\n // There is a possibility that this method will change because we may add pagination to the endpoint\n async experimental_getBalances({ currency = 'usd' }: GetBalanceParams = {}): Promise<SafeBalances> {\n const response = await this.communicator.send<Methods.getSafeBalances, { currency: string }, SafeBalances>(\n Methods.getSafeBalances,\n {\n currency,\n },\n );\n\n return response.data;\n }\n\n private async check1271Signature(messageHash: string, signature = '0x'): Promise<boolean> {\n const safeInfo = await this.getInfo();\n\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_dataHash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ] as const,\n functionName: 'isValidSignature',\n args: [messageHash as Address, signature as Address],\n });\n\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n try {\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<[TransactionConfig, string]>, string>(\n Methods.rpcCall,\n payload,\n );\n\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE;\n } catch (err) {\n return false;\n }\n }\n\n private async check1271SignatureBytes(messageHash: string, signature = '0x'): Promise<boolean> {\n const safeInfo = await this.getInfo();\n\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_data',\n type: 'bytes',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ] as const,\n functionName: 'isValidSignature',\n args: [messageHash as Address, signature as Address],\n });\n\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n\n try {\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<[TransactionConfig, string]>, string>(\n Methods.rpcCall,\n payload,\n );\n\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE_BYTES;\n } catch (err) {\n return false;\n }\n }\n\n calculateMessageHash(message: string): string {\n return hashMessage(message);\n }\n\n calculateTypedMessageHash(typedMessage: EIP712TypedData): string {\n const chainId =\n typeof typedMessage.domain.chainId === 'object'\n ? typedMessage.domain.chainId.toNumber()\n : Number(typedMessage.domain.chainId);\n\n let primaryType = typedMessage.primaryType;\n if (!primaryType) {\n const fields = Object.values(typedMessage.types);\n // We try to infer primaryType (simplified ether's version)\n const primaryTypes = Object.keys(typedMessage.types).filter((typeName) =>\n fields.every((dataTypes) => dataTypes.every(({ type }) => type.replace('[', '').replace(']', '') !== typeName)),\n );\n if (primaryTypes.length === 0 || primaryTypes.length > 1) throw new Error('Please specify primaryType');\n primaryType = primaryTypes[0];\n }\n\n return hashTypedData({\n message: typedMessage.message,\n domain: {\n ...typedMessage.domain,\n chainId,\n verifyingContract: typedMessage.domain.verifyingContract as Address,\n salt: typedMessage.domain.salt as Address,\n },\n types: typedMessage.types,\n primaryType,\n });\n }\n\n async getOffChainSignature(messageHash: string): Promise<string> {\n const response = await this.communicator.send<Methods.getOffChainSignature, string, string>(\n Methods.getOffChainSignature,\n messageHash,\n );\n\n return response.data;\n }\n\n async isMessageSigned(message: string | EIP712TypedData, signature = '0x'): Promise<boolean> {\n let check: (() => Promise<boolean>) | undefined;\n if (typeof message === 'string') {\n check = async (): Promise<boolean> => {\n const messageHash = this.calculateMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n\n if (isObjectEIP712TypedData(message)) {\n check = async (): Promise<boolean> => {\n const messageHash = this.calculateTypedMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n if (check) {\n const isValid = await check();\n\n return isValid;\n }\n\n throw new Error('Invalid message type');\n }\n\n async isMessageHashSigned(messageHash: string, signature = '0x'): Promise<boolean> {\n const checks = [this.check1271Signature.bind(this), this.check1271SignatureBytes.bind(this)];\n\n for (const check of checks) {\n const isValid = await check(messageHash, signature);\n if (isValid) {\n return true;\n }\n }\n\n return false;\n }\n\n async getEnvironmentInfo(): Promise<EnvironmentInfo> {\n const response = await this.communicator.send<Methods.getEnvironmentInfo, undefined, EnvironmentInfo>(\n Methods.getEnvironmentInfo,\n undefined,\n );\n\n return response.data;\n }\n\n @requirePermission()\n async requestAddressBook(): Promise<AddressBookItem[]> {\n const response = await this.communicator.send<Methods.requestAddressBook, undefined, AddressBookItem[]>(\n Methods.requestAddressBook,\n undefined,\n );\n\n return response.data;\n }\n}\n\nexport { Safe };\n","const MAGIC_VALUE = '0x1626ba7e';\nconst MAGIC_VALUE_BYTES = '0x20c13b0b';\n\nexport { MAGIC_VALUE, MAGIC_VALUE_BYTES };\n","export type Permission = {\n parentCapability: string;\n invoker: string;\n date?: number;\n caveats?: PermissionCaveat[];\n};\n\nexport type PermissionRequest = {\n [method: string]: Record<string, unknown>;\n};\n\nexport type PermissionCaveat = {\n type: string;\n value?: unknown;\n name?: string;\n};\n\nexport const PERMISSIONS_REQUEST_REJECTED = 4001;\n\nexport class PermissionsError extends Error {\n public code: number;\n public data?: unknown;\n\n constructor(message: string, code: number, data?: unknown) {\n super(message);\n\n this.code = code;\n this.data = data;\n\n // Should adjust prototype manually because how TS handles the type extension compilation\n // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, PermissionsError.prototype);\n }\n}\n","import { Methods, RestrictedMethods } from '../communication/methods.js';\nimport { Communicator } from '../types/index.js';\nimport { PermissionRequest, Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\n\nclass Wallet {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getPermissions(): Promise<Permission[]> {\n const response = await this.communicator.send<Methods.wallet_getPermissions, undefined, Permission[]>(\n Methods.wallet_getPermissions,\n undefined,\n );\n\n return response.data;\n }\n\n async requestPermissions(permissions: PermissionRequest[]): Promise<Permission[]> {\n if (!this.isPermissionRequestValid(permissions)) {\n throw new PermissionsError('Permissions request is invalid', PERMISSIONS_REQUEST_REJECTED);\n }\n\n try {\n const response = await this.communicator.send<\n Methods.wallet_requestPermissions,\n PermissionRequest[],\n Permission[]\n >(Methods.wallet_requestPermissions, permissions);\n\n return response.data;\n } catch {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n }\n\n isPermissionRequestValid(permissions: PermissionRequest[]): boolean {\n return permissions.every((pr: PermissionRequest) => {\n if (typeof pr === 'object') {\n return Object.keys(pr).every((method) => {\n if (Object.values(RestrictedMethods).includes(method as RestrictedMethods)) {\n return true;\n }\n\n return false;\n });\n }\n\n return false;\n });\n }\n}\n\nexport { Wallet };\n","import { Methods } from '../communication/index.js';\nimport { Safe } from '../safe/index.js';\nimport { Wallet } from '../wallet/index.js';\n\nimport { Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\n\nconst hasPermission = (required: Methods, permissions: Permission[]): boolean =>\n permissions.some((permission) => permission.parentCapability === required);\n\nconst requirePermission = () => (_: unknown, propertyKey: string, descriptor: PropertyDescriptor) => {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function () {\n // @ts-expect-error accessing private property from decorator. 'this' context is the class instance\n const wallet = new Wallet((this as Safe).communicator);\n\n let currentPermissions = await wallet.getPermissions();\n\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\n currentPermissions = await wallet.requestPermissions([{ [propertyKey as Methods]: {} }]);\n }\n\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n\n return originalMethod.apply(this);\n };\n\n return descriptor;\n};\n\nexport default requirePermission;\n","import { Communicator } from './types/index.js';\nimport InterfaceCommunicator from './communication/index.js';\nimport { TXs } from './txs/index.js';\nimport { Eth } from './eth/index.js';\nimport { Safe } from './safe/index.js';\nimport { Wallet } from './wallet/index.js';\n\nexport type Opts = {\n allowedDomains?: RegExp[];\n debug?: boolean;\n};\n\nclass SafeAppsSDK {\n private readonly communicator: Communicator;\n public readonly eth: Eth;\n public readonly txs: TXs;\n public readonly safe: Safe;\n public readonly wallet: Wallet;\n\n constructor(opts: Opts = {}) {\n const { allowedDomains = null, debug = false } = opts;\n\n this.communicator = new InterfaceCommunicator(allowedDomains, debug);\n this.eth = new Eth(this.communicator);\n this.txs = new TXs(this.communicator);\n this.safe = new Safe(this.communicator);\n this.wallet = new Wallet(this.communicator);\n }\n}\n\nexport default SafeAppsSDK;\n","import SDK from './sdk.js';\n\nexport default SDK;\nexport * from './sdk.js';\nexport * from './types/index.js';\nexport * from './communication/methods.js';\nexport * from './communication/messageFormatter.js';\nexport { getSDKVersion } from './version.js';\nexport * from './eth/constants.js';\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 { Chain, Wallet, useConnectModal, getDefaultConfig, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { walletConnectWallet, metaMaskWallet, iopayWallet, okxWallet, binanceWallet } 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[] = [iotex];\n defaultChainId = 4689;\n\n set(params: Partial<WalletConfigStore>) {\n Object.assign(this, params);\n }\n\n get rainbowKitConfig() {\n console.log(`rainbowKitConfig-${this.supportedChains?.map(i => i.id).join('-')}`)\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],\n }]\n });\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/utils.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/endpoint.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/config.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-info.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-apps.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/transactions.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/chains.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/common.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/master-copies.js","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/decoded-data.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/safe-messages.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/types/notifications.ts","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/dist/types/relay.js","../../../node_modules/@safe-global/safe-gateway-typescript-sdk/src/index.ts","../module/Wallet/provider.tsx","../module/Wallet/index.tsx","../../../node_modules/@iconify/react/dist/iconify.mjs","../module/Wallet/walletPluginStore.tsx","../../../node_modules/@safe-global/safe-apps-sdk/src/version.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/utils.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/messageFormatter.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/methods.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/communication/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/sdk.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/gateway.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/txs/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/eth/constants.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/eth/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/safe/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/safe/signatures.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/types/permissions.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/wallet/index.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/decorators/requirePermissions.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/sdk.ts","../../../node_modules/@safe-global/safe-apps-sdk/src/index.ts","../module/Wallet/SuccessTxDialog/index.tsx","../module/Wallet/walletConfigStore.ts","../module/Wallet/type.ts"],"names":["ImplementationVersionState","SafeAppAccessPolicyTypes","SafeAppFeatures","SafeAppSocialPlatforms","Operation","TransactionStatus","TransferDirection","TransactionTokenType","SettingsInfoType","TransactionInfoType","ConflictType","TransactionListItemType","DetailedExecutionInfoType","DurationType","StartTimeValue","LabelValue","RPC_AUTHENTICATION","GAS_PRICE_TYPE","FEATURES","TokenType","ConfirmationViewTypes","SafeMessageListItemType","SafeMessageStatus","DeviceType","React","useEffect","observer","useConnectModal","storage","localStorage","simpleNames","send","_window","Icon","InlineIcon","Methods","RestrictedMethods","_a","iotex"],"mappings":"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","sourcesContent":[null,null,null,null,null,null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=master-copies.js.map",null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=relay.js.map",null,"import { Chain, RainbowKitProvider, Wallet, connectorsForWallets, darkTheme, lightTheme } from '@rainbow-me/rainbowkit';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport React, { useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { WagmiProvider } from 'wagmi';\nimport { RootStore } from \"../../store\";\nimport { WalletStore } from '.';\nimport { WalletConfigStore } from './walletConfigStore'\n\nconst queryClient = new QueryClient();\nexport const WalletProvider = observer(({\n children,\n theme,\n appName\n}: {\n children: React.ReactNode,\n theme?: 'dark' | 'light',\n appName?: string,\n}) => {\n const walletConfig = RootStore.Get(WalletConfigStore);\n\n useEffect(() => {\n if (appName) {\n walletConfig.appName = appName\n }\n }, [appName])\n return (\n //@ts-ignore\n <WagmiProvider config={walletConfig.rainbowKitConfig} reconnectOnMount={true}>\n <QueryClientProvider client={queryClient} >\n <RainbowKitProvider locale=\"en\" theme={theme == 'dark' ? darkTheme() : lightTheme()}>\n {/* @ts-ignore */}\n {children}\n <WalletConnect />\n </RainbowKitProvider>\n </QueryClientProvider>\n </WagmiProvider>\n );\n});\n\nexport const WalletConnect = () => {\n const wallet = RootStore.Get(WalletStore);\n wallet.use();\n return <></>;\n};\n","import React, { useEffect } from \"react\";\nimport { Store } from \"../../store/standard/base\";\nimport { Account, PublicClient, type HttpTransport, WalletClient, TransactionReceipt } from \"viem\";\nimport { PromiseHook } from '../../store/standard/PromiseHook';\nimport { BigNumberState } from '../../store/standard/BigNumberState';\nimport BigNumber from 'bignumber.js';\nimport { AddressMode, WalletTransactionHistoryType } from \"./type\";\nimport EventEmitter from \"events\";\nimport { SwitchChainMutate } from \"wagmi/query\";\nimport { Config, useAccount, useConnect, useDisconnect, useSwitchChain, useWalletClient, } from \"wagmi\";\nimport { Chain, useConnectModal, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { RootStore } from \"../../store\";\nimport { ToastPlugin } from \"../Toast/Toast\";\nimport { http, createPublicClient } from 'viem';\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\";\n\nexport class WalletStore implements Store {\n sid = 'wallet';\n autoObservable = true;\n account: `0x${string}` = '0x...';\n isSuccessDialogOpen = false;\n isInSafeApp = false;\n isConnect = false;\n walletClient: WalletClient;\n event = new EventEmitter();\n switchChain: SwitchChainMutate<Config, unknown> | undefined;\n updateTicker = 0;\n addressMode: AddressMode = '0x';\n get isIoTeXChain(): boolean {\n if (this.chain && this.chain.id == 4689) {\n return true\n }\n return false\n }\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 new BigNumberState({ value: new BigNumber(0) });\n const balance = await this.publicClient.getBalance({\n address: this.account,\n });\n if (balance) {\n return new BigNumberState({ value: new BigNumber(balance?.toString() ?? '0') });\n }\n },\n });\n\n constructor(args?: Partial<WalletStore>) {\n Object.assign(this, args);\n }\n\n get reconnectOnMount() {\n if (!this.isConnect && this.updateTicker == 0) {\n return true\n }\n if (!this.isConnect && this.updateTicker != 0) {\n return false\n }\n if (this.isConnect) {\n return true\n }\n }\n\n\n use() {\n console.log('use wallet')\n const { data: walletClient, isSuccess } = useWalletClient();\n const { chain, address, isConnected } = useAccount();\n const { switchChain } = useSwitchChain();\n const { openConnectModal } = useConnectModal();\n const { connect } = useConnect();\n const { disconnect } = useDisconnect();\n this.set({\n //@ts-ignore\n connect,\n // @ts-ignore \n walletClient,\n openConnectModal,\n switchChain,\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 (this.account) {\n this.updateTicker++;\n this.event.emit('walletAccount:ready');\n }\n }, [address, isConnected, chain])\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 promise = new Promise<void>(async (res, rej) => {\n if (!window) return;\n if (this.account) {\n if (Number(this.chain?.id) == Number(chainId)) {\n res();\n return;\n }\n this.switchChain?.({ chainId: chainId ?? 4689 });\n const interval = setInterval(() => {\n if (this.switchChain) {\n if (this.chain?.id == chainId) {\n try {\n // //@ts-ignore\n // const provider = new ethers.providers.Web3Provider(window?.ethereum);\n // this.signer = provider.getSigner();\n } catch (error) { }\n clearInterval(interval);\n res();\n }\n }\n }, 1000);\n } else {\n try {\n this.openConnectModal();\n // this.connect?.({ chainId, connector: this.rainbowkitParams.connectors()[0] }) connect success but ui not change so\n const interval = setInterval(() => {\n if (this.account) {\n clearInterval(interval);\n res();\n }\n }, 1000);\n } catch (error) {\n rej(error);\n }\n }\n });\n\n await promise;\n return this;\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('user rejected transaction') || String(error).toLowerCase().includes('user rejected') || String(error).toLowerCase().includes('user 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?.(msg);\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?.(messageArr[0]);\n }\n } else {\n toast.error(String(error?.message || error));\n onError?.(String(error?.message || error));\n }\n }\n } else {\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?: ({ res }: { res: TransactionReceipt }) => 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 // console.log(hash)\n let receipt = await this.waitForTransactionReceipt({ hash });\n console.log(receipt);\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({ res: receipt });\n toast.dismiss();\n toast.error('The transaction failed');\n }\n return receipt;\n } catch (error) {\n toast.dismiss();\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('user rejected transaction') || error?.message?.includes('cancel') || String(error).toLowerCase().includes('user 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?.(messageArr[0]);\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 throw error;\n }\n }\n }\n}","import React from 'react';\n\nconst matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n // Allow provider without '@': \"provider:prefix:name\"\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIconName(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIconName(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIconName(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIconName = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!((icon.provider === \"\" || icon.provider.match(matchIconName)) && (allowSimpleName && icon.prefix === \"\" || icon.prefix.match(matchIconName)) && icon.name.match(matchIconName));\n};\n\nconst defaultIconDimensions = Object.freeze(\n {\n left: 0,\n top: 0,\n width: 16,\n height: 16\n }\n);\nconst defaultIconTransformations = Object.freeze({\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nconst defaultIconProps = Object.freeze({\n ...defaultIconDimensions,\n ...defaultIconTransformations\n});\nconst defaultExtendedIconProps = Object.freeze({\n ...defaultIconProps,\n body: \"\",\n hidden: false\n});\n\nfunction mergeIconTransformations(obj1, obj2) {\n const result = {};\n if (!obj1.hFlip !== !obj2.hFlip) {\n result.hFlip = true;\n }\n if (!obj1.vFlip !== !obj2.vFlip) {\n result.vFlip = true;\n }\n const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n if (rotate) {\n result.rotate = rotate;\n }\n return result;\n}\n\nfunction mergeIconData(parent, child) {\n const result = mergeIconTransformations(parent, child);\n for (const key in defaultExtendedIconProps) {\n if (key in defaultIconTransformations) {\n if (key in parent && !(key in result)) {\n result[key] = defaultIconTransformations[key];\n }\n } else if (key in child) {\n result[key] = child[key];\n } else if (key in parent) {\n result[key] = parent[key];\n }\n }\n return result;\n}\n\nfunction getIconsTree(data, names) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n const resolved = /* @__PURE__ */ Object.create(null);\n function resolve(name) {\n if (icons[name]) {\n return resolved[name] = [];\n }\n if (!(name in resolved)) {\n resolved[name] = null;\n const parent = aliases[name] && aliases[name].parent;\n const value = parent && resolve(parent);\n if (value) {\n resolved[name] = [parent].concat(value);\n }\n }\n return resolved[name];\n }\n (names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n return resolved;\n}\n\nfunction internalGetIconData(data, name, tree) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n let currentProps = {};\n function parse(name2) {\n currentProps = mergeIconData(\n icons[name2] || aliases[name2],\n currentProps\n );\n }\n parse(name);\n tree.forEach(parse);\n return mergeIconData(data, currentProps);\n}\n\nfunction parseIconSet(data, callback) {\n const names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach((name) => {\n callback(name, null);\n names.push(name);\n });\n }\n const tree = getIconsTree(data);\n for (const name in tree) {\n const item = tree[name];\n if (item) {\n callback(name, internalGetIconData(data, name, item));\n names.push(name);\n }\n }\n return names;\n}\n\nconst optionalPropertyDefaults = {\n provider: \"\",\n aliases: {},\n not_found: {},\n ...defaultIconDimensions\n};\nfunction checkOptionalProps(item, defaults) {\n for (const prop in defaults) {\n if (prop in item && typeof item[prop] !== typeof defaults[prop]) {\n return false;\n }\n }\n return true;\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n const data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n if (!checkOptionalProps(obj, optionalPropertyDefaults)) {\n return null;\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (!name.match(matchIconName) || typeof icon.body !== \"string\" || !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )) {\n return null;\n }\n }\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (!name.match(matchIconName) || typeof parent !== \"string\" || !icons[parent] && !aliases[parent] || !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )) {\n return null;\n }\n }\n return data;\n}\n\nconst dataStorage = /* @__PURE__ */ Object.create(null);\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ new Set()\n };\n}\nfunction getStorage(provider, prefix) {\n const providerStorage = dataStorage[provider] || (dataStorage[provider] = /* @__PURE__ */ Object.create(null));\n return providerStorage[prefix] || (providerStorage[prefix] = newStorage(provider, prefix));\n}\nfunction addIconSet(storage, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage.icons[name] = icon;\n } else {\n storage.missing.add(name);\n }\n });\n}\nfunction addIconToStorage(storage, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage.icons[name] = { ...icon };\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n const providers = typeof provider === \"string\" ? [provider] : Object.keys(dataStorage);\n providers.forEach((provider2) => {\n const prefixes = typeof provider2 === \"string\" && typeof prefix === \"string\" ? [prefix] : Object.keys(dataStorage[provider2] || {});\n prefixes.forEach((prefix2) => {\n const storage = getStorage(provider2, prefix2);\n allIcons = allIcons.concat(\n Object.keys(storage.icons).map(\n (name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name\n )\n );\n });\n });\n return allIcons;\n}\n\nlet simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n const icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n if (icon) {\n const storage = getStorage(icon.provider, icon.prefix);\n const iconName = icon.name;\n return storage.icons[iconName] || (storage.missing.has(iconName) ? null : void 0);\n }\n}\nfunction addIcon(name, data) {\n const icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n const storage = getStorage(icon.provider, icon.prefix);\n return addIconToStorage(storage, icon.name, data);\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = data.provider || \"\";\n }\n if (simpleNames && !provider && !data.prefix) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (icon && addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n const prefix = data.prefix;\n if (!validateIconName({\n provider,\n prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconExists(name) {\n return !!getIconData(name);\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? {\n ...defaultIconProps,\n ...result\n } : null;\n}\n\nconst defaultIconSizeCustomisations = Object.freeze({\n width: null,\n height: null\n});\nconst defaultIconCustomisations = Object.freeze({\n // Dimensions\n ...defaultIconSizeCustomisations,\n // Transformations\n ...defaultIconTransformations\n});\n\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision || 100;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nconst isUnsetKeyword = (value) => value === \"unset\" || value === \"undefined\" || value === \"none\";\nfunction iconToSVG(icon, customisations) {\n const fullIcon = {\n ...defaultIconProps,\n ...icon\n };\n const fullCustomisations = {\n ...defaultIconCustomisations,\n ...customisations\n };\n const box = {\n left: fullIcon.left,\n top: fullIcon.top,\n width: fullIcon.width,\n height: fullIcon.height\n };\n let body = fullIcon.body;\n [fullIcon, fullCustomisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\n \"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\"\n );\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\n \"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\"\n );\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\n \"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n case 2:\n transformations.unshift(\n \"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\"\n );\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\n \"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== box.top) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = '<g transform=\"' + transformations.join(\" \") + '\">' + body + \"</g>\";\n }\n });\n const customisationsWidth = fullCustomisations.width;\n const customisationsHeight = fullCustomisations.height;\n const boxWidth = box.width;\n const boxHeight = box.height;\n let width;\n let height;\n if (customisationsWidth === null) {\n height = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n width = calculateSize(height, boxWidth / boxHeight);\n } else {\n width = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n }\n const attributes = {};\n const setAttr = (prop, value) => {\n if (!isUnsetKeyword(value)) {\n attributes[prop] = value.toString();\n }\n };\n setAttr(\"width\", width);\n setAttr(\"height\", height);\n attributes.viewBox = box.left.toString() + \" \" + box.top.toString() + \" \" + boxWidth.toString() + \" \" + boxHeight.toString();\n return {\n attributes,\n body\n };\n}\n\nconst regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n const suffix = \"suffix\" + (Math.random() * 16777216 | Date.now()).toString(16);\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(\n // Allowed characters before id: [#;\"]\n // Allowed characters after id: [)\"], .[a-z]\n new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"),\n \"$1\" + newID + suffix + \"$3\"\n );\n });\n body = body.replace(new RegExp(suffix, \"g\"), \"\");\n return body;\n}\n\nconst storage = /* @__PURE__ */ Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\n\nfunction createAPIConfig(source) {\n let resources;\n if (typeof source.resources === \"string\") {\n resources = [source.resources];\n } else {\n resources = source.resources;\n if (!(resources instanceof Array) || !resources.length) {\n return null;\n }\n }\n const result = {\n // API hosts\n resources,\n // Root path\n path: source.path || \"/\",\n // URL length limit\n maxURL: source.maxURL || 500,\n // Timeout before next host is used.\n rotate: source.rotate || 750,\n // Timeout before failing query.\n timeout: source.timeout || 5e3,\n // Randomise default API end point.\n random: source.random === true,\n // Start index\n index: source.index || 0,\n // Receive data after time out (used if time out kicks in first, then API module sends data anyway).\n dataAfterTimeout: source.dataAfterTimeout !== false\n };\n return result;\n}\nconst configStorage = /* @__PURE__ */ Object.create(null);\nconst fallBackAPISources = [\n \"https://api.simplesvg.com\",\n \"https://api.unisvg.com\"\n];\nconst fallBackAPI = [];\nwhile (fallBackAPISources.length > 0) {\n if (fallBackAPISources.length === 1) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n if (Math.random() > 0.5) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n fallBackAPI.push(fallBackAPISources.pop());\n }\n }\n}\nconfigStorage[\"\"] = createAPIConfig({\n resources: [\"https://api.iconify.design\"].concat(fallBackAPI)\n});\nfunction addAPIProvider(provider, customConfig) {\n const config = createAPIConfig(customConfig);\n if (config === null) {\n return false;\n }\n configStorage[provider] = config;\n return true;\n}\nfunction getAPIConfig(provider) {\n return configStorage[provider];\n}\nfunction listAPIProviders() {\n return Object.keys(configStorage);\n}\n\nconst detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n};\nlet fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n const config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n let result;\n if (!config.maxURL) {\n result = 0;\n } else {\n let maxHostLength = 0;\n config.resources.forEach((item) => {\n const host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n const url = prefix + \".json?icons=\";\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n const maxLength = calculateMaxLength(provider, prefix);\n const type = \"icons\";\n let item = {\n type,\n provider,\n prefix,\n icons: []\n };\n let length = 0;\n icons.forEach((name, index) => {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type,\n provider,\n prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n const config = getAPIConfig(provider);\n if (config) {\n return config.path;\n }\n }\n return \"/\";\n}\nconst send = (host, params, callback) => {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n let path = getPath(params.provider);\n switch (params.type) {\n case \"icons\": {\n const prefix = params.prefix;\n const icons = params.icons;\n const iconsList = icons.join(\",\");\n const urlParams = new URLSearchParams({\n icons: iconsList\n });\n path += prefix + \".json?\" + urlParams.toString();\n break;\n }\n case \"custom\": {\n const uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n const status = response.status;\n if (status !== 200) {\n setTimeout(() => {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then((data) => {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(() => {\n if (data === 404) {\n callback(\"abort\", data);\n } else {\n callback(\"next\", defaultError);\n }\n });\n return;\n }\n setTimeout(() => {\n callback(\"success\", data);\n });\n }).catch(() => {\n callback(\"next\", defaultError);\n });\n};\nconst fetchAPIModule = {\n prepare,\n send\n};\n\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = /* @__PURE__ */ Object.create(null);\n icons.sort((a, b) => {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n let lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach((icon) => {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const providerStorage = storage[provider] || (storage[provider] = /* @__PURE__ */ Object.create(null));\n const localStorage = providerStorage[prefix] || (providerStorage[prefix] = getStorage(provider, prefix));\n let list;\n if (name in localStorage.icons) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing.has(name)) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n const item = {\n provider,\n prefix,\n name\n };\n list.push(item);\n });\n return result;\n}\n\nfunction removeCallback(storages, id) {\n storages.forEach((storage) => {\n const items = storage.loaderCallbacks;\n if (items) {\n storage.loaderCallbacks = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(storage) {\n if (!storage.pendingCallbacksFlag) {\n storage.pendingCallbacksFlag = true;\n setTimeout(() => {\n storage.pendingCallbacksFlag = false;\n const items = storage.loaderCallbacks ? storage.loaderCallbacks.slice(0) : [];\n if (!items.length) {\n return;\n }\n let hasPending = false;\n const provider = storage.provider;\n const prefix = storage.prefix;\n items.forEach((item) => {\n const icons = item.icons;\n const oldLength = icons.pending.length;\n icons.pending = icons.pending.filter((icon) => {\n if (icon.prefix !== prefix) {\n return true;\n }\n const name = icon.name;\n if (storage.icons[name]) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing.has(name)) {\n icons.missing.push({\n provider,\n prefix,\n name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([storage], item.id);\n }\n item.callback(\n icons.loaded.slice(0),\n icons.missing.slice(0),\n icons.pending.slice(0),\n item.abort\n );\n }\n });\n });\n }\n}\nlet idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n const id = idCounter++;\n const abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n const item = {\n id,\n icons,\n callback,\n abort\n };\n pendingSources.forEach((storage) => {\n (storage.loaderCallbacks || (storage.loaderCallbacks = [])).push(item);\n });\n return abort;\n}\n\nfunction listToIcons(list, validate = true, simpleNames = false) {\n const result = [];\n list.forEach((item) => {\n const icon = typeof item === \"string\" ? stringToIcon(item, validate, simpleNames) : item;\n if (icon) {\n result.push(icon);\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n const resourcesCount = config.resources.length;\n const startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n let resources;\n if (config.random) {\n let list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n const nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n const startTime = Date.now();\n let status = \"pending\";\n let queriesSent = 0;\n let lastError;\n let timer = null;\n let queue = [];\n let doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime,\n payload,\n status,\n queriesSent,\n queriesPending: queue.length,\n subscribe,\n abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach((callback) => {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n const isError = response !== \"success\";\n queue = queue.filter((queued) => queued !== item);\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach((callback) => {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n const resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n const item = {\n status: \"pending\",\n resource,\n callback: (status2, data) => {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction initRedundancy(cfg) {\n const config = {\n ...defaultConfig,\n ...cfg\n };\n let queries = [];\n function cleanup() {\n queries = queries.filter((item) => item().status === \"pending\");\n }\n function query(payload, queryCallback, doneCallback) {\n const query2 = sendQuery(\n config,\n payload,\n queryCallback,\n (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n }\n );\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n return queries.find((value) => {\n return callback(value);\n }) || null;\n }\n const instance = {\n query,\n find,\n setIndex: (index) => {\n config.index = index;\n },\n getIndex: () => config.index,\n cleanup\n };\n return instance;\n}\n\nfunction emptyCallback$1() {\n}\nconst redundancyCache = /* @__PURE__ */ Object.create(null);\nfunction getRedundancyCache(provider) {\n if (!redundancyCache[provider]) {\n const config = getAPIConfig(provider);\n if (!config) {\n return;\n }\n const redundancy = initRedundancy(config);\n const cachedReundancy = {\n config,\n redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n let redundancy;\n let send;\n if (typeof target === \"string\") {\n const api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n const cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n const config = createAPIConfig(target);\n if (config) {\n redundancy = initRedundancy(config);\n const moduleKey = target.resources ? target.resources[0] : \"\";\n const api = getAPIModule(moduleKey);\n if (api) {\n send = api.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\n\nconst browserCacheVersion = \"iconify2\";\nconst browserCachePrefix = \"iconify\";\nconst browserCacheCountKey = browserCachePrefix + \"-count\";\nconst browserCacheVersionKey = browserCachePrefix + \"-version\";\nconst browserStorageHour = 36e5;\nconst browserStorageCacheExpiration = 168;\n\nfunction getStoredItem(func, key) {\n try {\n return func.getItem(key);\n } catch (err) {\n }\n}\nfunction setStoredItem(func, key, value) {\n try {\n func.setItem(key, value);\n return true;\n } catch (err) {\n }\n}\nfunction removeStoredItem(func, key) {\n try {\n func.removeItem(key);\n } catch (err) {\n }\n}\n\nfunction setBrowserStorageItemsCount(storage, value) {\n return setStoredItem(storage, browserCacheCountKey, value.toString());\n}\nfunction getBrowserStorageItemsCount(storage) {\n return parseInt(getStoredItem(storage, browserCacheCountKey)) || 0;\n}\n\nconst browserStorageConfig = {\n local: true,\n session: true\n};\nconst browserStorageEmptyItems = {\n local: /* @__PURE__ */ new Set(),\n session: /* @__PURE__ */ new Set()\n};\nlet browserStorageStatus = false;\nfunction setBrowserStorageStatus(status) {\n browserStorageStatus = status;\n}\n\nlet _window = typeof window === \"undefined\" ? {} : window;\nfunction getBrowserStorage(key) {\n const attr = key + \"Storage\";\n try {\n if (_window && _window[attr] && typeof _window[attr].length === \"number\") {\n return _window[attr];\n }\n } catch (err) {\n }\n browserStorageConfig[key] = false;\n}\n\nfunction iterateBrowserStorage(key, callback) {\n const func = getBrowserStorage(key);\n if (!func) {\n return;\n }\n const version = getStoredItem(func, browserCacheVersionKey);\n if (version !== browserCacheVersion) {\n if (version) {\n const total2 = getBrowserStorageItemsCount(func);\n for (let i = 0; i < total2; i++) {\n removeStoredItem(func, browserCachePrefix + i.toString());\n }\n }\n setStoredItem(func, browserCacheVersionKey, browserCacheVersion);\n setBrowserStorageItemsCount(func, 0);\n return;\n }\n const minTime = Math.floor(Date.now() / browserStorageHour) - browserStorageCacheExpiration;\n const parseItem = (index) => {\n const name = browserCachePrefix + index.toString();\n const item = getStoredItem(func, name);\n if (typeof item !== \"string\") {\n return;\n }\n try {\n const data = JSON.parse(item);\n if (typeof data === \"object\" && typeof data.cached === \"number\" && data.cached > minTime && typeof data.provider === \"string\" && typeof data.data === \"object\" && typeof data.data.prefix === \"string\" && // Valid item: run callback\n callback(data, index)) {\n return true;\n }\n } catch (err) {\n }\n removeStoredItem(func, name);\n };\n let total = getBrowserStorageItemsCount(func);\n for (let i = total - 1; i >= 0; i--) {\n if (!parseItem(i)) {\n if (i === total - 1) {\n total--;\n setBrowserStorageItemsCount(func, total);\n } else {\n browserStorageEmptyItems[key].add(i);\n }\n }\n }\n}\n\nfunction initBrowserStorage() {\n if (browserStorageStatus) {\n return;\n }\n setBrowserStorageStatus(true);\n for (const key in browserStorageConfig) {\n iterateBrowserStorage(key, (item) => {\n const iconSet = item.data;\n const provider = item.provider;\n const prefix = iconSet.prefix;\n const storage = getStorage(\n provider,\n prefix\n );\n if (!addIconSet(storage, iconSet).length) {\n return false;\n }\n const lastModified = iconSet.lastModified || -1;\n storage.lastModifiedCached = storage.lastModifiedCached ? Math.min(storage.lastModifiedCached, lastModified) : lastModified;\n return true;\n });\n }\n}\n\nfunction updateLastModified(storage, lastModified) {\n const lastValue = storage.lastModifiedCached;\n if (\n // Matches or newer\n lastValue && lastValue >= lastModified\n ) {\n return lastValue === lastModified;\n }\n storage.lastModifiedCached = lastModified;\n if (lastValue) {\n for (const key in browserStorageConfig) {\n iterateBrowserStorage(key, (item) => {\n const iconSet = item.data;\n return item.provider !== storage.provider || iconSet.prefix !== storage.prefix || iconSet.lastModified === lastModified;\n });\n }\n }\n return true;\n}\nfunction storeInBrowserStorage(storage, data) {\n if (!browserStorageStatus) {\n initBrowserStorage();\n }\n function store(key) {\n let func;\n if (!browserStorageConfig[key] || !(func = getBrowserStorage(key))) {\n return;\n }\n const set = browserStorageEmptyItems[key];\n let index;\n if (set.size) {\n set.delete(index = Array.from(set).shift());\n } else {\n index = getBrowserStorageItemsCount(func);\n if (!setBrowserStorageItemsCount(func, index + 1)) {\n return;\n }\n }\n const item = {\n cached: Math.floor(Date.now() / browserStorageHour),\n provider: storage.provider,\n data\n };\n return setStoredItem(\n func,\n browserCachePrefix + index.toString(),\n JSON.stringify(item)\n );\n }\n if (data.lastModified && !updateLastModified(storage, data.lastModified)) {\n return;\n }\n if (!Object.keys(data.icons).length) {\n return;\n }\n if (data.not_found) {\n data = Object.assign({}, data);\n delete data.not_found;\n }\n if (!store(\"local\")) {\n store(\"session\");\n }\n}\n\nfunction emptyCallback() {\n}\nfunction loadedNewIcons(storage) {\n if (!storage.iconsLoaderFlag) {\n storage.iconsLoaderFlag = true;\n setTimeout(() => {\n storage.iconsLoaderFlag = false;\n updateCallbacks(storage);\n });\n }\n}\nfunction loadNewIcons(storage, icons) {\n if (!storage.iconsToLoad) {\n storage.iconsToLoad = icons;\n } else {\n storage.iconsToLoad = storage.iconsToLoad.concat(icons).sort();\n }\n if (!storage.iconsQueueFlag) {\n storage.iconsQueueFlag = true;\n setTimeout(() => {\n storage.iconsQueueFlag = false;\n const { provider, prefix } = storage;\n const icons2 = storage.iconsToLoad;\n delete storage.iconsToLoad;\n let api;\n if (!icons2 || !(api = getAPIModule(provider))) {\n return;\n }\n const params = api.prepare(provider, prefix, icons2);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data) => {\n if (typeof data !== \"object\") {\n item.icons.forEach((name) => {\n storage.missing.add(name);\n });\n } else {\n try {\n const parsed = addIconSet(\n storage,\n data\n );\n if (!parsed.length) {\n return;\n }\n const pending = storage.pendingIcons;\n if (pending) {\n parsed.forEach((name) => {\n pending.delete(name);\n });\n }\n storeInBrowserStorage(storage, data);\n } catch (err) {\n console.error(err);\n }\n }\n loadedNewIcons(storage);\n });\n });\n });\n }\n}\nconst loadIcons = (icons, callback) => {\n const cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n const sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n let callCallback = true;\n if (callback) {\n setTimeout(() => {\n if (callCallback) {\n callback(\n sortedIcons.loaded,\n sortedIcons.missing,\n sortedIcons.pending,\n emptyCallback\n );\n }\n });\n }\n return () => {\n callCallback = false;\n };\n }\n const newIcons = /* @__PURE__ */ Object.create(null);\n const sources = [];\n let lastProvider, lastPrefix;\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix } = icon;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push(getStorage(provider, prefix));\n const providerNewIcons = newIcons[provider] || (newIcons[provider] = /* @__PURE__ */ Object.create(null));\n if (!providerNewIcons[prefix]) {\n providerNewIcons[prefix] = [];\n }\n });\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix, name } = icon;\n const storage = getStorage(provider, prefix);\n const pendingQueue = storage.pendingIcons || (storage.pendingIcons = /* @__PURE__ */ new Set());\n if (!pendingQueue.has(name)) {\n pendingQueue.add(name);\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((storage) => {\n const { provider, prefix } = storage;\n if (newIcons[provider][prefix].length) {\n loadNewIcons(storage, newIcons[provider][prefix]);\n }\n });\n return callback ? storeCallback(callback, sortedIcons, sources) : emptyCallback;\n};\nconst loadIcon = (icon) => {\n return new Promise((fulfill, reject) => {\n const iconObj = typeof icon === \"string\" ? stringToIcon(icon, true) : icon;\n if (!iconObj) {\n reject(icon);\n return;\n }\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const data = getIconData(iconObj);\n if (data) {\n fulfill({\n ...defaultIconProps,\n ...data\n });\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nfunction toggleBrowserCache(storage, value) {\n switch (storage) {\n case \"local\":\n case \"session\":\n browserStorageConfig[storage] = value;\n break;\n case \"all\":\n for (const key in browserStorageConfig) {\n browserStorageConfig[key] = value;\n }\n break;\n }\n}\n\nfunction mergeCustomisations(defaults, item) {\n const result = {\n ...defaults\n };\n for (const key in item) {\n const value = item[key];\n const valueType = typeof value;\n if (key in defaultIconSizeCustomisations) {\n if (value === null || value && (valueType === \"string\" || valueType === \"number\")) {\n result[key] = value;\n }\n } else if (valueType === typeof result[key]) {\n result[key] = key === \"rotate\" ? value % 4 : value;\n }\n }\n return result;\n}\n\nconst separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\n\nfunction rotateFromString(value, defaultValue = 0) {\n const units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n const num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n let split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n let num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(num)) {\n return 0;\n }\n num = num / split;\n return num % 1 === 0 ? cleanup(num) : 0;\n }\n }\n return defaultValue;\n}\n\nfunction iconToHTML(body, attributes) {\n let renderAttribsHTML = body.indexOf(\"xlink:\") === -1 ? \"\" : ' xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n for (const attr in attributes) {\n renderAttribsHTML += \" \" + attr + '=\"' + attributes[attr] + '\"';\n }\n return '<svg xmlns=\"http://www.w3.org/2000/svg\"' + renderAttribsHTML + \">\" + body + \"</svg>\";\n}\n\nfunction encodeSVGforURL(svg) {\n return svg.replace(/\"/g, \"'\").replace(/%/g, \"%25\").replace(/#/g, \"%23\").replace(/</g, \"%3C\").replace(/>/g, \"%3E\").replace(/\\s+/g, \" \");\n}\nfunction svgToData(svg) {\n return \"data:image/svg+xml,\" + encodeSVGforURL(svg);\n}\nfunction svgToURL(svg) {\n return 'url(\"' + svgToData(svg) + '\")';\n}\n\nlet policy;\nfunction createPolicy() {\n try {\n policy = window.trustedTypes.createPolicy(\"iconify\", {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n createHTML: (s) => s\n });\n } catch (err) {\n policy = null;\n }\n}\nfunction cleanUpInnerHTML(html) {\n if (policy === void 0) {\n createPolicy();\n }\n return policy ? policy.createHTML(html) : html;\n}\n\nconst defaultExtendedIconCustomisations = {\n ...defaultIconCustomisations,\n inline: false,\n};\n\n/**\n * Default SVG attributes\n */\nconst svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlnsXlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n};\n/**\n * Style modes\n */\nconst commonProps = {\n display: 'inline-block',\n};\nconst monotoneProps = {\n backgroundColor: 'currentColor',\n};\nconst coloredProps = {\n backgroundColor: 'transparent',\n};\n// Dynamically add common props to variables above\nconst propsToAdd = {\n Image: 'var(--svg)',\n Repeat: 'no-repeat',\n Size: '100% 100%',\n};\nconst propsToAddTo = {\n WebkitMask: monotoneProps,\n mask: monotoneProps,\n background: coloredProps,\n};\nfor (const prefix in propsToAddTo) {\n const list = propsToAddTo[prefix];\n for (const prop in propsToAdd) {\n list[prefix + prop] = propsToAdd[prop];\n }\n}\n/**\n * Default values for customisations for inline icon\n */\nconst inlineDefaults = {\n ...defaultExtendedIconCustomisations,\n inline: true,\n};\n/**\n * Fix size: add 'px' to numbers\n */\nfunction fixSize(value) {\n return value + (value.match(/^[-0-9.]+$/) ? 'px' : '');\n}\n/**\n * Render icon\n */\nconst render = (\n// Icon must be validated before calling this function\nicon, \n// Partial properties\nprops, \n// True if icon should have vertical-align added\ninline, \n// Optional reference for SVG/SPAN, extracted by React.forwardRef()\nref) => {\n // Get default properties\n const defaultProps = inline\n ? inlineDefaults\n : defaultExtendedIconCustomisations;\n // Get all customisations\n const customisations = mergeCustomisations(defaultProps, props);\n // Check mode\n const mode = props.mode || 'svg';\n // Create style\n const style = {};\n const customStyle = props.style || {};\n // Create SVG component properties\n const componentProps = {\n ...(mode === 'svg' ? svgDefaults : {}),\n ref,\n };\n // Get element properties\n for (let key in props) {\n const value = props[key];\n if (value === void 0) {\n continue;\n }\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'children':\n case 'onLoad':\n case 'mode':\n case '_ref':\n case '_inline':\n break;\n // Boolean attributes\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] =\n value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n break;\n // Color: copy to style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n }\n else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n // Copy missing property if it does not exist in customisations\n default:\n if (defaultProps[key] === void 0) {\n componentProps[key] = value;\n }\n }\n }\n // Generate icon\n const item = iconToSVG(icon, customisations);\n const renderAttribs = item.attributes;\n // Inline display\n if (customisations.inline) {\n style.verticalAlign = '-0.125em';\n }\n if (mode === 'svg') {\n // Add style\n componentProps.style = {\n ...style,\n ...customStyle,\n };\n // Add icon stuff\n Object.assign(componentProps, renderAttribs);\n // Counter for ids based on \"id\" property to render icons consistently on server and client\n let localCounter = 0;\n let id = props.id;\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n }\n // Add icon stuff\n componentProps.dangerouslySetInnerHTML = {\n __html: cleanUpInnerHTML(replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyReact')),\n };\n return React.createElement('svg', componentProps);\n }\n // Render <span> with style\n const { body, width, height } = icon;\n const useMask = mode === 'mask' ||\n (mode === 'bg' ? false : body.indexOf('currentColor') !== -1);\n // Generate SVG\n const html = iconToHTML(body, {\n ...renderAttribs,\n width: width + '',\n height: height + '',\n });\n // Generate style\n componentProps.style = {\n ...style,\n '--svg': svgToURL(html),\n 'width': fixSize(renderAttribs.width),\n 'height': fixSize(renderAttribs.height),\n ...commonProps,\n ...(useMask ? monotoneProps : coloredProps),\n ...customStyle,\n };\n return React.createElement('span', componentProps);\n};\n\n/**\n * Enable cache\n */\nfunction enableCache(storage) {\n toggleBrowserCache(storage, true);\n}\n/**\n * Disable cache\n */\nfunction disableCache(storage) {\n toggleBrowserCache(storage, false);\n}\n/**\n * Initialise stuff\n */\n// Enable short names\nallowSimpleNames(true);\n// Set API module\nsetAPIModule('', fetchAPIModule);\n/**\n * Browser stuff\n */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n // Set cache and load existing cache\n initBrowserStorage();\n const _window = window;\n // Load icons from global \"IconifyPreload\"\n if (_window.IconifyPreload !== void 0) {\n const preload = _window.IconifyPreload;\n const err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach((item) => {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' ||\n item === null ||\n item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' ||\n typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window.IconifyProviders !== void 0) {\n const providers = _window.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (let key in providers) {\n const err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n const value = providers[key];\n if (typeof value !== 'object' ||\n !value ||\n value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n }\n }\n }\n}\nclass IconComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n // Render placeholder before component is mounted\n icon: null,\n };\n }\n /**\n * Abort loading icon\n */\n _abortLoading() {\n if (this._loading) {\n this._loading.abort();\n this._loading = null;\n }\n }\n /**\n * Update state\n */\n _setData(icon) {\n if (this.state.icon !== icon) {\n this.setState({\n icon,\n });\n }\n }\n /**\n * Check if icon should be loaded\n */\n _checkIcon(changed) {\n const state = this.state;\n const icon = this.props.icon;\n // Icon is an object\n if (typeof icon === 'object' &&\n icon !== null &&\n typeof icon.body === 'string') {\n // Stop loading\n this._icon = '';\n this._abortLoading();\n if (changed || state.icon === null) {\n // Set data if it was changed\n this._setData({\n data: icon,\n });\n }\n return;\n }\n // Invalid icon?\n let iconName;\n if (typeof icon !== 'string' ||\n (iconName = stringToIcon(icon, false, true)) === null) {\n this._abortLoading();\n this._setData(null);\n return;\n }\n // Load icon\n const data = getIconData(iconName);\n if (!data) {\n // Icon data is not available\n if (!this._loading || this._loading.name !== icon) {\n // New icon to load\n this._abortLoading();\n this._icon = '';\n this._setData(null);\n if (data !== null) {\n // Icon was not loaded\n this._loading = {\n name: icon,\n abort: loadIcons([iconName], this._checkIcon.bind(this, false)),\n };\n }\n }\n return;\n }\n // Icon data is available\n if (this._icon !== icon || state.icon === null) {\n // New icon or icon has been loaded\n this._abortLoading();\n this._icon = icon;\n // Add classes\n const classes = ['iconify'];\n if (iconName.prefix !== '') {\n classes.push('iconify--' + iconName.prefix);\n }\n if (iconName.provider !== '') {\n classes.push('iconify--' + iconName.provider);\n }\n // Set data\n this._setData({\n data,\n classes,\n });\n if (this.props.onLoad) {\n this.props.onLoad(icon);\n }\n }\n }\n /**\n * Component mounted\n */\n componentDidMount() {\n this._checkIcon(false);\n }\n /**\n * Component updated\n */\n componentDidUpdate(oldProps) {\n if (oldProps.icon !== this.props.icon) {\n this._checkIcon(true);\n }\n }\n /**\n * Abort loading\n */\n componentWillUnmount() {\n this._abortLoading();\n }\n /**\n * Render\n */\n render() {\n const props = this.props;\n const icon = this.state.icon;\n if (icon === null) {\n // Render placeholder\n return props.children\n ? props.children\n : React.createElement('span', {});\n }\n // Add classes\n let newProps = props;\n if (icon.classes) {\n newProps = {\n ...props,\n className: (typeof props.className === 'string'\n ? props.className + ' '\n : '') + icon.classes.join(' '),\n };\n }\n // Render icon\n return render({\n ...defaultIconProps,\n ...icon.data,\n }, newProps, props._inline, props._ref);\n }\n}\n/**\n * Block icon\n *\n * @param props - Component properties\n */\nconst Icon = React.forwardRef(function Icon(props, ref) {\n const newProps = {\n ...props,\n _ref: ref,\n _inline: false,\n };\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Inline icon (has negative verticalAlign that makes it behave like icon font)\n *\n * @param props - Component properties\n */\nconst InlineIcon = React.forwardRef(function InlineIcon(props, ref) {\n const newProps = {\n ...props,\n _ref: ref,\n _inline: true,\n };\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n};\n\nexport { Icon, InlineIcon, _api, addAPIProvider, addCollection, addIcon, iconToSVG as buildIcon, calculateSize, disableCache, enableCache, getIcon, iconExists, listIcons, loadIcon, loadIcons, replaceIDs };\n","import { 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\";\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 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 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 }; // 在发生错误时返回 -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 console.log(this.isRender, 'this.isRender')\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","export const getSDKVersion = () => '9.1.0';\n","// i.e. 0-255 -> '00'-'ff'\nconst dec2hex = (dec: number): string => dec.toString(16).padStart(2, '0');\n\nconst generateId = (len: number): string => {\n const arr = new Uint8Array((len || 40) / 2);\n window.crypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join('');\n};\n\nconst generateRequestId = (): string => {\n if (typeof window !== 'undefined') {\n return generateId(10);\n }\n\n return new Date().getTime().toString(36);\n};\n\nexport { generateRequestId };\n","import { ErrorResponse, SDKRequestData, RequestId, SuccessResponse, MethodToResponse } from '../types/index.js';\nimport { getSDKVersion } from '../version.js';\nimport { Methods } from './methods.js';\nimport { generateRequestId } from './utils.js';\n\nclass MessageFormatter {\n static makeRequest = <M extends Methods = Methods, P = unknown>(method: M, params: P): SDKRequestData<M, P> => {\n const id = generateRequestId();\n\n return {\n id,\n method,\n params,\n env: {\n sdkVersion: getSDKVersion(),\n },\n };\n };\n\n static makeResponse = (id: RequestId, data: MethodToResponse[Methods], version: string): SuccessResponse => ({\n id,\n success: true,\n version,\n data,\n });\n\n static makeErrorResponse = (id: RequestId, error: string, version: string): ErrorResponse => ({\n id,\n success: false,\n error,\n version,\n });\n}\n\nexport { MessageFormatter };\n","export enum Methods {\n sendTransactions = 'sendTransactions',\n rpcCall = 'rpcCall',\n getChainInfo = 'getChainInfo',\n getSafeInfo = 'getSafeInfo',\n getTxBySafeTxHash = 'getTxBySafeTxHash',\n getSafeBalances = 'getSafeBalances',\n signMessage = 'signMessage',\n signTypedMessage = 'signTypedMessage',\n getEnvironmentInfo = 'getEnvironmentInfo',\n getOffChainSignature = 'getOffChainSignature',\n requestAddressBook = 'requestAddressBook',\n wallet_getPermissions = 'wallet_getPermissions',\n wallet_requestPermissions = 'wallet_requestPermissions',\n}\n\nexport enum RestrictedMethods {\n requestAddressBook = 'requestAddressBook',\n}\n","import { MessageFormatter } from './messageFormatter.js';\nimport { Methods } from './methods.js';\nimport { InterfaceMessageEvent, Communicator, Response, SuccessResponse } from '../types/index.js';\n\n// eslint-disable-next-line\ntype Callback = (response: any) => void;\n\nclass PostMessageCommunicator implements Communicator {\n private readonly allowedOrigins: RegExp[] | null = null;\n private callbacks = new Map<string, Callback>();\n private debugMode = false;\n private isServer = typeof window === 'undefined';\n\n constructor(allowedOrigins: RegExp[] | null = null, debugMode = false) {\n this.allowedOrigins = allowedOrigins;\n this.debugMode = debugMode;\n\n if (!this.isServer) {\n window.addEventListener('message', this.onParentMessage);\n }\n }\n\n private isValidMessage = ({ origin, data, source }: InterfaceMessageEvent): boolean => {\n const emptyOrMalformed = !data;\n const sentFromParentEl = !this.isServer && source === window.parent;\n const majorVersionNumber = typeof data.version !== 'undefined' && parseInt(data.version.split('.')[0]);\n const allowedSDKVersion = typeof majorVersionNumber === 'number' && majorVersionNumber >= 1;\n let validOrigin = true;\n if (Array.isArray(this.allowedOrigins)) {\n validOrigin = this.allowedOrigins.find((regExp) => regExp.test(origin)) !== undefined;\n }\n\n return !emptyOrMalformed && sentFromParentEl && allowedSDKVersion && validOrigin;\n };\n\n private logIncomingMessage = (msg: InterfaceMessageEvent): void => {\n console.info(`Safe Apps SDK v1: A message was received from origin ${msg.origin}. `, msg.data);\n };\n\n private onParentMessage = (msg: InterfaceMessageEvent): void => {\n if (this.isValidMessage(msg)) {\n this.debugMode && this.logIncomingMessage(msg);\n this.handleIncomingMessage(msg.data);\n }\n };\n\n private handleIncomingMessage = (payload: InterfaceMessageEvent['data']): void => {\n const { id } = payload;\n\n const cb = this.callbacks.get(id);\n if (cb) {\n cb(payload);\n\n this.callbacks.delete(id);\n }\n };\n\n public send = <M extends Methods, P, R>(method: M, params: P): Promise<SuccessResponse<R>> => {\n const request = MessageFormatter.makeRequest(method, params);\n\n if (this.isServer) {\n throw new Error(\"Window doesn't exist\");\n }\n\n window.parent.postMessage(request, '*');\n return new Promise((resolve, reject) => {\n this.callbacks.set(request.id, (response: Response<R>) => {\n if (!response.success) {\n reject(new Error(response.error));\n return;\n }\n\n resolve(response);\n });\n });\n };\n}\n\nexport default PostMessageCommunicator;\nexport * from './methods.js';\n","import { ChainInfo as _ChainInfo } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type ChainInfo = Pick<\n _ChainInfo,\n 'chainName' | 'chainId' | 'shortName' | 'nativeCurrency' | 'blockExplorerUriTemplate'\n>;\n\nexport { NativeCurrency } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type BaseTransaction = {\n to: string;\n value: string;\n data: string;\n};\n\nexport type GetTxBySafeTxHashParams = {\n safeTxHash: string;\n};\n\nexport interface SendTransactionRequestParams {\n safeTxGas?: number;\n}\n\nexport interface SendTransactionsParams {\n txs: BaseTransaction[];\n params?: SendTransactionRequestParams;\n}\n\nexport type GetBalanceParams = { currency?: string };\n\nexport type SignMessageParams = {\n message: string;\n};\n\nexport interface TypedDataDomain {\n name?: string;\n version?: string;\n chainId?: string | number | bigint | { toNumber: () => number };\n verifyingContract?: string;\n salt?: string;\n}\n\nexport interface TypedDataTypes {\n name: string;\n type: string;\n}\n\nexport type TypedMessageTypes = { [key: string]: TypedDataTypes[] };\n\nexport type EIP712TypedData = {\n domain: TypedDataDomain;\n types: TypedMessageTypes;\n message: Record<string, any>;\n primaryType?: string;\n};\n\nexport type SignTypedMessageParams = {\n typedData: EIP712TypedData;\n};\n\nexport type SendTransactionsResponse = {\n safeTxHash: string;\n};\n\nexport type OffChainSignMessageResponse = {\n messageHash: string;\n};\n\nexport type SignMessageResponse = SendTransactionsResponse | OffChainSignMessageResponse;\n\nexport type SafeInfo = {\n safeAddress: string;\n chainId: number;\n threshold: number;\n owners: string[];\n isReadOnly: boolean;\n};\n\nexport type SafeInfoExtended = SafeInfo & {\n nonce: number;\n implementation: string;\n modules: string[] | null;\n fallbackHandler: string | null;\n guard: string | null;\n version: string | null;\n};\n\nexport type EnvironmentInfo = {\n origin: string;\n};\n\nexport type PostMessageOptions = {\n transfer?: any[];\n};\n\nexport type AddressBookItem = {\n address: string;\n chainId: string;\n name: string;\n};\n\nexport const isObjectEIP712TypedData = (obj?: unknown): obj is EIP712TypedData => {\n return typeof obj === 'object' && obj != null && 'domain' in obj && 'types' in obj && 'message' in obj;\n};\n","import { SafeBalanceResponse, TransactionDetails, TokenInfo } from '@safe-global/safe-gateway-typescript-sdk';\n\nexport {\n AddOwner,\n ChangeImplementation,\n ChangeThreshold,\n Creation,\n Custom,\n DataDecoded,\n DetailedExecutionInfo,\n DisableModule,\n EnableModule,\n Erc20Transfer,\n Erc721Transfer,\n InternalTransaction,\n ModuleExecutionDetails,\n MultiSend,\n MultisigConfirmation,\n MultisigExecutionDetails,\n NativeCoinTransfer,\n Operation,\n Parameter,\n RemoveOwner,\n SafeAppInfo,\n SetFallbackHandler,\n SettingsChange,\n SettingsInfo,\n SwapOwner,\n TokenInfo,\n TokenType,\n TransactionData,\n TransactionInfo,\n TransactionStatus,\n Transfer,\n TransferDirection,\n TransferInfo,\n} from '@safe-global/safe-gateway-typescript-sdk';\n\nexport type GatewayTransactionDetails = TransactionDetails;\n\nexport type TokenBalance = {\n tokenInfo: TokenInfo;\n balance: string;\n fiatBalance: string;\n fiatConversion: string;\n};\n\nexport type SafeBalances = SafeBalanceResponse;\n","import { Methods } from '../communication/methods.js';\nimport {\n GatewayTransactionDetails,\n SignMessageParams,\n SendTransactionsParams,\n GetTxBySafeTxHashParams,\n Communicator,\n SendTransactionsResponse,\n SignTypedMessageParams,\n EIP712TypedData,\n isObjectEIP712TypedData,\n SignMessageResponse,\n} from '../types/index.js';\n\nclass TXs {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getBySafeTxHash(safeTxHash: string): Promise<GatewayTransactionDetails> {\n if (!safeTxHash) {\n throw new Error('Invalid safeTxHash');\n }\n\n const response = await this.communicator.send<\n Methods.getTxBySafeTxHash,\n GetTxBySafeTxHashParams,\n GatewayTransactionDetails\n >(Methods.getTxBySafeTxHash, { safeTxHash });\n\n return response.data;\n }\n\n async signMessage(message: string): Promise<SignMessageResponse> {\n const messagePayload = {\n message,\n };\n\n const response = await this.communicator.send<Methods.signMessage, SignMessageParams, SignMessageResponse>(\n Methods.signMessage,\n messagePayload,\n );\n\n return response.data;\n }\n\n async signTypedMessage(typedData: EIP712TypedData): Promise<SignMessageResponse> {\n if (!isObjectEIP712TypedData(typedData)) {\n throw new Error('Invalid typed data');\n }\n\n const response = await this.communicator.send<\n Methods.signTypedMessage,\n SignTypedMessageParams,\n SignMessageResponse\n >(Methods.signTypedMessage, { typedData });\n\n return response.data;\n }\n\n async send({ txs, params }: SendTransactionsParams): Promise<SendTransactionsResponse> {\n if (!txs || !txs.length) {\n throw new Error('No transactions were passed');\n }\n\n const messagePayload = {\n txs,\n params,\n };\n\n const response = await this.communicator.send<\n Methods.sendTransactions,\n SendTransactionsParams,\n SendTransactionsResponse\n >(Methods.sendTransactions, messagePayload);\n\n return response.data;\n }\n}\n\nexport { TXs };\n","export const RPC_CALLS = {\n eth_call: 'eth_call',\n eth_gasPrice: 'eth_gasPrice',\n eth_getLogs: 'eth_getLogs',\n eth_getBalance: 'eth_getBalance',\n eth_getCode: 'eth_getCode',\n eth_getBlockByHash: 'eth_getBlockByHash',\n eth_getBlockByNumber: 'eth_getBlockByNumber',\n eth_getStorageAt: 'eth_getStorageAt',\n eth_getTransactionByHash: 'eth_getTransactionByHash',\n eth_getTransactionReceipt: 'eth_getTransactionReceipt',\n eth_getTransactionCount: 'eth_getTransactionCount',\n eth_estimateGas: 'eth_estimateGas',\n safe_setSettings: 'safe_setSettings',\n} as const;\n","import { RPC_CALLS } from '../eth/constants.js';\nimport {\n BlockNumberArg,\n RpcCallNames,\n Communicator,\n Log,\n BlockTransactionString,\n BlockTransactionObject,\n Web3TransactionObject,\n RPCPayload,\n TransactionConfig,\n Web3TransactionReceiptObject,\n PastLogsOptions,\n SafeSettings,\n} from '../types/index.js';\nimport { Methods } from '../communication/methods.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Formatter = (arg: any) => any;\n\nconst inputFormatters: Record<string, Formatter> = {\n defaultBlockParam: (arg = 'latest') => arg,\n returnFullTxObjectParam: (arg = false): boolean => arg,\n blockNumberToHex: (arg: BlockNumberArg): string =>\n Number.isInteger(arg) ? `0x${arg.toString(16)}` : (arg as string),\n};\n\ntype BuildRequestArgs = {\n call: RpcCallNames;\n formatters?: (Formatter | null)[];\n};\n\nclass Eth {\n public call;\n public getBalance;\n public getCode;\n public getStorageAt;\n public getPastLogs;\n public getBlockByHash;\n public getBlockByNumber;\n public getTransactionByHash;\n public getTransactionReceipt;\n public getTransactionCount;\n public getGasPrice;\n public getEstimateGas;\n public setSafeSettings;\n\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n this.call = this.buildRequest<[TransactionConfig, string?], string>({\n call: RPC_CALLS.eth_call,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getBalance = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getBalance,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getCode = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getCode,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getStorageAt = this.buildRequest<[string, number, string?], string>({\n call: RPC_CALLS.eth_getStorageAt,\n formatters: [null, inputFormatters.blockNumberToHex, inputFormatters.defaultBlockParam],\n });\n this.getPastLogs = this.buildRequest<[PastLogsOptions], Log[]>({\n call: RPC_CALLS.eth_getLogs,\n });\n this.getBlockByHash = this.buildRequest<[string, boolean?], BlockTransactionString | BlockTransactionObject>({\n call: RPC_CALLS.eth_getBlockByHash,\n formatters: [null, inputFormatters.returnFullTxObjectParam],\n });\n this.getBlockByNumber = this.buildRequest<\n [BlockNumberArg, boolean?],\n BlockTransactionString | BlockTransactionObject\n >({\n call: RPC_CALLS.eth_getBlockByNumber,\n formatters: [inputFormatters.blockNumberToHex, inputFormatters.returnFullTxObjectParam],\n });\n this.getTransactionByHash = this.buildRequest<[string], Web3TransactionObject>({\n call: RPC_CALLS.eth_getTransactionByHash,\n });\n this.getTransactionReceipt = this.buildRequest<[string], Web3TransactionReceiptObject>({\n call: RPC_CALLS.eth_getTransactionReceipt,\n });\n this.getTransactionCount = this.buildRequest<[string, string?], string>({\n call: RPC_CALLS.eth_getTransactionCount,\n formatters: [null, inputFormatters.defaultBlockParam],\n });\n this.getGasPrice = this.buildRequest<never[], string>({\n call: RPC_CALLS.eth_gasPrice,\n });\n this.getEstimateGas = (transaction: TransactionConfig): Promise<number> =>\n this.buildRequest<[TransactionConfig], number>({\n call: RPC_CALLS.eth_estimateGas,\n })([transaction]);\n this.setSafeSettings = this.buildRequest<[SafeSettings], SafeSettings>({\n call: RPC_CALLS.safe_setSettings,\n });\n }\n\n private buildRequest<P = never[], R = unknown>(args: BuildRequestArgs) {\n const { call, formatters } = args;\n\n return async (params?: P): Promise<R> => {\n if (formatters && Array.isArray(params)) {\n formatters.forEach((formatter: ((...args: unknown[]) => unknown) | null, i) => {\n if (formatter) {\n params[i] = formatter(params[i]);\n }\n });\n }\n\n const payload: RPCPayload<P> = {\n call,\n params: params || [],\n };\n\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<P>, R>(Methods.rpcCall, payload);\n\n return response.data;\n };\n }\n}\n\nexport { Eth };\n","import { encodeFunctionData, Address, hashMessage, hashTypedData } from 'viem';\nimport { MAGIC_VALUE_BYTES, MAGIC_VALUE } from './signatures.js';\nimport { Methods } from '../communication/methods.js';\nimport { RPC_CALLS } from '../eth/constants.js';\nimport {\n Communicator,\n ChainInfo,\n SafeBalances,\n GetBalanceParams,\n RPCPayload,\n TransactionConfig,\n EnvironmentInfo,\n AddressBookItem,\n isObjectEIP712TypedData,\n EIP712TypedData,\n SafeInfoExtended,\n} from '../types/index.js';\nimport requirePermission from '../decorators/requirePermissions.js';\n\nclass Safe {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getChainInfo(): Promise<ChainInfo> {\n const response = await this.communicator.send<Methods.getChainInfo, undefined, ChainInfo>(\n Methods.getChainInfo,\n undefined,\n );\n\n return response.data;\n }\n\n async getInfo(): Promise<SafeInfoExtended> {\n const response = await this.communicator.send<Methods.getSafeInfo, undefined, SafeInfoExtended>(\n Methods.getSafeInfo,\n undefined,\n );\n\n return response.data;\n }\n\n // There is a possibility that this method will change because we may add pagination to the endpoint\n async experimental_getBalances({ currency = 'usd' }: GetBalanceParams = {}): Promise<SafeBalances> {\n const response = await this.communicator.send<Methods.getSafeBalances, { currency: string }, SafeBalances>(\n Methods.getSafeBalances,\n {\n currency,\n },\n );\n\n return response.data;\n }\n\n private async check1271Signature(messageHash: string, signature = '0x'): Promise<boolean> {\n const safeInfo = await this.getInfo();\n\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_dataHash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ] as const,\n functionName: 'isValidSignature',\n args: [messageHash as Address, signature as Address],\n });\n\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n try {\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<[TransactionConfig, string]>, string>(\n Methods.rpcCall,\n payload,\n );\n\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE;\n } catch (err) {\n return false;\n }\n }\n\n private async check1271SignatureBytes(messageHash: string, signature = '0x'): Promise<boolean> {\n const safeInfo = await this.getInfo();\n\n const encodedIsValidSignatureCall = encodeFunctionData({\n abi: [\n {\n constant: false,\n inputs: [\n {\n name: '_data',\n type: 'bytes',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'isValidSignature',\n outputs: [\n {\n name: '',\n type: 'bytes4',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n ] as const,\n functionName: 'isValidSignature',\n args: [messageHash as Address, signature as Address],\n });\n\n const payload = {\n call: RPC_CALLS.eth_call,\n params: [\n {\n to: safeInfo.safeAddress,\n data: encodedIsValidSignatureCall,\n },\n 'latest',\n ],\n };\n\n try {\n const response = await this.communicator.send<Methods.rpcCall, RPCPayload<[TransactionConfig, string]>, string>(\n Methods.rpcCall,\n payload,\n );\n\n return response.data.slice(0, 10).toLowerCase() === MAGIC_VALUE_BYTES;\n } catch (err) {\n return false;\n }\n }\n\n calculateMessageHash(message: string): string {\n return hashMessage(message);\n }\n\n calculateTypedMessageHash(typedMessage: EIP712TypedData): string {\n const chainId =\n typeof typedMessage.domain.chainId === 'object'\n ? typedMessage.domain.chainId.toNumber()\n : Number(typedMessage.domain.chainId);\n\n let primaryType = typedMessage.primaryType;\n if (!primaryType) {\n const fields = Object.values(typedMessage.types);\n // We try to infer primaryType (simplified ether's version)\n const primaryTypes = Object.keys(typedMessage.types).filter((typeName) =>\n fields.every((dataTypes) => dataTypes.every(({ type }) => type.replace('[', '').replace(']', '') !== typeName)),\n );\n if (primaryTypes.length === 0 || primaryTypes.length > 1) throw new Error('Please specify primaryType');\n primaryType = primaryTypes[0];\n }\n\n return hashTypedData({\n message: typedMessage.message,\n domain: {\n ...typedMessage.domain,\n chainId,\n verifyingContract: typedMessage.domain.verifyingContract as Address,\n salt: typedMessage.domain.salt as Address,\n },\n types: typedMessage.types,\n primaryType,\n });\n }\n\n async getOffChainSignature(messageHash: string): Promise<string> {\n const response = await this.communicator.send<Methods.getOffChainSignature, string, string>(\n Methods.getOffChainSignature,\n messageHash,\n );\n\n return response.data;\n }\n\n async isMessageSigned(message: string | EIP712TypedData, signature = '0x'): Promise<boolean> {\n let check: (() => Promise<boolean>) | undefined;\n if (typeof message === 'string') {\n check = async (): Promise<boolean> => {\n const messageHash = this.calculateMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n\n if (isObjectEIP712TypedData(message)) {\n check = async (): Promise<boolean> => {\n const messageHash = this.calculateTypedMessageHash(message);\n const messageHashSigned = await this.isMessageHashSigned(messageHash, signature);\n return messageHashSigned;\n };\n }\n if (check) {\n const isValid = await check();\n\n return isValid;\n }\n\n throw new Error('Invalid message type');\n }\n\n async isMessageHashSigned(messageHash: string, signature = '0x'): Promise<boolean> {\n const checks = [this.check1271Signature.bind(this), this.check1271SignatureBytes.bind(this)];\n\n for (const check of checks) {\n const isValid = await check(messageHash, signature);\n if (isValid) {\n return true;\n }\n }\n\n return false;\n }\n\n async getEnvironmentInfo(): Promise<EnvironmentInfo> {\n const response = await this.communicator.send<Methods.getEnvironmentInfo, undefined, EnvironmentInfo>(\n Methods.getEnvironmentInfo,\n undefined,\n );\n\n return response.data;\n }\n\n @requirePermission()\n async requestAddressBook(): Promise<AddressBookItem[]> {\n const response = await this.communicator.send<Methods.requestAddressBook, undefined, AddressBookItem[]>(\n Methods.requestAddressBook,\n undefined,\n );\n\n return response.data;\n }\n}\n\nexport { Safe };\n","const MAGIC_VALUE = '0x1626ba7e';\nconst MAGIC_VALUE_BYTES = '0x20c13b0b';\n\nexport { MAGIC_VALUE, MAGIC_VALUE_BYTES };\n","export type Permission = {\n parentCapability: string;\n invoker: string;\n date?: number;\n caveats?: PermissionCaveat[];\n};\n\nexport type PermissionRequest = {\n [method: string]: Record<string, unknown>;\n};\n\nexport type PermissionCaveat = {\n type: string;\n value?: unknown;\n name?: string;\n};\n\nexport const PERMISSIONS_REQUEST_REJECTED = 4001;\n\nexport class PermissionsError extends Error {\n public code: number;\n public data?: unknown;\n\n constructor(message: string, code: number, data?: unknown) {\n super(message);\n\n this.code = code;\n this.data = data;\n\n // Should adjust prototype manually because how TS handles the type extension compilation\n // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, PermissionsError.prototype);\n }\n}\n","import { Methods, RestrictedMethods } from '../communication/methods.js';\nimport { Communicator } from '../types/index.js';\nimport { PermissionRequest, Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\n\nclass Wallet {\n private readonly communicator: Communicator;\n\n constructor(communicator: Communicator) {\n this.communicator = communicator;\n }\n\n async getPermissions(): Promise<Permission[]> {\n const response = await this.communicator.send<Methods.wallet_getPermissions, undefined, Permission[]>(\n Methods.wallet_getPermissions,\n undefined,\n );\n\n return response.data;\n }\n\n async requestPermissions(permissions: PermissionRequest[]): Promise<Permission[]> {\n if (!this.isPermissionRequestValid(permissions)) {\n throw new PermissionsError('Permissions request is invalid', PERMISSIONS_REQUEST_REJECTED);\n }\n\n try {\n const response = await this.communicator.send<\n Methods.wallet_requestPermissions,\n PermissionRequest[],\n Permission[]\n >(Methods.wallet_requestPermissions, permissions);\n\n return response.data;\n } catch {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n }\n\n isPermissionRequestValid(permissions: PermissionRequest[]): boolean {\n return permissions.every((pr: PermissionRequest) => {\n if (typeof pr === 'object') {\n return Object.keys(pr).every((method) => {\n if (Object.values(RestrictedMethods).includes(method as RestrictedMethods)) {\n return true;\n }\n\n return false;\n });\n }\n\n return false;\n });\n }\n}\n\nexport { Wallet };\n","import { Methods } from '../communication/index.js';\nimport { Safe } from '../safe/index.js';\nimport { Wallet } from '../wallet/index.js';\n\nimport { Permission, PermissionsError, PERMISSIONS_REQUEST_REJECTED } from '../types/permissions.js';\n\nconst hasPermission = (required: Methods, permissions: Permission[]): boolean =>\n permissions.some((permission) => permission.parentCapability === required);\n\nconst requirePermission = () => (_: unknown, propertyKey: string, descriptor: PropertyDescriptor) => {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function () {\n // @ts-expect-error accessing private property from decorator. 'this' context is the class instance\n const wallet = new Wallet((this as Safe).communicator);\n\n let currentPermissions = await wallet.getPermissions();\n\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\n currentPermissions = await wallet.requestPermissions([{ [propertyKey as Methods]: {} }]);\n }\n\n if (!hasPermission(propertyKey as Methods, currentPermissions)) {\n throw new PermissionsError('Permissions rejected', PERMISSIONS_REQUEST_REJECTED);\n }\n\n return originalMethod.apply(this);\n };\n\n return descriptor;\n};\n\nexport default requirePermission;\n","import { Communicator } from './types/index.js';\nimport InterfaceCommunicator from './communication/index.js';\nimport { TXs } from './txs/index.js';\nimport { Eth } from './eth/index.js';\nimport { Safe } from './safe/index.js';\nimport { Wallet } from './wallet/index.js';\n\nexport type Opts = {\n allowedDomains?: RegExp[];\n debug?: boolean;\n};\n\nclass SafeAppsSDK {\n private readonly communicator: Communicator;\n public readonly eth: Eth;\n public readonly txs: TXs;\n public readonly safe: Safe;\n public readonly wallet: Wallet;\n\n constructor(opts: Opts = {}) {\n const { allowedDomains = null, debug = false } = opts;\n\n this.communicator = new InterfaceCommunicator(allowedDomains, debug);\n this.eth = new Eth(this.communicator);\n this.txs = new TXs(this.communicator);\n this.safe = new Safe(this.communicator);\n this.wallet = new Wallet(this.communicator);\n }\n}\n\nexport default SafeAppsSDK;\n","import SDK from './sdk.js';\n\nexport default SDK;\nexport * from './sdk.js';\nexport * from './types/index.js';\nexport * from './communication/methods.js';\nexport * from './communication/messageFormatter.js';\nexport { getSDKVersion } from './version.js';\nexport * from './eth/constants.js';\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 { Chain, Wallet, useConnectModal, getDefaultConfig, WalletDetailsParams } from '@rainbow-me/rainbowkit';\nimport { walletConnectWallet, metaMaskWallet, iopayWallet, okxWallet, binanceWallet } 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[] = [iotex];\n defaultChainId = 4689;\n\n set(params: Partial<WalletConfigStore>) {\n Object.assign(this, params);\n }\n\n get rainbowKitConfig() {\n console.log(`rainbowKitConfig-${this.supportedChains?.map(i => i.id).join('-')}`)\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],\n }]\n });\n });\n }\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://icons.llamao.fi/icons/chains/rsz_iotex.jpg',\n ..._iotex,\n} as Chain;\nexport const iotexTestnet = {\n iconUrl: 'https://icons.llamao.fi/icons/chains/rsz_iotex.jpg',\n ..._iotexTestnet,\n} as Chain;;"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dappworks/kit",
3
- "version": "0.4.177",
3
+ "version": "0.4.179",
4
4
  "description": "",
5
5
  "main": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.mts",