@kimafinance/kima-transaction-widget 1.0.0 → 1.0.2

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.
Files changed (41) hide show
  1. package/README.md +6 -6
  2. package/dist/assets/icons/Celo.d.ts +7 -0
  3. package/dist/assets/icons/Check.d.ts +2 -1
  4. package/dist/assets/icons/Copy.d.ts +8 -0
  5. package/dist/assets/icons/Fuse.d.ts +7 -0
  6. package/dist/assets/icons/GoodDollar.d.ts +7 -0
  7. package/dist/assets/icons/index.d.ts +4 -0
  8. package/dist/assets/loading/6-dots-scale.d.ts +3 -0
  9. package/dist/assets/loading/index.d.ts +1 -0
  10. package/dist/components/KimaTransactionWidget.d.ts +7 -3
  11. package/dist/components/TransferWidget.d.ts +6 -2
  12. package/dist/components/modals/HashPopup.d.ts +7 -0
  13. package/dist/components/modals/HelpPopup.d.ts +3 -0
  14. package/dist/components/modals/WalletConnectModal.d.ts +3 -0
  15. package/dist/components/modals/index.d.ts +3 -0
  16. package/dist/components/reusable/AddressInputWizard.d.ts +3 -0
  17. package/dist/components/reusable/ConfirmDetails.d.ts +3 -1
  18. package/dist/components/reusable/CopyButton.d.ts +6 -0
  19. package/dist/components/reusable/Dropdown.d.ts +2 -3
  20. package/dist/components/reusable/HelpPopup.d.ts +3 -0
  21. package/dist/components/reusable/NetworkDropdown.d.ts +5 -0
  22. package/dist/components/reusable/NetworkSelect.d.ts +2 -2
  23. package/dist/components/reusable/Progressbar.d.ts +2 -1
  24. package/dist/components/reusable/SecondaryButton.d.ts +2 -1
  25. package/dist/components/reusable/StepBox.d.ts +10 -0
  26. package/dist/components/reusable/Tooltip.d.ts +4 -1
  27. package/dist/components/reusable/index.d.ts +3 -1
  28. package/dist/hooks/useCurrencyOptions.d.ts +3 -0
  29. package/dist/hooks/useNetworkOptions.d.ts +3 -0
  30. package/dist/index.css +1041 -809
  31. package/dist/index.js +1600 -1116
  32. package/dist/index.js.map +1 -1
  33. package/dist/index.modern.js +1280 -832
  34. package/dist/index.modern.js.map +1 -1
  35. package/dist/interface.d.ts +18 -8
  36. package/dist/store/optionSlice.d.ts +14 -1
  37. package/dist/store/selectors.d.ts +6 -0
  38. package/dist/utils/config.d.ts +2 -4
  39. package/dist/utils/constants.d.ts +45 -17
  40. package/dist/utils/testId.d.ts +1 -0
  41. package/package.json +19 -4
@@ -1,280 +1,16 @@
1
- import React, { useState, useCallback, useMemo, useContext, useRef, useEffect } from 'react';
1
+ import React, { useState, useCallback, useMemo, useContext, useEffect, useRef } from 'react';
2
2
  import { createSlice, configureStore } from '@reduxjs/toolkit';
3
+ import { clusterApiUrl, TransactionInstruction, SystemProgram, SYSVAR_RENT_PUBKEY, PublicKey, Transaction } from '@solana/web3.js';
3
4
  import { useSelector, useDispatch, Provider } from 'react-redux';
4
5
  import { useWallet, useConnection, ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react';
5
6
  import { PhantomWalletAdapter, SolflareWalletAdapter, SolletWalletAdapter, SolletExtensionWalletAdapter, CloverWalletAdapter, Coin98WalletAdapter, SlopeWalletAdapter, SolongWalletAdapter, TorusWalletAdapter } from '@solana/wallet-adapter-wallets';
6
7
  import detectEthereumProvider from '@metamask/detect-provider';
7
8
  import { ethers, BigNumber } from 'ethers';
8
- import { clusterApiUrl, TransactionInstruction, SystemProgram, SYSVAR_RENT_PUBKEY, PublicKey, Transaction } from '@solana/web3.js';
9
9
  import AnimatedNumber from 'animated-number-react';
10
10
  import { WalletReadyState } from '@solana/wallet-adapter-base';
11
11
  import { Contract } from '@ethersproject/contracts';
12
12
  import { parseUnits } from '@ethersproject/units';
13
13
  import { TOKEN_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID, AccountLayout } from '@solana/spl-token';
14
- import Web3 from 'web3';
15
-
16
- var SupportNetworks;
17
- (function (SupportNetworks) {
18
- SupportNetworks["Ethereum"] = "Ethereum";
19
- SupportNetworks["Polygon"] = "Polygon";
20
- SupportNetworks["Avalanche"] = "Avalanche";
21
- SupportNetworks["Solana"] = "Solana";
22
- })(SupportNetworks || (SupportNetworks = {}));
23
- var FontSizeOptions;
24
- (function (FontSizeOptions) {
25
- FontSizeOptions["large"] = "large";
26
- FontSizeOptions["medium"] = "medium";
27
- FontSizeOptions["small"] = "small";
28
- })(FontSizeOptions || (FontSizeOptions = {}));
29
- var ModeOptions;
30
- (function (ModeOptions) {
31
- ModeOptions["payment"] = "payment";
32
- ModeOptions["bridge"] = "bridge";
33
- })(ModeOptions || (ModeOptions = {}));
34
- var CurrencyOptions;
35
- (function (CurrencyOptions) {
36
- CurrencyOptions["USDK"] = "USDK";
37
- })(CurrencyOptions || (CurrencyOptions = {}));
38
- var ThemeOptions;
39
- (function (ThemeOptions) {
40
- ThemeOptions["light"] = "light";
41
- ThemeOptions["dark"] = "dark";
42
- })(ThemeOptions || (ThemeOptions = {}));
43
-
44
- const initialState = {
45
- theme: ThemeOptions.light,
46
- mode: ModeOptions.bridge,
47
- originNetwork: 'Solana',
48
- targetNetwork: 'Ethereum',
49
- targetAddress: '',
50
- connectModal: false,
51
- solanaProvider: undefined,
52
- submitted: false,
53
- amount: 0,
54
- isApproving: false,
55
- isSubmitting: false,
56
- isConfirming: false,
57
- feeDeduct: false,
58
- splAllowance: 0,
59
- errorHandler: () => void 0,
60
- closeHandler: () => void 0,
61
- successHandler: () => void 0,
62
- serviceFee: 0
63
- };
64
- const optionSlice = createSlice({
65
- name: 'option',
66
- initialState,
67
- reducers: {
68
- setTheme: (state, action) => {
69
- state.theme = action.payload;
70
- },
71
- setOriginNetwork: (state, action) => {
72
- state.originNetwork = action.payload;
73
- },
74
- setTargetNetwork: (state, action) => {
75
- state.targetNetwork = action.payload;
76
- },
77
- setTargetAddress: (state, action) => {
78
- state.targetAddress = action.payload;
79
- },
80
- setConnectModal: (state, action) => {
81
- state.connectModal = action.payload;
82
- },
83
- setSolanaProvider: (state, action) => {
84
- state.solanaProvider = action.payload;
85
- },
86
- setSubmitted: (state, action) => {
87
- state.submitted = action.payload;
88
- },
89
- setTransactionOption: (state, action) => {
90
- state.transactionOption = action.payload;
91
- },
92
- setAmount: (state, action) => {
93
- state.amount = action.payload;
94
- },
95
- setApproving: (state, action) => {
96
- state.isApproving = action.payload;
97
- },
98
- setSubmitting: (state, action) => {
99
- state.isSubmitting = action.payload;
100
- },
101
- setSplAllowance: (state, action) => {
102
- state.splAllowance = action.payload;
103
- },
104
- setErrorHandler: (state, action) => {
105
- state.errorHandler = action.payload;
106
- },
107
- setCloseHandler: (state, action) => {
108
- state.closeHandler = action.payload;
109
- },
110
- setSuccessHandler: (state, action) => {
111
- state.successHandler = action.payload;
112
- },
113
- setServiceFee: (state, action) => {
114
- state.serviceFee = action.payload;
115
- },
116
- setMode: (state, action) => {
117
- state.mode = action.payload;
118
- },
119
- setConfirming: (state, action) => {
120
- state.isConfirming = action.payload;
121
- },
122
- setFeeDeduct: (state, action) => {
123
- state.feeDeduct = action.payload;
124
- }
125
- }
126
- });
127
- const {
128
- setTheme,
129
- setOriginNetwork,
130
- setTargetNetwork,
131
- setTargetAddress,
132
- setConnectModal,
133
- setSolanaProvider,
134
- setSubmitted,
135
- setTransactionOption,
136
- setAmount,
137
- setApproving,
138
- setSubmitting,
139
- setConfirming,
140
- setSplAllowance,
141
- setErrorHandler,
142
- setCloseHandler,
143
- setSuccessHandler,
144
- setServiceFee,
145
- setMode,
146
- setFeeDeduct
147
- } = optionSlice.actions;
148
- var optionReducer = optionSlice.reducer;
149
-
150
- const store = configureStore({
151
- reducer: {
152
- option: optionReducer
153
- },
154
- middleware: getDefaultMiddleware => getDefaultMiddleware({
155
- serializableCheck: false
156
- })
157
- });
158
-
159
- const selectTheme = state => state.option.theme;
160
- const selectOriginNetwork = state => state.option.originNetwork;
161
- const selectTargetNetwork = state => state.option.targetNetwork;
162
- const selectTargetAddress = state => state.option.targetAddress;
163
- const selectConnectModal = state => state.option.connectModal;
164
- const selectSolanaProvider = state => state.option.solanaProvider;
165
- const selectSubmitted = state => state.option.submitted;
166
- const selectTransactionOption = state => state.option.transactionOption;
167
- const selectAmount = state => state.option.amount;
168
- const selectApproving = state => state.option.isApproving;
169
- const selectSubmitting = state => state.option.isSubmitting;
170
- const selectSplAllowance = state => state.option.splAllowance;
171
- const selectErrorHandler = state => state.option.errorHandler;
172
- const selectCloseHandler = state => state.option.closeHandler;
173
- const selectSuccessHandler = state => state.option.successHandler;
174
- const selectServiceFee = state => state.option.serviceFee;
175
- const selectMode = state => state.option.mode;
176
- const selectConfirming = state => state.option.isConfirming;
177
- const selectFeeDeduct = state => state.option.feeDeduct;
178
-
179
- const EthereumProviderContext = React.createContext({
180
- connect: () => {},
181
- disconnect: () => {},
182
- provider: undefined,
183
- chainId: undefined,
184
- signer: undefined,
185
- signerAddress: undefined,
186
- providerError: null
187
- });
188
- const EthereumProvider = ({
189
- children
190
- }) => {
191
- const errorHandler = useSelector(selectErrorHandler);
192
- const [providerError, setProviderError] = useState(null);
193
- const [provider, setProvider] = useState(undefined);
194
- const [chainId, setChainId] = useState(undefined);
195
- const [signer, setSigner] = useState(undefined);
196
- const [signerAddress, setSignerAddress] = useState(undefined);
197
- const connect = useCallback(() => {
198
- setProviderError(null);
199
- detectEthereumProvider().then(detectedProvider => {
200
- if (detectedProvider) {
201
- const provider = new ethers.providers.Web3Provider(
202
- detectedProvider, 'any');
203
- provider.send('eth_requestAccounts', []).then(() => {
204
- setProviderError(null);
205
- setProvider(provider);
206
- provider.getNetwork().then(network => {
207
- setChainId(network.chainId);
208
- }).catch(e => {
209
- errorHandler(e);
210
- setProviderError('An error occurred while getting the network');
211
- });
212
- const signer = provider.getSigner();
213
- setSigner(signer);
214
- signer.getAddress().then(address => {
215
- setSignerAddress(address);
216
- }).catch(e => {
217
- errorHandler(e);
218
- setProviderError('An error occurred while getting the signer address');
219
- });
220
- if (detectedProvider && detectedProvider.on) {
221
- detectedProvider.on('chainChanged', chainId => {
222
- try {
223
- setChainId(BigNumber.from(chainId).toNumber());
224
- } catch (e) {
225
- errorHandler(e);
226
- }
227
- });
228
- detectedProvider.on('accountsChanged', accounts => {
229
- try {
230
- const signer = provider.getSigner();
231
- setSigner(signer);
232
- signer.getAddress().then(address => {
233
- setSignerAddress(address);
234
- }).catch(e => {
235
- errorHandler(e);
236
- setProviderError('An error occurred while getting the signer address');
237
- });
238
- } catch (e) {
239
- errorHandler(e);
240
- }
241
- });
242
- }
243
- }).catch(e => {
244
- errorHandler(e);
245
- setProviderError('An error occurred while requesting eth accounts');
246
- });
247
- } else {
248
- setProviderError('Please install MetaMask');
249
- }
250
- }).catch(e => {
251
- errorHandler(e);
252
- setProviderError('Please install MetaMask');
253
- });
254
- }, []);
255
- const disconnect = useCallback(() => {
256
- setProviderError(null);
257
- setProvider(undefined);
258
- setChainId(undefined);
259
- setSigner(undefined);
260
- setSignerAddress(undefined);
261
- }, []);
262
- const contextValue = useMemo(() => ({
263
- connect,
264
- disconnect,
265
- provider,
266
- chainId,
267
- signer,
268
- signerAddress,
269
- providerError
270
- }), [connect, disconnect, provider, chainId, signer, signerAddress, providerError]);
271
- return React.createElement(EthereumProviderContext.Provider, {
272
- value: contextValue
273
- }, children);
274
- };
275
- const useEthereumProvider = () => {
276
- return useContext(EthereumProviderContext);
277
- };
278
14
 
279
15
  const Cross = ({
280
16
  width: _width = 32,
@@ -358,6 +94,7 @@ const Cross$1 = ({
358
94
  const Check = ({
359
95
  width: _width = 15,
360
96
  height: _height = 11,
97
+ fill: _fill = '#33EA66',
361
98
  ...rest
362
99
  }) => {
363
100
  return React.createElement("svg", Object.assign({
@@ -367,7 +104,7 @@ const Check = ({
367
104
  xmlns: 'http://www.w3.org/2000/svg'
368
105
  }, rest), React.createElement("path", {
369
106
  d: 'M13.7319 0.295798C13.639 0.20207 13.5284 0.127675 13.4065 0.0769067C13.2846 0.026138 13.1539 0 13.0219 0C12.8899 0 12.7592 0.026138 12.6373 0.0769067C12.5155 0.127675 12.4049 0.20207 12.3119 0.295798L4.86192 7.7558L1.73192 4.6158C1.6354 4.52256 1.52146 4.44925 1.3966 4.40004C1.27175 4.35084 1.13843 4.32671 1.00424 4.32903C0.870064 4.33135 0.737655 4.36008 0.614576 4.41357C0.491498 4.46706 0.380161 4.54428 0.286922 4.6408C0.193684 4.73732 0.12037 4.85126 0.0711659 4.97612C0.0219619 5.10097 -0.00216855 5.2343 0.000152918 5.36848C0.00247438 5.50266 0.0312022 5.63507 0.0846957 5.75814C0.138189 5.88122 0.215401 5.99256 0.311922 6.0858L4.15192 9.9258C4.24489 10.0195 4.35549 10.0939 4.47735 10.1447C4.59921 10.1955 4.72991 10.2216 4.86192 10.2216C4.99393 10.2216 5.12464 10.1955 5.2465 10.1447C5.36836 10.0939 5.47896 10.0195 5.57192 9.9258L13.7319 1.7658C13.8334 1.67216 13.9144 1.5585 13.9698 1.432C14.0252 1.30551 14.0539 1.1689 14.0539 1.0308C14.0539 0.892697 14.0252 0.756091 13.9698 0.629592C13.9144 0.503092 13.8334 0.389441 13.7319 0.295798Z',
370
- fill: '#33EA66'
107
+ fill: _fill
371
108
  }));
372
109
  };
373
110
 
@@ -581,7 +318,7 @@ const Avalanche = ({
581
318
  })));
582
319
  };
583
320
 
584
- const USDC = ({
321
+ const USDT = ({
585
322
  width: _width = 37,
586
323
  height: _height = 37,
587
324
  ...rest
@@ -594,24 +331,24 @@ const USDC = ({
594
331
  }, rest), React.createElement("rect", {
595
332
  width: '37',
596
333
  height: '37',
597
- fill: 'url(#pattern4)'
334
+ fill: 'url(#pattern5)'
598
335
  }), React.createElement("defs", null, React.createElement("pattern", {
599
- id: 'pattern4',
336
+ id: 'pattern5',
600
337
  patternContentUnits: 'objectBoundingBox',
601
338
  width: '1',
602
339
  height: '1'
603
340
  }, React.createElement("use", {
604
- href: '#image0_214_308',
605
- transform: 'scale(0.00552486)'
606
- })), React.createElement("image", {
607
- id: 'image0_214_308',
608
- width: '181',
609
- height: '181',
610
- href: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALUAAAC1CAYAAAAZU76pAAAkA0lEQVR42uycA7DsSBSGe23bnHRmbdu2UHw2u7O2bds2S8+YdNa2bUtn51uUnpmezPmqTvHe9I9z7whGmQT2v3Om9Ih8oXRAniQ+3zxxxUHW55l1+ZmJz2+1PtzdnJD48MLEDD/L7/C7XINrcU2uzRmcxZlGUaYWqx7/4twrD2ysUs+K7a0P3VMfLrZZeNT68GZzvm7OL82RqTxc82vO4CzO5Gw0oAVNRlEmlq2OHzxz6oqtrA9HJy5cb114xvrwK8sWyfyKJrShEa1oNooCsHLv12erZaPraVZ0ac7Dictftz78zgK1yPyOZrTjAS94Mkr7YbPG1okrjrMujGQ5qjR4whsejVJteOBlXXE6D84ov00m4BnvRqkGy/d7en7r8/2b84j14TeKbtP5jQzIgkyM0nrUfaNms3CB9eGVMQrWeYVsyMgo8ZMObKxrXX4jT4lNsFydr8mKzIwSH8nAYmfrizsnr1wdsiNDo5RPzYe1rC/umzrF6pAlmRqljP/MT6TWhWunTbE6ZEvGRpn2LH/84Nmty4+yvvhq2harQ8ZkTeZGmTbYrNiDl4inb7E6ZE72Rpl6rHr4kytbl99Vbrk6dEAXRpkyUld0tT58Fk2xOp/RiVEmndWObCxmfbgl2nJ1bqEjo0wcqc93sz5/J+5SdeiIrowyoYUOJ7RWsTp0ZpSxPu+8cOLDQ61ZrA7d0aFR/sW6xhrWF8+2drE6dEiX+jK3y3e1PnxRmWJ1vqDTNv4PHfpUs1gdum3DhS5Or3axOnRs2gXeoN4exerQtaky63Z5Yhbr88tjLiFxQVYemMtSvUfLwt1HytJ9RkenEU1oQyNa0RxzpnRO99V8d10WHo0x9DQLsny/hizUbaQs1mOULN+/IXuf/4IMvOVN2enM52TRHiOl5nJ+rlSNaEALmtCGRrSiGe14+FdjfEP3lXu3X+LCPTEu8wr9c5m703Dhv99u5zwvZzz8njz33g/y069/Cnz38x/S58bXZbGeo6TmytPK2WhAC5oAjWhFM9rxgBc8xbjc7ECVnuW4JJpFbs5KA3NZsvdoWaDrSKkfVki/m9+Qx5/9UsbF980l2vC4p2SJ3uXdFeFsNKBlXOABL3jCGx7xmka02OxC6y+0D+fHsszc9+RmesHmbHLC03Le4x/IG5/+JBPD9qdzN2RUafo5Gw0TAZ7whke84hnvMS33+aZVSbNwRCwP/rhpnq/LCNnhjOfkykEfydc//i6TwjanPsvNf2keOBsNkwAe8YpnvJNBNA8q2Y1WfNru0LKDq2dBlug1WubvOkLWP+4puXHEJ//fV4bKLzUAnvFOBmRBJvUI7nOzI6ZV4LuVrQ9/lHlXg2cK+O/Ef6YzH35fvvz+NwFot6UGIAOyIBOyqbnS72//wa6Y2LEuX8H68GGZ95tZgMV7jZIOV74qL37wowC0+VIDkAnZkBHXLfv+9ofsTNTfsv93e+cAXcmyheF+0rVt5GWubdu2bQ+ubdu2bWmYEzujjG1L9fa30pO3cnl2n97VJ0n/a/VDJjmp2v+f6qpdG1TcTMo9x0XE4uLS2vqGcvd+yVgXJ/bMA1EzhhiBjbAVNsN2ibkB0Uzedkug4n1SKzS3a5zyLxY/7uBxs1zc2OvOKrdCgqLmdzOGmIGtsBm2w4aJrdhoJx8vV85OYHXmv2Wl6e6kdYR7vcdoZ4HG0TPdhleVuNUuLUpM1PxuxsBYDIDtsCG2bGFbnw8ayqsKozKoyUlsNzjwcG1cPmiqs8LJTzbg703cW8AYGIsRsCG2xKZJbUcm50klVvcXGUzG5+RZUXhVLiXG5wZt1pz5Lm7MmrvAfVA61h3xUC0XH3nh32UMjIUxMTbGGDOwJTbFttgYW/ueZwZNtau4aFaPVeUSgYPTY98Od3Gj36gZ7oEvh7ndbq+Uywqu0rWvY/vtFmNibIyRsTLmmIFtsTG25ve2nzjsDl2KtvNNKisVMQ0flY5zcaJKAoM6vdFI4BCveS4oCAzK23BOxsYYGStjZuzMIUZgY2yNzb0LG20l5b6r9Cno5cW4G8h/d+09ycWFhuHT3RUSxsmrfdEzuxHKaUCgrV0YM2NnDsyFOcUFbL0BtvcsbLSFxjxfg2eu9EkcQfH8d6b/FBcHRk6a7W7/eLAr6Nh0u8aKxOcXtsa6G6GNmANzYU7MjTnGAWwecuBV2GjMX+/BzqXr0qTS5wq9kbizygbE4+F4/ueRbhuJg2B1W+cK66ti/wJnTsyNOTLXGIDt4cD3ij0brfkP+LffQ/MqimWF7isHqpOfaiDWmM/1ENj/R4+XcFXmypyZexwrNlx43WOjNS917nxF2GG8Da4sdmUDc1+hX+sxmhUMVxU+WNOVks/Hc7C6XJiscZk8l7Z8+Br/xvesZxzEz+czZ+aODXIEXMAJ3HiL9ENzls3n/ynlpWp9rNCQvprsEb8kIyUHTJ01Tw5P+F3xaNj7XREohHNJ8kXlePdTw0T3XW2Lh6/xb3xP06rnwa/P3LEBtsAmOQBO4AaOvKzYaA7tGYWUllzoY0+4pqxkrC4vdxvlckH98OlEtnnN21tJVt9Tn+7t5mdxH8T38L38jM98TGyCbXIA3MARXHk5k6A9i1V6MRq7+wgdXeLsbu7WDwe7XPBJ+TghsilXz+et2H/O6Oa+ULxd+F5+xudtLDbBNtgoB8ARXHkJXUV7aDDmXMNMFx9Gx+AnPtHAKhYZr3Qb7XBvLX++/0sDBMrWIkvwvfyMd982tsFG2Coi4Aiu4MzLuNFgEBc2vqrb0vKh420NTVIsCbHlbuK0uS4qnv5+hFv2/B4cyBK5RFlEBKpYAflefiaRSxtshK2wWUTAFZzBnQ97j0eLcSXQdrQ28rpyOiee4cf6idH9zz+NxLim8Qr2ovYfR4PNsF1EwBncwaGPMXeMZS8tH9bfdL+EGOSy4B4pyhIVZE1z47Vm1lWKUlHzYCtshu2wYVTAHRwW2I+5P5rMsTtW5gQPccKSxl8le7QFUQXNaiMupuYVOhW12oXKih1Z2HAHh17iztFkTkFL1rHS7OtWl1dX1AuWT8vHcVCRz4i6QqeiDoWNDbElNo16MQOXcGoec402IwYtFe1u7F4ifSjytqOo/xRuzLLYQ6eiVuyxsSm2jboNgVNzNyrajFoy7FXLa3D2cZycJ1MfTokxU+a4bW4o45YscUEXhLEc1K0LTvxJlcn+cdk498/Tujp+viBPhI1NsS02VgIu4RRura/RX42wSpevIj84xWpQlJ1dXib+RdUEp8WcufPd8Y/XE2YJCQlWTKX8b1NwFHtSVjgi2br1mZS9qGWl/sepXVkhEQKflXjkIHPDttgYWysBp3ALx5bjnIJGteUOOpkZjcPhuU1Gi4L7Ph8a3mQlV1+E62ZiH/a6q8pd+dYAxzZiwJiZjvp18xdkf+CdLiXBSiSs84Wuo9z5L/Z1O99aSaATKVvyexJLI2u+2cXWEQC3cGz6x4lGVRX/5VXYyywkU0TBoSRKOGmmcQrBOYnUqMD1hdg4CF0uyancBiLgODFBLjPeKx7rTn+md3PHgDBuJZFaKtgamysBt3AM12ZjRKNZdygo7Fi0peVemlcbq5IW1Gbe4/ZKiPae5czvZItx6av9w2Age1QMmkrAk7zK6XBAGK7fOWNj5o3Nsb0ScAzXpntrtJrlDWLmJsvVjhWgPIIL745PJIBGXvusWj4LTS4mlwr7ig/2h7qJLgm8mxnDXp23RCLbLWyO7ZWAY7iGc7PxodVsvR7VNoNgn9bdnftC3yirFq99VktvZBLMz76y85uNbjoxyAliyPhZ7tAHarEfr12vWy9sju3hQAm4ZsyW46v+85jpLiXbWA2AUz2HK202OBeNRz9ah3G8kMnvYB9LJNsDXw51+QIOoYc9WEuNad/7a2wPB3ChAVzDOdybjQ/N/kn+YcmNVobhVH/0I3VOC2KOw1JYXlbodcMUqCcolpNnmCTCPvj+GvEs+C2Dhu3hAC6UgHO4N1uQ0OyfbD1KfrDcerxXPEbpk15A5ykOSgjOS7Is5F0uaU/5iiFSqXSL60rdKhf5u0nl98ABXMCJAnBuugVBs79fcalj+ZpWhR4JSN/y+jI3dupcXdpQ11FhFSJf5Rh6UDI35zw+MEFWVUqC9R4xw/UZ2fTwtThALb3lxC6soD7b3sEFnCgA53CPBswKS6Ld34ubPsLKIIQlXvV2o9Ng7rwFVOGUPWQPP6SFcSRduRGM2FvlG0mspQTYUfLK3V1yAbe6vkxW1f8/fO1I+TcSYD8tH0+QfU7VWJvPGZ4euICTOfNUN41wjwbMxoV2PRZ7xI2XoTSW9oDI5QZ+Ug4ZXlZpDmDnv9TXRcHnleNY4XFhsd9lC9Nc94+v8d88fI1/43v4/4j+mR+Gu3mcwPRRcVzVe/MI8cAF2TLf1EzQHhjRAFrwWFTyJvdXqa9QZNXaYX/569biRFmJPKUJicEziEziNiZr44hlZe7vlhChkhUe9grPugc6t25cuR/xcK0bKm47LU56qoGqSV791mxBTpNLISXQgFmLEbSLhltmuHQuXsmqoxar092fDlE328Fpv76nPSMr5yEP1Dige60OcH8/5eewL3jU4jdNCbv8/mnKvfxbvcY0/eF7jQtpcs3CkQJowLIy1jw07K3yEn+dpQN08QPXvzsIsjwdgJp80neqbs1omzyBLUuusRnNgmTPebX8kWgwfMJsx23jOp7LDsMNHCmABtCCdSUn+6txMiF2ldiBSdOzX4G4vdv1tkqE5oMgEkZ51Em/xzxaH2sZBrYia16aUbf6OPu5Pt5sFT78PjjS3LSiAbSAJsyuzM2LPrICETfR5c1G7QrI4YqDha/DD8JU7WkbR8+QxvbFscc1UK30CokA1OCJ74Z7z56BGziCKw3QApoo9FFM0qKA+vrhzdxbRbqCKde+MxBy/YWUyv6Q5vRTFJFon1WO548hds8MLkU8IpNnZD+WZ34cIXvyrt6DneAIrhRAC2gCbdgUagdg3U49VpAvDo37lxAPvOk1pa526DRNPDGvNeJ4vZGDkA6VmIqZioZI75WMlcNh/KJmBYP0x2X1zTIcF78xq6Z3UcMRXMFZlkALaAJtWIxpKFoOwPodi3ex8HxwmNhXDK7xwZYOmOq5G1Yo6gd0on7fSNQ8fCZ7/BveH+i+l3DXHn0nu58bJrV4evWb4t4uGuMOuq8GexH7nFi3MDjLEmgBTVg5Aeah5dDzUXK8RYEa/JnnkQyg6wrFz3nN9FhFRH3EQ3VuliIfr2rwtOa9pUEiBXv1sCl+8W8F2ZMwwGpHAkGieZpwBWcKoAl+ziTRGC0vvB6/2uKveGVp6P7wV8OcBmc+2ycsbes3XnjPO6vwEasCrXa5rcLxCi60qwCLuMNC7S0evpYX3cPgCs4UQBNow+RtjJYXJgU8ZBCqyIUEV92qxpQ731LBzZ739m0byso3VlkS4NFvmr0OobDb3QNXcAZ3mvAHtGEVjPXQwnDTd2L+YGKSEYuq/VnF4Km8almJfBLTvC8mik6DKTPmSZpXNcJmvu1R1HAFZ3CnafOHNkxshpYXuvN6WNT1oCDKpBnZn4xf7TaKUzyHJK/EYFxe89Tg0GL05DnupKbe5eyBhSxIbj+ihis4g7ssgSbQhkldELS8cKWuj/vDmejhD6k8CvT+QxjEFng/xSPKq98Z4KLihZ9HSoHEankd9ySOg0Nccwx4QRsWNVzBGdxlCTSBNkzckGh54Z56pEUQ0/kk2OpOxZ6r6rcMaNpHCtPMxgOSA76WkMzr3h3o8B1zqbOSHIg4TGEPHvag4SHPsK2E9+4JWi8X2rAKbhoZADIHLERy60e6AKHjHqtv0WrB976aYJuvqyfElktIFNuHkqFyy4eD3AlP1Es1p2q39Q3loTuuqfUyD+SybWmtooYzuFMAbVjlWU4OgMVEuRW774uhqn3W3ndVC8E9EvO5Qs4pxAkbgWJOlCbrKZcp70oVpjslFPOil/tJyGktY+A1TgB+WCvDwDtg88AZ3GnOT2gDjZiMx0rUBL6rctmGSQjlDreI31f2pIntDzvjd+3lKPvlE9TTo+oTbwlijg+UW8JwCwfxutBW/w+cwR0canJP0UjrEvV/dHWacQkR18yJONFqn4ia2AQytpPCXLlKbhgx3T301TCp81HDNT6v6nxdueEM7jRuPbSBRlqVqPHdsp/U5NvhHlKI2rJuXk9HA80RrDx5AEoDn/V8n6YClaG488htCGdwp+oGgTYWaeOiJjAesvJC1IXsb8/uLh6MGkWMtT0IZDr+8Qa2JLoWyvaihjtVcsMHEhD2n9NTUSdyqt9Syhqw180jyLZkKH5wfOIIuzWKmr4ytNHArdl2RV3cOAXj5EGQTstIONx8PJe80k+u0ae7PAElCrAVh0mE3dpETfxHU7JAWxZ1mRhkXa8rtT4MdKOrSxxdA4hvzgMQa81e1qCRk4Wo0z11Xj6sjIibBFkqMN37+RCHl4LA96TwUek43iSkR+WbqFNRl8rJeZ0rZPthIGqLBkaU+yJAn5Wcy5PbPhzsvpRXatWQaW4cIaz+wAUOB9vEVms4g7vS9uD9+LhsrKp4DTHNaxiW0LJILGZrQjwHbkCETiYM7kBaQ9z4/iD33E8jHPtfLleotWcAClCG0XKJ2A7O4A4OFa327ERtFfvByZbINVVRlh1vqTS4UfQfQ0I2DCsn/RGposqrmeKQO99a4QhTpYHmZxXj3MCxM2PbulBwkguagmRuFOEODjVRjWjENPZjpEXsxwPEfigC7gnd5DRvT4T/WG0Oc+x9mR+ReyvI/2brcqK0ZqO4OyV/cwGH1zUSihdhTnAHh9niAbvYj5Fm8dRkCxOCqcHxj9XTbbXNB9YX/D/AnuKOvIYpHUYJYFa7iGWE57ndbq8krNX7fOAM7hRAG2jEJJ7aLPOFVemc5/uqDzzhPqvdPazehKFudm2p+6422mXP5a/2T+RNB2dwpwDaQCOmmS/vWNTSOPiBGg5HqnBEMlBC91S7fBAlSQXdIxR+f+SbYbzSfR+W4UwTZowm0AYasctRJAPXwKdLtBvVezRunuRvFZO/xeR6nq2EuqzvZxXjfb/p4ArONO5bNIE2rHh+yKzuBwckPAF1w6erbhXD/oW+A5gIEGKV5JX4Rw8HMWt/MLYjBJba0+qr88UlRrnAczY59oC7LIEm0IZJNjlaNqvQBPlrKP+CZ0mBmB1v9lv3o4OsjLwG8USc8ESDu+iVfrTIaPFcKPtFcvAOuFe6hMneFzKsD5KLibuLK3kNSgdO4RLEZ2oYXMEZ3GneyGaeGrRsVkuPQBX8tbhuNLjgpX6siN5WaCoFbXJNaVZN5fEpX/POAFKuzMdGVsjJT+lSy6qk+CKr5poePSBwBWcKoAm0gUZMaumZVj1dWg4tNIzX4KVuo4ivgBwvPmRIef6nkU4BMsUJ/bRNVDiPnoW1ToNKyTwp8Jg9BEdwBWcKoAm0YVb11LI+NZ215Mq4UuMBIXYC95aXvolrhmlIBN9rcNvHg7kNM/3Dw4tB22QFmAfxKL4uYOAIruBM4/lAE2jDpD61eScBLgIIAs/0n6JJQmXvyo2bl+pCvAZfUa40xALTTxBSLftOXqh6rRNPQd5fV2+1ROAIruAsS6AFNGFySYSGzXu+MHhaITzH61132wSpXojh93R8vdEpQENPiXWoYG9tIiBWWm4aH9eVyKVQu1c/NbaDKwXQApowyXhBw+bduSCcPddlyh4m3KitJpFfa5qf4rnO797Ub3ueLrDoVilQs4gBOdiM/TqH1yHjZykP2X29HbLhBo7gSgO0gCYK7bpz2fdRZN+63c3lqkuY2SIw6kWzWvm4PMBbUM2+UAHK/m57Qzl7w7iq+DcTzRaCQjca0CZju5vKsbcPUcMNHMGV5tIFLTBGyz6K9h1vOUzRGP4HST1SgPBMBOPlBI9P+LGvh0fJE6T1WmzpVKz6xGQjlom6xvwkshJP7e2QCDdwpAAaQAvYyrrjrX1vcm7q6AyrAOW5OM3idvMS5E6s88wIQfwvdR2Frzus1sofSbQ8SJIL/n16V7ff3dXq4u+hm4zDq7dwWriBIwXQAFrw15sc0InfKgKNgxWnZAXIHmHlgnTzjrcY+61eo10UfFszgWwX4i74HFUJXwTCHwRhmMx37GS1oLk44m3hJewULuCEsSoA92gALZiMC+0Gv4UOHcvXJHPAoJk9Blc3kvypfhIeBvMAJ/ayiGonMfq0WdFSrvC/0qSTfEWugMNoO/6bV3WLhy0LBzr+m+0CzetzqS1y8pMN/GEgOC9nEDiBGwXgHg2gBZNsF7Qb/A4IQ/3B6tqXlCMNFjhaJddBmJfC67jDuFjJBfQ+4TLi9R6jHS3jTnmqwe0vvtwD7mt6uI0kE51X8SvdRuec8fJeZozXFs5wAScL9OlmZgUh0WzwRyjoVHKjVeALAfCjp8zRvtpZ8cxbZhSG+1rcaZTabQWgdwqrM3t6L2EFcAAXcKIAnMO9WaAamv1jUXcp2cbMy3B2d3WcRdjYnqRSXGfmwmZbsLX0IyEpNp8xftpcYq699ZzE9nAAF0rAOdybjRPNBn8G+cZqq7a/B99fE6XqJ3tTVgpPNfS6O9oTj5o02+UjSHA94uE6xum1YREcwIUScG7Zlrs6yALhlbnN9S+nX8oDAGWPEG9ZHawoS4lgiBOmPG0egdoarNBkx3htdY3t4UAJuIZzM/85Ws1O1B2LtjQyDu4g6Q/SoC/YMnw6YpOr2SKv7TI2uqpUDmNjXfIguH6c2/zaMg60XhuSYnPsAQdKwDWcm40NrQbZYMtzSv8hPtZeNnXXMo4DQxGRezrgMiPjGgN7SyLglg4XFn5Z4pWTQF/xkFzxWiMHQvb8jMtrmTVsju2VgGO4hnOTsaFRtBpkCzFcJysjsRc8/Rl9wyCCjg66rwafsldhSzYF2xFe9+Kaagzjh+1Bi467JAZk02tLid/23kEAG2NrbI7tlYBjuDbjCo0GGvy3S/kq8oNTrHzCBLMTO6EFrZbXDffmPoUdNjxt7r1Ck3kSY6l6GicITPqudqLr8majo8ANlzWrcMjyXwgTG2NrbB4xLsZ03z8FjQZayA++ahgQQxcq8v4ixVuwciKuwoRKiTF+GvFsJiGix0p1os4iwndl791dfNxTRJhZi1jKIPxQP5HXO0m+0rqtii0G+1AyrhOpjYdNsS02xtZKwCncWgekvRrowWpdtLtlIUVup17vidHUYI+rKF9rt3pzWbO4jAMRElK52Jnd3WeSGZMtPpfvxbPAfpktBkLAfaaYl03uoT6+AwA4hVs4Nhsj2gwi4eh3/iYfkLEyHL7LLa8vc2MiBPFMltDMvWRVW9xM2PotFST+9eSfNWUh+F5+Jm/ayWFLbIptsbEScAmncGvJSwZtBlFR2ClzgmXEF3/R1LeIgsbRM9l3ErCuuG009ufq+kfyvXlTPxAbYktsim0jAC7Ng6vQZJALNrypbjH5oP6WGd3EE3TtEy3egppzq8sWIFwZUlHn+ObEltg0AuAQLq2zb/qjySBXyIQ7Wu5N8QPvItfSnPyj4O2iMVzhsi+NsEKkog6DorAhtozqtYFDuDQ9vKPFIA5sfFW3peUDx1salgzjG94b6EC0w8loVgll08xU1NgKm2E7bBgRcAeH1uMdjxaDeIB7L9PFcsAclHD04xaLireKxgg5VOzPZiuSihobYStshu0iAs7gzvywiwaDOME+Rkpa9bPchqzIgU8M3UjuW/QVGz8vr1PK4qai/oOSweG1ey4rNFzBGdyZbjvQHhoM4kZB55ILfdRm2z+s+hO9aeaE5s/yfXlBv+0vq7L2U/O9/Iz39hzYBhthq4iAI7jyUvsQ7QUGYLX+pxik1tqtxEUGJbdyQaZxsttBakwsocjyjq/V3jhNqTCvIbXYAptgG2yUA+AIrszdqWgO7QVWoAqOeXKn1Fjmdu2BL4fmGhAkoY/1GN5bIXfiQw5/sNZNyuLigu/he331P8QG2AKbYJscADdwBFfm40ZzgTUoxGeeLxhmZLPfywVzJbrsto8GSwhkz+aKT4XG7jESYfeSgjRPfz+ClZiDVIuHr/FvfA/fy89YX+czd2yALbBJDoATuIEj+20HRR99YL3OpevKL5xt7TslFpeDDFVGcwVRY9vfVN4cwumhIRHjp6o/lxEtHr7Gv/nopMVcmTNzxwY5Ai7ghPH7uBOYjdYCPyDYKXOljz0gBiSmguaXuWK05BxeLgUK8cmSsLqucf8WBMXY12358DX+zdRuzI05MlfmzNxzBBwwdjjxckZBY4FPEFBCkWsfPVmog4wIuvae5OIAhWP2ubspGIoVx5Yg/75n5sTcmCNzjQHYHg7gAk7M54G20FjgGx26FG3niyga2mPUnv3iqckxWxrvPP3DCLf1jWXEDXNYM47Pto9/Zg7MhTkxN+YYB34WQVOaDQ58LQBoK0gKFObzFUFGwA1Xum9weIwHlEGgKhN9/RAE2Rr8vlaxeodjZMyMnTkwlzhLO2BrVn4ef5GQFHtMFu4vxLd6EnbzAeyp74e7ODFMCpw/+NUw8d9WcLDi97B/VKQj+Y/dZoyMlTEzduYQI7BxeKD1GtqbQVNB0ujQuWh9ivT5Wp3wIEDmtdKaYT7pYDFi3NS57p3MGHfC4/W80slEUTQENZ97izExRsbKmGMENsW22Bhb+5z7ZLQU5AnwXZ/tk1xWKm7GTpKKn+OozxczFixwFLIhbzAsz5vJh30zregYE2NjjLEDW2JTbLuO57QyNBTkG8Twj/klmRgGfLBloWfEBmc/34cotES3ItS8xj1HzxQjYENsiU2xrddDM9oJFPDt5uvhOwWJwHRqH98jNTLmGyxfFIvc+OoSRUNQm6qxW0nu36QZc13MwGbYDhtiS++pcWhG5b7z7w3JrC0DHe55rymCK3JL01BTaj/XDou/2Mzed1UrbgBtbigZQ8zAVtgM22HDJM4Ow9FMkO8o6JzZOez05T2kcqmwcCI9CKk/ERNof6Fo52bTA5wxxARsg42wVZPNkpnXPLQStA5wjV58YpIJpJS7OuzB2t+4rElFjU2wDTZKMmEZjQStDWKsq5P05eL6QgyXvtrf1Q+f3t5FjQ2wBZ+FbRI9+KKNoLVCJvCQgVFUrdzoNbLhlSWEXXLoa2+iZs7MHRtgC2ySdNb9Q0Frh5xuH0/Sv1sQlgejrjOFWu6Wkz49ANu4qJkjc2XOzB0bYItE41vQQuAT/hML/K/c3JDR4ZY4iY5vNLryQVOz934kJ2p+d7beD+bE3Jgjc2XO/ldm/wH//rHWTT/+Ww4GXyiMYLpyk0lNvDHZG/QxfK94rBs9ec7vpl1tfUM5vuJE/dSMgbH8Bhg7c2AuzIm5MUfFymz7wD0aCNoaqPoutRueyqPgoDCWgtK5TT1eCKgnu4NyvMRA0CSeWtTUxkjwYMXvZgyMhTExNsbIWBkzY2cOzSG6+WRjOIf7oA0Dd9/D+RbCiWi44EAYHKRoOXykdMDa5samCp6KoCbTYCbGwpgYG2NkrIyZseuz5u0fuA48I//jsP1f4BDIQ6FEXvnEbzeJJT+SARgLY2JsjNG8MLv/uOjW7xW5hMmnT9t74DZor5CQzgPFCOPaDJnpMw5Og/YNVuyiTaRpelXrJjN94BAuQ1pTFHQsXU72hp+2TjLTB+7gMEjxm4kGN7cuQtMHzoIU2dTrywzKbzLTB44Ude5SbHRN0YpiuNfzltD0eR2OghRRuoOVnCsGHJM3ZKbPGDgJUuSGDa8qW09Sft5Nlsz0gQO4CFLEeb1ecgg11vySmT7YHNsHKQyj/TplrhWf6ARbMtMHG2Nrf9F1qV+7UFaQF2zITB9si42DFP6xfufizWRF+TAeMtMHW2LTIEU+rNwl+wsh70QjMn2wHTYMUuQfCjsWbSn7wFeEqIl/SmT6TMRW2CxIkf+gemaYjNC7JZHpg02wDTYKUrQ+rHVZxVJynXu0PJ8LmXPasZDnYANsgU2CFG0DhVdkCsKMm+J2JOZi5szcgxRt/SKnaPeCTiU3eqrS6r2KKHNjjkGK9of1Lu73r/W79OpQ2KXkHHk+o7G7CGNuKxLxXMbM2JkDc2FOQYoUAOx2049/l4Cd3UQs10mS60vhtfzsPBLxbMbE2BgjY2XMQYoU2UIavS+2XseiDaQQ+d4iovOpeB8W5WkM3YazDIQ7K/zsRn4Xv5PfzRgYC2MKUqSIs1tC4dWZZTl4UVtZ9q7HiUehi/h775H//4aI7z0OZ5LeVJvNw/fyM/wsn8Fn8Zl8Nr+D36Wvsp/if7BfCn8ECvocAAAAAElFTkSuQmCC'
341
+ href: '#image0_214_312',
342
+ transform: 'scale(0.00390625)'
343
+ })), React.createElement("image", {
344
+ id: 'image0_214_312',
345
+ width: '256',
346
+ height: '256',
347
+ href: 'data:image/png;base64,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'
611
348
  })));
612
349
  };
613
350
 
614
- const USDT = ({
351
+ const Fuse = ({
615
352
  width: _width = 37,
616
353
  height: _height = 37,
617
354
  ...rest
@@ -619,48 +356,194 @@ const USDT = ({
619
356
  return React.createElement("svg", Object.assign({
620
357
  width: _width,
621
358
  height: _height,
622
- viewBox: '0 0 37 37',
359
+ viewBox: '0 0 200 200',
623
360
  xmlns: 'http://www.w3.org/2000/svg'
624
361
  }, rest), React.createElement("rect", {
625
- width: '37',
626
- height: '37',
627
- fill: 'url(#pattern5)'
362
+ width: '200',
363
+ height: '200',
364
+ fill: 'url(#pattern6)'
628
365
  }), React.createElement("defs", null, React.createElement("pattern", {
629
- id: 'pattern5',
366
+ id: 'pattern6',
630
367
  patternContentUnits: 'objectBoundingBox',
631
368
  width: '1',
632
369
  height: '1'
633
370
  }, React.createElement("use", {
634
- href: '#image0_214_312',
635
- transform: 'scale(0.00390625)'
371
+ href: '#image0_1_3',
372
+ transform: 'scale(0.005)'
636
373
  })), React.createElement("image", {
637
- id: 'image0_214_312',
638
- width: '256',
639
- height: '256',
640
- href: 'data:image/png;base64,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'
374
+ id: 'image0_1_3',
375
+ width: '200',
376
+ height: '200',
377
+ href: 'data:image/png;base64,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'
378
+ })));
379
+ };
380
+
381
+ const Celo = ({
382
+ width: _width = 37,
383
+ height: _height = 37,
384
+ ...rest
385
+ }) => {
386
+ return React.createElement("svg", Object.assign({
387
+ width: _width,
388
+ height: _height,
389
+ viewBox: '0 0 233 232',
390
+ xmlns: 'http://www.w3.org/2000/svg'
391
+ }, rest), React.createElement("rect", {
392
+ width: '233',
393
+ height: '232',
394
+ fill: 'url(#pattern7)'
395
+ }), React.createElement("defs", null, React.createElement("pattern", {
396
+ id: 'pattern7',
397
+ patternContentUnits: 'objectBoundingBox',
398
+ width: '1',
399
+ height: '1'
400
+ }, React.createElement("use", {
401
+ href: '#image0_1_7',
402
+ transform: 'scale(0.00429185 0.00431034)'
403
+ })), React.createElement("image", {
404
+ id: 'image0_1_7',
405
+ width: '233',
406
+ height: '232',
407
+ href: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOkAAADoCAYAAAAKa8NGAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAQtZJREFUeJztfQuYFMW1/6ImanzER3wkajQJiYYYhJ0ZZEEUfAEqKOLI7vQsEI0Yk3CVKCiw09Mak3zxfvcmXs1NcpN/FEGNGImvEN8bFZbdmZ7pGZCoMUYRFRXjg9fuds9M/c+pqu6eXRZ2d6are2a2z/fVN8sCu91V9atz6jx+p67OF1988cUXX3zxxRdffPGlxmVleN8RK5XPBtR5nzv5lUWHjNKUw8Z0LD5y5Frl6FM3LDkmtFE5tq8xMqscPTq9+KhvbVSOCKg3fn7ERuXgk95QDqhrVfarI3XDvH4tX3ypfEGgKHX79PgeAHKU1vL1gBaLBDPy/wQz8RdD2fjmUFbZFsrEd8LXnfC9bvjagL/PB7VYAT4L8GdiD4V+D/5dPpSRcyEN/y39P/B/5R3wPfxZr4Y0eXUwK8eDWssFCOZeT7f7s/niS81LL+0VUJd8MajJFwe1+E/g83EA0HoA3YcILPgzgAs+AWjFAwCYwxHMUgAWQhSMPUFq/1m2wGr+X/tr/mn/DgBx7O1QVm4DUN8byCo3hDRlXEBVPldXV/Tcvgb2pSYFNRJoyNCGpSeE0vI5AJ5bYCQQGAg2AKQJJIMCFDRhiI7eGtLpoXCQ8088GDJ0FAL45ywF8YchLfYYgPea0emlwW+vv+lwDlQfrL5UseAmJgo1FY9vW3AgaKS5AIqNsOEJAIEw7SUbFJx0KILBOHjw4jPZh4f1rPDsMR1AvAqAPcZ+X8U3i32pLkGnDWzohTDWgEb6CEzYXmarqSkrDZx70rYK1bammczNcQTupmA69kgwrVxGHVJMfA3rSwUKaM5vv3jT4QFtyYWwiR9A54x935PzQeveWA2gHIiWlS3z2LrzavJm+Px5QI2dPvy1+fv7d1dfvBfm+Rw2MnvDQaAplwAgd9HNy4Fpb2avQeUGYBX63iEGVnznV+sz8mQfrL54IzwsMTodOy2gKavQG9tDo1SVKesgWClQFfMOa3qNX4c5+unJaxYdQufOB6wvoiWgzvtMQJUnBbPxB2m8MmuGROQhCMw9AzZUFKOln1n5QwRrfUoZzpxqPlh9cVaG1SnKPvUbWr4Z1OJP8xikweOOPjD7AWyQm8Is1EQTKn4WUJUv+B5hX8oXftqfmlh6AmjNZwGcO1nmjlwIWcNrEFTDsOK93AyOG4GM/D6A9ie+VvWlLBnz8uIj4a55G2ysj23zzdec5QKWe7m5c01+JZhVZje0LTjQ6/X2pVoETnVMPqhPtVwEZtqugJ1O54PTQaAWxV6pww206/OndSz+hp/J5MveBTbIKR2gPTPyi3DC69xLST2W3m/sWhymN9i848s7Yc7vGL7aD9v40ltgQ5zUqhwQyCg/CmnyJ2iKBSzt6d87xQ/mGQ+YyR+arI5Oy+f4QPWFiVK3z8hsy1dCWeq1NatCfNPWi1GcxaTJeigdk7H+1QfrUBW+8FhHCeD8lGcJuVR54o++hzn3Zi2sbAQ0+bXR6aUner1dfHFbFGUfTFcLZpR77CwhPxmhcobpVOLFCJr8YSAjz6dxVV+rDgkZNjqtjAhm49mQlcrnm7eVOIKazS6BFTeBbPxXSBnj9QbyRaTAKQwn8iTmsY3lqNfW99xW/rDqWmP4qdKYqk/rUpMyDLRlSyAT397TvK2ATeiPfgZNK2QWD3UqxTfVp5SReG3xelP54pAgux6cwHfCgqMjoqi20+vNV+bGNfNiLfqT4uLsvv/O++cufQT5u/CKoy54t1n+HbUGhNV6xh+0yLqqxry1PJxs4OFi1qpqCmoTA/6NTtPr4PsBSm0SM/8tHzGznpX+W+RPCpo1n9awf0d1gNg8fFimUiCjfM8HarWKGWLJyn8zibUqfyNa2i7PwWTYILIA+C7cq9sBrCswQR2AeB0AdE4w3TJ9TKblIvj6QnOEUi2XwvtfCf/+Rvi//w2m/p8BmBtgfNzjAODhDk5CVvFaN2jl/9ISuE547luL19yXahBC2RKOhoVsD/aIf3q/wfYISlur8XIu+R8AwD/D3/04mJab6lNLxyL954iNymetypHisYd56OvfYYIAS+CQzwGwX4WpeKFM7Fn4XVsCPKGDlpXRBPjKzVs2rQbGCCHHXN1jvpQhsBHRTQ+Ll+XmYAVtMFMD2Fy4IVaX2g3AfAeTzMGUvW4MAGi390JvppOaog9SblrQno2dDpv+l/BcG0JIoIamcg/u30rTtHZMFayHnzo2P76IFViwVLBH3afXGylOzFRDlnZomrHU7LwzmF1yKraAoMH6leF9PTXbeBUKamxktEczGrVskbPNsEFaCXPLPb/U+6t0BTKx2z2bO1/6F+yPAht/bUgz6Uy83kT2KW/RiIB2ApDeBabmtCKSaZRKvE+xZwKNi7QngbR8DbxDqw1YmmNbIZrVIhdHq2SRx/PmS1+CmiiYlVeHejg/vNkwQQucJnMgpQx5NZhVFEobglJtdZNFpnEgq9TDOz0EAP3AMoW14lCPd4ciew4ZTN/Y931HUoUJLM59Qc9joDY4bYdV/I1ApuV86vBx+l7plfD3QAZAeE8lxPmeMAbtrVZVzPATHho6erjp9cEXj6VV2W9MJn6HSdbs6QaxwEkJtzTQnNOPZ7QgtczjM+y0zNLjQKMuhvf/wNRk3q0FPyhZf52dY9JKsIbnvjokmFYaYTG6WS2o+6e47a3lBctZ+Z/wHD/0el5cFQ4C6mjKKH+AO/en6Bco9mS7f2CiVo3hnXlrKKl81QeqFwImV1BrmWhl1XiSSWSl2+nsz7HbaXPeoZtTyuKwiYXHwoGVsMNMXpjA9trA/ujwemKGnlA2BeV42ASbzbQ4dzcB3wBcW8Cp/VwwExtddc4gUYJkbpsXHDhGUy4Bs38rJQ/XvLFygrx9Izq6MA7s9dQMHQFtBZO/xkz3czfUwpwTAZYZBBswdhPtd+KDs085rW3pcQCQ++0CbrfBaodm6rXYXK/nY2jIyvC+2Lkr1COo7pb2LA7ox9+oT9003OvpqHjhoZtgWp4Jc7e9+K7q5tpZXn9NGecz5wuW0Wl5qlnl4dYiW6lwPKwS0ORfDm+ff6hfeDwIgcMVDzWYzwTPC3ax45zN8BDQ4htHbAx/1uvpqE0hzNUPk/2vECu5cmmBaUKCmcT9bzDX5vmewtLlWxuVIzDjCtax22ZmFL+WVuUMO2jvqSN+/FSIwOQ+7p630Ip7mqVjHwezyqk+QMsUPn/IkhFKy512tpIbh66ZOy0b9VllrL+WToqi7BNKtUwJaLEu98rOrHtMPpiV/37qhiXHeD0NtSb1GXkG126Gy+uK5vYnocTSE4ZwuMxBgdMulFCOhQn+t20euQdQ+PqZ0WnlS/6pK0AsYjjknXIrpZBVzbDQXfy3Xk9BbQhNWoj/grOaC17EotxblqCwjnao9k9bcQJzO2qdchIyToTc8thrdvwUHZG+A7AcWRneF3uCsOZJbphDVpgF70l/w/4wvgZ1QWCdA+riU2DOP2VAdecw5o2Ns/wp/HUuVcAUetENCk6b64eyJTzm9yBxWUCjBtQl9Vi4zWpvxQPVCstk5Bv9tS5FYNKC6dgV7nhzzTpE6ml8CcMEvonrgcCc16davkk96a40zjIL8uMkoLZ8rc7XpoMQzlMEJ+r7NO/TSZBqMoFNQD/5KBSNzciWoBD/juKZYEbZeuUCs/RQbDzc4pzSQ1r8V742HYygRzcjXx/SzPtJaQBkX8foZ1CD0zKjsJFln/zvC6F0LD8m3fL2malF39zcFj6QZJsPIm/MPYC0wnht6v6kqHCYwLORXicu/Z5Stw/xF9kxAfBcbbWiFH4/hT2WlTthL4T8lMGBCMGGSktPhAXaZdeI7g5GE4RsxOw/ZxggAXhkjLqENHQsJGeu+Q9ydus8MuWpZjLt8TCZ8edpJPzgFNL4x3NI5P6JhaYVEwrrXri8y0hK2/WktENXozvpJwz43qeGGn3bUKWXdVXqMJLRv+ZU6S5DjdwCf/5eLtl8gZ6MjCHqrK+RtvARAFQKVh+w5UswLf9GvNPQZPun8fCHvX7nqpGQpvzUIj/uA5z2iIFGjJP67C1UO45rX0jOf+Y75FIAYeTeM8nsu08nc+8aQ+bA5+x7GkjzPeNI8/LxMM7gnzjGFR597rKCkYoW9GQ0T4daNJISHQDOHIDVgKHzzxx8vwBAJfA1Hfjvcsnov3Kp5v8Hn9NJ+9RDi9+L+FQeAxc85FqV/WDdNbtyRqBGNSlX1CVf9PrVK14ooVhGfo/lylI3uWXCBikomak6Nnkj1Y7TH5tJLl95HpEAlM33AOhMMBYPC5B88O9HYdzy8BSyKykhwNjggNvDKPQcEh0IZoMN/D4CHQCNwJZ25VQArRptBZDfBt87/4ON4YPNd/W1bb/CqFky8hshyqMk2nkYz4P2bvPrTvcmirIPtkMwPXs8dxZM2DgZk1pKJqy9jkx9MkpN1SiAbfYy0JDLGvYIxtl9DBOks2H8xwOTyLZk1ALoXsA5mGGDGLQyADXHAQyamQL3w1xSeiiXkq7SE5FRpHXiAT5Y9yLo5dfki+08apFmL6cExQJ+39Pbh8BijNKuO4xmnvDsImbC3kAu+svlFFxz7h4zKED2CVL+/2cBuNtfvJx0DUyDOgZcrnUNUwvD/XYLgHkh2dB0DAB2P+Jnv+wu1JEYvz1Im06JTMaXGd1KRv6D7+ntS1hcdHZ99mZjXMcNhQv/Mos03j+pb9OVfw4UmH1p0T88MR3AIzmtRQcDWNNExjsvattt8DwpAOwS0jGDdrP2AWsJMuofDAf3JrNqRpw2pY2xugLrF5/iA5WL6Qld/MyMI89p/e7mmQ9dlAdTtsDM2NK0ZX9a9Ir7ziIfdUik232A9gla5oCigOWmsfQxmMZ3g5afSsNAdb63mLLoZ5WzAaQ7MedWlNlr07zIt3n9yhUhqCk+br3kMD0Znf3ssxdvbrprTAHAyEaJ2rJfkMKnuqapUgC6Jy2bY0NCAL8Oz3rZv9ulQ33NWlcXysZ/Z/YmFVIsbhb4a/I/hyyxtqkRiBr+vJGM/LeRlN7Np6LGLX86Nz9n+bhCMx0OgxM/qZnbQH7y8GRSUB13FokAKvMeM1MYwz6b4etbyZrph9D5G4qODSxtU2/8MnPuiLqbmgwOsRztJD6UDkbTrO1MR0400tJPYQO+hyYeaIncm2tnUe05mw1HAWqbufC54gzyWlvFatG9ABbByrQrmMFvwZ/lHYnwsUMyaYJ6e2PzgmlZYLWMxeCQoe1BhoLQzdQx+8i8Kl0PG22XkaRmHEsGgPH7x6eSCA+lOA7QYmfRX6eTnKVFPQfgIAePyaJmTeLX0Z1ggVxNtLmHDSkzmGnTzzMnkqiuBWY4Rt5R84n3ZGUdtelhY10B4HgfPg0a5OeBf50lApAf3H8mM0dFaFEO0pl3N5B3OyLVpEX3ollZzJXOZ1La3J2MzqTzPVQKA5AIIKs0UjYHQTy+doNneUFdLYLUTDg3EtI5oLFeNCzPpWRuMutO+Obay4UB1DR1MbPoricuruR7aIlglbiTiSZJPG0kouOGkgkMAGq3q6ScBqnVGe/1k1rnHuD1uzoqCE68L8Gm+QVsIJ3nwFrgNIcJmN88NoWCqHm5GFMXD4Cr7j2TdKeaawmkPQDL5zcP1kqnoTbfjFeLoWACw730SrtY32knklKwmAy12PiacCCZp3dXomkKAPTfBr9zGj3zXa3NhWbntkSEpvexu6gIbTqOSHDXvfPxC0nOys/1HFSCtCqLt1LNmox+0JlqnEDXpRZNNS6YYxvKyG/bIRkB2hTJ0NPxH3v9ro4Iycw+DjbI43Cqdxl2svlu4DS1KIL0pRcuI+G7xwoxd60kiBVnkE3rmqz0vwoAlXCwGizJfycclA+Rl2cf6fXeECkA0u8wpsFeFVPOmbzYUmSd1+9ZlmD5FWipqQCAfxnMoUEdQn2BsxikeVUif1x9oRCPLruLjidz4Gf/56NTq9ijWxpY+fznDVZK9zJo1ok1af4Ss0omvlNMcbjCyiU1edfo9KIvef26gxbKRNA6cb/uZNPPeSjFShrf2yYy74UInCUrJ1EgOQ3UZm7qzgItnX4xzD26noPH5SGZJrBBzeCEtBgP1Fp0KgW1+IOiTF6LTFtTrquqeykFaLt0PCz+GtgMRq+75143j2nqvreuUZxH17zn3nsm+TTBwy6eg8aTUXxX1UGzPkPam46pMa06DGOZ2FtGjMlr8SC9UFVpgmg+YXzOsMIqe9eevUGK98Nnn72ENC5rEOIwYsXf48iyJ2sq7FLGsNYInXmv6ClprNd7yGkBjfcS61crIgOJNut6+/R2BZk2KtsSQfM2l4w02vG5gWnP3iDNw+f/PDKZel5FeXXx84MOT0rRKnXYyfvJaKeRbDoP19PrPeWUwJ30Dt5/VExiA9xLQxuWnuD1e/YruWT0DtCg3WY632ABigNNT5JqJjc8MJHeR0WYugjSax+YRE3cIWzq9glStnbU+97VnZBurokQDZjvo9OxBgYm5zOQOBEa3nmbK7bGFCtWYHHvK/YalgJQHFSTAki/u+IMMaEX+JmYB/zb1RcRw9aivXiJrILrHE9cz7NDx/RMW+aheRiZRGSs3jNFaz73GAOu8FEwzHdizBC/JrWQUQNWAQDpFYsby+F7KetrGn+orhIPNaJdcpiRklaXC04ToCwVcJaoZHpaTdO0fFwhu3ZWoSsZ4XmunLLEBmQnfH4MYwt8vUlPRv6JoQo9IWXgMwPf0/Br0DQZQ21+GSwI/PtNOfj3+P/o/09ZwDV0m8OoUCXgLfQC64OkiCCtWgUbezGNJybhHr5+n/YHqhQxXfWwGdci+52uRsreeCZIVz01nUgOgrSIUqXQvGJ84er7z8p3US0Y4awH0psAsPvg6x/A+0wgmfBx218IH4UF55QIG9kPNoY/SzmGeg/8/htzD/igNXwwHlgkHT6KZKXj0XmWVyPXws9dCT/zbapxrWuAxCg/KxusnHOJriuGz54oXvdqlGBWmS6qztRMEaxPKcO9fk8quFDbOmYcyTl3eiTGlzNMkN666lyWr1siUJt7ApPdQ5eNhc+GQtP95+Tn/2XG+rwmfb9TjUzCUBEhLD7YewMOlJbE/Hd9Mtfj3wGYO9dGTjSSkXPzyeYFqJlgvGOYZjWmSLLqn0oErFVcDmvTSg+lagQqJbJr+XpR0y3nQZqJFeoz8mSvX5VuvO1rm4+GxcuyBAXnNhYCtDMhkSvvnVASQHsA0+TOXX4GufyB88gFf42QM9YtKATANBn50q3fp+/iYuuH3ocAUed9xkg0nwXa9PfIfp+jdbTc3O6ZNuk1SG2tiuudkhLklSsOqUagDl89f/9QRn5XTPYRo2sJZOVrvH5PKrCJ2g1K2eGMBjUHelq3djSRmRh6GQRIe5Jaj6eM9JF7zyKTn5pD+XiR+pO3m8CKhQJ2j66E7BB6SKCmXQnaKTH32DyrDNrB59UwzWPunKoAoPKkBzX6F6/nriRB6k/kQBLiPLJaY97h6Tu+9+T5B8H96m+cV8fxkx5B+mbbLDLzrv6T6nuzzSN7YHTFBDL9scvIhLXXklC6hZJm92jKxE2S07PK8ZXoKjcZKnKp5mkwxw8bvBiBmcKlh7Wc1qjc9P2j1/M1aEFqFbyXUjZBp++lmGxPi8Af9e791kw/BO9SjANWzGYxK18uv7uhf5PWGg2gNSeSC1c3krHJm4q0ZlEHtYxseeACmvxmHanc9K3iey1RpW/nVOlumO+thmqawgNPsRQFVF4kgc9SdeGZkdkbjsbEA+fvpTQMgyDd4MmL4cYBcN5p9AwhOL4BsKbz6WdnUKfRQACKZu3kp2aT+uzNRf1gioHZaxKR7iKr3FeJWrQvKaY7gXm/nc+TwYnHPNOoOg/PMEdf84Iqup8Oa2hbcCDskXeYyeus8yjEgL/VdSWAC2CokRaDV7Hog8jDHTRIYax64sLdTN3i+yZqzuiKM8iUJ5vJGHUxbWO4u+bc48Ue21P8oFpA2ltIKjpcp/dWaRfGYftitHAPqFKBxYIlA7T9HK/nZqDCC8FfCmmKGJAC+Ee1XneYay+EGhQAOgkWZDtt7ydQi5rlaf/72BQyZw+aE1kaLn5kBmlILLKa/Pboyt3fnQEmsT4bm+DaBDosZqhH16RQtyo9adhtKLwwgW12QjDHaXOpajj8FGWfUDb+vBDibLxSwX13hHrjl115F/Q8drdLI+w0ObEeRhOkP111Lpm7271zHGm6byIZv+5HHJyxfrRmX943OOXScicWAbsygQLFNINBk02BuftAV3dLQ3QVqPyw+JBkm4+uBqAGMvG7OFuD8yBFRbBhyUjhL0G9jK9N3V+nsVBKuDyocrNyQNqyclIPkGISwhS4d45JLx2gWbtnkML/+3h0evFRwifQJaEhnMTcY2HefsUYAUurPCpvsCsQ3SdJaQ0NJ1UyUKmHV46LAimmHQYyS89w5V30lHSPm4tu1pHO/+NEZuoua6DNfye0XctDKYPXnj0Gu4NswfaJdZWYBF2imFlN2A8GDtVNvdbMLbBa9ahGSrrV6znZq8DBFtJic0XRqbArVcsUoe+Ap3MuGbmA89+4ttB4r+qE33fV/WcWZi8fV7j40UsxQFw+OItAGtTim0ZmbzioWh1HexOqVbPnHwTz+FxPL7xbiRBFFUKVzJm0Mrwvpu4J5OPN12eUS4U9Pz2Vs81fgUn/VHfhHlp8EiNIdyak/BUrziic/fz3CuWYtnsxd/950hsVVKXgsND12xw+EJsOM/Z65/KqB6pNdRbP3YztLbyejz4FWySujwVEFYBTB2VabhL2/Nj6PZdqflpPSDkX3ftWdQiA9O1Ja/+jK5i92QKpo5OXkV8eCg12kFCsO9k0E0CKpXNllxAO6rDlGUk5tflhTMb3ei52EyvRnoZLBHHxxq4Q8+w0Hhr9kWFpUOFatEeRNdypNr+b+u43AZjbYeSd0J49J08pBNJypq5VqRlKkP5ET0UCOTX6rtGzhYfgdbWuSXk9GWmuRCcS0m+yrmti2k8ENOW7jj80yxmdcSRM7ieGKjYeujtIaZzvJfJi5HCeDbIjhCDdLWOo/MkD82ZIgZTGVRkp+RajRM6p0taVpQ1i/JTW2FYYUE9rW3pcSBMDUhyBrACQbm6De4xKGye5vJBUaz9G2sJHKETZZ8TG7x8MIN0ppt5v6IEUhZYWpsNHwUH4fC+N6sYBjL9vFamwXOmqBGmuQ7rIYCVIecELWGzi6noy+jek5TA9gSe9MfcAW5OKAOnQMndNwflFlgmY73bDIil3Bai4nzr1jsZgJRGaVRVIzdIoAwuOxQPUAinXoOveaJ14QLEphPww2Jg1KASkQ+9OWiwI1H+3Tz0UgPovw7aYRK41XW+esriTtEuHVorZW3V30u5k9DbdnXtogcdekU3vma1rpu9W3T/8tfn7B7X4pyEB5i568oLZoeHd3ZOwTDLpUFhrVWcZSsLXXLfvp9dXhDbFjKNky8m0plSQdxebRDn0rHXDdiUaTzAYK55ZUSFosSSrRyYs2N93rmn8Up/B7pXhfQNa7G0xmrRHnNT7zeKR4Lx3rms8CTTc6/a6i/Pk6wyo1Im0A1tYeD33LOMoVBVxUlwsXY0860JWkeVEgI3xMdkAC7UXswdOuJdZNojTmpRlHI1oVQ6uxYyjwQjVqMnoyTojBnfpmkNj4cu9fndUBKGsMkVsxpE8w5FnJanmb8Lk7TQEL5KetOg2/t2dbD61v+cCjdcBL+v8fQFzd7OYu6vUVO5uOULUaD2szzZ2gIo+qCnlzsdkY/gIT18alBMmGwjN3XWCMZCogc8YKelpzv8qenHYKZqIzOvXcYBEUZn4X+FldeeJopDfKF5TVTDlCq5HdzKyRDTjhrkXaO1pMvqopz1m4J0DGfkWkVUwQS02vrxnhJPEaI9McmFhzMwTZHD/5QA9e8NCWvwuEZqUnZxy50gkIfPFErwj5tToMrZOYveDwaw2QlKzR3rp6YUr1TKR9aSB9bFvl/2QOUbObAhO/TPJqt74d7t06ECfDV70FjH3BZlWzQe1lollT2ANiZnsQNkVbIJuQXuCsffD7/k/z15YUcDcldeIZGY4NVFGdzVazpSOngYT1mmIrXIxs022dqWiwwdTthRIK98Laoxo2GmQ0j6SWfnaoe446i2UkiXZONpISp8aQn0UFovDLnRceVHOhhxHsL/+Lo7jKG58Vb3x8yU/IOUsSkirWNcvkQsh0T4rhtp002CfETTdBcw8dRqkSLkYNwJa7IE633HUp+hq5Jd27ra4A5wxOUh3evGODZtpfvi7rPGvsyBlfg/5g7I6fmPzIbi4f1hEbi1Ki+qG2vwcUrAM7gHrhgUzS8eYRNaOmyLMo/f2xCGaddSfYOMp2B8JIynUochL2aS3vHjH0zcsOSaUjnc6fydlvLsBTc6W/HC0FC0ZXSIcoExLEzSfBh24BvMnsKHla+apJOikK4xOLz3RN3l3F25pneOSUzGvJ6Tvu+pAYvxGM7kTURCDffzPJT/fJy9GDgeA7hI4+SZ1Rg4m//aSJh/+z7c2KkeYYHIcpBotyC2E0sq5Pkj7Fno/TUTuEszqYIbm3kfrzr2XQ0tNvkdkL5hQNv6Lkp8vpzZeWHRxFzLxOm3hF/0n7dtZ6r2PKPvAqfSvkIBgM51IClR5QckTWePCuubNwK55HxSRmgkAKXVcGro6q96tdzupde4BIS2+VUwiA9POQS02r+QHzKnRBxg9p7BJ5wXc0R+W5bWjp138/wVpe3PnnUdBbDWhxR8s+fmGgNBYuirJhsAWjIxmJZrLJaXfuJLPqyj7BNTFp4juTwr79rxBPxvN00yEjzWwpV5SlBZlTObYpr7syaT3hpbpAXqxdz5ti7Vjl99BV3zZz1rjAvvlFb6uYg523I/J6DaiNn3BjbtpMI33UYGdvvHnrr/pq4N+MALmYz7VtFDgqWil/uXS0elOTObwduVQMBt2hYR4eJmXd3Q6dlYl9CitZAGr6GqBTiSzKgpTRue6AlJNvpMd0mJydgGk75ZcCmkkpTWG3bJQgKlL28m/QdrCBzo1ofReKqTzlTmhyu/r/HjpXoW0hg+GfbNZFxQR4A2SKcWK6HdhSQzKm2KcRjT8koOxoq6UPUUof5H0EdekTgOU8J/bDb/jfCfvFgCkVlGVCiF6342/PGLl0C0AH6jkUlKUx01F7B+WmZaU3sMYrbCXwBrStHwOo/GkVx7HHZK0vYQmh+sGiwHKRg+mRJE73dlJTrLLP5hFryLHqpMmy5iscpsgL5yZbL9rxMaFxzr1vLUouJ7b4L7ImxjnxfRElUwH0mUi0wQBSL/nYBJR6I21yjsD6pIvDvrBkCRZV6MbDTF5upZHFyZZcXKCw8jQkGk5PyjEeWSRkuVoTMuPl+5V6EGvSr/Sk6J8GiZHb/QZkSCFdX+VpQKKASmMt+A+enDdYDQp8+o2nqDbJqmQyYXxkQjvHL4wAOlDfn8UddHfMaZj8ZGDmtghKDswOsCKw0Ud9uhA2krWRw533IFEOY1io4OarIeEhF6UAo+/P4VhnkE/XydL8TJB6ryZwmoQ73J0UosEJuGhkAiWhkyRyzwrTxP1/LUkhtr8mC7o2sQoXCJdyBbi+IMjE4MWf1JMFhu731KLT5OvKilaABNwi66KytXlYZdE0zRR7vPQevkqnmMpqIpeNoJZ+WERz15LwjrtSVcI7FOLubw5mgjjpFVD+74oJ2GxvzAnJLfIGjYuKI0WxkhFE7oYihSaIJ1LRT+mJooIcxGpVDRlFA8+CwApvZfiz+6ilfSkBFNliAiu7/Zs89E52m1PSGE4LQY3ktLzDj/6sIAmX0vvjKKaMyHJtib/bfCTivdR9dIvwot3C+qORk1dOF3vFBmEZmTZ8S1iqhbMhHv42Vn5blHvUCtCaVaS0nJcd0GHPv7MLurfcOjQx160sM5beJaZoA5qciGQkWODn1DWCPhiLBvTxZgnNDY6EPa/sgQv/VrLwlA6lgsK4EjlyfbIx7tV6HvUiHR1RCZzClDHfRws9RBGouksp7y8sK4/MIEkJA9co1zOBayBLu0+moz8RLe7dTs7obBIOVV65yM1/HnRydG0SDcjbwsIIMw2J5tyKmXjt4t8j2oXtJg61fCXAUhmSxIBBz9l9PihU88MVpImkF+3QItA0mV0RYCXflzQZDLgp6TniRv3uFZlP5jslLAYl2YyNsikPqUMr/PDMXsUos77TC4Vfc0QU+5IQzFw7/1d+Q+KFlhsnh1nF5UQEzfgqnRNXal7BrToes6rKwCktKfodWRlnfiWdsyFvsSOl4qImVJTCEvY/OSGvQho031g/W8xxFTGFLiT88XyHrJu2LfX33Q4gPQ9epURtmcoj/N2yvJRUr7uyvC+MJEf8qJdx80SWKBukm3+ilvUF6d0LD4Sia1FmS48HIPe3l3YJ8T39PYtRe0pROTysvRAuEaRsoi8KPn19Sx5QVQaILe+NDlRcpc+0h75uqCqes6+IP2j5EksUeBOejcASIiXztSmyJka0GJPuv1u1SaYEG+oQhQADcWQdY0nlUq/c1pm8TcQoKLqRq29gjH2dMv0ki2v7g4pogsCqcFc8KWTLZUiaPKm5alscmKCTseiEzLbMsWvNd2zwCGd0sVYafQq1bUuOr3UqxQA9D5xFlectdCkyiL+clmTmFOb/8dQRaRwmRkn0o/LesASBFsWwiS9HhS5AHZO7wehjcqx/v20b+lORv8kpiWFxBpMJ6PxQYdh4IoS0JRLQllK1ynsIKdtJJhD6payJhFe+EVDWL6uVIBFcqb/4uBkGJgXl8EC6GJaBPBF4AkOAS3+qzrf07ubUNpPpIYVRWjHKGFXDjK0NwxZ42FfvM370Ao8xJHHKL4ztF75asmHODL15dToZhEgZeVKcNq1S2NdbxEAEzK8ff6hMFmbWXW9yIVgQMVDwTd7ewque1eiaZrBysuEsDUYanMHIYNwHmHPUWz0pYkpxrAGBb+C9907y7KysMIdQLpNCEi5Jt2pXvpFT7pi4d00K9/K7hziPHeMvUHJBbPxTZha5pu9tjAPb+SrRd3bHbbWYN+mov8YRPcDJLxush1Foq9C8e5gdglm2pUB0nbpUHjRnbqYRAbsL/kusjCU/IBlyslrFh0Ci/GWCK6angtCwzLoTX7u+M0LHONuqgWhlDzYrkSMhxdjsG/BHju4X5OXenOVb6CZSw9VkVqUH9yBtPxU2W1KCKW7oF3THJ9A7tFr97K3JEooHZNt/lRRXjyTWZCmfy0sqwlPDQpYVRsFeXhzYAm+328BOPwdFmAAQF9id1AxmUXWoa1hjnd8J1hWR5c9eZxjt1sASGlGCGjoFR6DdFgosfBYAM9OO6NE1OnJk7PTtO50pofvXHEC5u6Tgsogc0ZK+mj7C+Gj+tOksD5/4ndEwWYuK+wOZOWVjkweyUrH03TAlICMEOyWlor+xGtNynt6XI1F2yI9vfb9lJq9W+rXxwJ1vse3uDu47jhI6b6VtiNly96eIajFFnHWR3HWlLUH6B7bGVBj33bEkUi0xpMMQVw0mG3UhTm7FQDSUZpyWCgLd1Mr8V5UXMzKXEHX/runZZYe5zuSwNxNSLeL4OPlXLydJB05sc9fDNeOek2WzEbT4sItphalvwe0dfzndU4d0Oh5s2rzHNekUiGnSnM8BykKy0KaGbBOUrGnKb/34Mm9ZXR68VElkU7VkBhJ6VZDHHugTrTI13f7pTDno7Qlo2AtdvHcWfHrblL3bFh6gmOHM0lFh4trCyAVupLOtJJwSuAy/7QdwBa3YLZGRSqO+POjWq87bCgD1UhGF4oAKQ3zgYYm7dKIHr8QAFKfik1gWk3Oi72H2gcz21vKPEetJwZSR8HZS5NGL3TsYcsVbJOoLR0nOhWseOFCHKjw+9pPb59/6FA1fWEvXC9GGbDWE92Jpm9ZvwzWeUw61gBzvt1OZBF9D7U6HXTwp6gGkEpck0YucOxhnRBamhS/mZqiLpg/VkYS7eos/+v015RDh6JGdQ2kAFAsxof5/jRk0bsKPow12a6Kyiw9w/GsM9EgxWbEjj5wuQIgHfMy1pvKH9j3FJHalJtCpkbVFBVpI4eaRhUN0u0MpMOCWWV6iN5BxbEs7HYQm2ZuJv5fQiaPg1TcnbSSzF1TFDxtYxNAk+4U75LvCVS+mK8Hsy0nez0NbooIkOpJu9PaNrXplGBavtJsCeLOdcZaV1zTLcIqoRCkwpq+YgVMInJpRXh3+5BgJvaQvZhuLCirmgkxDU4CWaV+qGjU7oS02EllwAFKumGPFVTJiKYWPR6wHDduWEc2QOFrY2QSDl1Ra0k6wl8xhPXsoGxuV1YoSE2z9+UQ5Stya2FlyzwKabFtQS22BJ+l1sEKYPqZUyBFcFKAwtiajBZufXhyYXz79QycPB4q/LA1rzDMWfRroWmgnenIibypr/MgTUpGd0f0xgoFKZWg1jKRus6FO5GKF9jS3jnucFhGY6kVPE/lCGYc6Yno/3Kuo5L3mQlOc7yytpFc++A5hejyhsK4joWC6E/2qEFNrZ3AhsNiJzATPk5Q01eWFpiM/nclgxTvp6GsvDjYI6fTHbCyXF+FMQ9m4luxm5fX0yFKAFR/NEpMCzRNW1N74p8fe+4y0rhsHJm9fDxpvmccaUjciFcJVwBKQZqljBywZ2DNRBPRkfamY7C9hBiQYr+O6J8rGqQoWASckZ/hfSNdMZd6nMoabT0A5m/8UzCffonUL3U1lvOLfVuMEhPsTXDmYGzukEjLqvNJFICJ4GxGkMI4XV2CoRCXDlaZ1YkisZgbQtrCR8DJJLJUbYMrL1KOwCFy6oYlx8Dkv2L3AXFLmxadzmg+ZZkJhe3gqflb6QfcACWnSq8PplStWHsCwMm2hEQeeeZScsW9Z5LoMg5QOsaT6PIzAKAx0KQxoetktaBgWvT3ws1cU7BYFiZlhwBNSvjP/Bh/hysvU44odfvUp5aODaZZ2zs376g9tCp1RtDEB/iM3UXrEas4+YEyM7wYOdwYIPtH8Z2Tak8V7p5tTeS6B88lkWVjyewiDTqba1EJgEtNXaGatGhttNjT7k7i6qn7212ZRYBUKqAHueJNXi7BpHwetjcUx2be/2ltVWuweN8H8Ayy1/NSquC6d7c3jWR9hvZu6prg7KLgjJJ3wbS9+eHJ1r3THLM5QE2QNt0/iQRw/oSBlNeIMmrOLae2LznGVQsH+7MASF8VCVIj1Xy260RkpUqrsl8oE7s5aN1N3damvU9uVgOJpjjWxI7YqDCrpEoOPVz37oQUNfZARGbFO03TFr735rom8tu/XEjmrphA756z+wCnBVL4fvjByaBJRYHUdhTBz98WzCqnejL3Riq6WhdCuchSA/WEdJXrL1WeDMPYl1k94Z5rfw8bxOzIxZ5jMxwi0YB6/ReqxQwGJXAbJxUo9DZpiwG6GcD569XTyOUmKHuZtrsBFD+XNZCLH75EkLnLK1soFYq8PZCRJ3nWUgQmMG4IJMeG0/IOT16sDKENibXYgyGapO2lRmWBc8ahxDQru7PGt4ay8V+NSCxkjATMUqlI7WokpafNlMBikzaPI9VM0msayU0PnQdac7wNzH4AaoN0LJn6RFQcSKkzT85j4bin1ktXsvkCQ1R7OhaDfdazlytD0LSEhXrCLnfySqP21qw0/zfPUtLkbfB3jwGQr+CkV2wjVZA5jCRkYPLmzDBKN+yNf7Q1khVPTCc/Wnk2kdBDS83ZgYGz2NRFTTrxhWsoSJ2Nk1p51t0AUO8tQfJC+CgWKxWRdURpPbcQNeCOu1qAgEZtDWa4x9VzoPLBvc+8ksc0hbE8a3l9Sp4cUONfpiECNM88BCySVsO++mR7UsrjXfOxZ2aQG0FrokkrAcDmLGdhFDoGAMxiLUoH/L+GxCIHNSmvamGpmzsDmViLV3O3mwCg3hZDuUhN3ryuNp5eLR7eHgLPjJ2ZAQQJZJpzNyOp/w1leYPtk9/gwN0V1OKvwd/d0kfFzTBqHjtG78Hjub2dg2TlvrG2efP+87ELc9+578xCI4Cy+Z6GIpMWgda3Q2ggWhRH5L6JDmtR21oJpGM3OTI/TgmYpW2cKMppDy/tyKyr0V8Osl9H5QhswJNfWXRIMBv/C3Xg0PBIpQB19w0WMs1hlhiR4/1w3gum5RQA90FM6g9l5WnYn+T4th5E3gNdnx7/Dpvw1m9YMhJ+dxR+320wnoJDYiN8fnLR4+Fc9J6GApiyBduMLQ2YfWnSy/40ldRnb3YEpEUHHV4jvuPcBnJIcmp0BS9ZE9I2HcYGL5nsyxaudWAh/8jvgoLbFDgMWupwknNFGTN57jX+MEABFX8SE/1DmdjtQU25FQm+Q7S5rnJdKC1fH4AB/38x/Kyfwef/hnAesvHnsTYWAL8taKbLsZ9dCKVjcJjF8pH7zio0I0CXjy+UC8zdQAqgn/Z4GECqlGXqWhUtDJz4Lld7vd12E9r5KhG5gfXrEFJbivHSj7an+ycwrgah4Rk0sbJeZSY5AFzTGmCWQS7ImhfpJq1MEZGazcxvU2LSf0spYahTDc1r/jM5rxPOz9jEjWT23WP3GOMsC6TUaTSWnPvslQygJYPUBChNB+2uz8gzvN5ffQoGnI1EdBzGsgSC1Kg05sBSZSKGZzLyghCrQ815G0t1FrxBE2TW1/Yo/ru93s3xAIPPc1qvGrCnthSQzrl7DDmjbQHN2y0FpOwworFQDLN1jk4rZ1aSV3w3Ieq0z2FTHTFJDTQUg/fdZ6sm86g/Qa4kTZ4D2mQrD4dUmUYVNLhWwzS9mQ9dOGiv7WBMXWnFBDImtaQEx5HJS2RldGm0f2ilJ4cwk1d6rNzC3D2BVOcpgl2p6PCaASpISFsyChb6wxDmdVoOpaELVgaYGBnXsZA0U2+u85rUBOmMVdPgMFBKAKjJkRtDkK6mC1kte1JPR68R2UdSZz/7Gq/f01EBjToyqxwNp/KaUA/Td2gC1dRqk5+aTRMNhNxHOUjPfe67VGMPFKRBrej+CSYu9ocJqMrnvN5CgxK9ozEIIOV3SKdBSu+6qKVbvX5PxwVjqSvDnw1mlVuZCVVckzqEwMoBiiGR8MrJVphExH0U460NiYUDTGLolamlxTcF18sXc/O2cu+gvcWs+9MZxYWYe6lJTqZG62vJ5KVihmiQMykjb+5JK1ntTqWBDVOLjl/3o0Gl95V0H8Ua0nR/DiNz7k2A0pYTa2gTrWoVBCqAaJXBuicLASn9uUnpoarMPhqIwOGDHdxAqz7Mi8ddaBRUGcME6aWrLhIKUjSjL3lkRv9a1OqkRutAuwNZ+RrMHqtoD25/gs4jkoyMKZWLZmBApV7eD8ia6Yd4/b4ihacSNoewWgXuQHY3txrVqhygY5M38VxccVp0Npi6Z62ZvxevLjsU+ZyjRfPc6PTSYMV7bwcjoO02GSyP13GgMk1Kk+6VWkhs2KvQvqjXHRbIyKvMJlH8zlpbQOVgQSfOBX+N9Mmg4BhIl9tMDLtr0p4lfUF2QMpVrz37EjBHHzFrQUVoUx6OMUhm9nE1a/aaQpPPw/viSc6qKszc0NpxKgWLtChqOaEghZ978aMzeoVeFOvuz7KnYjivf8VrR82BEwXpVHLJxsuKnEciOoDTyhgjIS32+n1dlGHYUQ206vWwmbaaLRGrHqyWFlW4FhUbG5297HQy6flraCyWgbQHcwXm3qbrUy1Thq+ev7/XCy5USOvEA7qT0mZRJi/TplKe3k1rJJ93QMJOdSx9Oxa06XLYVB+bHEaVUVReuhZF3lv0uArTomZp2r1nkVB6Kc8TNgvfaa3va5iqWTTPtS9GSvq5wUrMBDmQaKpgIZeK/sHrd/VA6CZq2LjgiGBGeZRveKMqzWAO0ksevsQ2dR0GaLEmveCJSCGQvblgJ44oXUEtvoj2Yqklx1B/Qnt3qI2nM6Y/ITFTbvbSu+mnOxLhY2v+broHmdg6cb/6DcrIgCb/H2jSXWZGTKjSkyE4OHFgUkF0uRiPrg3ScYU5d4/Nj2+/wTRr34Orw/zR6UVfMi0Ur9fSdUE+XgDRq4IS7vmgjqkcaNQE2Rw+sP+nqlExEyGyLScHNeVO2IBvseB7jAfh+6k68dDMDaVj5LI/TRFi5to/jxaMF2Y9cG4umI6pcB+9buSTNxzEZ2/ogdMUmtiQikzmbA0iOHm52cs7gndEL/H6nT2XoiwsAOgPAQzvIzMgN+3yNrO+x3fXIi2K5WjozHFKiyKdih0PHUfmwGha1pC/9o8Tc0ueuDRCJ2eIWl19CnkNtKkqvW6owhxIJlDzcBhs3dUWPq7m0gVLFZq4f8NBgeySegDobzhjQIEzF3qayG87ixaTyH1nWckLzmhOBs7LlzWQefdOIPesvrDwxtpZua6EpJrz4vHKVJbQFgGq9FNDXDiGWPFY0Nh6MnK/1+9coTIsoCpfCGmxuQDQVUHkK7KY7c3hkklsalH4esafp1mVLoPTouPswTWmtAwGfH7/vgnkl4+cT9Y+dynZnoigY5FGAuAQv26o+i36FUzfy6nRD1nRtpDkBtvbC4dBLhmdSVbWieuaXK1S1GENWyMG08pl2K4xmJa3BjJyFzeJjaBNR5m3uXscAm4RQM/+2/cGmJ9b9PfFLSP4p3RPA/nuijPIfz18Pkk/P5PuhwIMzmrPyAKS0nvkyfMP6m+KhrR0J5p+yr28ou6mJlDzsCDbsTDc63eueMFrgaLsQ5n6Ui3fpHdYDYnBaLOpHhSfDMB2Vk6pADVBOq79BluD7qVHiwnSORygSOkZvruBzAVQ/mTVueTJZy4mb7XNIjuSkR7tJor6wuQ579Z8r6e7ooWWsAFodLvRsChtagI1BwdCgmwMH+GbNwMQe47oJ/aICaVjZ3HQ/g5A+iIA9p0Qj8NajH5c27JwDxvW9zWTcIwP+ucYBf6YdEvh8j9NLvTQjkXARLM1AmBs4iC+Gu6VSx88m/zm0cnkqaenk7+/GCafdESsNTdB2V3UG6bHoZ2Kdu1c0/ilIZPwUqqwErbmn7GWEUJoP4udSHRx4C58l9fvXaWyO0n1yvC+ozTlJOxMDeCLA+hWAkA7AJj/wHAPjPdhfATf2w5A7IR/o4c4Bag58A4cyCrGxY/MAIA2FJjJOp5qyStXTCDz4S65aOUk8ouHzyP3rL6ItLVeSja3NZJO3u8ln4paPWC6ezVs2vM+kAz4v4v8w3oAQrWp2vQFuJu+b4j19BLWHo+aOKC5myuH4r/aBTc6zcrhjZ1IeN/hr83fH/vdoMk8Or34qFBCOXZ0eumJo7SWr49OKyPgezBip2G7v8B65ZSkeuXjb6y9PL+pbVbh7XWN5KP2JtqBewft74IduW3N2BcY+wFmD5Bi6A/222sEntnXogMUAOo+3cnIT3Shnl6+QFyb6gmpM5eSZvgnqVAZNoCMnWF6MnJljjlyeKc820wtA4x7uvKw9U9GFvghuUEKM3ujr2DhtqCc3t6LxZoQq5FJ/mJ5I3g459LR6eY1RPS661yLwtdpr9+9KgVBmktGZ+t2ralQJxJ3weM9eHvnusaT/NCMu4IApU7DpLRLp3FsoRaUZUXR/ZVomuJbUCXK5rbwgQCc5wVSrOxm+nAT+91utekUX6O6I9Rq6mhqgHvmp2Lzt3utN2rRVPSvmDvu9RxUtXR1zPoGLNxOQ/z9lNg/Hw4FtmFqj2mwwgTnt7OjcQJaMEWHsfA15ofBVqJdcpjXc1D1Qs3eVPQOfncQvYD2IiYpb29Xd6r5m77pK0ZwXvVEZBTMs67bRf+urK9BIweS7Ju5DghlFQRzBCZU1e10QRcXMvpxTotc4PU81KJ0pyISrOcuF7z4ResqcWeR9FxVt8esNMHTrjMhnQOnrW665QUvZjFQWbpYMnq1+Sxez0c1izl/3UlpkenFdQmgpOj3dWMHBX8tHRZOpi1jkyd3nQtRHq+L5ruSTb9pbZ24nx/wLk1ookrrxAOMZORPjGpVYvPr0lryfaPn1eg1vq9BkJDW8MG6Kr2mWzFN4QvLF9c6gVGTa7QW1T+FByV4sKETEObvJYO3F9Hdubpwq0gy6V3XkJW+mStMqNm7NnJir96m7oGVaVQE7Ru5ZORiqhl8rbpXoT6FleF9c8loU06Nvs3vhK6um0mdA3tmk3/AuiS62jRf5wn4POjtxmIT+1Awk/+l28nG8MG+6dS3YILCR2r48zlVuotqTfc8uNbA/cF+t2R0w8Hq9ZwMGaHpY2r0V3giF2UkuQ1U/MTQwSYj1Xw2fy7/hK6z5wHW6BKqPXtWNLkIULY/eDbZIv8wdVFwE2zrmHEkhmXs09lVoBLrd7IC9Z2wGX/XqTZ/mZrAQxSs5rt3ZWZjAsp9MC+dRTStLq8PPxSYg2o1Uad9zr+aeCCkLXxgtyptcjHRYbeNQE9pthEx9tadT0XmoYk31E5tCtD1kcNhDq43mGMoV3T/dPPwtA5QFgmQNK/nZkgLAmFHe9NIWJQugzoGPNkQdFOYydq4MUCrbsqlI41ez4+boici85AfCAHK5sKLQ5MN3XQUJaROkox8dagdmBUnuAC5lDSLO3LcDM3sfnonbbYH9izR9lwyciVR532GPmuNmMGmV5tkmw/Kp6QfYFiKvy+bf3edeX0AlO6DbiMdOdMHaIUIbhpYnO/B6NQ9cFDsrlWtbm5mGuPbeiL6HZIJ09bs1Xo3ouDEhPh1jSfB+1wLFsMWfjjmDI+1Z9Ga5+GQ2OYX8FegMBZ86VbDs/tp7w1T7HlGqkjmYIKvHyTqnK9Zz13hJ33x8+nJ2aNhfp+Ed+lkDjvzEHKl5ndAIEXe3HyKpXD6UqECCxUz3M1m6WdItgnMHUyMU0l6Cat7sI6StE7cz3x+r0//YlASNfAZIyGdAxrz9/Dcr9LcafM9kj3A6fEcF9PgRL/j5fz50o+YG9xgTPhdhvtZSf1vpqSVYpgrSjd8BTb9L3LJ6PSu9sjXsTqjOJQj2jw2fxe2+sBi9+5k08xcUroTzNc3iw482qfH5WyhfufTsE1ctFJuEjlPvjgseiJyu4HVDqpJaFUxG6vH6V+UiVNsOr6TUyO/yyWapm1f23w0hppQq5lazrwbYj0m/dyD9t3Tv6Nfq/M+Q39ue9MxuVTkUvh9y+AZPijSjmii5yrgjr9ngFrhL7RMIj7bYzVKPiUt4knVeY+dGgPRBkWeYcpeyDvMSbvA3HxHx8T0ZPR5TLGDz7ieisztSkUmk1QkQLTI13emG7+0KxM+bkdi7rH4iX/uSkZPhp8Tgo08Bf7/Fd2J6C3wsxCMa+DPf4ev3zWos63491nFC5UKTmvOaAd3AKmekq7yeq/5UobAQn7f4FUXRUDwepMNArjUlLM1bYqFOvjhkzPL6GjgPhlBNgkdP1lus3V3zOkmAFMWCOnP7FWoUAVzI9nzokrbwQqQvN5jvpQplH5FjV6o452FpohVDVAHpk3MBPKeHlZT0xSKWPdq4J1ZBpPO1nEbpV/1wyy1IZRLp6MxCFplKyxycUZMBWw8fwxgsNgzBWkEM7q2dCebT8VCC6/3li8OCk38Tka+Cqdxh2HdvWpFw9T0KDJv0VyXnkZnl69Ba1SsEE1SeggWvLtCgvD+2CtArQKGbozXFq+jLzUsGM7IpSJzdYtSw9eoFTgsDQprpOeSjdNx3bzeO764LEaicRwAdSP3nuZ9rVoRww5FYZw2KSX0ZONor/eKLx4J7T+yMfzZXEq6h7On5ys4eF/rw/ZIsyoWrAX9NU3i8B1EvhAS3pekpLGwMT4x1B48PD5QXQSoYTuItpBk+GQkMPN6b/hSQYLOiF2JxhP0ZPS3BksO8MHqJjjZfGOf0P8iifCxvnPIlz7FzI3NJaWpsGGyet9pcl5v7FoYVhqkbmdPdRhq8xl0HXyA+tKfmGCFjXQjtn03aFqh71RyEqD87o/pmgSpV4rn3RdfBiSUHgQTINRZX0P6UDDHOg3r1Pe1aungtBJJdsKc/pzAFcMnGfelLDHBSqtJVOlh0KzItetnLA0CnFYNLcu5xV6zK7vbpG+bc+v1GvtSI2KGAYga/SJsurYczViyzGAfsL2AadiVKtyslbp1NfIUyTYfTefRN219ESkYu8MAu56M/MGgDBBSvlcLhaEKVrsulntrUXPmUtKd3clZpxbTxPjii3AxTTVGNyLdBpr1n7xbdb4Pr7DX4BEMTMlM3zPfGxMRXjbUyC2U99a/c/ripViUJNg5LCXNgs2ZgY26AwZmMBWlG9YMYItYJGhtJ2fvx/eVtmMaH3I19Z4fX3ypCKHcQRvDn+1aO+tr+VRkQU6VXrcbBkUZU0J1m8PFbBGG1RAJtGZejVxD0pET0aT1gelLxQs1hXG0zj0A7mbjwez7MWiZdfD1LsNm3CuiLqlILWs/F6dvsZkOpR3wvb/Be8XgXj6GshvW+SatL1UqPXhs1zR+CTb6dbDJX4CBDXV38c1vkmf3usu6At7i32M/Q9JKjaRhk+5k5C34+ikw6a8ibeEj+no/X3ypCcFNvRLur6RdOhQD+blkpJkXob9v9Oy3yk1kySgCTzksfr3/Lyc0g5/PTPFCL9b9d3U1siKnRsI71egXzWbJPih9GTJimoam5/ON1okHkFR0uJGKTAZwXANm5B0AnkcBPBvgbruVarWUBVbmkOLMf3sgrDb70RT6+n+cTfADGFkYf0ZybtYZrek8pJnpbcL6pqwvvuxF0BmzrWP2kV1t4eF6+6yxRqppSi4VvVxPNl4BYPsBgG6hkZBuQgZ3a+Cfk9GF+Pd6ouk7qBHpAYB3SADhp2CyYome1+/miy+++OKLL7744osvvvgiSP4/sp7JQBAChjAAAAAASUVORK5CYII='
408
+ })));
409
+ };
410
+
411
+ const GoodDollar = ({
412
+ width: _width = 37,
413
+ height: _height = 37,
414
+ ...rest
415
+ }) => {
416
+ return React.createElement("svg", Object.assign({
417
+ width: _width,
418
+ height: _height,
419
+ viewBox: '0 0 64 64',
420
+ xmlns: 'http://www.w3.org/2000/svg'
421
+ }, rest), React.createElement("rect", {
422
+ width: '64',
423
+ height: '64',
424
+ fill: 'url(#pattern8)'
425
+ }), React.createElement("defs", null, React.createElement("pattern", {
426
+ id: 'pattern8',
427
+ patternContentUnits: 'objectBoundingBox',
428
+ width: '1',
429
+ height: '1'
430
+ }, React.createElement("use", {
431
+ href: '#image0_2_2',
432
+ transform: 'scale(0.015625)'
433
+ })), React.createElement("image", {
434
+ id: 'image0_2_2',
435
+ width: '64',
436
+ height: '64',
437
+ href: 'data:image/png;base64,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'
438
+ })));
439
+ };
440
+
441
+ const Copy = ({
442
+ width: _width = 20,
443
+ height: _height = 20,
444
+ fill: _fill = '#979797',
445
+ ...rest
446
+ }) => {
447
+ return React.createElement("svg", Object.assign({
448
+ width: _width,
449
+ height: _height,
450
+ viewBox: '0 0 330 330',
451
+ xmlSpace: 'preserve',
452
+ xmlns: 'http://www.w3.org/2000/svg',
453
+ fill: _fill
454
+ }, rest), React.createElement("g", null, React.createElement("path", {
455
+ d: 'M35,270h45v45c0,8.284,6.716,15,15,15h200c8.284,0,15-6.716,15-15V75c0-8.284-6.716-15-15-15h-45V15\r\n c0-8.284-6.716-15-15-15H35c-8.284,0-15,6.716-15,15v240C20,263.284,26.716,270,35,270z M280,300H110V90h170V300z M50,30h170v30H95\r\n c-8.284,0-15,6.716-15,15v165H50V30z'
456
+ }), React.createElement("path", {
457
+ d: 'M155,120c-8.284,0-15,6.716-15,15s6.716,15,15,15h80c8.284,0,15-6.716,15-15s-6.716-15-15-15H155z'
458
+ }), React.createElement("path", {
459
+ d: 'M235,180h-80c-8.284,0-15,6.716-15,15s6.716,15,15,15h80c8.284,0,15-6.716,15-15S243.284,180,235,180z'
460
+ }), React.createElement("path", {
461
+ d: 'M235,240h-80c-8.284,0-15,6.716-15,15c0,8.284,6.716,15,15,15h80c8.284,0,15-6.716,15-15C250,246.716,243.284,240,235,240z\r\n '
641
462
  })));
642
463
  };
643
464
 
644
- const ETHEREUM_POOL_ADDRESS = '0x369b28f227C0188478cb05F8467bdd52002EcC4E';
645
- const POLYGON_POOL_ADDRESS = '0x369b28f227C0188478cb05F8467bdd52002EcC4E';
646
- const AVAX_POOL_ADDRESS = '0x369b28f227C0188478cb05F8467bdd52002EcC4E';
647
- const SOLANA_POOL_ADDRESS = 'DRmLANN1qXBELs69gW5upY4qH4iWc23MTcRPjDuzZYuH';
648
465
  const SOLANA_USDK_ADDRESS = 'GkbnUDkymDTF4U6Z5wM5kKJn3GmGndMn2rN5typmyUHY';
649
466
  const ETHEREUM_USDK_ADDRESS = '0x8BAd07F2445D6390DD94Eca08882b7d515EAbe6C';
650
467
  const POLYGON_USDK_ADDRESS = '0x5bd4865a6dEd507dA08ed1aBE3cd971a7e0405D7';
651
468
  const AVAX_USDK_ADDRESS = '0x7C043d4D2b505740742dF6Fdb79C5caEe08728a5';
652
-
469
+ const FUSE_GDOLLAR_ADDRESS = '0x79BeecC4b165Ccf547662cB4f7C0e83b3796E5b3';
470
+ const CELO_GDOLLAR_ADDRESS = '0xAB89A70d1Af04ED8badf915Ba1f5b28E9F322624';
471
+
472
+ var ChainName;
473
+ (function (ChainName) {
474
+ ChainName["ETHEREUM"] = "ETH";
475
+ ChainName["POLYGON"] = "POL";
476
+ ChainName["AVALANCHE"] = "AVX";
477
+ ChainName["SOLANA"] = "SOL";
478
+ ChainName["FUSE"] = "FUS";
479
+ ChainName["CELO"] = "CEL";
480
+ })(ChainName || (ChainName = {}));
481
+ var SupportedChainId;
482
+ (function (SupportedChainId) {
483
+ SupportedChainId[SupportedChainId["ETHEREUM"] = 5] = "ETHEREUM";
484
+ SupportedChainId[SupportedChainId["POLYGON"] = 80001] = "POLYGON";
485
+ SupportedChainId[SupportedChainId["AVALANCHE"] = 43113] = "AVALANCHE";
486
+ SupportedChainId[SupportedChainId["FUSE"] = 122] = "FUSE";
487
+ SupportedChainId[SupportedChainId["CELO"] = 42220] = "CELO";
488
+ })(SupportedChainId || (SupportedChainId = {}));
489
+ const CHAIN_NAMES_TO_IDS = {
490
+ [ChainName.ETHEREUM]: SupportedChainId.ETHEREUM,
491
+ [ChainName.POLYGON]: SupportedChainId.POLYGON,
492
+ [ChainName.AVALANCHE]: SupportedChainId.AVALANCHE,
493
+ [ChainName.FUSE]: SupportedChainId.FUSE,
494
+ [ChainName.CELO]: SupportedChainId.CELO
495
+ };
496
+ const CHAIN_NAMES_TO_STRING = {
497
+ [ChainName.ETHEREUM]: 'Ethereum',
498
+ [ChainName.POLYGON]: 'Polygon',
499
+ [ChainName.AVALANCHE]: 'Avalanche',
500
+ [ChainName.FUSE]: 'Fuse',
501
+ [ChainName.CELO]: 'Celo'
502
+ };
503
+ const CHAIN_NAMES_TO_EXPLORER = {
504
+ [ChainName.ETHEREUM]: 'goerli.etherscan.io',
505
+ [ChainName.POLYGON]: 'mumbai.polygonscan.com',
506
+ [ChainName.AVALANCHE]: 'testnet.snowtrace.io',
507
+ [ChainName.FUSE]: 'explorer.fuse.io',
508
+ [ChainName.CELO]: 'explorer.celo.org'
509
+ };
510
+ const CHAIN_NAMES_TO_GECKO_ID = {
511
+ [ChainName.ETHEREUM]: 'ethereum',
512
+ [ChainName.POLYGON]: 'matic-network',
513
+ [ChainName.AVALANCHE]: 'avalanche-2',
514
+ [ChainName.FUSE]: 'fuse-network-token',
515
+ [ChainName.CELO]: 'celo'
516
+ };
517
+ const CHAIN_IDS_TO_NAMES = {
518
+ [SupportedChainId.ETHEREUM]: ChainName.ETHEREUM,
519
+ [SupportedChainId.POLYGON]: ChainName.POLYGON,
520
+ [SupportedChainId.AVALANCHE]: ChainName.AVALANCHE,
521
+ [SupportedChainId.FUSE]: ChainName.FUSE,
522
+ [SupportedChainId.CELO]: ChainName.CELO
523
+ };
653
524
  const networkOptions = [{
654
- id: 'Ethereum',
525
+ id: ChainName.ETHEREUM,
526
+ label: 'Ethereum',
655
527
  icon: Ethereum
656
528
  }, {
657
- id: 'Polygon',
529
+ id: ChainName.POLYGON,
530
+ label: 'Polygon',
658
531
  icon: Ethereum$1
659
532
  }, {
660
- id: 'Avalanche',
533
+ id: ChainName.AVALANCHE,
534
+ label: 'Avalanche',
661
535
  icon: Avalanche
662
536
  }, {
663
- id: 'Solana',
537
+ id: 'FUS',
538
+ label: 'Fuse',
539
+ icon: Fuse
540
+ }, {
541
+ id: 'CEL',
542
+ label: 'Celo',
543
+ icon: Celo
544
+ }, {
545
+ id: 'SOL',
546
+ label: 'Solana',
664
547
  icon: Solana
665
548
  }];
666
549
  const getNetworkOption = id => {
@@ -670,58 +553,367 @@ const getNetworkOption = id => {
670
553
  };
671
554
  const CLUSTER = 'devnet';
672
555
  const SOLANA_HOST = clusterApiUrl(CLUSTER);
673
- const CHAIN_STRING_SOLANA = 'Solana';
674
- const CHAIN_STRING_ETHEREUM = 'Ethereum';
675
- const CHAIN_STRING_POLYGON = 'Polygon';
676
- const CHAIN_STRING_AVALANCHE = 'Avalanche';
677
- const getEvmChainId = chainId => chainId === 'Ethereum' ? GOERLI_ETH_NETWORK_CHAIN_ID : chainId === 'Polygon' ? POLYGON_NETWORK_CHAIN_ID : chainId === 'Avalanche' ? AVAX_NETWORK_CHAIN_ID : undefined;
678
- const getEvmChainString = chainId => chainId === GOERLI_ETH_NETWORK_CHAIN_ID ? 'Ethereum' : chainId === POLYGON_NETWORK_CHAIN_ID ? 'Polygon' : chainId === AVAX_NETWORK_CHAIN_ID ? 'Avalanche' : 'Unknown';
679
- const getPoolAddress = chainId => chainId === 'Ethereum' ? ETHEREUM_POOL_ADDRESS : chainId === 'Polygon' ? POLYGON_POOL_ADDRESS : chainId === 'Avalanche' ? AVAX_POOL_ADDRESS : chainId === 'Solana' ? SOLANA_POOL_ADDRESS : undefined;
680
- const isEVMChain = chainId => chainId === 'Ethereum' || chainId === 'Polygon' || chainId === 'Avalanche';
681
- const GOERLI_ETH_NETWORK_CHAIN_ID = 5;
682
- const POLYGON_NETWORK_CHAIN_ID = 80001;
683
- const AVAX_NETWORK_CHAIN_ID = 43113;
556
+ const isEVMChain = chainId => chainId === ChainName.ETHEREUM || chainId === ChainName.POLYGON || chainId === ChainName.AVALANCHE || chainId === ChainName.FUSE || chainId === ChainName.CELO;
684
557
  const COIN_LIST = {
685
558
  USDK: {
686
559
  symbol: 'USDK',
560
+ label: 'USDK',
687
561
  icon: USDT,
688
- decimals: 6,
689
562
  address: {
690
- Solana: SOLANA_USDK_ADDRESS,
691
- Ethereum: ETHEREUM_USDK_ADDRESS,
692
- Polygon: POLYGON_USDK_ADDRESS,
693
- Avalanche: AVAX_USDK_ADDRESS
694
- }
563
+ SOL: SOLANA_USDK_ADDRESS,
564
+ ETH: ETHEREUM_USDK_ADDRESS,
565
+ POL: POLYGON_USDK_ADDRESS,
566
+ AVX: AVAX_USDK_ADDRESS
567
+ },
568
+ decimals: 18
695
569
  },
696
- USDC: {
697
- symbol: 'USDC',
698
- icon: USDC,
699
- decimals: 6,
570
+ GDOLLAR: {
571
+ symbol: 'G$',
572
+ label: 'GDOLLAR',
573
+ icon: GoodDollar,
700
574
  address: {
701
- Solana: SOLANA_USDK_ADDRESS,
702
- Ethereum: ETHEREUM_USDK_ADDRESS,
703
- Polygon: POLYGON_USDK_ADDRESS,
704
- Avalanche: AVAX_USDK_ADDRESS
575
+ FUS: FUSE_GDOLLAR_ADDRESS,
576
+ CEL: CELO_GDOLLAR_ADDRESS
705
577
  }
706
578
  }
707
579
  };
708
- const FEE_PERCENT = 0.005;
709
- const PAY_AVAILABLE = 'Available';
710
- const PAY_CONFIRMED = 'Confirmed';
711
- const PAY_PAID = 'Paid';
712
- const PAY_FAILED = 'FailedToPay';
713
- const PAY_UNAVAILABLE = 'UnAvailable';
714
- const PAY_KEYSIGNED = 'KeySigned';
715
- const tooltipInfo = [['Transfer liquidity from source chain'], ['Key signing'], ['Transfer liquidity to target chain']];
716
- const ETH_USD_PROXY = '0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419';
717
- const AVAX_USD_PROXY = '0xFF3EEb22B5E3dE6e705b44749C2559d704923FD7';
718
- const MATIC_USD_PROXY = '0x7bAC85A8a13A4BcD8abb3eB7d6b4d632c5a57676';
719
- const SOL_USD_PROXY = '0x4ffC43a60e009B551865A93d232E33Fce9f01507';
720
- const ETHEREUM_NODE_PROVIDER = 'https://eth-mainnet.g.alchemy.com/v2/KuGxhvDhFDX-r40tmVfgopWs0KdcjHPI';
721
- const DIVERSIFI_NODE_PROVIDER1_QUERY = 'api.testnode1.kima.finance';
580
+ var TransactionStatus;
581
+ (function (TransactionStatus) {
582
+ TransactionStatus["AVAILABLE"] = "Available";
583
+ TransactionStatus["CONFIRMED"] = "Confirmed";
584
+ TransactionStatus["PAID"] = "Paid";
585
+ TransactionStatus["COMPLETED"] = "Completed";
586
+ TransactionStatus["FAILED"] = "FailedToPay";
587
+ TransactionStatus["UNAVAILABLE"] = "UnAvailable";
588
+ TransactionStatus["KEYSIGNED"] = "KeySigned";
589
+ })(TransactionStatus || (TransactionStatus = {}));
590
+
591
+ var FontSizeOptions;
592
+ (function (FontSizeOptions) {
593
+ FontSizeOptions["large"] = "large";
594
+ FontSizeOptions["medium"] = "medium";
595
+ FontSizeOptions["small"] = "small";
596
+ })(FontSizeOptions || (FontSizeOptions = {}));
597
+ var ModeOptions;
598
+ (function (ModeOptions) {
599
+ ModeOptions["payment"] = "payment";
600
+ ModeOptions["bridge"] = "bridge";
601
+ ModeOptions["status"] = "status";
602
+ })(ModeOptions || (ModeOptions = {}));
603
+ var CurrencyOptions;
604
+ (function (CurrencyOptions) {
605
+ CurrencyOptions["USDK"] = "USDK";
606
+ CurrencyOptions["G$"] = "GDOLLAR";
607
+ })(CurrencyOptions || (CurrencyOptions = {}));
608
+ var ThemeOptions;
609
+ (function (ThemeOptions) {
610
+ ThemeOptions["light"] = "light";
611
+ ThemeOptions["dark"] = "dark";
612
+ })(ThemeOptions || (ThemeOptions = {}));
613
+
614
+ const initialState = {
615
+ theme: ThemeOptions.light,
616
+ mode: ModeOptions.bridge,
617
+ originNetwork: 'ETH',
618
+ targetNetwork: 'POL',
619
+ targetAddress: '',
620
+ connectModal: false,
621
+ helpPopup: false,
622
+ hashPopup: false,
623
+ solanaProvider: undefined,
624
+ submitted: false,
625
+ amount: 0,
626
+ isApproving: false,
627
+ isSubmitting: false,
628
+ isConfirming: false,
629
+ feeDeduct: false,
630
+ splAllowance: 0,
631
+ errorHandler: () => void 0,
632
+ closeHandler: () => void 0,
633
+ successHandler: () => void 0,
634
+ serviceFee: -1,
635
+ backendUrl: '',
636
+ nodeProviderQuery: '',
637
+ txId: -1,
638
+ currencyOptions: COIN_LIST['USDK']
639
+ };
640
+ const optionSlice = createSlice({
641
+ name: 'option',
642
+ initialState,
643
+ reducers: {
644
+ init: state => {
645
+ state.submitted = initialState.submitted;
646
+ state.isConfirming = false;
647
+ state.txId = -1;
648
+ state.serviceFee = -1;
649
+ state.amount = 0;
650
+ state.targetAddress = '';
651
+ },
652
+ setTheme: (state, action) => {
653
+ state.theme = action.payload;
654
+ },
655
+ setOriginNetwork: (state, action) => {
656
+ state.originNetwork = action.payload;
657
+ },
658
+ setTargetNetwork: (state, action) => {
659
+ state.targetNetwork = action.payload;
660
+ },
661
+ setTargetAddress: (state, action) => {
662
+ state.targetAddress = action.payload;
663
+ },
664
+ setConnectModal: (state, action) => {
665
+ state.connectModal = action.payload;
666
+ },
667
+ setHelpPopup: (state, action) => {
668
+ state.helpPopup = action.payload;
669
+ },
670
+ setHashPopup: (state, action) => {
671
+ state.hashPopup = action.payload;
672
+ },
673
+ setSolanaProvider: (state, action) => {
674
+ state.solanaProvider = action.payload;
675
+ },
676
+ setSubmitted: (state, action) => {
677
+ state.submitted = action.payload;
678
+ },
679
+ setTransactionOption: (state, action) => {
680
+ state.transactionOption = action.payload;
681
+ },
682
+ setAmount: (state, action) => {
683
+ state.amount = action.payload;
684
+ },
685
+ setApproving: (state, action) => {
686
+ state.isApproving = action.payload;
687
+ },
688
+ setSubmitting: (state, action) => {
689
+ state.isSubmitting = action.payload;
690
+ },
691
+ setSplAllowance: (state, action) => {
692
+ state.splAllowance = action.payload;
693
+ },
694
+ setErrorHandler: (state, action) => {
695
+ state.errorHandler = action.payload;
696
+ },
697
+ setCloseHandler: (state, action) => {
698
+ state.closeHandler = action.payload;
699
+ },
700
+ setSuccessHandler: (state, action) => {
701
+ state.successHandler = action.payload;
702
+ },
703
+ setServiceFee: (state, action) => {
704
+ state.serviceFee = action.payload;
705
+ },
706
+ setMode: (state, action) => {
707
+ state.mode = action.payload;
708
+ },
709
+ setConfirming: (state, action) => {
710
+ state.isConfirming = action.payload;
711
+ },
712
+ setFeeDeduct: (state, action) => {
713
+ state.feeDeduct = action.payload;
714
+ },
715
+ setBackendUrl: (state, action) => {
716
+ state.backendUrl = action.payload;
717
+ },
718
+ setNodeProviderQuery: (state, action) => {
719
+ state.nodeProviderQuery = action.payload;
720
+ },
721
+ setTxId: (state, action) => {
722
+ state.txId = action.payload;
723
+ },
724
+ setCurrencyOptions: (state, action) => {
725
+ state.currencyOptions = action.payload;
726
+ }
727
+ }
728
+ });
729
+ const {
730
+ init,
731
+ setTheme,
732
+ setOriginNetwork,
733
+ setTargetNetwork,
734
+ setTargetAddress,
735
+ setConnectModal,
736
+ setHelpPopup,
737
+ setHashPopup,
738
+ setSolanaProvider,
739
+ setSubmitted,
740
+ setTransactionOption,
741
+ setAmount,
742
+ setApproving,
743
+ setSubmitting,
744
+ setConfirming,
745
+ setSplAllowance,
746
+ setErrorHandler,
747
+ setCloseHandler,
748
+ setSuccessHandler,
749
+ setServiceFee,
750
+ setMode,
751
+ setFeeDeduct,
752
+ setBackendUrl,
753
+ setNodeProviderQuery,
754
+ setTxId,
755
+ setCurrencyOptions
756
+ } = optionSlice.actions;
757
+ var optionReducer = optionSlice.reducer;
758
+
759
+ const store = configureStore({
760
+ reducer: {
761
+ option: optionReducer
762
+ },
763
+ middleware: getDefaultMiddleware => getDefaultMiddleware({
764
+ serializableCheck: false
765
+ })
766
+ });
767
+
768
+ const selectTheme = state => state.option.theme;
769
+ const selectOriginNetwork = state => state.option.originNetwork;
770
+ const selectTargetNetwork = state => state.option.targetNetwork;
771
+ const selectTargetAddress = state => state.option.targetAddress;
772
+ const selectConnectModal = state => state.option.connectModal;
773
+ const selectHelpPopup = state => state.option.helpPopup;
774
+ const selectHashPopup = state => state.option.hashPopup;
775
+ const selectSolanaProvider = state => state.option.solanaProvider;
776
+ const selectSubmitted = state => state.option.submitted;
777
+ const selectTransactionOption = state => state.option.transactionOption;
778
+ const selectAmount = state => state.option.amount;
779
+ const selectApproving = state => state.option.isApproving;
780
+ const selectSubmitting = state => state.option.isSubmitting;
781
+ const selectSplAllowance = state => state.option.splAllowance;
782
+ const selectErrorHandler = state => state.option.errorHandler;
783
+ const selectCloseHandler = state => state.option.closeHandler;
784
+ const selectSuccessHandler = state => state.option.successHandler;
785
+ const selectServiceFee = state => state.option.serviceFee;
786
+ const selectMode = state => state.option.mode;
787
+ const selectConfirming = state => state.option.isConfirming;
788
+ const selectFeeDeduct = state => state.option.feeDeduct;
789
+ const selectBackendUrl = state => state.option.backendUrl;
790
+ const selectNodeProviderQuery = state => state.option.nodeProviderQuery;
791
+ const selectTxId = state => state.option.txId;
792
+ const selectCurrencyOptions = state => state.option.currencyOptions;
793
+
794
+ const EthereumProviderContext = React.createContext({
795
+ connect: () => {},
796
+ disconnect: () => {},
797
+ provider: undefined,
798
+ chainId: undefined,
799
+ signer: undefined,
800
+ signerAddress: undefined,
801
+ providerError: null
802
+ });
803
+ const EthereumProvider = ({
804
+ children
805
+ }) => {
806
+ const errorHandler = useSelector(selectErrorHandler);
807
+ const [providerError, setProviderError] = useState(null);
808
+ const [provider, setProvider] = useState(undefined);
809
+ const [chainId, setChainId] = useState(undefined);
810
+ const [signer, setSigner] = useState(undefined);
811
+ const [signerAddress, setSignerAddress] = useState(undefined);
812
+ const connect = useCallback(() => {
813
+ setProviderError(null);
814
+ detectEthereumProvider().then(detectedProvider => {
815
+ if (detectedProvider) {
816
+ const provider = new ethers.providers.Web3Provider(detectedProvider, 'any');
817
+ provider.send('eth_requestAccounts', []).then(() => {
818
+ setProviderError(null);
819
+ setProvider(provider);
820
+ provider.getNetwork().then(network => {
821
+ setChainId(network.chainId);
822
+ }).catch(e => {
823
+ errorHandler(e);
824
+ setProviderError('An error occurred while getting the network');
825
+ });
826
+ const signer = provider.getSigner();
827
+ setSigner(signer);
828
+ signer.getAddress().then(address => {
829
+ setSignerAddress(address);
830
+ }).catch(e => {
831
+ errorHandler(e);
832
+ setProviderError('An error occurred while getting the signer address');
833
+ });
834
+ if (detectedProvider && detectedProvider.on) {
835
+ detectedProvider.on('chainChanged', chainId => {
836
+ try {
837
+ setChainId(BigNumber.from(chainId).toNumber());
838
+ } catch (e) {
839
+ errorHandler(e);
840
+ }
841
+ });
842
+ detectedProvider.on('accountsChanged', accounts => {
843
+ try {
844
+ const signer = provider.getSigner();
845
+ setSigner(signer);
846
+ signer.getAddress().then(address => {
847
+ setSignerAddress(address);
848
+ }).catch(e => {
849
+ errorHandler(e);
850
+ setProviderError('An error occurred while getting the signer address');
851
+ });
852
+ } catch (e) {
853
+ errorHandler(e);
854
+ }
855
+ });
856
+ }
857
+ }).catch(e => {
858
+ errorHandler(e);
859
+ setProviderError('An error occurred while requesting eth accounts');
860
+ });
861
+ } else {
862
+ setProviderError('Please install MetaMask');
863
+ }
864
+ }).catch(e => {
865
+ errorHandler(e);
866
+ setProviderError('Please install MetaMask');
867
+ });
868
+ }, []);
869
+ const disconnect = useCallback(() => {
870
+ setProviderError(null);
871
+ setProvider(undefined);
872
+ setChainId(undefined);
873
+ setSigner(undefined);
874
+ setSignerAddress(undefined);
875
+ }, []);
876
+ const contextValue = useMemo(() => ({
877
+ connect,
878
+ disconnect,
879
+ provider,
880
+ chainId,
881
+ signer,
882
+ signerAddress,
883
+ providerError
884
+ }), [connect, disconnect, provider, chainId, signer, signerAddress, providerError]);
885
+ return React.createElement(EthereumProviderContext.Provider, {
886
+ value: contextValue
887
+ }, children);
888
+ };
889
+ const useEthereumProvider = () => {
890
+ return useContext(EthereumProviderContext);
891
+ };
892
+
893
+ const Loading180Ring = ({
894
+ width,
895
+ height,
896
+ fill: _fill = 'white'
897
+ }) => {
898
+ return React.createElement("svg", {
899
+ width: width,
900
+ height: height,
901
+ fill: _fill,
902
+ viewBox: '0 0 24 24',
903
+ xmlns: 'http://www.w3.org/2000/svg'
904
+ }, React.createElement("path", {
905
+ d: 'M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z'
906
+ }, React.createElement("animateTransform", {
907
+ attributeName: 'transform',
908
+ type: 'rotate',
909
+ dur: '0.75s',
910
+ values: '0 12 12;360 12 12',
911
+ repeatCount: 'indefinite'
912
+ })));
913
+ };
722
914
 
723
915
  const stepInfo = [{
724
- title: 'Initializing'
916
+ title: 'Initialize'
725
917
  }, {
726
918
  title: 'Source Transfer'
727
919
  }, {
@@ -729,13 +921,15 @@ const stepInfo = [{
729
921
  }, {
730
922
  title: 'Target Transfer'
731
923
  }, {
732
- title: 'Finalizing'
924
+ title: 'Finalize'
733
925
  }];
734
926
  const Progressbar = ({
735
927
  step,
736
928
  errorStep,
737
- setFocus
929
+ setFocus,
930
+ loadingStep
738
931
  }) => {
932
+ const theme = useSelector(selectTheme);
739
933
  return React.createElement("div", {
740
934
  className: 'kima-progressbar'
741
935
  }, React.createElement("div", {
@@ -747,13 +941,15 @@ const Progressbar = ({
747
941
  className: 'step-indicators'
748
942
  }, stepInfo.map((item, index) => React.createElement("div", {
749
943
  key: item.title,
750
- className: 'step',
944
+ className: `step ${step >= index ? 'active' : ''}`,
751
945
  onClick: () => {
752
- if (index > 0 && index < 4) setFocus(index);
946
+ if (index < 4) setFocus(index);
753
947
  }
754
948
  }, React.createElement("div", {
755
949
  className: 'step-info'
756
- }, step >= index && (index === errorStep ? React.createElement(Warning, null) : React.createElement(Check, null)), React.createElement("span", null, item.title))))));
950
+ }, index === loadingStep ? React.createElement(Loading180Ring, {
951
+ fill: theme === ThemeOptions.dark ? 'white' : '#5aa0db'
952
+ }) : step >= index ? index === errorStep ? React.createElement(Warning, null) : React.createElement(Check, null) : null, React.createElement("span", null, item.title))))));
757
953
  };
758
954
 
759
955
  const ExternalLink = ({
@@ -782,39 +978,17 @@ const NetworkLabel = ({
782
978
  className: 'label'
783
979
  }, React.createElement("div", {
784
980
  className: 'icon-wrapper'
785
- }, SourceInfo && React.createElement(SourceInfo.icon, null)), SourceInfo === null || SourceInfo === void 0 ? void 0 : SourceInfo.id), React.createElement(ArrowRight, {
981
+ }, SourceInfo && React.createElement(SourceInfo.icon, null)), SourceInfo === null || SourceInfo === void 0 ? void 0 : SourceInfo.label), React.createElement(ArrowRight, {
786
982
  fill: theme === 'light' ? 'black' : 'white'
787
983
  }), React.createElement("div", {
788
984
  className: 'label'
789
985
  }, React.createElement("div", {
790
986
  className: 'icon-wrapper'
791
- }, TargetInfo && React.createElement(TargetInfo.icon, null)), TargetInfo === null || TargetInfo === void 0 ? void 0 : TargetInfo.id), hasError && React.createElement("div", {
987
+ }, TargetInfo && React.createElement(TargetInfo.icon, null)), TargetInfo === null || TargetInfo === void 0 ? void 0 : TargetInfo.label), hasError && React.createElement("div", {
792
988
  className: 'warning-container'
793
989
  }, React.createElement(Warning, null), React.createElement("span", null, "1 issue")));
794
990
  };
795
991
 
796
- const Loading180Ring = ({
797
- width,
798
- height,
799
- fill: _fill = 'white'
800
- }) => {
801
- return React.createElement("svg", {
802
- width: width,
803
- height: height,
804
- fill: _fill,
805
- viewBox: '0 0 24 24',
806
- xmlns: 'http://www.w3.org/2000/svg'
807
- }, React.createElement("path", {
808
- d: 'M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z'
809
- }, React.createElement("animateTransform", {
810
- attributeName: 'transform',
811
- type: 'rotate',
812
- dur: '0.75s',
813
- values: '0 12 12;360 12 12',
814
- repeatCount: 'indefinite'
815
- })));
816
- };
817
-
818
992
  const PrimaryButton = ({
819
993
  className,
820
994
  clickHandler,
@@ -831,39 +1005,186 @@ const PrimaryButton = ({
831
1005
  fill: 'white'
832
1006
  })), children);
833
1007
 
834
- const SecondaryButton = ({
835
- className,
836
- clickHandler,
837
- children,
838
- theme
839
- }) => React.createElement("button", {
840
- className: `secondary-button ${className} ${theme}`,
841
- onClick: clickHandler
842
- }, children);
1008
+ const SecondaryButton = ({
1009
+ className,
1010
+ clickHandler,
1011
+ children,
1012
+ theme,
1013
+ style
1014
+ }) => React.createElement("button", Object.assign({
1015
+ className: `secondary-button ${className} ${theme}`,
1016
+ onClick: clickHandler
1017
+ }, style), children);
1018
+
1019
+ const fetchWrapper = {
1020
+ get,
1021
+ post
1022
+ };
1023
+ function get(url) {
1024
+ const requestOptions = {
1025
+ method: 'GET'
1026
+ };
1027
+ requestOptions.headers = {
1028
+ 'Content-Type': 'application/json'
1029
+ };
1030
+ return fetch(url, requestOptions).then(handleResponse);
1031
+ }
1032
+ function post(url, body) {
1033
+ const requestOptions = {
1034
+ method: 'POST',
1035
+ credentials: 'include',
1036
+ headers: {
1037
+ 'Content-Type': 'application/json'
1038
+ },
1039
+ body: body
1040
+ };
1041
+ return fetch(url, requestOptions).then(handleResponse);
1042
+ }
1043
+ function handleResponse(response) {
1044
+ return response.text().then(text => {
1045
+ let data = text;
1046
+ try {
1047
+ data = JSON.parse(text);
1048
+ } catch (error) {
1049
+ data = text;
1050
+ }
1051
+ if (!response.ok) {
1052
+ const error = data || response.statusText;
1053
+ return Promise.reject({
1054
+ status: response.status,
1055
+ error
1056
+ });
1057
+ }
1058
+ return data;
1059
+ });
1060
+ }
1061
+
1062
+ function useNetworkOptions() {
1063
+ const [options, setOptions] = useState(networkOptions);
1064
+ const nodeProviderQuery = useSelector(selectNodeProviderQuery);
1065
+ useEffect(() => {
1066
+ if (!nodeProviderQuery) return;
1067
+ (async function () {
1068
+ const networks = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/getChains`);
1069
+ setOptions(networkOptions.filter(network => networks.Chains.findIndex(id => id === network.id) >= 0));
1070
+ })();
1071
+ }, [nodeProviderQuery]);
1072
+ return useMemo(() => ({
1073
+ options
1074
+ }), [options]);
1075
+ }
843
1076
 
844
1077
  const Network = ({
845
- type: _type = 'origin'
1078
+ isOriginChain: _isOriginChain = true
846
1079
  }) => {
847
1080
  const theme = useSelector(selectTheme);
1081
+ const mode = useSelector(selectMode);
848
1082
  const originNetwork = useSelector(selectOriginNetwork);
849
1083
  const targetNetwork = useSelector(selectTargetNetwork);
1084
+ const nodeProviderQuery = useSelector(selectNodeProviderQuery);
850
1085
  const dispatch = useDispatch();
851
- const filteredNetworks = useMemo(() => _type === 'target' ? networkOptions.filter(network => network.id !== originNetwork) : networkOptions, [_type, originNetwork]);
1086
+ const sliderRef = useRef();
1087
+ const [availableNetworks, setAvailableNetworks] = useState([]);
1088
+ const {
1089
+ options: networkOptions
1090
+ } = useNetworkOptions();
1091
+ const selectedNetwork = useMemo(() => {
1092
+ const index = networkOptions.findIndex(option => option.id === (_isOriginChain ? originNetwork : targetNetwork));
1093
+ if (index >= 0) return networkOptions[index];
1094
+ return networkOptions[0];
1095
+ }, [originNetwork, targetNetwork, networkOptions]);
1096
+ const networks = useMemo(() => {
1097
+ if (_isOriginChain && mode === ModeOptions.bridge) {
1098
+ return networkOptions;
1099
+ }
1100
+ return networkOptions.filter(network => availableNetworks.findIndex(id => id === network.id) >= 0);
1101
+ }, [networkOptions, _isOriginChain, availableNetworks]);
1102
+ useEffect(() => {
1103
+ if (!nodeProviderQuery || mode !== ModeOptions.bridge) return;
1104
+ (async function () {
1105
+ const networks = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${originNetwork}`);
1106
+ setAvailableNetworks(networks.Chains);
1107
+ if (_isOriginChain) {
1108
+ dispatch(setTargetNetwork(networks.Chains[0]));
1109
+ }
1110
+ })();
1111
+ }, [nodeProviderQuery, originNetwork, mode, _isOriginChain]);
1112
+ useEffect(() => {
1113
+ if (!nodeProviderQuery || mode !== ModeOptions.payment) return;
1114
+ (async function () {
1115
+ const networks = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${targetNetwork}`);
1116
+ setAvailableNetworks(networks.Chains);
1117
+ })();
1118
+ }, [nodeProviderQuery, mode]);
1119
+ useEffect(() => {
1120
+ var _sliderRef$current, _sliderRef$current5, _sliderRef$current6, _sliderRef$current7;
1121
+ let isDown = false;
1122
+ let startX;
1123
+ let scrollLeft;
1124
+ (_sliderRef$current = sliderRef.current) === null || _sliderRef$current === void 0 ? void 0 : _sliderRef$current.addEventListener('mousedown', e => {
1125
+ var _sliderRef$current2, _sliderRef$current3, _sliderRef$current4;
1126
+ isDown = true;
1127
+ (_sliderRef$current2 = sliderRef.current) === null || _sliderRef$current2 === void 0 ? void 0 : _sliderRef$current2.classList.add('active');
1128
+ startX = e.pageX - ((_sliderRef$current3 = sliderRef.current) === null || _sliderRef$current3 === void 0 ? void 0 : _sliderRef$current3.offsetLeft);
1129
+ scrollLeft = (_sliderRef$current4 = sliderRef.current) === null || _sliderRef$current4 === void 0 ? void 0 : _sliderRef$current4.scrollLeft;
1130
+ });
1131
+ (_sliderRef$current5 = sliderRef.current) === null || _sliderRef$current5 === void 0 ? void 0 : _sliderRef$current5.addEventListener('mouseleave', () => {
1132
+ isDown = false;
1133
+ sliderRef.current.classList.remove('active');
1134
+ });
1135
+ (_sliderRef$current6 = sliderRef.current) === null || _sliderRef$current6 === void 0 ? void 0 : _sliderRef$current6.addEventListener('mouseup', () => {
1136
+ isDown = false;
1137
+ sliderRef.current.classList.remove('active');
1138
+ });
1139
+ (_sliderRef$current7 = sliderRef.current) === null || _sliderRef$current7 === void 0 ? void 0 : _sliderRef$current7.addEventListener('mousemove', e => {
1140
+ if (!isDown) return;
1141
+ e.preventDefault();
1142
+ const x = e.pageX - sliderRef.current.offsetLeft;
1143
+ const walk = (x - startX) * 1;
1144
+ sliderRef.current.scrollLeft = scrollLeft - walk;
1145
+ });
1146
+ });
1147
+ const slideLeft = () => {
1148
+ let temp = 0;
1149
+ const timerId = setInterval(() => {
1150
+ sliderRef.current.scrollLeft -= 10;
1151
+ if (temp++ === 20) clearInterval(timerId);
1152
+ }, 10);
1153
+ };
1154
+ const slideRight = () => {
1155
+ let temp = 0;
1156
+ const timerId = setInterval(() => {
1157
+ sliderRef.current.scrollLeft += 10;
1158
+ if (temp++ === 20) clearInterval(timerId);
1159
+ }, 10);
1160
+ };
852
1161
  return React.createElement("div", {
853
1162
  className: `network-select`
854
- }, React.createElement("p", null, "Which network are you funding from?"), React.createElement("div", {
1163
+ }, React.createElement("p", null, _isOriginChain ? 'Which network are you funding from?' : 'Which network are you funding to?'), React.createElement("div", {
1164
+ className: 'scroll-button'
1165
+ }, React.createElement(Arrow, {
1166
+ fill: theme === 'light' ? 'black' : 'white',
1167
+ onClick: slideLeft
1168
+ }), React.createElement(Arrow, {
1169
+ fill: theme === 'light' ? 'black' : 'white',
1170
+ onClick: slideRight
1171
+ })), React.createElement("div", {
1172
+ className: 'slide-area hide-scrollbar',
1173
+ ref: sliderRef
1174
+ }, React.createElement("div", {
855
1175
  className: 'network-container'
856
- }, filteredNetworks.map(network => React.createElement("div", {
857
- className: `card-item ${theme} ${network.id === (_type === 'target' ? targetNetwork : originNetwork) ? 'active' : ''}`,
1176
+ }, networks.map(network => React.createElement("div", {
1177
+ className: `card-item ${theme} ${network.id === selectedNetwork.id ? 'active' : ''}`,
858
1178
  key: network.id,
859
1179
  onClick: () => {
860
- if (_type === 'target') {
861
- dispatch(setTargetNetwork(network.id));
862
- } else {
1180
+ if (_isOriginChain) {
863
1181
  dispatch(setOriginNetwork(network.id));
1182
+ } else {
1183
+ dispatch(setTargetNetwork(network.id));
1184
+ dispatch(setServiceFee(-1));
864
1185
  }
865
1186
  }
866
- }, React.createElement(network.icon, null), React.createElement("span", null, network.id)))));
1187
+ }, React.createElement(network.icon, null), React.createElement("span", null, network.label))))));
867
1188
  };
868
1189
 
869
1190
  const WalletSelect = () => {
@@ -962,25 +1283,33 @@ const WalletSelect = () => {
962
1283
 
963
1284
  const Dropdown = ({
964
1285
  open,
965
- isWizard,
966
- toggleWizard
1286
+ showHashes: _showHashes = false
967
1287
  }) => {
968
1288
  const theme = useSelector(selectTheme);
1289
+ const dispatch = useDispatch();
969
1290
  return React.createElement("div", {
970
1291
  className: `dropdown-menu ${theme} ${open ? 'open' : 'closed'}`
971
1292
  }, React.createElement("div", {
972
1293
  className: 'menu-item'
973
- }, React.createElement(ExternalLink, {
974
- to: 'https://kima.finance'
975
- }, "Open Help")), React.createElement("div", {
976
- className: 'menu-item',
977
- onClick: toggleWizard
978
- }, "Switch to ", isWizard ? 'Form' : 'Wizard'), React.createElement("div", {
1294
+ }, React.createElement("div", {
1295
+ onClick: () => {
1296
+ dispatch(setHelpPopup(true));
1297
+ }
1298
+ }, "Open Help")), _showHashes && React.createElement("div", {
1299
+ className: 'menu-item'
1300
+ }, React.createElement("div", {
1301
+ onClick: () => {
1302
+ dispatch(setHashPopup(true));
1303
+ }
1304
+ }, "Show Hashes")), React.createElement("div", {
979
1305
  className: 'menu-item'
980
- }, "Chat with someone"));
1306
+ }, React.createElement(ExternalLink, {
1307
+ to: 'https://t.me/diversifi'
1308
+ }, "Chat with someone")));
981
1309
  };
982
1310
 
983
1311
  const version = "logger/5.7.0";
1312
+ //# sourceMappingURL=_version.js.map
984
1313
 
985
1314
  let _permanentCensorErrors = false;
986
1315
  let _censorErrors = false;
@@ -1330,8 +1659,10 @@ class Logger {
1330
1659
  }
1331
1660
  Logger.errors = ErrorCode;
1332
1661
  Logger.levels = LogLevel;
1662
+ //# sourceMappingURL=index.js.map
1333
1663
 
1334
1664
  const version$1 = "bytes/5.7.0";
1665
+ //# sourceMappingURL=_version.js.map
1335
1666
 
1336
1667
  const logger = new Logger(version$1);
1337
1668
  ///////////////////////////////
@@ -1442,6 +1773,7 @@ function hexStripZeros(value) {
1442
1773
  }
1443
1774
  return "0x" + value.substring(offset);
1444
1775
  }
1776
+ //# sourceMappingURL=index.js.map
1445
1777
 
1446
1778
  const createWalletStatus = (isReady, statusMessage = '', forceNetworkSwitch, walletAddress) => ({
1447
1779
  isReady,
@@ -1462,7 +1794,7 @@ function useIsWalletReady(enableNetworkAutoswitch = false) {
1462
1794
  const sourceChain = useSelector(selectOriginNetwork);
1463
1795
  const hasEthInfo = !!provider && !!signerAddress;
1464
1796
  const errorHandler = useSelector(selectErrorHandler);
1465
- const correctEvmNetwork = getEvmChainId(sourceChain);
1797
+ const correctEvmNetwork = CHAIN_NAMES_TO_IDS[sourceChain];
1466
1798
  const hasCorrectEvmNetwork = evmChainId === correctEvmNetwork;
1467
1799
  const forceNetworkSwitch = useCallback(() => {
1468
1800
  if (provider && correctEvmNetwork) {
@@ -1479,7 +1811,7 @@ function useIsWalletReady(enableNetworkAutoswitch = false) {
1479
1811
  }
1480
1812
  }, [provider, correctEvmNetwork, sourceChain]);
1481
1813
  return useMemo(() => {
1482
- if (sourceChain === CHAIN_STRING_SOLANA && solPK) {
1814
+ if (sourceChain === ChainName.SOLANA && solPK) {
1483
1815
  return createWalletStatus(true, undefined, forceNetworkSwitch, solPK.toBase58());
1484
1816
  }
1485
1817
  if (isEVMChain(sourceChain) && hasEthInfo && signerAddress) {
@@ -1501,6 +1833,8 @@ const getShortenedAddress = address => {
1501
1833
  return `${address === null || address === void 0 ? void 0 : address.substring(0, is0x(address) ? 6 : 3)}...${address === null || address === void 0 ? void 0 : address.substr(address.length - (is0x(address) ? 4 : 3))}`;
1502
1834
  };
1503
1835
 
1836
+ const connectWalletBtn = 'connect-wallet-btn';
1837
+
1504
1838
  const WalletButton = ({
1505
1839
  errorBelow: _errorBelow = false
1506
1840
  }) => {
@@ -1519,33 +1853,38 @@ const WalletButton = ({
1519
1853
  statusMessage,
1520
1854
  walletAddress
1521
1855
  } = useIsWalletReady(true);
1856
+ useEffect(() => {
1857
+ if (!connect) return;
1858
+ connect();
1859
+ }, [connect]);
1522
1860
  const handleClick = () => {
1523
1861
  if (isReady) {
1524
- if (selectedNetwork === CHAIN_STRING_SOLANA) {
1862
+ if (selectedNetwork === ChainName.SOLANA) {
1525
1863
  disconnectSolana();
1526
1864
  } else {
1527
1865
  disconnectEVM();
1528
1866
  }
1529
1867
  return;
1530
1868
  }
1531
- if (selectedNetwork === CHAIN_STRING_SOLANA) {
1869
+ if (selectedNetwork === ChainName.SOLANA) {
1532
1870
  dispatch(setConnectModal(true));
1533
1871
  return;
1534
1872
  }
1535
1873
  connect();
1536
1874
  };
1537
1875
  return React.createElement("div", {
1538
- className: `wallet-button ${theme} ${_errorBelow ? 'error-below' : ''}`
1876
+ className: `wallet-button ${theme} ${_errorBelow ? 'error-below' : ''}`,
1877
+ "data-testid": connectWalletBtn
1539
1878
  }, React.createElement(PrimaryButton, {
1540
1879
  clickHandler: handleClick
1541
- }, isReady ? `Disconnect ${getShortenedAddress(walletAddress || '')}` : 'Connect Wallet'), !isReady && React.createElement("p", {
1880
+ }, isReady ? `Disconnect ${getShortenedAddress(walletAddress || '')}` : 'Wallet'), !isReady && React.createElement("p", {
1542
1881
  className: 'provider-error'
1543
1882
  }, statusMessage));
1544
1883
  };
1545
1884
 
1546
1885
  const CoinDropdown = () => {
1547
1886
  const [collapsed, setCollapsed] = useState(true);
1548
- const selectedCoin = COIN_LIST['USDK'];
1887
+ const selectedCoin = useSelector(selectCurrencyOptions);
1549
1888
  const theme = useSelector(selectTheme);
1550
1889
  return React.createElement("div", {
1551
1890
  className: `coin-dropdown ${theme} ${collapsed ? 'collapsed' : ''}`,
@@ -1555,6 +1894,69 @@ const CoinDropdown = () => {
1555
1894
  }, React.createElement(selectedCoin.icon, null), selectedCoin.symbol));
1556
1895
  };
1557
1896
 
1897
+ const NetworkDropdown = ({
1898
+ isOriginChain: _isOriginChain = true
1899
+ }) => {
1900
+ const [collapsed, setCollapsed] = useState(true);
1901
+ const [availableNetworks, setAvailableNetworks] = useState([]);
1902
+ const mode = useSelector(selectMode);
1903
+ const originNetwork = useSelector(selectOriginNetwork);
1904
+ const targetNetwork = useSelector(selectTargetNetwork);
1905
+ const nodeProviderQuery = useSelector(selectNodeProviderQuery);
1906
+ const {
1907
+ options: networkOptions
1908
+ } = useNetworkOptions();
1909
+ const selectedNetwork = useMemo(() => {
1910
+ const index = networkOptions.findIndex(option => option.id === (_isOriginChain ? originNetwork : targetNetwork));
1911
+ if (index >= 0) return networkOptions[index];
1912
+ return networkOptions[0];
1913
+ }, [originNetwork, targetNetwork, networkOptions]);
1914
+ const networks = useMemo(() => {
1915
+ if (_isOriginChain && mode === ModeOptions.bridge) {
1916
+ return networkOptions;
1917
+ }
1918
+ return networkOptions.filter(network => availableNetworks.findIndex(id => id === network.id) >= 0);
1919
+ }, [networkOptions, _isOriginChain, availableNetworks]);
1920
+ const theme = useSelector(selectTheme);
1921
+ const dispatch = useDispatch();
1922
+ useEffect(() => {
1923
+ if (!nodeProviderQuery || mode !== ModeOptions.bridge) return;
1924
+ (async function () {
1925
+ const networks = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${originNetwork}`);
1926
+ setAvailableNetworks(networks.Chains);
1927
+ if (_isOriginChain) {
1928
+ dispatch(setTargetNetwork(networks.Chains[0]));
1929
+ }
1930
+ })();
1931
+ }, [nodeProviderQuery, originNetwork, mode, _isOriginChain]);
1932
+ useEffect(() => {
1933
+ if (!nodeProviderQuery || mode !== ModeOptions.payment) return;
1934
+ (async function () {
1935
+ const networks = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${targetNetwork}`);
1936
+ setAvailableNetworks(networks.Chains);
1937
+ })();
1938
+ }, [nodeProviderQuery, mode]);
1939
+ return React.createElement("div", {
1940
+ className: `network-dropdown ${theme} ${collapsed ? 'collapsed' : ''}`,
1941
+ onClick: () => setCollapsed(prev => !prev)
1942
+ }, React.createElement("div", {
1943
+ className: 'network-wrapper'
1944
+ }, React.createElement(selectedNetwork.icon, null), selectedNetwork.label), React.createElement("div", {
1945
+ className: `network-menu custom-scrollbar ${theme} ${collapsed ? 'collapsed' : ''}`
1946
+ }, networks.map(network => React.createElement("div", {
1947
+ className: 'network-menu-item',
1948
+ key: network.label,
1949
+ onClick: async () => {
1950
+ if (_isOriginChain) {
1951
+ dispatch(setOriginNetwork(network.id));
1952
+ } else {
1953
+ dispatch(setTargetNetwork(network.id));
1954
+ dispatch(setServiceFee(-1));
1955
+ }
1956
+ }
1957
+ }, React.createElement(network.icon, null), React.createElement("p", null, network.label)))));
1958
+ };
1959
+
1558
1960
  const formatterInt = new Intl.NumberFormat('en-US', {
1559
1961
  maximumFractionDigits: 0
1560
1962
  });
@@ -1562,7 +1964,9 @@ const formatterFloat = new Intl.NumberFormat('en-US', {
1562
1964
  maximumFractionDigits: 3
1563
1965
  });
1564
1966
 
1565
- const ConfirmDetails = () => {
1967
+ const ConfirmDetails = ({
1968
+ isApproved
1969
+ }) => {
1566
1970
  const feeDeduct = useSelector(selectFeeDeduct);
1567
1971
  const mode = useSelector(selectMode);
1568
1972
  const theme = useSelector(selectTheme);
@@ -1576,230 +1980,312 @@ const ConfirmDetails = () => {
1576
1980
  walletAddress
1577
1981
  } = useIsWalletReady();
1578
1982
  const originNetworkOption = useMemo(() => networkOptions.filter(network => network.id === originNetwork)[0], [networkOptions, originNetwork]);
1579
- const targetNetworkIcon = useMemo(() => networkOptions.filter(network => network.id === (mode === ModeOptions.payment ? transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetChain : targetNetwork))[0], [networkOptions, originNetwork]);
1983
+ const targetNetworkOption = useMemo(() => networkOptions.filter(network => network.id === (mode === ModeOptions.payment ? transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetChain : targetNetwork))[0], [networkOptions, originNetwork]);
1984
+ const selectedCoin = useSelector(selectCurrencyOptions);
1580
1985
  return React.createElement("div", {
1581
1986
  className: `confirm-details ${theme}`
1582
- }, React.createElement("p", null, "Confirm the below"), React.createElement("div", {
1987
+ }, React.createElement("p", null, "Step ", isApproved ? '2' : '1', "/2\u00A0\u00A0\u00A0", isApproved ? 'Submit trasaction' : 'Approval'), React.createElement("div", {
1583
1988
  className: 'detail-item'
1584
1989
  }, React.createElement("span", {
1585
1990
  className: 'label'
1586
- }, "Wallet:"), React.createElement("p", null, getShortenedAddress(walletAddress || '')), React.createElement("span", {
1991
+ }, "Source wallet:"), React.createElement("p", null, getShortenedAddress(walletAddress || '')), React.createElement("span", {
1587
1992
  className: 'kima-card-network-label'
1588
- }, React.createElement(originNetworkOption.icon, null), originNetwork)), React.createElement("div", {
1993
+ }, React.createElement(originNetworkOption.icon, null), originNetworkOption.label)), React.createElement("div", {
1589
1994
  className: 'detail-item'
1590
1995
  }, React.createElement("span", {
1591
1996
  className: 'label'
1592
- }, "Amount:"), React.createElement("p", null, formatterFloat.format(feeDeduct ? amount : amount + serviceFee + amount * FEE_PERCENT), ' ', "USDK")), React.createElement("div", {
1997
+ }, "Amount:"), React.createElement("p", null, formatterFloat.format(feeDeduct ? amount : amount + serviceFee), ' ', selectedCoin.symbol)), React.createElement("div", {
1593
1998
  className: 'detail-item'
1594
1999
  }, React.createElement("span", {
1595
2000
  className: 'label'
1596
- }, "Target:"), React.createElement("p", null, getShortenedAddress((mode === ModeOptions.payment ? transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetAddress : targetAddress) || '')), React.createElement("span", {
2001
+ }, "Target wallet:"), React.createElement("p", null, getShortenedAddress((mode === ModeOptions.payment ? transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetAddress : targetAddress) || '')), React.createElement("span", {
1597
2002
  className: 'kima-card-network-label'
1598
- }, React.createElement(targetNetworkIcon.icon, null), mode === ModeOptions.payment ? transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetChain : targetNetwork)));
2003
+ }, React.createElement(targetNetworkOption.icon, null), targetNetworkOption.label)));
1599
2004
  };
1600
2005
 
1601
- const WalletConnectModal = () => {
2006
+ const AddressInput = () => {
1602
2007
  const dispatch = useDispatch();
2008
+ const targetAddress = useSelector(selectTargetAddress);
2009
+ return React.createElement("input", {
2010
+ className: 'kima-address-input',
2011
+ type: 'text',
2012
+ value: targetAddress,
2013
+ onChange: e => dispatch(setTargetAddress(e.target.value))
2014
+ });
2015
+ };
2016
+
2017
+ const CopyButton = ({
2018
+ text
2019
+ }) => {
2020
+ const [copyClicked, setCopyClicked] = useState(false);
2021
+ useEffect(() => {
2022
+ if (!copyClicked) return;
2023
+ setTimeout(() => {
2024
+ setCopyClicked(false);
2025
+ }, 2000);
2026
+ }, [copyClicked]);
2027
+ return React.createElement("span", {
2028
+ className: 'copy-btn',
2029
+ onClick: () => {
2030
+ setCopyClicked(true);
2031
+ navigator.clipboard.writeText(text);
2032
+ }
2033
+ }, copyClicked ? React.createElement(Check, {
2034
+ fill: '#979797'
2035
+ }) : React.createElement(Copy, null));
2036
+ };
2037
+
2038
+ const stepInfo$1 = [{
2039
+ title: 'Initialize'
2040
+ }, {
2041
+ title: 'Source Transfer'
2042
+ }, {
2043
+ title: 'Validation'
2044
+ }, {
2045
+ title: 'Target Transfer'
2046
+ }, {
2047
+ title: 'Finalize'
2048
+ }];
2049
+ const StepBox = ({
2050
+ step,
2051
+ errorStep,
2052
+ loadingStep,
2053
+ data
2054
+ }) => {
1603
2055
  const theme = useSelector(selectTheme);
1604
- const connectModal = useSelector(selectConnectModal);
1605
- const selectedProvider = useSelector(selectSolanaProvider);
1606
- const {
1607
- select
1608
- } = useWallet();
1609
- const handleConnect = () => {
1610
- select(selectedProvider);
1611
- dispatch(setConnectModal(false));
1612
- };
1613
2056
  return React.createElement("div", {
1614
- className: `modal wallet-connect ${theme} ${connectModal ? 'open' : ''}`
2057
+ className: 'kima-stepbox'
2058
+ }, React.createElement("div", {
2059
+ className: 'content-wrapper'
2060
+ }, stepInfo$1.map((item, index) => React.createElement("div", {
2061
+ key: item.title,
2062
+ className: 'step-item'
2063
+ }, React.createElement("div", {
2064
+ className: 'info-item'
2065
+ }, index === loadingStep ? React.createElement(Loading180Ring, {
2066
+ fill: theme === ThemeOptions.dark ? 'white' : '#5aa0db'
2067
+ }) : step >= index ? index === errorStep ? React.createElement(Warning, null) : React.createElement(Check, null) : null, React.createElement("p", null, item.title)), index === 0 ? React.createElement("div", {
2068
+ className: 'info-item'
2069
+ }, React.createElement("p", null, "Kima TX ID:", ' ', React.createElement(ExternalLink, {
2070
+ to: 'https://explorer.kima.finance/transactions/718ABEE14755C1ACA617607F9353A55013EF855B0EA6E92EFD31A2F50A362524'
2071
+ }, "718A...2524"), React.createElement(CopyButton, {
2072
+ text: '718ABEE14755C1ACA617607F9353A55013EF855B0EA6E92EFD31A2F50A362524'
2073
+ }))) : null, index === 1 && data !== null && data !== void 0 && data.tssPullHash ? React.createElement("div", {
2074
+ className: 'info-item'
2075
+ }, React.createElement("p", null, CHAIN_NAMES_TO_STRING[(data === null || data === void 0 ? void 0 : data.sourceChain) || ChainName.ETHEREUM], ' ', "TX ID:", React.createElement(ExternalLink, {
2076
+ to: `https://${CHAIN_NAMES_TO_EXPLORER[(data === null || data === void 0 ? void 0 : data.sourceChain) || ChainName.ETHEREUM]}/tx/${data === null || data === void 0 ? void 0 : data.tssPullHash}`
2077
+ }, getShortenedAddress((data === null || data === void 0 ? void 0 : data.tssPullHash) || '')), React.createElement(CopyButton, {
2078
+ text: (data === null || data === void 0 ? void 0 : data.tssPullHash) || ''
2079
+ }))) : null, index === 3 && data !== null && data !== void 0 && data.tssReleaseHash ? React.createElement("div", {
2080
+ className: 'info-item'
2081
+ }, React.createElement("p", null, CHAIN_NAMES_TO_STRING[(data === null || data === void 0 ? void 0 : data.targetChain) || ChainName.ETHEREUM], ' ', "TX ID:", React.createElement(ExternalLink, {
2082
+ to: `https://${CHAIN_NAMES_TO_EXPLORER[(data === null || data === void 0 ? void 0 : data.targetChain) || ChainName.ETHEREUM]}/tx/${data === null || data === void 0 ? void 0 : data.tssReleaseHash}`
2083
+ }, getShortenedAddress((data === null || data === void 0 ? void 0 : data.tssReleaseHash) || '')), React.createElement(CopyButton, {
2084
+ text: (data === null || data === void 0 ? void 0 : data.tssReleaseHash) || ''
2085
+ }))) : null))));
2086
+ };
2087
+
2088
+ const HelpPopup = () => {
2089
+ const dispatch = useDispatch();
2090
+ const theme = useSelector(selectTheme);
2091
+ const helpPopup = useSelector(selectHelpPopup);
2092
+ return React.createElement("div", {
2093
+ className: `kima-modal help-popup ${theme} ${helpPopup ? 'open' : ''}`
2094
+ }, React.createElement("div", {
2095
+ className: 'modal-overlay',
2096
+ onClick: () => {
2097
+ dispatch(setHelpPopup(false));
2098
+ }
2099
+ }), React.createElement("div", {
2100
+ className: 'modal-content-container'
1615
2101
  }, React.createElement("div", {
1616
2102
  className: 'kima-card-header'
1617
2103
  }, React.createElement("div", {
1618
2104
  className: 'topbar'
1619
2105
  }, React.createElement("div", {
1620
2106
  className: 'title'
1621
- }, React.createElement("h3", null, "Connect Wallet")), React.createElement("div", {
2107
+ }, React.createElement("h3", null, "Help")), React.createElement("div", {
1622
2108
  className: 'control-buttons'
1623
2109
  }, React.createElement("button", {
1624
2110
  className: 'icon-button',
1625
- onClick: () => dispatch(setConnectModal(false))
2111
+ onClick: () => dispatch(setHelpPopup(false))
1626
2112
  }, React.createElement(Cross, {
1627
2113
  fill: theme === 'light' ? 'black' : 'white'
1628
2114
  }))))), React.createElement("div", {
1629
2115
  className: 'modal-content'
1630
- }, React.createElement(WalletSelect, null)), React.createElement("div", {
1631
- className: 'kima-card-footer',
1632
- style: {
1633
- justifyContent: 'flex-end',
1634
- marginTop: '2em'
1635
- }
1636
- }, React.createElement(SecondaryButton, {
1637
- clickHandler: () => dispatch(setConnectModal(false)),
1638
- theme: theme
1639
- }, "Cancel"), React.createElement(PrimaryButton, {
1640
- clickHandler: handleConnect
1641
- }, "Connect")));
1642
- };
1643
-
1644
- const AddressInput = () => {
1645
- const dispatch = useDispatch();
1646
- const targetAddress = useSelector(selectTargetAddress);
1647
- return React.createElement("input", {
1648
- className: 'kima-address-input',
1649
- type: 'text',
1650
- value: targetAddress,
1651
- onChange: e => dispatch(setTargetAddress(e.target.value))
1652
- });
2116
+ }, React.createElement("p", null, "The SDK enables dApp developers to process Kima transactions on behalf of their clients. It will include visual and API components that communicate with the Kima RPC nodes. The developers can pick and choose the right level of integration, based on their usage scenario."))));
1653
2117
  };
1654
2118
 
1655
- const CustomCheckbox = ({
1656
- text,
1657
- checked,
1658
- setCheck
2119
+ const HashPopup = ({
2120
+ data
1659
2121
  }) => {
2122
+ const dispatch = useDispatch();
1660
2123
  const theme = useSelector(selectTheme);
2124
+ const hashPopup = useSelector(selectHashPopup);
1661
2125
  return React.createElement("div", {
1662
- className: 'kima-custom-checkbox'
2126
+ className: `kima-modal hash-popup ${theme} ${hashPopup ? 'open' : ''}`
1663
2127
  }, React.createElement("div", {
1664
- className: `icon-wrapper ${theme}`,
1665
- onClick: () => setCheck(!checked)
1666
- }, checked && React.createElement(Check, null)), React.createElement("span", null, text));
1667
- };
1668
-
1669
- const useWidth = () => {
1670
- const [width, setWidth] = useState(window.innerWidth);
1671
- useEffect(() => {
1672
- const handleResize = () => {
1673
- setWidth(window.innerWidth);
1674
- };
1675
- window.addEventListener('resize', handleResize);
1676
- return () => window.removeEventListener('resize', handleResize);
1677
- }, []);
1678
- return width;
2128
+ className: 'modal-overlay',
2129
+ onClick: () => {
2130
+ dispatch(setHashPopup(false));
2131
+ }
2132
+ }), React.createElement("div", {
2133
+ className: 'modal-content-container'
2134
+ }, React.createElement("div", {
2135
+ className: 'kima-card-header'
2136
+ }, React.createElement("div", {
2137
+ className: 'topbar'
2138
+ }, React.createElement("div", {
2139
+ className: 'title'
2140
+ }, React.createElement("h3", null, "Transaction Hashes")), React.createElement("div", {
2141
+ className: 'control-buttons'
2142
+ }, React.createElement("button", {
2143
+ className: 'icon-button',
2144
+ onClick: () => dispatch(setHashPopup(false))
2145
+ }, React.createElement(Cross, {
2146
+ fill: theme === 'light' ? 'black' : 'white'
2147
+ }))))), React.createElement("div", {
2148
+ className: 'modal-content'
2149
+ }, React.createElement("div", {
2150
+ className: 'hash-container'
2151
+ }, React.createElement("div", {
2152
+ className: 'hash-item'
2153
+ }, React.createElement("span", null, "Kima tx:"), React.createElement(ExternalLink, {
2154
+ to: 'https://explorer.kima.finance/transactions/718ABEE14755C1ACA617607F9353A55013EF855B0EA6E92EFD31A2F50A362524'
2155
+ }, "718A...2524")), React.createElement("div", {
2156
+ className: 'hash-item'
2157
+ }, React.createElement("span", null, "Source tx:"), React.createElement(ExternalLink, {
2158
+ to: `https://${CHAIN_NAMES_TO_EXPLORER[(data === null || data === void 0 ? void 0 : data.sourceChain) || ChainName.ETHEREUM]}/tx/${data === null || data === void 0 ? void 0 : data.tssPullHash}`
2159
+ }, getShortenedAddress((data === null || data === void 0 ? void 0 : data.tssPullHash) || ''))), React.createElement("div", {
2160
+ className: 'hash-item'
2161
+ }, React.createElement("span", null, "Target tx:"), React.createElement(ExternalLink, {
2162
+ to: `https://${CHAIN_NAMES_TO_EXPLORER[(data === null || data === void 0 ? void 0 : data.targetChain) || ChainName.ETHEREUM]}/tx/${data === null || data === void 0 ? void 0 : data.tssReleaseHash}`
2163
+ }, getShortenedAddress((data === null || data === void 0 ? void 0 : data.tssReleaseHash) || '')))))));
1679
2164
  };
1680
2165
 
1681
- const Tooltip = ({
1682
- step,
1683
- focus,
1684
- errorStep
1685
- }) => {
1686
- const windowWidth = useWidth();
2166
+ const WalletConnectModal = () => {
2167
+ const dispatch = useDispatch();
2168
+ const theme = useSelector(selectTheme);
2169
+ const connectModal = useSelector(selectConnectModal);
2170
+ const selectedProvider = useSelector(selectSolanaProvider);
2171
+ const {
2172
+ select
2173
+ } = useWallet();
2174
+ const handleConnect = () => {
2175
+ select(selectedProvider);
2176
+ dispatch(setConnectModal(false));
2177
+ };
1687
2178
  return React.createElement("div", {
1688
- className: 'kima-tooltip'
2179
+ className: `kima-modal wallet-connect ${theme} ${connectModal ? 'open' : ''}`
1689
2180
  }, React.createElement("div", {
1690
- className: `${focus === 0 ? 'position-first' : focus === 4 ? 'position-last' : ''}`,
1691
- style: {
1692
- left: `${(focus - 1) * 25}%`,
1693
- opacity: `${focus < 0 ? 0 : 1}`
1694
- }
2181
+ className: 'modal-overlay'
2182
+ }), React.createElement("div", {
2183
+ className: 'modal-content-container'
1695
2184
  }, React.createElement("div", {
1696
- className: 'content-wrapper'
1697
- }, tooltipInfo[focus] && tooltipInfo[focus].map(info => React.createElement("div", {
1698
- key: info,
1699
- className: 'info-item'
1700
- }, focus === errorStep ? React.createElement(Warning, null) : focus <= step ? React.createElement(Check, null) : '', React.createElement("p", null, info))), windowWidth <= 768 && React.createElement("div", {
1701
- className: 'arrow',
2185
+ className: 'kima-card-header'
2186
+ }, React.createElement("div", {
2187
+ className: 'topbar'
2188
+ }, React.createElement("div", {
2189
+ className: 'title'
2190
+ }, React.createElement("h3", null, "Connect Wallet")), React.createElement("div", {
2191
+ className: 'control-buttons'
2192
+ }, React.createElement("button", {
2193
+ className: 'icon-button',
2194
+ onClick: () => dispatch(setConnectModal(false))
2195
+ }, React.createElement(Cross, {
2196
+ fill: theme === 'light' ? 'black' : 'white'
2197
+ }))))), React.createElement("div", {
2198
+ className: 'modal-content'
2199
+ }, React.createElement(WalletSelect, null)), React.createElement("div", {
2200
+ className: 'kima-card-footer',
1702
2201
  style: {
1703
- left: focus === 0 ? '1em' : focus === 4 ? 'calc(100% - 3em)' : `calc(${focus * 25}% - 1em)`
2202
+ justifyContent: 'flex-end',
2203
+ marginTop: '2em'
1704
2204
  }
1705
- }))));
1706
- };
1707
-
1708
- const fetchWrapper = {
1709
- get,
1710
- post
2205
+ }, React.createElement(SecondaryButton, {
2206
+ clickHandler: () => dispatch(setConnectModal(false)),
2207
+ theme: theme
2208
+ }, "Cancel"), React.createElement(PrimaryButton, {
2209
+ clickHandler: handleConnect
2210
+ }, "Connect"))));
1711
2211
  };
1712
- function get(url) {
1713
- const requestOptions = {
1714
- method: 'GET'
1715
- };
1716
- requestOptions.headers = {
1717
- 'Content-Type': 'application/json'
1718
- };
1719
- return fetch(url, requestOptions).then(handleResponse);
1720
- }
1721
- function post(url, body) {
1722
- const requestOptions = {
1723
- method: 'POST',
1724
- credentials: 'include',
1725
- headers: {
1726
- 'Content-Type': 'application/json'
1727
- },
1728
-
1729
- body: body
1730
- };
1731
- return fetch(url, requestOptions).then(handleResponse);
1732
- }
1733
- function handleResponse(response) {
1734
- return response.text().then(text => {
1735
- let data = text;
1736
- try {
1737
- data = JSON.parse(text);
1738
- } catch (error) {
1739
- data = text;
1740
- }
1741
- if (!response.ok) {
1742
- const error = data || response.statusText;
1743
- return Promise.reject({
1744
- status: response.status,
1745
- error
1746
- });
1747
- }
1748
- return data;
1749
- });
1750
- }
1751
2212
 
1752
2213
  const TransactionWidget = ({
1753
2214
  theme: _theme = ThemeOptions.light,
1754
2215
  fontSize: _fontSize = FontSizeOptions.medium
1755
2216
  }) => {
1756
- const dispatch = useDispatch();
1757
2217
  const [step, setStep] = useState(0);
1758
2218
  const [focus, setFocus] = useState(-1);
1759
2219
  const [errorStep, setErrorStep] = useState(-1);
2220
+ const [loadingStep, setLoadingStep] = useState(-1);
1760
2221
  const [minimized, setMinimized] = useState(false);
1761
2222
  const [percent, setPercent] = useState(0);
1762
- const [amount, setAmount] = useState(0);
1763
- const [sourceChain, setSourceChain] = useState('');
1764
- const [targetChain, setTargetChain] = useState('');
2223
+ const [data, setData] = useState();
2224
+ const dispatch = useDispatch();
2225
+ const mode = useSelector(selectMode);
2226
+ const txId = useSelector(selectTxId);
2227
+ const closeHandler = useSelector(selectCloseHandler);
2228
+ const successHandler = useSelector(selectSuccessHandler);
2229
+ const nodeProviderQuery = useSelector(selectNodeProviderQuery);
1765
2230
  useEffect(() => {
2231
+ if (!nodeProviderQuery || txId < 0) return;
1766
2232
  const timerId = setInterval(async () => {
1767
- const result = await fetchWrapper.get(`https://${DIVERSIFI_NODE_PROVIDER1_QUERY}/Diversifi-Technologies/diversifi/diversifi/transaction_data`);
2233
+ const result = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/transaction_data/${txId}`);
1768
2234
  const data = result === null || result === void 0 ? void 0 : result.transactionData;
1769
- if (!(data !== null && data !== void 0 && data.length)) return;
1770
- data.sort((a, b) => b.index - a.index);
1771
- const status = data[0].status;
2235
+ if (!data) return;
2236
+ const status = data.status;
1772
2237
  console.log(status);
1773
- setSourceChain(data[0].originChain === 'Avax' ? CHAIN_STRING_AVALANCHE : data[0].originChain);
1774
- setTargetChain(data[0].targetChain === 'Avax' ? CHAIN_STRING_AVALANCHE : data[0].targetChain);
1775
- setAmount(+data[0].amount);
2238
+ setData({
2239
+ sourceChain: data.originChain,
2240
+ targetChain: data.targetChain,
2241
+ tssPullHash: data.tssPullHash,
2242
+ tssReleaseHash: data.tssReleaseHash,
2243
+ amount: +data.amount,
2244
+ symbol: data.symbol
2245
+ });
1776
2246
  setErrorStep(-1);
1777
- if (status === PAY_AVAILABLE) {
1778
- setStep(0);
1779
- setPercent(0);
1780
- } else if (status === PAY_CONFIRMED) {
2247
+ if (status === TransactionStatus.AVAILABLE) {
1781
2248
  setStep(1);
2249
+ setPercent(0);
2250
+ setLoadingStep(1);
2251
+ } else if (status === TransactionStatus.CONFIRMED) {
2252
+ setStep(2);
1782
2253
  setPercent(25);
1783
- } else if (status.startsWith(PAY_UNAVAILABLE)) {
2254
+ setLoadingStep(2);
2255
+ } else if (status.startsWith(TransactionStatus.UNAVAILABLE)) {
1784
2256
  setStep(1);
1785
- setErrorStep(1);
1786
2257
  setPercent(25);
1787
- } else if (status === PAY_KEYSIGNED) {
1788
- setStep(2);
2258
+ setErrorStep(1);
2259
+ setLoadingStep(-1);
2260
+ } else if (status === TransactionStatus.KEYSIGNED) {
2261
+ setStep(3);
1789
2262
  setPercent(50);
1790
- } else if (status === PAY_PAID) {
1791
- setStep(4);
1792
- setPercent(100);
1793
- } else if (status === PAY_FAILED) {
2263
+ setLoadingStep(3);
2264
+ } else if (status === TransactionStatus.PAID) {
2265
+ setStep(3);
2266
+ setPercent(75);
2267
+ setLoadingStep(3);
2268
+ } else if (status === TransactionStatus.FAILED) {
1794
2269
  setStep(3);
1795
- setErrorStep(3);
1796
2270
  setPercent(75);
2271
+ setErrorStep(3);
2272
+ setLoadingStep(-1);
2273
+ } else if (status === TransactionStatus.COMPLETED) {
2274
+ setStep(4);
2275
+ setPercent(100);
2276
+ clearInterval(timerId);
2277
+ setLoadingStep(-1);
2278
+ setTimeout(() => {
2279
+ successHandler({
2280
+ txId
2281
+ });
2282
+ }, 3000);
1797
2283
  }
1798
2284
  }, 1000);
1799
2285
  return () => {
1800
2286
  clearInterval(timerId);
1801
2287
  };
1802
- }, []);
2288
+ }, [nodeProviderQuery, txId]);
1803
2289
  return React.createElement(Provider, {
1804
2290
  store: store
1805
2291
  }, React.createElement("div", {
@@ -1810,7 +2296,7 @@ const TransactionWidget = ({
1810
2296
  className: 'topbar'
1811
2297
  }, React.createElement("div", {
1812
2298
  className: 'title'
1813
- }, React.createElement("h3", null, "Transferring ", formatterInt.format(amount), " USDK"), React.createElement(AnimatedNumber, {
2299
+ }, React.createElement("h3", null, "Transferring ", formatterFloat.format((data === null || data === void 0 ? void 0 : data.amount) || 0), ' ', COIN_LIST[(data === null || data === void 0 ? void 0 : data.symbol) || 'USDK'].symbol), React.createElement(AnimatedNumber, {
1814
2300
  component: 'p',
1815
2301
  value: percent,
1816
2302
  duration: 1000,
@@ -1824,21 +2310,22 @@ const TransactionWidget = ({
1824
2310
  }
1825
2311
  }, React.createElement(Minimize, {
1826
2312
  fill: _theme === 'light' ? 'black' : 'white'
1827
- })), React.createElement("button", {
2313
+ })), loadingStep < 0 ? React.createElement("button", {
1828
2314
  className: 'icon-button',
1829
2315
  onClick: () => {
1830
- dispatch(setSubmitted(false));
2316
+ if (mode === ModeOptions.bridge) dispatch(init());
2317
+ closeHandler();
1831
2318
  }
1832
2319
  }, React.createElement(Cross, {
1833
2320
  fill: _theme === 'light' ? 'black' : 'white'
1834
- }))) : React.createElement("div", {
2321
+ })) : null) : React.createElement("div", {
1835
2322
  className: 'control-buttons'
1836
2323
  }, React.createElement("div", {
1837
2324
  className: 'maximize',
1838
2325
  onClick: () => setMinimized(false)
1839
- }, "View"))), sourceChain && targetChain && React.createElement(NetworkLabel, {
1840
- sourceChain: sourceChain,
1841
- targetChain: targetChain,
2326
+ }, "View"))), (data === null || data === void 0 ? void 0 : data.sourceChain) && (data === null || data === void 0 ? void 0 : data.targetChain) && React.createElement(NetworkLabel, {
2327
+ sourceChain: data === null || data === void 0 ? void 0 : data.sourceChain,
2328
+ targetChain: data === null || data === void 0 ? void 0 : data.targetChain,
1842
2329
  hasError: errorStep >= 0
1843
2330
  })), React.createElement("div", {
1844
2331
  className: 'kima-card-content'
@@ -1846,46 +2333,36 @@ const TransactionWidget = ({
1846
2333
  step: step,
1847
2334
  focus: focus,
1848
2335
  errorStep: errorStep,
1849
- setFocus: setFocus
1850
- }), React.createElement(Tooltip, {
2336
+ setFocus: setFocus,
2337
+ loadingStep: loadingStep
2338
+ }), React.createElement(StepBox, {
1851
2339
  step: step,
1852
- focus: focus,
1853
- errorStep: errorStep
2340
+ errorStep: errorStep,
2341
+ loadingStep: loadingStep,
2342
+ data: data
1854
2343
  })), React.createElement("div", {
1855
2344
  className: 'kima-card-footer'
1856
2345
  }, React.createElement(Cross$1, {
1857
2346
  fill: _theme === 'light' ? 'black' : '#C5C5C5'
1858
- }), React.createElement("p", null, "Click on a step to see detailed information."), React.createElement(ExternalLink, {
1859
- to: 'https://kima.finance'
1860
- }, "I need help"))));
2347
+ }), React.createElement("p", null, "Click on a step to see detailed information.")), React.createElement(HelpPopup, null), React.createElement(HashPopup, {
2348
+ data: data
2349
+ })));
1861
2350
  };
1862
2351
 
1863
2352
  const SingleForm = () => {
1864
- const originNetwork = useSelector(selectOriginNetwork);
1865
- const targetNetwork = useSelector(selectTargetNetwork);
1866
2353
  const dispatch = useDispatch();
1867
2354
  const mode = useSelector(selectMode);
1868
2355
  const theme = useSelector(selectTheme);
1869
2356
  const amount = useSelector(selectAmount);
1870
- const feeDeduct = useSelector(selectFeeDeduct);
1871
- const serviceFee = useSelector(selectServiceFee);
1872
2357
  const transactionOption = useSelector(selectTransactionOption);
1873
- const originNetworks = networkOptions;
1874
- const targetNetworks = useMemo(() => networkOptions.filter(network => network.id !== originNetwork), [originNetwork]);
2358
+ const selectedCoin = useSelector(selectCurrencyOptions);
1875
2359
  return React.createElement("div", {
1876
2360
  className: 'single-form'
1877
2361
  }, React.createElement("div", {
1878
2362
  className: 'form-item'
1879
2363
  }, React.createElement("span", {
1880
2364
  className: 'label'
1881
- }, mode === ModeOptions.payment ? 'Funding Network:' : 'Origin Network:', ' '), originNetworks.map(network => React.createElement("div", {
1882
- className: `network-item ${theme} ${originNetwork === network.id ? 'active' : ''}`,
1883
- onClick: () => {
1884
- dispatch(setOriginNetwork(network.id));
1885
- dispatch(setTargetNetwork(''));
1886
- },
1887
- key: network.id
1888
- }, React.createElement(network.icon, null), React.createElement("p", null, network.id)))), React.createElement("div", {
2365
+ }, "Source Network"), React.createElement(NetworkDropdown, null)), React.createElement("div", {
1889
2366
  className: 'form-item'
1890
2367
  }, React.createElement("span", {
1891
2368
  className: 'label'
@@ -1893,40 +2370,40 @@ const SingleForm = () => {
1893
2370
  className: 'form-item'
1894
2371
  }, React.createElement("span", {
1895
2372
  className: 'label'
1896
- }, "Target Network:"), targetNetworks.map(network => React.createElement("div", {
1897
- className: `network-item ${theme} ${targetNetwork === network.id ? 'active' : ''}`,
1898
- onClick: () => {
1899
- dispatch(setTargetNetwork(network.id));
1900
- dispatch(setServiceFee(0));
1901
- },
1902
- key: network.id
1903
- }, React.createElement(network.icon, null), React.createElement("p", null, network.id)))), mode === ModeOptions.bridge && React.createElement("div", {
1904
- className: 'form-item'
2373
+ }, "Target Network:"), React.createElement(NetworkDropdown, {
2374
+ isOriginChain: false
2375
+ })), mode === ModeOptions.bridge && React.createElement("div", {
2376
+ className: `form-item ${theme}`
1905
2377
  }, React.createElement("span", {
1906
2378
  className: 'label'
1907
- }, "Target Address:"), React.createElement(AddressInput, null)), React.createElement("div", {
2379
+ }, "Target Address:"), React.createElement(AddressInput, null)), mode === ModeOptions.bridge ? React.createElement("div", {
1908
2380
  className: `form-item ${theme}`
1909
2381
  }, React.createElement("span", {
1910
2382
  className: 'label'
1911
2383
  }, "Amount:"), React.createElement("input", {
1912
2384
  type: 'number',
1913
- value: mode === ModeOptions.payment ? (transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.amount) || 0 : amount,
1914
- onChange: e => dispatch(setAmount(+e.target.value)),
1915
- readOnly: mode === ModeOptions.payment
1916
- }), React.createElement(CoinDropdown, null), mode === ModeOptions.bridge && serviceFee ? React.createElement(CustomCheckbox, {
1917
- text: `Deduct ${formatterFloat.format(amount * FEE_PERCENT + serviceFee)} USDK fee`,
1918
- checked: feeDeduct,
1919
- setCheck: value => dispatch(setFeeDeduct(value))
1920
- }) : null));
2385
+ value: amount || '',
2386
+ onChange: e => {
2387
+ const _amount = +e.target.value;
2388
+ dispatch(setAmount(parseFloat(_amount.toFixed(2))));
2389
+ }
2390
+ }), React.createElement(CoinDropdown, null)) : React.createElement("div", {
2391
+ className: `form-item ${theme}`
2392
+ }, React.createElement("span", {
2393
+ className: 'label'
2394
+ }, "Amount:"), React.createElement("div", {
2395
+ className: `amount-label ${theme}`
2396
+ }, React.createElement("span", null, (transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.amount) || ''), React.createElement("div", {
2397
+ className: 'coin-wrapper'
2398
+ }, React.createElement(selectedCoin.icon, null), selectedCoin.symbol))));
1921
2399
  };
1922
2400
 
1923
2401
  const CoinSelect = () => {
1924
2402
  const dispatch = useDispatch();
1925
2403
  const theme = useSelector(selectTheme);
1926
2404
  const mode = useSelector(selectMode);
1927
- const transactionOption = useSelector(selectTransactionOption);
1928
2405
  const amount = useSelector(selectAmount);
1929
- const selectedCoin = COIN_LIST['USDK'];
2406
+ const selectedCoin = useSelector(selectCurrencyOptions);
1930
2407
  return React.createElement("div", {
1931
2408
  className: `coin-select`
1932
2409
  }, React.createElement("p", null, "Select Amount of Token for Funding"), React.createElement("div", {
@@ -1935,9 +2412,12 @@ const CoinSelect = () => {
1935
2412
  className: 'input-wrapper'
1936
2413
  }, React.createElement("input", {
1937
2414
  type: 'number',
1938
- value: mode === ModeOptions.payment ? (transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.amount) || 0 : amount,
2415
+ value: amount || '',
1939
2416
  readOnly: mode === ModeOptions.payment,
1940
- onChange: e => dispatch(setAmount(+e.target.value))
2417
+ onChange: e => {
2418
+ const _amount = +e.target.value;
2419
+ dispatch(setAmount(parseFloat(_amount.toFixed(2))));
2420
+ }
1941
2421
  }), React.createElement("div", {
1942
2422
  className: 'coin-label'
1943
2423
  }, React.createElement(selectedCoin.icon, null), React.createElement("span", null, selectedCoin.symbol)))));
@@ -2259,8 +2739,7 @@ async function getOrCreateAssociatedTokenAccount(connection, payer, mint, owner,
2259
2739
  const signed = await signTransaction(transaction);
2260
2740
  const signature = await connection.sendRawTransaction(signed.serialize());
2261
2741
  await connection.confirmTransaction(signature);
2262
- } catch (error) {
2263
- }
2742
+ } catch (error) {}
2264
2743
  account = await getAccountInfo(connection, associatedToken, commitment, programId);
2265
2744
  } else {
2266
2745
  throw error;
@@ -5739,15 +6218,17 @@ function useAllowance() {
5739
6218
  const selectedNetwork = useSelector(selectOriginNetwork);
5740
6219
  const errorHandler = useSelector(selectErrorHandler);
5741
6220
  const sourceChain = useMemo(() => {
5742
- if (selectedNetwork === CHAIN_STRING_SOLANA) return selectedNetwork;
5743
- if (getEvmChainId(selectedNetwork) !== evmChainId) {
5744
- return getEvmChainString(evmChainId);
6221
+ if (selectedNetwork === ChainName.SOLANA) return selectedNetwork;
6222
+ if (CHAIN_NAMES_TO_IDS[selectedNetwork] !== evmChainId) {
6223
+ return CHAIN_IDS_TO_NAMES[evmChainId];
5745
6224
  }
5746
6225
  return selectedNetwork;
5747
6226
  }, [selectedNetwork, evmChainId]);
5748
6227
  const amount = useSelector(selectAmount);
6228
+ const serviceFee = useSelector(selectServiceFee);
5749
6229
  const isApproving = useSelector(selectApproving);
5750
6230
  const splAllowance = useSelector(selectSplAllowance);
6231
+ const nodeProviderQuery = useSelector(selectNodeProviderQuery);
5751
6232
  const {
5752
6233
  connection
5753
6234
  } = useConnection();
@@ -5755,13 +6236,28 @@ function useAllowance() {
5755
6236
  publicKey,
5756
6237
  signTransaction
5757
6238
  } = useWallet();
5758
- const tokenAddress = COIN_LIST['USDK'].address[sourceChain];
5759
- const targetAddress = useMemo(() => getPoolAddress(sourceChain), [sourceChain]);
6239
+ const selectedCoin = useSelector(selectCurrencyOptions);
6240
+ const tokenAddress = useMemo(() => {
6241
+ return selectedCoin.address[sourceChain];
6242
+ }, [selectedCoin, sourceChain]);
6243
+ const [targetAddress, setTargetAddress] = useState();
5760
6244
  const isApproved = useMemo(() => {
5761
- if (!isEVMChain(sourceChain)) return splAllowance >= amount;
5762
- if (allowance && amount && allowance.gte(parseUnits(amount.toString(), decimals))) return true;
6245
+ if (!isEVMChain(sourceChain)) return splAllowance >= amount + serviceFee;
6246
+ if (allowance && amount && allowance.gte(parseUnits((amount + serviceFee).toString(), decimals))) return true;
5763
6247
  return false;
5764
- }, [decimals, sourceChain, allowance, amount, splAllowance]);
6248
+ }, [decimals, sourceChain, allowance, amount, splAllowance, serviceFee]);
6249
+ const updatePoolAddress = async () => {
6250
+ var _result$tssPubkey;
6251
+ const result = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/tss_pubkey`);
6252
+ if ((result === null || result === void 0 ? void 0 : (_result$tssPubkey = result.tssPubkey) === null || _result$tssPubkey === void 0 ? void 0 : _result$tssPubkey.length) < 1) {
6253
+ return;
6254
+ }
6255
+ setTargetAddress(result.tssPubkey[0].ecdsa);
6256
+ };
6257
+ useEffect(() => {
6258
+ if (!nodeProviderQuery) return;
6259
+ updatePoolAddress();
6260
+ }, [nodeProviderQuery]);
5765
6261
  useEffect(() => {
5766
6262
  (async () => {
5767
6263
  try {
@@ -5778,11 +6274,11 @@ function useAllowance() {
5778
6274
  }, [signerAddress, tokenAddress, targetAddress, isApproving, sourceChain]);
5779
6275
  const approve = useCallback(async () => {
5780
6276
  if (isEVMChain(sourceChain)) {
5781
- if (!decimals || !tokenAddress || !signer || !tokenAddress) return;
6277
+ if (!decimals || !tokenAddress || !signer || !targetAddress) return;
5782
6278
  try {
5783
6279
  const erc20Contract = new Contract(tokenAddress, ERC20ABI.abi, signer);
5784
6280
  dispatch(setApproving(true));
5785
- const approve = await erc20Contract.approve(targetAddress, parseUnits(amount.toString(), decimals));
6281
+ const approve = await erc20Contract.approve(targetAddress, parseUnits((amount + serviceFee).toString(), decimals));
5786
6282
  await approve.wait();
5787
6283
  dispatch(setApproving(false));
5788
6284
  } catch (error) {
@@ -5798,170 +6294,46 @@ function useAllowance() {
5798
6294
  const toPublicKey = new PublicKey(targetAddress);
5799
6295
  const fromTokenAccount = await getOrCreateAssociatedTokenAccount(connection, publicKey, mint, publicKey, signTransaction);
5800
6296
  const toTokenAccount = await getOrCreateAssociatedTokenAccount(connection, publicKey, mint, toPublicKey, signTransaction);
5801
- const transaction = new Transaction().add(createApproveTransferInstruction(fromTokenAccount.address,
5802
- toTokenAccount.address,
5803
- publicKey, amount * Math.pow(10, COIN_LIST['USDK'].decimals),
5804
- [], TOKEN_PROGRAM_ID));
6297
+ const transaction = new Transaction().add(createApproveTransferInstruction(fromTokenAccount.address, toTokenAccount.address, publicKey, (amount + serviceFee) * Math.pow(10, COIN_LIST['USDK'].decimals), [], TOKEN_PROGRAM_ID));
5805
6298
  const blockHash = await connection.getLatestBlockhash();
5806
6299
  transaction.feePayer = publicKey;
5807
6300
  transaction.recentBlockhash = await blockHash.blockhash;
5808
6301
  const signed = await signTransaction(transaction);
5809
6302
  await connection.sendRawTransaction(signed.serialize());
5810
- dispatch(setSplAllowance(amount));
6303
+ dispatch(setSplAllowance(amount + serviceFee));
5811
6304
  dispatch(setApproving(false));
5812
6305
  } catch (e) {
5813
6306
  errorHandler(e);
5814
6307
  dispatch(setApproving(false));
5815
6308
  }
5816
- }, [decimals, tokenAddress, signer, amount, targetAddress, signTransaction]);
6309
+ }, [decimals, tokenAddress, signer, amount, targetAddress, signTransaction, serviceFee]);
5817
6310
  return useMemo(() => ({
5818
6311
  isApproved,
5819
6312
  approve
5820
6313
  }), [isApproved, approve]);
5821
6314
  }
5822
6315
 
5823
- var abi$1 = [
5824
- {
5825
- inputs: [
5826
- ],
5827
- name: "decimals",
5828
- outputs: [
5829
- {
5830
- internalType: "uint8",
5831
- name: "",
5832
- type: "uint8"
5833
- }
5834
- ],
5835
- stateMutability: "view",
5836
- type: "function"
5837
- },
5838
- {
5839
- inputs: [
5840
- ],
5841
- name: "description",
5842
- outputs: [
5843
- {
5844
- internalType: "string",
5845
- name: "",
5846
- type: "string"
5847
- }
5848
- ],
5849
- stateMutability: "view",
5850
- type: "function"
5851
- },
5852
- {
5853
- inputs: [
5854
- {
5855
- internalType: "uint80",
5856
- name: "_roundId",
5857
- type: "uint80"
5858
- }
5859
- ],
5860
- name: "getRoundData",
5861
- outputs: [
5862
- {
5863
- internalType: "uint80",
5864
- name: "roundId",
5865
- type: "uint80"
5866
- },
5867
- {
5868
- internalType: "int256",
5869
- name: "answer",
5870
- type: "int256"
5871
- },
5872
- {
5873
- internalType: "uint256",
5874
- name: "startedAt",
5875
- type: "uint256"
5876
- },
5877
- {
5878
- internalType: "uint256",
5879
- name: "updatedAt",
5880
- type: "uint256"
5881
- },
5882
- {
5883
- internalType: "uint80",
5884
- name: "answeredInRound",
5885
- type: "uint80"
5886
- }
5887
- ],
5888
- stateMutability: "view",
5889
- type: "function"
5890
- },
5891
- {
5892
- inputs: [
5893
- ],
5894
- name: "latestRoundData",
5895
- outputs: [
5896
- {
5897
- internalType: "uint80",
5898
- name: "roundId",
5899
- type: "uint80"
5900
- },
5901
- {
5902
- internalType: "int256",
5903
- name: "answer",
5904
- type: "int256"
5905
- },
5906
- {
5907
- internalType: "uint256",
5908
- name: "startedAt",
5909
- type: "uint256"
5910
- },
5911
- {
5912
- internalType: "uint256",
5913
- name: "updatedAt",
5914
- type: "uint256"
5915
- },
5916
- {
5917
- internalType: "uint80",
5918
- name: "answeredInRound",
5919
- type: "uint80"
5920
- }
5921
- ],
5922
- stateMutability: "view",
5923
- type: "function"
5924
- },
5925
- {
5926
- inputs: [
5927
- ],
5928
- name: "version",
5929
- outputs: [
5930
- {
5931
- internalType: "uint256",
5932
- name: "",
5933
- type: "uint256"
5934
- }
5935
- ],
5936
- stateMutability: "view",
5937
- type: "function"
5938
- }
5939
- ];
5940
- var aggregatorV3ABI = {
5941
- abi: abi$1
5942
- };
5943
-
5944
- async function getPrice(chainId) {
5945
- const ETH_Node1 = ETHEREUM_NODE_PROVIDER;
5946
- let addr = SOL_USD_PROXY;
5947
- if (chainId === CHAIN_STRING_ETHEREUM) addr = ETH_USD_PROXY;
5948
- if (chainId === CHAIN_STRING_POLYGON) addr = MATIC_USD_PROXY;
5949
- if (chainId === CHAIN_STRING_AVALANCHE) addr = AVAX_USD_PROXY;
5950
- const web3 = new Web3(ETH_Node1);
5951
- const contractAbi = aggregatorV3ABI.abi;
5952
- const priceFeed = new web3.eth.Contract(contractAbi, addr);
5953
- const data = await priceFeed.methods.latestRoundData().call();
5954
- return +data.answer / 1e8;
6316
+ async function getPrice(sourceChain, targetChain) {
6317
+ try {
6318
+ const res = await fetch(`https://api.coingecko.com/api/v3/simple/price?ids=${CHAIN_NAMES_TO_GECKO_ID[sourceChain]},${CHAIN_NAMES_TO_GECKO_ID[targetChain]}&vs_currencies=usd`);
6319
+ const price = await res.json();
6320
+ return Object.keys(price).length ? [price[CHAIN_NAMES_TO_GECKO_ID[sourceChain]].usd, price[CHAIN_NAMES_TO_GECKO_ID[targetChain]].usd] : [0, 0];
6321
+ } catch (e) {
6322
+ console.log(e);
6323
+ }
6324
+ return [0, 0];
5955
6325
  }
5956
- function getFeeInUSD(chainId, gasFee, tokenPrice) {
6326
+ async function getFeeInUSD(sourceChain, targetChain, gasFee) {
5957
6327
  const max_gas = 50000;
5958
- if (chainId === CHAIN_STRING_SOLANA) {
5959
- return +gasFee.solana * +tokenPrice.sol;
5960
- }
5961
- if (chainId === CHAIN_STRING_ETHEREUM) return +gasFee.ethereum * max_gas * +tokenPrice.eth / 1e9;
5962
- if (chainId === CHAIN_STRING_POLYGON) return +gasFee.polygon * max_gas * +tokenPrice.matic / 1e9;
5963
- if (chainId === 'Avax') return +gasFee.avax * max_gas * +tokenPrice.avax / 1e9;
5964
- return 0;
6328
+ const [sourceTokenPrice, targetTokenPrice] = await getPrice(sourceChain, targetChain);
6329
+ let sourceFee, targetFee;
6330
+ if (sourceChain === ChainName.SOLANA) {
6331
+ sourceFee = +gasFee[sourceChain] * +sourceTokenPrice;
6332
+ } else sourceFee = gasFee[sourceChain] ? +gasFee[sourceChain] * max_gas * +sourceTokenPrice / 1e9 : 0;
6333
+ if (targetChain === ChainName.SOLANA) {
6334
+ targetFee = +gasFee[targetChain] * +targetTokenPrice;
6335
+ } else targetFee = gasFee[targetChain] ? +gasFee[targetChain] * max_gas * +targetTokenPrice / 1e9 : 0;
6336
+ return [sourceFee, targetFee];
5965
6337
  }
5966
6338
  function useServiceFee() {
5967
6339
  const {
@@ -5970,48 +6342,34 @@ function useServiceFee() {
5970
6342
  } = useIsWalletReady();
5971
6343
  const [serviceFee, setServiceFee] = useState(0);
5972
6344
  const mode = useSelector(selectMode);
5973
- const originNetwork = useSelector(selectOriginNetwork);
6345
+ const amount_ = useSelector(selectAmount);
6346
+ const isConfirming = useSelector(selectConfirming);
6347
+ const sourceChain = useSelector(selectOriginNetwork);
5974
6348
  const targetNetwork = useSelector(selectTargetNetwork);
6349
+ const targetAddress_ = useSelector(selectTargetAddress);
5975
6350
  const transactionOption = useSelector(selectTransactionOption);
5976
- const filterAvax = str => str === CHAIN_STRING_AVALANCHE ? 'Avax' : str;
5977
- const sourceChain = useMemo(() => filterAvax(originNetwork), [originNetwork]);
5978
- const targetChain = useMemo(() => filterAvax(mode === ModeOptions.payment ? (transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetChain) || '' : targetNetwork), [transactionOption, mode, targetNetwork]);
6351
+ const nodeProviderQuery = useSelector(selectNodeProviderQuery);
6352
+ const targetChain = useMemo(() => mode === ModeOptions.payment ? (transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetChain) || '' : targetNetwork, [transactionOption, mode, targetNetwork]);
6353
+ const targetAddress = useMemo(() => mode === ModeOptions.payment ? (transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetAddress) || '' : targetAddress_, [transactionOption, mode, targetAddress_]);
6354
+ const amount = useMemo(() => mode === ModeOptions.payment ? transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.amount : amount_, [transactionOption, mode, amount_]);
5979
6355
  const getServiceFee = async () => {
5980
- if (!sourceChain || !targetChain || !isReady || !walletAddress) return;
5981
- let tokenPrice = {
5982
- sol: 0,
5983
- eth: 0,
5984
- matic: 0,
5985
- avax: 0
5986
- };
5987
- let gasFee = {
5988
- solana: 0,
5989
- ethereum: 0,
5990
- polygon: 0,
5991
- avax: 0
5992
- };
6356
+ if (!sourceChain || !targetChain || !isReady || !walletAddress || !targetAddress || !nodeProviderQuery || !amount) return;
6357
+ let gasFee = {};
5993
6358
  try {
5994
- const gasFeeData = await fetchWrapper.get(`https://${DIVERSIFI_NODE_PROVIDER1_QUERY}/Diversifi-Technologies/diversifi/diversifi/gas_fee`);
6359
+ const gasFeeData = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/gas_fee`);
5995
6360
  gasFeeData.gasFee.forEach(data => {
5996
- if (data.chainId === CHAIN_STRING_SOLANA) gasFee.solana = data.fee;
5997
- if (data.chainId === CHAIN_STRING_ETHEREUM) gasFee.ethereum = data.fee;
5998
- if (data.chainId === CHAIN_STRING_POLYGON) gasFee.polygon = data.fee;
5999
- if (data.chainId === 'Avax') gasFee.avax = data.fee;
6361
+ gasFee[data.chainId] = data.fee;
6000
6362
  });
6001
- tokenPrice.sol = await getPrice(CHAIN_STRING_SOLANA);
6002
- tokenPrice.eth = await getPrice(CHAIN_STRING_ETHEREUM);
6003
- tokenPrice.matic = await getPrice(CHAIN_STRING_POLYGON);
6004
- tokenPrice.avax = await getPrice('Avax');
6005
- const estimation = await fetchWrapper.get(`https://${DIVERSIFI_NODE_PROVIDER1_QUERY}/Diversifi-Technologies/diversifi/diversifi/estimate_transfer/${sourceChain}/${walletAddress}/${targetChain}/${0x123}/${100}`);
6006
- const originFee = getFeeInUSD(sourceChain, gasFee, tokenPrice);
6007
- const targetFee = getFeeInUSD(targetChain, gasFee, tokenPrice);
6363
+ const estimation = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/estimate_transfer/${sourceChain}/${walletAddress}/${targetChain}/${targetAddress}/${amount}`);
6364
+ const [originFee, targetFee] = await getFeeInUSD(sourceChain, targetChain, gasFee);
6008
6365
  const fee = parseFloat(estimation.estimateTransfer.TakerPenalty) + parseFloat(estimation.estimateTransfer.MakerPenalty) - parseFloat(estimation.estimateTransfer.TakerBounty) - parseFloat(estimation.estimateTransfer.MakerBounty) + parseFloat(estimation.estimateTransfer.NetworkFee) + originFee + targetFee;
6009
- setServiceFee(fee);
6366
+ setServiceFee(parseFloat(fee.toFixed(2)));
6010
6367
  } catch (e) {
6011
6368
  console.log(e);
6012
6369
  }
6013
6370
  };
6014
6371
  useEffect(() => {
6372
+ if (isConfirming) return;
6015
6373
  getServiceFee();
6016
6374
  const timerId = setInterval(() => {
6017
6375
  getServiceFee();
@@ -6019,15 +6377,43 @@ function useServiceFee() {
6019
6377
  return () => {
6020
6378
  clearInterval(timerId);
6021
6379
  };
6022
- }, [sourceChain, targetChain, isReady, walletAddress]);
6380
+ }, [sourceChain, targetChain, isReady, walletAddress, isConfirming, targetAddress, nodeProviderQuery, amount]);
6023
6381
  return useMemo(() => ({
6024
6382
  serviceFee
6025
6383
  }), [serviceFee]);
6026
6384
  }
6027
6385
 
6386
+ const AddressInputWizard = () => {
6387
+ const theme = useSelector(selectTheme);
6388
+ return React.createElement("div", {
6389
+ className: `coin-select`
6390
+ }, React.createElement("p", null, "Select Target Address for Funding"), React.createElement("div", {
6391
+ className: `address-input ${theme}`
6392
+ }, React.createElement("span", null, "Target Address:"), React.createElement(AddressInput, null)));
6393
+ };
6394
+
6395
+ function useCurrencyOptions() {
6396
+ const [options, setOptions] = useState(COIN_LIST['USDK']);
6397
+ const nodeProviderQuery = useSelector(selectNodeProviderQuery);
6398
+ const originNetwork = useSelector(selectOriginNetwork);
6399
+ const targetNetwork = useSelector(selectTargetNetwork);
6400
+ useEffect(() => {
6401
+ if (!nodeProviderQuery || !originNetwork || !targetNetwork) return;
6402
+ (async function () {
6403
+ var _coins$Currencies;
6404
+ const coins = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/getCurrencies/${originNetwork}/${targetNetwork}`);
6405
+ setOptions(COIN_LIST[(_coins$Currencies = coins.Currencies) !== null && _coins$Currencies !== void 0 && _coins$Currencies.length ? coins.Currencies[0] : 'USDK']);
6406
+ })();
6407
+ }, [nodeProviderQuery, originNetwork, targetNetwork]);
6408
+ return useMemo(() => ({
6409
+ options
6410
+ }), [options]);
6411
+ }
6412
+
6028
6413
  const TransferWidget = ({
6029
6414
  theme: _theme = ThemeOptions.light,
6030
- fontSize: _fontSize = FontSizeOptions.medium
6415
+ fontSize: _fontSize = FontSizeOptions.medium,
6416
+ titleOption
6031
6417
  }) => {
6032
6418
  const dispatch = useDispatch();
6033
6419
  const [menuOpen, setMenuOpen] = useState(false);
@@ -6049,13 +6435,18 @@ const TransferWidget = ({
6049
6435
  const amount = useSelector(selectAmount);
6050
6436
  const sourceChain = useSelector(selectOriginNetwork);
6051
6437
  const targetAddress = useSelector(selectTargetAddress);
6438
+ const targetNetwork = useSelector(selectTargetNetwork);
6052
6439
  const isApproving = useSelector(selectApproving);
6053
- const isConfirming = useSelector(selectConfirming);
6054
6440
  const errorHandler = useSelector(selectErrorHandler);
6055
6441
  const closeHandler = useSelector(selectCloseHandler);
6056
- const successHandler = useSelector(selectSuccessHandler);
6057
6442
  const isSubmitting = useSelector(selectSubmitting);
6058
- const transactionOption = useSelector(selectTransactionOption);
6443
+ const {
6444
+ options: selectedCoin
6445
+ } = useCurrencyOptions();
6446
+ const backendUrl = useSelector(selectBackendUrl);
6447
+ useEffect(() => {
6448
+ dispatch(setCurrencyOptions(selectedCoin));
6449
+ }, [selectedCoin]);
6059
6450
  useEffect(() => {
6060
6451
  if (!isReady) {
6061
6452
  if (formStep > 0) setFormStep(0);
@@ -6063,9 +6454,8 @@ const TransferWidget = ({
6063
6454
  }
6064
6455
  }, [isReady, wizardStep, formStep]);
6065
6456
  useEffect(() => {
6066
- if (isConfirming) return;
6067
6457
  dispatch(setServiceFee(fee));
6068
- }, [fee, isConfirming]);
6458
+ }, [fee]);
6069
6459
  const handleSubmit = async () => {
6070
6460
  if (!isApproved) {
6071
6461
  approve();
@@ -6075,17 +6465,35 @@ const TransferWidget = ({
6075
6465
  dispatch(setSubmitting(true));
6076
6466
  const params = JSON.stringify({
6077
6467
  originAddress: walletAddress,
6078
- originChain: sourceChain === CHAIN_STRING_AVALANCHE ? 'Avax' : sourceChain,
6079
- targetAddress: transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetAddress,
6080
- targetChain: (transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetChain) === CHAIN_STRING_AVALANCHE ? 'Avax' : transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetChain,
6468
+ originChain: sourceChain,
6469
+ targetAddress: targetAddress,
6470
+ targetChain: targetNetwork,
6471
+ symbol: selectedCoin.label,
6081
6472
  amount: amount,
6082
- fee: amount * FEE_PERCENT + fee
6473
+ fee: fee
6083
6474
  });
6084
6475
  console.log(params);
6085
- successHandler({
6086
- address: walletAddress,
6087
- chain: sourceChain === CHAIN_STRING_AVALANCHE ? 'Avax' : sourceChain
6088
- });
6476
+ await fetchWrapper.post(`${backendUrl}/auth`, params);
6477
+ const result = await fetchWrapper.post(`${backendUrl}/submit`, params);
6478
+ console.log(result);
6479
+ if ((result === null || result === void 0 ? void 0 : result.code) !== 0) {
6480
+ errorHandler(result);
6481
+ dispatch(setSubmitting(false));
6482
+ return;
6483
+ }
6484
+ let txId = -1;
6485
+ for (const event of result.events) {
6486
+ if (event.type === 'transaction_requested') {
6487
+ for (const attr of event.attributes) {
6488
+ if (attr.key === 'txId') {
6489
+ txId = attr.value;
6490
+ }
6491
+ }
6492
+ }
6493
+ }
6494
+ console.log(txId);
6495
+ dispatch(setTxId(txId));
6496
+ dispatch(setSubmitted(true));
6089
6497
  dispatch(setSubmitting(false));
6090
6498
  } catch (e) {
6091
6499
  errorHandler(e);
@@ -6093,39 +6501,51 @@ const TransferWidget = ({
6093
6501
  }
6094
6502
  };
6095
6503
  const onNext = () => {
6096
- if (isWizard && wizardStep < 4) {
6504
+ if (isWizard && wizardStep < 5) {
6097
6505
  if (wizardStep === 1 && !isReady) return;
6098
6506
  if (wizardStep === 3) {
6099
- if (fee > 0 && (mode === ModeOptions.payment || targetAddress && amount > 0)) {
6100
- setWizardStep(step => step + 1);
6101
- dispatch(setConfirming(true));
6507
+ if (targetAddress) {
6508
+ setWizardStep(4);
6102
6509
  }
6103
6510
  return;
6104
6511
  }
6105
- if (mode === ModeOptions.payment && wizardStep === 1) setWizardStep(3);else setWizardStep(step => step + 1);
6512
+ if (wizardStep === 4) {
6513
+ if (fee >= 0 && amount > 0) {
6514
+ setWizardStep(5);
6515
+ }
6516
+ return;
6517
+ }
6518
+ if (mode === ModeOptions.payment && wizardStep === 1 && fee >= 0) {
6519
+ dispatch(setConfirming(true));
6520
+ setWizardStep(5);
6521
+ } else setWizardStep(step => step + 1);
6106
6522
  }
6107
6523
  if (!isWizard && !formStep) {
6108
6524
  if (isReady) {
6109
- if (fee > 0 && (mode === ModeOptions.payment || targetAddress && amount > 0)) {
6525
+ if (fee >= 0 && mode === ModeOptions.payment || fee >= 0 && targetAddress && amount > 0) {
6110
6526
  dispatch(setConfirming(true));
6111
6527
  setFormStep(1);
6112
6528
  }
6113
6529
  return;
6114
6530
  }
6115
6531
  }
6116
- if (isWizard && wizardStep === 4 || !isWizard && formStep > 0) {
6532
+ if (isWizard && wizardStep === 5 || !isWizard && formStep > 0) {
6117
6533
  handleSubmit();
6118
6534
  }
6119
6535
  };
6120
6536
  const onBack = () => {
6537
+ if (isApproving || isSubmitting) return;
6121
6538
  if (isWizard && wizardStep > 0) {
6122
- if (mode === ModeOptions.payment && wizardStep === 3) setWizardStep(1);else setWizardStep(step => step - 1);
6539
+ if (mode === ModeOptions.payment && wizardStep === 5) setWizardStep(1);else setWizardStep(step => step - 1);
6123
6540
  dispatch(setConfirming(false));
6124
6541
  }
6125
6542
  if (!isWizard && formStep > 0) {
6126
6543
  setFormStep(0);
6127
6544
  dispatch(setConfirming(false));
6128
6545
  }
6546
+ if (isWizard && wizardStep === 0 || !isWizard && formStep === 0) {
6547
+ closeHandler();
6548
+ }
6129
6549
  };
6130
6550
  useEffect(() => {
6131
6551
  dispatch(setTheme(_theme));
@@ -6138,9 +6558,14 @@ const TransferWidget = ({
6138
6558
  className: 'topbar'
6139
6559
  }, React.createElement("div", {
6140
6560
  className: 'title'
6141
- }, React.createElement("h3", null, isWizard && wizardStep === 3 || !isWizard && formStep > 0 ? 'Confirm Transfer Details' : 'New Transfer')), React.createElement("div", {
6561
+ }, React.createElement("h3", null, isWizard && wizardStep === 3 || !isWizard && formStep > 0 ? (titleOption === null || titleOption === void 0 ? void 0 : titleOption.confirmTitle) ?? 'Transfer Details' : (titleOption === null || titleOption === void 0 ? void 0 : titleOption.initialTitle) ?? 'New Transfer')), React.createElement("div", {
6142
6562
  className: 'control-buttons'
6143
- }, React.createElement("button", {
6563
+ }, React.createElement("div", {
6564
+ className: 'menu-button',
6565
+ onClick: () => setMenuOpen(prev => !prev)
6566
+ }, "I need help", React.createElement(Dropdown, {
6567
+ open: menuOpen
6568
+ })), React.createElement("button", {
6144
6569
  className: 'icon-button',
6145
6570
  onClick: () => {
6146
6571
  closeHandler();
@@ -6155,32 +6580,44 @@ const TransferWidget = ({
6155
6580
  }, React.createElement("p", null, "Connect your wallet"), React.createElement(WalletButton, {
6156
6581
  errorBelow: true
6157
6582
  })) : wizardStep === 2 ? React.createElement(Network, {
6158
- type: 'target'
6159
- }) : wizardStep === 3 ? React.createElement(CoinSelect, null) : React.createElement(ConfirmDetails, null) : formStep === 0 ? React.createElement(SingleForm, null) : React.createElement(ConfirmDetails, null)), React.createElement("div", {
6583
+ isOriginChain: false
6584
+ }) : wizardStep === 3 ? React.createElement(AddressInputWizard, null) : wizardStep === 4 ? React.createElement(CoinSelect, null) : React.createElement(ConfirmDetails, {
6585
+ isApproved: isApproved
6586
+ }) : formStep === 0 ? React.createElement(SingleForm, null) : React.createElement(ConfirmDetails, {
6587
+ isApproved: isApproved
6588
+ })), React.createElement("div", {
6160
6589
  className: 'kima-card-footer'
6161
6590
  }, React.createElement(Cross$1, {
6162
6591
  fill: _theme === 'light' ? 'black' : '#C5C5C5'
6163
- }), React.createElement("div", {
6164
- className: 'menu-button',
6165
- onClick: () => setMenuOpen(prev => !prev)
6166
- }, "I need help", React.createElement(Dropdown, {
6167
- open: menuOpen,
6168
- isWizard: isWizard,
6169
- toggleWizard: () => setWizard(false)
6170
- })), React.createElement(SecondaryButton, {
6592
+ }), React.createElement(SecondaryButton, {
6593
+ clickHandler: () => {
6594
+ setWizard(prev => !prev);
6595
+ },
6596
+ theme: _theme,
6597
+ style: {
6598
+ style: {
6599
+ width: '12em',
6600
+ marginLeft: 'auto'
6601
+ }
6602
+ }
6603
+ }, "Switch to ", isWizard ? 'Form' : 'Wizard'), React.createElement(SecondaryButton, {
6171
6604
  clickHandler: onBack,
6172
6605
  theme: _theme
6173
6606
  }, isWizard && wizardStep > 0 || !isWizard && formStep > 0 ? 'Back' : 'Cancel'), React.createElement(PrimaryButton, {
6174
6607
  clickHandler: onNext,
6175
6608
  isLoading: isApproving || isSubmitting
6176
- }, isWizard && wizardStep === 3 || !isWizard && formStep === 1 ? isApproved ? isSubmitting ? 'Submitting...' : 'Submit' : isApproving ? 'Approving...' : 'Approve' : 'Next')), React.createElement(WalletConnectModal, null));
6609
+ }, isWizard && wizardStep === 5 || !isWizard && formStep === 1 ? isApproved ? isSubmitting ? 'Submitting...' : 'Submit' : isApproving ? 'Approving...' : 'Approve' : 'Next')), React.createElement(WalletConnectModal, null), React.createElement(HelpPopup, null));
6177
6610
  };
6178
6611
 
6179
6612
  const KimaTransactionWidget = ({
6613
+ mode,
6614
+ txId,
6180
6615
  theme: _theme = ThemeOptions.light,
6181
6616
  fontSize: _fontSize = FontSizeOptions.medium,
6182
- mode,
6617
+ titleOption,
6183
6618
  transactionOption,
6619
+ kimaBackendUrl,
6620
+ kimaNodeProviderQuery,
6184
6621
  errorHandler: _errorHandler = () => void 0,
6185
6622
  closeHandler: _closeHandler = () => void 0,
6186
6623
  successHandler: _successHandler = () => void 0
@@ -6193,10 +6630,20 @@ const KimaTransactionWidget = ({
6193
6630
  dispatch(setErrorHandler(_errorHandler));
6194
6631
  dispatch(setCloseHandler(_closeHandler));
6195
6632
  dispatch(setSuccessHandler(_successHandler));
6633
+ dispatch(setBackendUrl(kimaBackendUrl));
6634
+ dispatch(setNodeProviderQuery(kimaNodeProviderQuery));
6196
6635
  dispatch(setMode(mode));
6197
6636
  if (mode === ModeOptions.payment) {
6198
- dispatch(setFeeDeduct(false));
6637
+ dispatch(setTargetNetwork((transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetChain) || ChainName.ETHEREUM));
6638
+ (async function () {
6639
+ const networks = await fetchWrapper.get(`${kimaNodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${(transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetChain) || ChainName.ETHEREUM}`);
6640
+ dispatch(setOriginNetwork(networks.Chains[0]));
6641
+ })();
6642
+ dispatch(setTargetAddress((transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetAddress) || ''));
6199
6643
  dispatch(setAmount((transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.amount) || 0));
6644
+ } else if (mode === ModeOptions.status) {
6645
+ dispatch(setTxId(txId || 1));
6646
+ dispatch(setSubmitted(true));
6200
6647
  }
6201
6648
  }, [_theme, transactionOption, _errorHandler, _closeHandler, mode]);
6202
6649
  return submitted ? React.createElement(TransactionWidget, {
@@ -6204,7 +6651,8 @@ const KimaTransactionWidget = ({
6204
6651
  fontSize: _fontSize
6205
6652
  }) : React.createElement(TransferWidget, {
6206
6653
  theme: _theme,
6207
- fontSize: _fontSize
6654
+ fontSize: _fontSize,
6655
+ titleOption: titleOption
6208
6656
  });
6209
6657
  };
6210
6658
 
@@ -6222,5 +6670,5 @@ const KimaProvider = ({
6222
6670
  }, children))));
6223
6671
  };
6224
6672
 
6225
- export { CurrencyOptions, FontSizeOptions, KimaProvider, KimaTransactionWidget, ModeOptions, SupportNetworks, ThemeOptions };
6673
+ export { CurrencyOptions, FontSizeOptions, KimaProvider, KimaTransactionWidget, ModeOptions, ChainName as SupportNetworks, ThemeOptions };
6226
6674
  //# sourceMappingURL=index.modern.js.map