@layerswap/widget 0.1.4 → 0.1.15

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 (266) hide show
  1. package/README.md +78 -3
  2. package/dist/Models/Theme.d.ts +7 -6
  3. package/dist/Models/Theme.js +7 -7
  4. package/dist/Models/WalletProvider.d.ts +0 -4
  5. package/dist/Models/WalletProvider.js +2 -0
  6. package/dist/components/Buttons/copyButton.js +4 -3
  7. package/dist/components/ColorSchema.js +79 -45
  8. package/dist/components/Common/AddressIcon.js +1 -0
  9. package/dist/components/Common/AverageCompletionTime.js +1 -1
  10. package/dist/components/Common/CountDownTimer.js +2 -2
  11. package/dist/components/Common/FormattedAverageCompletionTime.js +1 -1
  12. package/dist/components/HeaderWithMenu/index.js +1 -8
  13. package/dist/components/Input/Address/AddressNote.js +3 -2
  14. package/dist/components/Input/Address/AddressPicker/AddressWithIcon.js +2 -2
  15. package/dist/components/Input/Address/AddressPicker/ConnectedWallets/ConnectWalletButton.js +12 -5
  16. package/dist/components/Input/Address/AddressPicker/ExchangeNote.d.ts +1 -1
  17. package/dist/components/Input/Address/AddressPicker/ExchangeNote.js +1 -1
  18. package/dist/components/Input/RouteIcon.js +1 -1
  19. package/dist/components/LayerswapMenu/MenuList.js +2 -56
  20. package/dist/components/Pages/404/index.js +1 -0
  21. package/dist/components/Pages/Auth/Steps/CodeStep/VerifyEmailCode.js +1 -0
  22. package/dist/components/Pages/Auth/index.d.ts +1 -1
  23. package/dist/components/Pages/Auth/index.js +3 -2
  24. package/dist/components/Pages/Campaigns/Details/Leaderboard.js +1 -0
  25. package/dist/components/Pages/Campaigns/Details/index.d.ts +1 -1
  26. package/dist/components/Pages/Campaigns/Details/index.js +3 -2
  27. package/dist/components/Pages/Campaigns/index.d.ts +1 -1
  28. package/dist/components/Pages/Campaigns/index.js +3 -2
  29. package/dist/components/Pages/Maintanance/index.js +1 -0
  30. package/dist/components/Pages/NoCookies/index.js +2 -1
  31. package/dist/components/Pages/SwapHistory/History.js +1 -2
  32. package/dist/components/Pages/SwapHistory/index.d.ts +1 -1
  33. package/dist/components/Pages/SwapHistory/index.js +4 -3
  34. package/dist/components/Pages/SwapPages/Form/FeeDetails/Campaign.js +1 -0
  35. package/dist/components/Pages/SwapPages/Form/Form.js +1 -4
  36. package/dist/components/Pages/SwapPages/Form/SecondaryComponents/ValidationError.js +1 -1
  37. package/dist/components/Pages/SwapPages/Form/Select/Popover/PopoverSelect.js +1 -1
  38. package/dist/components/Pages/SwapPages/Form/index.js +1 -0
  39. package/dist/components/Pages/SwapPages/Withdraw/Coinbase/Carousel.js +8 -6
  40. package/dist/components/Pages/SwapPages/Withdraw/Processing/Processing.js +2 -2
  41. package/dist/components/Pages/SwapPages/Withdraw/Wallet/FuelWalletWithdrawal.d.ts +0 -4
  42. package/dist/components/Pages/SwapPages/Withdraw/Wallet/FuelWalletWithdrawal.js +159 -125
  43. package/dist/components/Pages/SwapPages/Withdraw/Wallet/ImtblxWalletWithdrawStep.d.ts +0 -4
  44. package/dist/components/Pages/SwapPages/Withdraw/Wallet/ImtblxWalletWithdrawStep.js +69 -51
  45. package/dist/components/Pages/SwapPages/Withdraw/Wallet/Loopring/ActivationTokentPicker.d.ts +0 -8
  46. package/dist/components/Pages/SwapPages/Withdraw/Wallet/Loopring/ActivationTokentPicker.js +87 -45
  47. package/dist/components/Pages/SwapPages/Withdraw/Wallet/Loopring/hooks.d.ts +0 -40
  48. package/dist/components/Pages/SwapPages/Withdraw/Wallet/Loopring/hooks.js +73 -46
  49. package/dist/components/Pages/SwapPages/Withdraw/Wallet/Loopring/index.d.ts +0 -4
  50. package/dist/components/Pages/SwapPages/Withdraw/Wallet/Loopring/index.js +175 -128
  51. package/dist/components/Pages/SwapPages/Withdraw/Wallet/SVMWalletWithdraw/index.d.ts +0 -7
  52. package/dist/components/Pages/SwapPages/Withdraw/Wallet/SVMWalletWithdraw/index.js +138 -116
  53. package/dist/components/Pages/SwapPages/Withdraw/Wallet/SVMWalletWithdraw/transactionSender.d.ts +0 -8
  54. package/dist/components/Pages/SwapPages/Withdraw/Wallet/SVMWalletWithdraw/transactionSender.js +96 -75
  55. package/dist/components/Pages/SwapPages/Withdraw/Wallet/SophonWalletWithdraw.js +2 -2
  56. package/dist/components/Pages/SwapPages/Withdraw/Wallet/StarknetWalletWithdraw.d.ts +0 -4
  57. package/dist/components/Pages/SwapPages/Withdraw/Wallet/StarknetWalletWithdraw.js +88 -71
  58. package/dist/components/Pages/SwapPages/Withdraw/Wallet/TonWalletWithdraw.d.ts +0 -4
  59. package/dist/components/Pages/SwapPages/Withdraw/Wallet/TonWalletWithdraw.js +146 -136
  60. package/dist/components/Pages/SwapPages/Withdraw/Wallet/TronWalletWithdraw.d.ts +0 -4
  61. package/dist/components/Pages/SwapPages/Withdraw/Wallet/TronWalletWithdraw.js +120 -99
  62. package/dist/components/Pages/SwapPages/Withdraw/Wallet/WalletTransfer/TransferToken.js +3 -3
  63. package/dist/components/Pages/SwapPages/Withdraw/Wallet/WalletTransfer/buttons.js +1 -0
  64. package/dist/components/Pages/SwapPages/Withdraw/Wallet/WalletTransfer/index.js +1 -1
  65. package/dist/components/Pages/SwapPages/Withdraw/Wallet/WalletTransfer/transactionMessage.js +2 -2
  66. package/dist/components/Pages/SwapPages/Withdraw/Wallet/WalletTransferContent.js +101 -33
  67. package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/Evm.d.ts +0 -4
  68. package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/Evm.js +60 -55
  69. package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/Starknet.d.ts +0 -4
  70. package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/Starknet.js +71 -55
  71. package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/buttons.js +1 -0
  72. package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/index.d.ts +0 -4
  73. package/dist/components/Pages/SwapPages/Withdraw/Wallet/paradex/index.js +56 -52
  74. package/dist/components/Pages/SwapPages/Withdraw/index.d.ts +1 -1
  75. package/dist/components/Pages/SwapPages/Withdraw/index.js +3 -2
  76. package/dist/components/Wallet/WalletModal/Connector.js +1 -1
  77. package/dist/components/Wallet/WalletProviders/FuelProvider.d.ts +0 -5
  78. package/dist/components/Wallet/WalletProviders/FuelProvider.js +25 -20
  79. package/dist/components/Wallet/WalletProviders/ImtblPassportProvider.d.ts +0 -5
  80. package/dist/components/Wallet/WalletProviders/ImtblPassportProvider.js +39 -36
  81. package/dist/components/Wallet/WalletProviders/SolanaProvider.d.ts +0 -5
  82. package/dist/components/Wallet/WalletProviders/SolanaProvider.js +49 -38
  83. package/dist/components/Wallet/WalletProviders/StarknetProvider.d.ts +0 -5
  84. package/dist/components/Wallet/WalletProviders/StarknetProvider.js +112 -117
  85. package/dist/components/Wallet/WalletProviders/TonConnectProvider.d.ts +0 -6
  86. package/dist/components/Wallet/WalletProviders/TonConnectProvider.js +58 -50
  87. package/dist/components/Wallet/WalletProviders/TronProvider.d.ts +0 -3
  88. package/dist/components/Wallet/WalletProviders/TronProvider.js +23 -15
  89. package/dist/components/Wallet/WalletProviders/Wagmi.d.ts +1 -1
  90. package/dist/components/Wallet/WalletProviders/Wagmi.js +20 -10
  91. package/dist/components/Wallet/WalletProviders/index.js +13 -6
  92. package/dist/components/Widget/Footer.d.ts +2 -1
  93. package/dist/components/Widget/Footer.js +13 -4
  94. package/dist/components/Widget/Index.d.ts +1 -1
  95. package/dist/components/Widget/Index.js +1 -1
  96. package/dist/components/WidgetLoading.d.ts +1 -0
  97. package/dist/components/WidgetLoading.js +5 -0
  98. package/dist/components/Wizard/Wizard.js +1 -1
  99. package/dist/components/shadcn/command.js +1 -1
  100. package/dist/components/themeWrapper.js +4 -3
  101. package/dist/context/{LayerswapContext.d.ts → LayerswapProvider.d.ts} +3 -8
  102. package/dist/context/{LayerswapContext.js → LayerswapProvider.js} +8 -9
  103. package/dist/context/authContext.js +1 -0
  104. package/dist/context/walletHooksProvider.js +1 -0
  105. package/dist/hooks/useWallet.js +10 -14
  106. package/dist/index.css +1 -1
  107. package/dist/index.d.ts +3 -5
  108. package/dist/index.js +2 -4
  109. package/dist/index.mjs +19 -0
  110. package/dist/lib/AppSettings.d.ts +7 -3
  111. package/dist/lib/AppSettings.js +8 -7
  112. package/dist/lib/address/formatter/index.js +8 -9
  113. package/dist/lib/address/validator/index.js +18 -20
  114. package/dist/lib/axiosInterceptor.js +1 -2
  115. package/dist/lib/balances/balanceResolver.js +16 -16
  116. package/dist/lib/balances/providers/evmBalanceProvider.js +3 -3
  117. package/dist/lib/balances/providers/loopringBalanceProvider.d.ts +0 -6
  118. package/dist/lib/balances/providers/loopringBalanceProvider.js +56 -43
  119. package/dist/lib/balances/providers/paradexBalanceProvider.d.ts +0 -6
  120. package/dist/lib/balances/providers/paradexBalanceProvider.js +42 -42
  121. package/dist/lib/balances/providers/solanaBalanceProvider.d.ts +0 -6
  122. package/dist/lib/balances/providers/solanaBalanceProvider.js +70 -71
  123. package/dist/lib/balances/providers/starknetBalanceProvider.d.ts +0 -6
  124. package/dist/lib/balances/providers/starknetBalanceProvider.js +48 -45
  125. package/dist/lib/balances/providers/tonBalanceProvider.d.ts +0 -18
  126. package/dist/lib/balances/providers/tonBalanceProvider.js +104 -100
  127. package/dist/lib/balances/providers/tronBalanceResolver.js +2 -3
  128. package/dist/lib/fuels/common/FakeAccount.d.ts +0 -24
  129. package/dist/lib/fuels/common/FakeAccount.js +58 -36
  130. package/dist/lib/fuels/common/PredicateConnector.d.ts +0 -54
  131. package/dist/lib/fuels/common/PredicateConnector.js +292 -205
  132. package/dist/lib/fuels/common/PredicateFactory.d.ts +0 -29
  133. package/dist/lib/fuels/common/PredicateFactory.js +123 -76
  134. package/dist/lib/fuels/common/PredicateWalletAdapter.d.ts +0 -17
  135. package/dist/lib/fuels/common/PredicateWalletAdapter.js +44 -29
  136. package/dist/lib/fuels/common/index.d.ts +0 -4
  137. package/dist/lib/fuels/common/index.js +4 -4
  138. package/dist/lib/fuels/connectors/fuel-wallet/FuelWalletConnector.d.ts +0 -51
  139. package/dist/lib/fuels/connectors/fuel-wallet/FuelWalletConnector.js +268 -234
  140. package/dist/lib/fuels/connectors/fuel-wallet/index.d.ts +0 -2
  141. package/dist/lib/fuels/connectors/fuel-wallet/index.js +2 -2
  142. package/dist/lib/fuels/connectors/fuel-wallet/types.d.ts +0 -50
  143. package/dist/lib/fuels/connectors/fuel-wallet/types.js +53 -9
  144. package/dist/lib/fuels/connectors/fuelet-wallet/FueletWalletConnector.d.ts +0 -7
  145. package/dist/lib/fuels/connectors/fuelet-wallet/FueletWalletConnector.js +20 -19
  146. package/dist/lib/fuels/connectors/fuelet-wallet/index.d.ts +0 -1
  147. package/dist/lib/fuels/connectors/fuelet-wallet/index.js +1 -1
  148. package/dist/lib/gases/gasResolver.d.ts +1 -1
  149. package/dist/lib/gases/gasResolver.js +10 -10
  150. package/dist/lib/gases/providers/evmGasProvider.js +5 -4
  151. package/dist/lib/gases/providers/loopringGasProvider.d.ts +0 -6
  152. package/dist/lib/gases/providers/loopringGasProvider.js +27 -24
  153. package/dist/lib/gases/providers/solanaGasProvider.d.ts +0 -7
  154. package/dist/lib/gases/providers/solanaGasProvider.js +32 -31
  155. package/dist/lib/gases/providers/starknetGasProvider.d.ts +0 -7
  156. package/dist/lib/gases/providers/starknetGasProvider.js +34 -33
  157. package/dist/lib/imtbl.d.ts +0 -69
  158. package/dist/lib/imtbl.js +63 -60
  159. package/dist/lib/internalApiClient.d.ts +0 -2
  160. package/dist/lib/internalApiClient.js +1 -4
  161. package/dist/lib/layerSwapApiClient.js +3 -3
  162. package/dist/lib/logError.js +2 -2
  163. package/dist/lib/nft/nftBalanceResolver.js +1 -2
  164. package/dist/lib/nft/providers/starknetNftProvider.d.ts +0 -6
  165. package/dist/lib/nft/providers/starknetNftProvider.js +49 -50
  166. package/dist/lib/wallets/connectors/useSyncProviders/store.d.ts +1 -4
  167. package/dist/lib/wallets/fuel/Bako.d.ts +0 -15
  168. package/dist/lib/wallets/fuel/Bako.js +34 -29
  169. package/dist/lib/wallets/fuel/Basko.d.ts +0 -15
  170. package/dist/lib/wallets/fuel/Basko.js +34 -29
  171. package/dist/lib/wallets/fuel/useFuel.d.ts +0 -2
  172. package/dist/lib/wallets/fuel/useFuel.js +211 -192
  173. package/dist/lib/wallets/imtblX/useImtblX.d.ts +0 -2
  174. package/dist/lib/wallets/imtblX/useImtblX.js +87 -87
  175. package/dist/lib/wallets/paradex/Authorize/Ethereum.d.ts +0 -2
  176. package/dist/lib/wallets/paradex/Authorize/Ethereum.js +24 -23
  177. package/dist/lib/wallets/paradex/Authorize/Starknet.d.ts +0 -2
  178. package/dist/lib/wallets/paradex/Authorize/Starknet.js +14 -13
  179. package/dist/lib/wallets/paradex/lib/account.d.ts +0 -28
  180. package/dist/lib/wallets/paradex/lib/account.js +102 -53
  181. package/dist/lib/wallets/paradex/lib/index.d.ts +0 -24
  182. package/dist/lib/wallets/paradex/lib/index.js +20 -20
  183. package/dist/lib/wallets/paradex/lib/paraclear-provider.d.ts +0 -6
  184. package/dist/lib/wallets/paradex/lib/paraclear-provider.js +13 -9
  185. package/dist/lib/wallets/paradex/lib/paraclear.d.ts +0 -137
  186. package/dist/lib/wallets/paradex/lib/paraclear.js +258 -131
  187. package/dist/lib/wallets/paradex/lib/starknet-account-support.d.ts +0 -22
  188. package/dist/lib/wallets/paradex/lib/starknet-account-support.js +296 -220
  189. package/dist/lib/wallets/paradex/lib/starknet-signer.d.ts +0 -15
  190. package/dist/lib/wallets/paradex/lib/starknet-signer.js +120 -94
  191. package/dist/lib/wallets/paradex/useParadex.d.ts +0 -7
  192. package/dist/lib/wallets/paradex/useParadex.js +197 -194
  193. package/dist/lib/wallets/solana/transactionBuilder.d.ts +0 -4
  194. package/dist/lib/wallets/solana/transactionBuilder.js +63 -39
  195. package/dist/lib/wallets/solana/useSVM.d.ts +0 -5
  196. package/dist/lib/wallets/solana/useSVM.js +139 -142
  197. package/dist/lib/wallets/starknet/useStarknet.d.ts +0 -2
  198. package/dist/lib/wallets/starknet/useStarknet.js +139 -139
  199. package/dist/lib/wallets/ton/client.d.ts +0 -3
  200. package/dist/lib/wallets/ton/client.js +7 -7
  201. package/dist/lib/wallets/ton/useTON.d.ts +0 -2
  202. package/dist/lib/wallets/ton/useTON.js +121 -122
  203. package/dist/lib/wallets/tron/connectors/bitkeep.d.ts +0 -61
  204. package/dist/lib/wallets/tron/connectors/bitkeep.js +326 -303
  205. package/dist/lib/wallets/tron/connectors/index.d.ts +0 -4
  206. package/dist/lib/wallets/tron/connectors/index.js +4 -4
  207. package/dist/lib/wallets/tron/connectors/okxWallet.d.ts +0 -66
  208. package/dist/lib/wallets/tron/connectors/okxWallet.js +364 -336
  209. package/dist/lib/wallets/tron/connectors/tokenPocket.d.ts +0 -72
  210. package/dist/lib/wallets/tron/connectors/tokenPocket.js +337 -308
  211. package/dist/lib/wallets/tron/connectors/tronLink/index.d.ts +0 -102
  212. package/dist/lib/wallets/tron/connectors/tronLink/index.js +560 -520
  213. package/dist/lib/wallets/tron/connectors/tronLink/types.d.ts +0 -56
  214. package/dist/lib/wallets/tron/connectors/tronLink/types.js +53 -1
  215. package/dist/lib/wallets/tron/connectors/tronLink/utils.d.ts +0 -14
  216. package/dist/lib/wallets/tron/connectors/tronLink/utils.js +64 -61
  217. package/dist/lib/wallets/tron/useTron.d.ts +0 -2
  218. package/dist/lib/wallets/tron/useTron.js +111 -111
  219. package/dist/lib/wallets/utils/resolveWalletIcon.js +1 -0
  220. package/package.json +26 -77
  221. package/dist/hooks/useCopyClipboard.d.ts +0 -1
  222. package/dist/hooks/useCopyClipboard.js +0 -21
  223. package/dist/index.cjs +0 -125
  224. package/dist/lib/abis/ERC20.json +0 -258
  225. package/dist/lib/fuels/connectors/walletConnect/WalletConnectConnector.d.ts +0 -42
  226. package/dist/lib/fuels/connectors/walletConnect/WalletConnectConnector.js +0 -357
  227. package/dist/lib/fuels/connectors/walletConnect/constants.d.ts +0 -6
  228. package/dist/lib/fuels/connectors/walletConnect/constants.js +0 -7
  229. package/dist/lib/fuels/connectors/walletConnect/index.d.ts +0 -3
  230. package/dist/lib/fuels/connectors/walletConnect/index.js +0 -3
  231. package/dist/lib/fuels/connectors/walletConnect/types.d.ts +0 -12
  232. package/dist/lib/fuels/connectors/walletConnect/types.js +0 -1
  233. package/dist/lib/fuels/connectors/walletConnect/utils/index.d.ts +0 -1
  234. package/dist/lib/fuels/connectors/walletConnect/utils/index.js +0 -1
  235. package/dist/lib/fuels/connectors/walletConnect/utils/subscribeAndEnforceChain.d.ts +0 -2
  236. package/dist/lib/fuels/connectors/walletConnect/utils/subscribeAndEnforceChain.js +0 -39
  237. package/dist/lib/fuels/connectors/walletConnect/web3Modal.d.ts +0 -10
  238. package/dist/lib/fuels/connectors/walletConnect/web3Modal.js +0 -38
  239. package/dist/lib/loopring/LoopringAPI.d.ts +0 -12
  240. package/dist/lib/loopring/LoopringAPI.js +0 -13
  241. package/dist/lib/loopring/defs.d.ts +0 -425
  242. package/dist/lib/loopring/defs.js +0 -217
  243. package/dist/lib/loopring/eddsa.d.ts +0 -29
  244. package/dist/lib/loopring/eddsa.js +0 -208
  245. package/dist/lib/loopring/field.d.ts +0 -17
  246. package/dist/lib/loopring/field.js +0 -61
  247. package/dist/lib/loopring/formatter.d.ts +0 -137
  248. package/dist/lib/loopring/formatter.js +0 -516
  249. package/dist/lib/loopring/helpers.d.ts +0 -36
  250. package/dist/lib/loopring/helpers.js +0 -140
  251. package/dist/lib/loopring/jubjub.d.ts +0 -19
  252. package/dist/lib/loopring/jubjub.js +0 -79
  253. package/dist/lib/loopring/permutation.d.ts +0 -22
  254. package/dist/lib/loopring/permutation.js +0 -198
  255. package/dist/lib/loopring/poseidon/EDDSAUtil.d.ts +0 -14
  256. package/dist/lib/loopring/poseidon/EDDSAUtil.js +0 -61
  257. package/dist/lib/loopring/poseidon/babyJub.d.ts +0 -6
  258. package/dist/lib/loopring/poseidon/babyJub.js +0 -51
  259. package/dist/lib/loopring/poseidon/eddsa.d.ts +0 -29
  260. package/dist/lib/loopring/poseidon/eddsa.js +0 -210
  261. package/dist/lib/loopring/utils.d.ts +0 -76
  262. package/dist/lib/loopring/utils.js +0 -230
  263. package/dist/styles/dialog-transition.css +0 -28
  264. package/dist/styles/globals.css +0 -372
  265. package/dist/styles/manual-trasnfer-svg.css +0 -299
  266. package/dist/styles/vaul.css +0 -256
@@ -1,194 +1,197 @@
1
- import KnownInternalNames from "../../knownIds";
2
- import { useMemo } from "react";
3
- import { useConnectModal } from "../../../components/Wallet/WalletModal";
4
- import useEVM from "../evm/useEVM";
5
- import useStarknet from "../starknet/useStarknet";
6
- import { useWalletStore } from "../../../stores/walletStore";
7
- import { AuthorizeStarknet } from "./Authorize/Starknet";
8
- import { walletClientToSigner } from "../../ethersToViem/ethers";
9
- import AuhorizeEthereum from "./Authorize/Ethereum";
10
- import { getWalletClient } from '@wagmi/core';
11
- import { useConfig } from "wagmi";
12
- import { switchChain, getChainId } from '@wagmi/core';
13
- import { useSettingsState } from "../../../context/settings";
14
- import shortenAddress from "../../../components/utils/ShortenAddress";
15
- export default function useParadex({ network }) {
16
- const name = 'Paradex';
17
- const id = 'prdx';
18
- const { networks } = useSettingsState();
19
- const selectedProvider = useWalletStore((state) => state.selectedProveder);
20
- const selectProvider = useWalletStore((state) => state.selectProvider);
21
- const paradexAccounts = useWalletStore((state) => state.paradexAccounts);
22
- const addParadexAccount = useWalletStore((state) => state.addParadexAccount);
23
- const removeParadexAccount = useWalletStore((state) => state.removeParadexAccount);
24
- const paradexNetwork = networks.find(n => n.name === KnownInternalNames.Networks.ParadexMainnet || n.name === KnownInternalNames.Networks.ParadexTestnet);
25
- const withdrawalSupportedNetworks = [
26
- KnownInternalNames.Networks.ParadexMainnet,
27
- KnownInternalNames.Networks.ParadexTestnet,
28
- ];
29
- const autofillSupportedNetworks = [
30
- ...withdrawalSupportedNetworks
31
- ];
32
- const asSourceSupportedNetworks = [
33
- ...withdrawalSupportedNetworks
34
- ];
35
- const { connect, setSelectedConnector } = useConnectModal();
36
- const evmProvider = useEVM({ network });
37
- const starknetProvider = useStarknet();
38
- const connectWallet = async () => {
39
- try {
40
- return await connect(provider);
41
- }
42
- catch (e) {
43
- console.log(e);
44
- }
45
- };
46
- const config = useConfig();
47
- const connectConnector = async ({ connector }) => {
48
- try {
49
- setSelectedConnector(connector);
50
- const isEvm = evmProvider.availableWalletsForConnect?.find(w => w.id === connector.id);
51
- const isStarknet = starknetProvider.availableWalletsForConnect?.find(w => w.id === connector.id);
52
- if (isEvm) {
53
- const connectionResult = evmProvider.connectConnector && await evmProvider.connectConnector({ connector });
54
- if (!connectionResult)
55
- return;
56
- if (!paradexAccounts?.[connectionResult?.address?.toLowerCase()]) {
57
- const l1Network = networks.find(n => n.name === KnownInternalNames.Networks.EthereumMainnet || n.name === KnownInternalNames.Networks.EthereumSepolia);
58
- const l1ChainId = Number(l1Network?.chain_id);
59
- if (!Number(l1ChainId)) {
60
- throw Error("Could not find ethereum network");
61
- }
62
- let client = await getWalletClient(config);
63
- const chainId = await client.getChainId();
64
- if (l1ChainId !== chainId) {
65
- try {
66
- await sleep(1000);
67
- await switchChain(config, { chainId: l1ChainId });
68
- }
69
- catch (e) {
70
- await getChainId(config);
71
- await sleep(1000);
72
- const chainId = await getChainId(config);
73
- if (l1ChainId !== chainId) {
74
- throw Error("Could not switch to ethereum network");
75
- }
76
- }
77
- await sleep(1000);
78
- client = await getWalletClient(config);
79
- }
80
- await sleep(1000);
81
- const ethersSigner = walletClientToSigner(client);
82
- if (!ethersSigner) {
83
- throw Error("Could not initialize ethers signer");
84
- }
85
- const paradexAccount = await AuhorizeEthereum(ethersSigner);
86
- addParadexAccount({ l1Address: connectionResult.address, paradexAddress: paradexAccount.address });
87
- }
88
- selectProvider(evmProvider.name);
89
- return resolveSingleWallet(connectionResult, name, paradexAccounts, removeParadexAccount, paradexNetwork?.logo);
90
- }
91
- else if (isStarknet) {
92
- const connectionResult = starknetProvider.connectConnector && await starknetProvider.connectConnector({ connector });
93
- if (!connectionResult)
94
- return;
95
- if (!paradexAccounts?.[connectionResult?.address?.toLowerCase()]) {
96
- const snAccount = connectionResult.metadata?.starknetAccount;
97
- if (!snAccount) {
98
- throw Error("Starknet account not found");
99
- }
100
- const paradexAccount = await AuthorizeStarknet(snAccount);
101
- addParadexAccount({ l1Address: connectionResult.address, paradexAddress: paradexAccount.address });
102
- }
103
- selectProvider(starknetProvider.name);
104
- return resolveSingleWallet(connectionResult, name, paradexAccounts, removeParadexAccount, paradexNetwork?.logo);
105
- }
106
- }
107
- catch (e) {
108
- //TODO: handle error like in transfer
109
- const error = e;
110
- if (error.name == 'ConnectorAlreadyConnectedError') {
111
- throw new Error('Wallet is already connected.');
112
- }
113
- else if (error.message.includes("Cannot read properties of undefined (reading 'toLowerCase')")) {
114
- throw new Error('Please update your wallet to the latest version.');
115
- }
116
- else {
117
- throw new Error(e.message || e);
118
- }
119
- }
120
- };
121
- const connectedWallets = useMemo(() => {
122
- return [
123
- ...resolveWalletsList(evmProvider.connectedWallets, paradexAccounts, name, removeParadexAccount, paradexNetwork?.logo),
124
- ...resolveWalletsList(starknetProvider.connectedWallets, paradexAccounts, name, removeParadexAccount, paradexNetwork?.logo)
125
- ];
126
- }, [evmProvider, starknetProvider, paradexAccounts]);
127
- const availableWalletsForConnect = useMemo(() => {
128
- return [...(evmProvider.availableWalletsForConnect ? evmProvider.availableWalletsForConnect : []), ...(starknetProvider?.availableWalletsForConnect ? starknetProvider.availableWalletsForConnect : [])];
129
- }, [evmProvider, starknetProvider]);
130
- const switchAccount = async (wallet, address) => {
131
- const evmWallet = evmProvider?.connectedWallets?.find(w => w.id === wallet.id);
132
- const starknetWallet = starknetProvider?.connectedWallets?.find(w => w.id === wallet.id);
133
- if (evmWallet && evmProvider.switchAccount && wallet.metadata?.l1Address) {
134
- evmProvider.switchAccount(evmWallet, wallet.metadata?.l1Address);
135
- selectProvider(evmProvider.name);
136
- }
137
- else if (starknetWallet && starknetProvider.switchAccount && wallet.metadata?.l1Address) {
138
- starknetProvider.switchAccount(starknetWallet, wallet.metadata.l1Address);
139
- selectProvider(starknetProvider.name);
140
- }
141
- };
142
- const activeWallet = useMemo(() => {
143
- if (selectedProvider === starknetProvider.name && starknetProvider?.activeWallet) {
144
- return resolveSingleWallet(starknetProvider.activeWallet, name, paradexAccounts, removeParadexAccount, paradexNetwork?.logo);
145
- }
146
- else if (selectedProvider === evmProvider.name && evmProvider?.activeWallet) {
147
- return resolveSingleWallet(evmProvider.activeWallet, name, paradexAccounts, removeParadexAccount, paradexNetwork?.logo);
148
- }
149
- }, [evmProvider.activeWallet, starknetProvider.activeWallet, selectedProvider]);
150
- const provider = {
151
- connectWallet,
152
- connectConnector,
153
- switchAccount,
154
- connectedWallets,
155
- activeWallet,
156
- withdrawalSupportedNetworks,
157
- autofillSupportedNetworks,
158
- asSourceSupportedNetworks,
159
- availableWalletsForConnect,
160
- name,
161
- id,
162
- hideFromList: true
163
- };
164
- return provider;
165
- }
166
- const resolveWalletsList = (wallets, accounts, name, disconnect, networkIcon) => {
167
- const l1Addresses = Object.keys(accounts || {});
168
- if (!l1Addresses.length || !wallets?.length)
169
- return [];
170
- return wallets.filter(w => w.addresses.some(wa => l1Addresses.some(pa => pa.toLowerCase() === wa.toLowerCase())))
171
- .map(w => (resolveSingleWallet(w, name, accounts, disconnect, networkIcon))).filter(w => w);
172
- };
173
- const resolveSingleWallet = (wallet, name, accounts, disconnect, networkIcon) => {
174
- const paradexAddress = accounts?.[wallet.address.toLowerCase()];
175
- if (!paradexAddress)
176
- return;
177
- const displayName = `${wallet.id} (${shortenAddress(wallet.address)})`;
178
- return {
179
- ...wallet,
180
- metadata: {
181
- ...wallet.metadata,
182
- l1Address: wallet.address
183
- },
184
- providerName: name,
185
- displayName,
186
- address: paradexAddress,
187
- addresses: [paradexAddress],
188
- disconnect: () => disconnect(wallet.address),
189
- networkIcon
190
- };
191
- };
192
- function sleep(ms) {
193
- return new Promise(resolve => setTimeout(resolve, ms));
194
- }
1
+ // import { Network } from "../../../Models/Network"
2
+ // import KnownInternalNames from "../../knownIds"
3
+ // import { useMemo } from "react"
4
+ // import toast from "react-hot-toast"
5
+ // import { LSConnector } from "../connectors/EthereumProvider"
6
+ // import { InternalConnector, Wallet, WalletProvider } from "../../../Models/WalletProvider"
7
+ // import { useConnectModal } from "../../../components/Wallet/WalletModal"
8
+ // import { type ConnectorAlreadyConnectedError } from '@wagmi/core'
9
+ // import useEVM from "../evm/useEVM"
10
+ // import useStarknet from "../starknet/useStarknet"
11
+ // import { useWalletStore } from "../../../stores/walletStore"
12
+ // import { AuthorizeStarknet } from "./Authorize/Starknet"
13
+ // import { walletClientToSigner } from "../../ethersToViem/ethers"
14
+ // import AuhorizeEthereum from "./Authorize/Ethereum"
15
+ // import { getWalletClient } from '@wagmi/core'
16
+ // import { useConfig } from "wagmi"
17
+ // import { switchChain, getChainId } from '@wagmi/core'
18
+ // import { useSettingsState } from "../../../context/settings"
19
+ // import shortenAddress from "../../../components/utils/ShortenAddress"
20
+ // type Props = {
21
+ // network: Network | undefined,
22
+ // }
23
+ // export default function useParadex({ network }: Props): WalletProvider {
24
+ // const name = 'Paradex'
25
+ // const id = 'prdx'
26
+ // const { networks } = useSettingsState()
27
+ // const selectedProvider = useWalletStore((state) => state.selectedProveder)
28
+ // const selectProvider = useWalletStore((state) => state.selectProvider)
29
+ // const paradexAccounts = useWalletStore((state) => state.paradexAccounts)
30
+ // const addParadexAccount = useWalletStore((state) => state.addParadexAccount)
31
+ // const removeParadexAccount = useWalletStore((state) => state.removeParadexAccount)
32
+ // const paradexNetwork = networks.find(n => n.name === KnownInternalNames.Networks.ParadexMainnet || n.name === KnownInternalNames.Networks.ParadexTestnet)
33
+ // const withdrawalSupportedNetworks = [
34
+ // KnownInternalNames.Networks.ParadexMainnet,
35
+ // KnownInternalNames.Networks.ParadexTestnet,
36
+ // ]
37
+ // const autofillSupportedNetworks = [
38
+ // ...withdrawalSupportedNetworks
39
+ // ]
40
+ // const asSourceSupportedNetworks = [
41
+ // ...withdrawalSupportedNetworks
42
+ // ]
43
+ // const { connect, setSelectedConnector } = useConnectModal()
44
+ // const evmProvider = useEVM({ network })
45
+ // const starknetProvider = useStarknet()
46
+ // const connectWallet = async () => {
47
+ // try {
48
+ // return await connect(provider)
49
+ // }
50
+ // catch (e) {
51
+ // console.log(e)
52
+ // }
53
+ // }
54
+ // const config = useConfig()
55
+ // const connectConnector = async ({ connector }: { connector: InternalConnector & LSConnector }) => {
56
+ // try {
57
+ // setSelectedConnector(connector)
58
+ // const isEvm = evmProvider.availableWalletsForConnect?.find(w => w.id === connector.id)
59
+ // const isStarknet = starknetProvider.availableWalletsForConnect?.find(w => w.id === connector.id)
60
+ // if (isEvm) {
61
+ // const connectionResult = evmProvider.connectConnector && await evmProvider.connectConnector({ connector })
62
+ // if (!connectionResult) return
63
+ // if (!paradexAccounts?.[connectionResult?.address?.toLowerCase()]) {
64
+ // const l1Network = networks.find(n => n.name === KnownInternalNames.Networks.EthereumMainnet || n.name === KnownInternalNames.Networks.EthereumSepolia);
65
+ // const l1ChainId = Number(l1Network?.chain_id)
66
+ // if (!Number(l1ChainId)) {
67
+ // throw Error("Could not find ethereum network")
68
+ // }
69
+ // let client = await getWalletClient(config)
70
+ // const chainId = await client.getChainId()
71
+ // if (l1ChainId !== chainId) {
72
+ // try {
73
+ // await sleep(1000)
74
+ // await switchChain(config, { chainId: l1ChainId })
75
+ // }
76
+ // catch (e) {
77
+ // await getChainId(config)
78
+ // await sleep(1000)
79
+ // const chainId = await getChainId(config)
80
+ // if (l1ChainId !== chainId) {
81
+ // throw Error("Could not switch to ethereum network")
82
+ // }
83
+ // }
84
+ // await sleep(1000)
85
+ // client = await getWalletClient(config)
86
+ // }
87
+ // await sleep(1000)
88
+ // const ethersSigner = walletClientToSigner(client)
89
+ // if (!ethersSigner) {
90
+ // throw Error("Could not initialize ethers signer")
91
+ // }
92
+ // const paradexAccount = await AuhorizeEthereum(ethersSigner)
93
+ // addParadexAccount({ l1Address: connectionResult.address, paradexAddress: paradexAccount.address })
94
+ // }
95
+ // selectProvider(evmProvider.name)
96
+ // return resolveSingleWallet(connectionResult, name, paradexAccounts, removeParadexAccount, paradexNetwork?.logo)
97
+ // }
98
+ // else if (isStarknet) {
99
+ // const connectionResult = starknetProvider.connectConnector && await starknetProvider.connectConnector({ connector })
100
+ // if (!connectionResult) return
101
+ // if (!paradexAccounts?.[connectionResult?.address?.toLowerCase()]) {
102
+ // const snAccount = connectionResult.metadata?.starknetAccount
103
+ // if (!snAccount) {
104
+ // throw Error("Starknet account not found")
105
+ // }
106
+ // const paradexAccount = await AuthorizeStarknet(snAccount)
107
+ // addParadexAccount({ l1Address: connectionResult.address, paradexAddress: paradexAccount.address })
108
+ // }
109
+ // selectProvider(starknetProvider.name)
110
+ // return resolveSingleWallet(connectionResult, name, paradexAccounts, removeParadexAccount, paradexNetwork?.logo)
111
+ // }
112
+ // } catch (e) {
113
+ // //TODO: handle error like in transfer
114
+ // const error = e as ConnectorAlreadyConnectedError
115
+ // if (error.name == 'ConnectorAlreadyConnectedError') {
116
+ // throw new Error('Wallet is already connected.')
117
+ // }
118
+ // else if (error.message.includes("Cannot read properties of undefined (reading 'toLowerCase')")) {
119
+ // throw new Error('Please update your wallet to the latest version.')
120
+ // }
121
+ // else {
122
+ // throw new Error(e.message || e)
123
+ // }
124
+ // }
125
+ // }
126
+ // const connectedWallets = useMemo(() => {
127
+ // return [
128
+ // ...resolveWalletsList(evmProvider.connectedWallets, paradexAccounts, name, removeParadexAccount, paradexNetwork?.logo),
129
+ // ...resolveWalletsList(starknetProvider.connectedWallets, paradexAccounts, name, removeParadexAccount, paradexNetwork?.logo)
130
+ // ]
131
+ // }, [evmProvider, starknetProvider, paradexAccounts])
132
+ // const availableWalletsForConnect = useMemo(() => {
133
+ // return [...(evmProvider.availableWalletsForConnect ? evmProvider.availableWalletsForConnect : []), ...(starknetProvider?.availableWalletsForConnect ? starknetProvider.availableWalletsForConnect : [])]
134
+ // }, [evmProvider, starknetProvider])
135
+ // const switchAccount = async (wallet: Wallet, address: string) => {
136
+ // const evmWallet = evmProvider?.connectedWallets?.find(w => w.id === wallet.id)
137
+ // const starknetWallet = starknetProvider?.connectedWallets?.find(w => w.id === wallet.id)
138
+ // if (evmWallet && evmProvider.switchAccount && wallet.metadata?.l1Address) {
139
+ // evmProvider.switchAccount(evmWallet, wallet.metadata?.l1Address)
140
+ // selectProvider(evmProvider.name)
141
+ // }
142
+ // else if (starknetWallet && starknetProvider.switchAccount && wallet.metadata?.l1Address) {
143
+ // starknetProvider.switchAccount(starknetWallet, wallet.metadata.l1Address)
144
+ // selectProvider(starknetProvider.name)
145
+ // }
146
+ // }
147
+ // const activeWallet = useMemo(() => {
148
+ // if (selectedProvider === starknetProvider.name && starknetProvider?.activeWallet) {
149
+ // return resolveSingleWallet(starknetProvider.activeWallet, name, paradexAccounts, removeParadexAccount, paradexNetwork?.logo)
150
+ // }
151
+ // else if (selectedProvider === evmProvider.name && evmProvider?.activeWallet) {
152
+ // return resolveSingleWallet(evmProvider.activeWallet, name, paradexAccounts, removeParadexAccount, paradexNetwork?.logo)
153
+ // }
154
+ // }, [evmProvider.activeWallet, starknetProvider.activeWallet, selectedProvider])
155
+ // const provider = {
156
+ // connectWallet,
157
+ // connectConnector,
158
+ // switchAccount,
159
+ // connectedWallets,
160
+ // activeWallet,
161
+ // withdrawalSupportedNetworks,
162
+ // autofillSupportedNetworks,
163
+ // asSourceSupportedNetworks,
164
+ // availableWalletsForConnect,
165
+ // name,
166
+ // id,
167
+ // hideFromList: true
168
+ // }
169
+ // return provider
170
+ // }
171
+ // const resolveWalletsList = (wallets: Wallet[] | undefined, accounts: { [key: string]: string } | undefined, name: string, disconnect: (address: string) => void, networkIcon?: string) => {
172
+ // const l1Addresses = Object.keys(accounts || {})
173
+ // if (!l1Addresses.length || !wallets?.length) return []
174
+ // return wallets.filter(w => w.addresses.some(wa => l1Addresses.some(pa => pa.toLowerCase() === wa.toLowerCase())))
175
+ // .map(w => (resolveSingleWallet(w, name, accounts, disconnect, networkIcon))).filter(w => w) as Wallet[]
176
+ // }
177
+ // const resolveSingleWallet = (wallet: Wallet, name: string, accounts: { [key: string]: string } | undefined, disconnect: (address: string) => void, networkIcon?: string): Wallet | undefined => {
178
+ // const paradexAddress = accounts?.[wallet.address.toLowerCase()]
179
+ // if (!paradexAddress) return
180
+ // const displayName = `${wallet.id} (${shortenAddress(wallet.address)})`
181
+ // return {
182
+ // ...wallet,
183
+ // metadata: {
184
+ // ...wallet.metadata,
185
+ // l1Address: wallet.address
186
+ // },
187
+ // providerName: name,
188
+ // displayName,
189
+ // address: paradexAddress,
190
+ // addresses: [paradexAddress],
191
+ // disconnect: () => disconnect(wallet.address),
192
+ // networkIcon
193
+ // }
194
+ // }
195
+ // function sleep(ms) {
196
+ // return new Promise(resolve => setTimeout(resolve, ms));
197
+ // }
@@ -1,4 +0,0 @@
1
- import { PublicKey, Transaction } from "@solana/web3.js";
2
- import { Network, Token } from "../../../Models/Network";
3
- declare const transactionBuilder: (network: Network, token: Token, walletPublicKey: PublicKey, recipientAddress?: string | undefined) => Promise<Transaction>;
4
- export default transactionBuilder;
@@ -1,39 +1,63 @@
1
- import { Connection, PublicKey, SystemProgram, Transaction } from "@solana/web3.js";
2
- import { createAssociatedTokenAccountInstruction, createTransferInstruction, getAccount, getAssociatedTokenAddress } from '@solana/spl-token';
3
- const transactionBuilder = async (network, token, walletPublicKey, recipientAddress) => {
4
- const connection = new Connection(`${network.node_url}`, "confirmed");
5
- const recipientPublicKey = new PublicKey(recipientAddress || new Array(32).fill(0));
6
- if (token.contract) {
7
- const sourceToken = new PublicKey(token?.contract);
8
- const transactionInstructions = [];
9
- const associatedTokenFrom = await getAssociatedTokenAddress(sourceToken, walletPublicKey);
10
- const fromAccount = await getAccount(connection, associatedTokenFrom);
11
- const associatedTokenTo = await getAssociatedTokenAddress(sourceToken, recipientPublicKey);
12
- if (!(await connection.getAccountInfo(associatedTokenTo))) {
13
- transactionInstructions.push(createAssociatedTokenAccountInstruction(walletPublicKey, associatedTokenTo, recipientPublicKey, sourceToken));
14
- }
15
- transactionInstructions.push(createTransferInstruction(fromAccount.address, associatedTokenTo, walletPublicKey, 2000000 * Math.pow(10, Number(token?.decimals))));
16
- const result = await connection.getLatestBlockhash();
17
- const transaction = new Transaction({
18
- feePayer: walletPublicKey,
19
- blockhash: result.blockhash,
20
- lastValidBlockHeight: result.lastValidBlockHeight
21
- }).add(...transactionInstructions);
22
- return transaction;
23
- }
24
- else {
25
- const transaction = new Transaction();
26
- const amountInLamports = 20000 * Math.pow(10, Number(token?.decimals));
27
- const transferInstruction = SystemProgram.transfer({
28
- fromPubkey: walletPublicKey,
29
- toPubkey: recipientPublicKey,
30
- lamports: amountInLamports
31
- });
32
- transaction.add(transferInstruction);
33
- const { blockhash } = await connection.getLatestBlockhash();
34
- transaction.recentBlockhash = blockhash;
35
- transaction.feePayer = walletPublicKey;
36
- return transaction;
37
- }
38
- };
39
- export default transactionBuilder;
1
+ // import { Connection, PublicKey, SystemProgram, Transaction, TransactionInstruction } from "@solana/web3.js";
2
+ // import { createAssociatedTokenAccountInstruction, createTransferInstruction, getAccount, getAssociatedTokenAddress } from '@solana/spl-token';
3
+ // import { Network, Token } from "../../../Models/Network";
4
+ // const transactionBuilder = async (network: Network, token: Token, walletPublicKey: PublicKey, recipientAddress?: string | undefined) => {
5
+ // const connection = new Connection(
6
+ // `${network.node_url}`,
7
+ // "confirmed"
8
+ // );
9
+ // const recipientPublicKey = new PublicKey(recipientAddress || new Array(32).fill(0));
10
+ // if (token.contract) {
11
+ // const sourceToken = new PublicKey(token?.contract);
12
+ // const transactionInstructions: TransactionInstruction[] = [];
13
+ // const associatedTokenFrom = await getAssociatedTokenAddress(
14
+ // sourceToken,
15
+ // walletPublicKey
16
+ // );
17
+ // const fromAccount = await getAccount(connection, associatedTokenFrom);
18
+ // const associatedTokenTo = await getAssociatedTokenAddress(
19
+ // sourceToken,
20
+ // recipientPublicKey
21
+ // );
22
+ // if (!(await connection.getAccountInfo(associatedTokenTo))) {
23
+ // transactionInstructions.push(
24
+ // createAssociatedTokenAccountInstruction(
25
+ // walletPublicKey,
26
+ // associatedTokenTo,
27
+ // recipientPublicKey,
28
+ // sourceToken
29
+ // )
30
+ // );
31
+ // }
32
+ // transactionInstructions.push(
33
+ // createTransferInstruction(
34
+ // fromAccount.address,
35
+ // associatedTokenTo,
36
+ // walletPublicKey,
37
+ // 2000000 * Math.pow(10, Number(token?.decimals))
38
+ // )
39
+ // );
40
+ // const result = await connection.getLatestBlockhash()
41
+ // const transaction = new Transaction({
42
+ // feePayer: walletPublicKey,
43
+ // blockhash: result.blockhash,
44
+ // lastValidBlockHeight: result.lastValidBlockHeight
45
+ // }).add(...transactionInstructions);
46
+ // return transaction
47
+ // }
48
+ // else {
49
+ // const transaction = new Transaction();
50
+ // const amountInLamports = 20000 * Math.pow(10, Number(token?.decimals));
51
+ // const transferInstruction = SystemProgram.transfer({
52
+ // fromPubkey: walletPublicKey,
53
+ // toPubkey: recipientPublicKey,
54
+ // lamports: amountInLamports
55
+ // });
56
+ // transaction.add(transferInstruction);
57
+ // const { blockhash } = await connection.getLatestBlockhash();
58
+ // transaction.recentBlockhash = blockhash;
59
+ // transaction.feePayer = walletPublicKey;
60
+ // return transaction
61
+ // }
62
+ // }
63
+ // export default transactionBuilder
@@ -1,5 +0,0 @@
1
- import { Network } from "../../../Models/Network";
2
- import { WalletProvider } from "../../../Models/WalletProvider";
3
- export default function useSVM({ network }: {
4
- network: Network | undefined;
5
- }): WalletProvider;