@layerswap/widget 0.1.4 → 0.1.14

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 (267) 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 +1 -0
  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 +3 -2
  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/EthereumProvider.d.ts +2 -2
  167. package/dist/lib/wallets/connectors/useSyncProviders/store.d.ts +1 -4
  168. package/dist/lib/wallets/fuel/Bako.d.ts +0 -15
  169. package/dist/lib/wallets/fuel/Bako.js +34 -29
  170. package/dist/lib/wallets/fuel/Basko.d.ts +0 -15
  171. package/dist/lib/wallets/fuel/Basko.js +34 -29
  172. package/dist/lib/wallets/fuel/useFuel.d.ts +0 -2
  173. package/dist/lib/wallets/fuel/useFuel.js +211 -192
  174. package/dist/lib/wallets/imtblX/useImtblX.d.ts +0 -2
  175. package/dist/lib/wallets/imtblX/useImtblX.js +87 -87
  176. package/dist/lib/wallets/paradex/Authorize/Ethereum.d.ts +0 -2
  177. package/dist/lib/wallets/paradex/Authorize/Ethereum.js +24 -23
  178. package/dist/lib/wallets/paradex/Authorize/Starknet.d.ts +0 -2
  179. package/dist/lib/wallets/paradex/Authorize/Starknet.js +14 -13
  180. package/dist/lib/wallets/paradex/lib/account.d.ts +0 -28
  181. package/dist/lib/wallets/paradex/lib/account.js +102 -53
  182. package/dist/lib/wallets/paradex/lib/index.d.ts +0 -24
  183. package/dist/lib/wallets/paradex/lib/index.js +20 -20
  184. package/dist/lib/wallets/paradex/lib/paraclear-provider.d.ts +0 -6
  185. package/dist/lib/wallets/paradex/lib/paraclear-provider.js +13 -9
  186. package/dist/lib/wallets/paradex/lib/paraclear.d.ts +0 -137
  187. package/dist/lib/wallets/paradex/lib/paraclear.js +258 -131
  188. package/dist/lib/wallets/paradex/lib/starknet-account-support.d.ts +0 -22
  189. package/dist/lib/wallets/paradex/lib/starknet-account-support.js +296 -220
  190. package/dist/lib/wallets/paradex/lib/starknet-signer.d.ts +0 -15
  191. package/dist/lib/wallets/paradex/lib/starknet-signer.js +120 -94
  192. package/dist/lib/wallets/paradex/useParadex.d.ts +0 -7
  193. package/dist/lib/wallets/paradex/useParadex.js +197 -194
  194. package/dist/lib/wallets/solana/transactionBuilder.d.ts +0 -4
  195. package/dist/lib/wallets/solana/transactionBuilder.js +63 -39
  196. package/dist/lib/wallets/solana/useSVM.d.ts +0 -5
  197. package/dist/lib/wallets/solana/useSVM.js +139 -142
  198. package/dist/lib/wallets/starknet/useStarknet.d.ts +0 -2
  199. package/dist/lib/wallets/starknet/useStarknet.js +139 -139
  200. package/dist/lib/wallets/ton/client.d.ts +0 -3
  201. package/dist/lib/wallets/ton/client.js +7 -7
  202. package/dist/lib/wallets/ton/useTON.d.ts +0 -2
  203. package/dist/lib/wallets/ton/useTON.js +121 -122
  204. package/dist/lib/wallets/tron/connectors/bitkeep.d.ts +0 -61
  205. package/dist/lib/wallets/tron/connectors/bitkeep.js +326 -303
  206. package/dist/lib/wallets/tron/connectors/index.d.ts +0 -4
  207. package/dist/lib/wallets/tron/connectors/index.js +4 -4
  208. package/dist/lib/wallets/tron/connectors/okxWallet.d.ts +0 -66
  209. package/dist/lib/wallets/tron/connectors/okxWallet.js +364 -336
  210. package/dist/lib/wallets/tron/connectors/tokenPocket.d.ts +0 -72
  211. package/dist/lib/wallets/tron/connectors/tokenPocket.js +337 -308
  212. package/dist/lib/wallets/tron/connectors/tronLink/index.d.ts +0 -102
  213. package/dist/lib/wallets/tron/connectors/tronLink/index.js +560 -520
  214. package/dist/lib/wallets/tron/connectors/tronLink/types.d.ts +0 -56
  215. package/dist/lib/wallets/tron/connectors/tronLink/types.js +53 -1
  216. package/dist/lib/wallets/tron/connectors/tronLink/utils.d.ts +0 -14
  217. package/dist/lib/wallets/tron/connectors/tronLink/utils.js +64 -61
  218. package/dist/lib/wallets/tron/useTron.d.ts +0 -2
  219. package/dist/lib/wallets/tron/useTron.js +111 -111
  220. package/dist/lib/wallets/utils/resolveWalletIcon.js +1 -0
  221. package/package.json +26 -77
  222. package/dist/hooks/useCopyClipboard.d.ts +0 -1
  223. package/dist/hooks/useCopyClipboard.js +0 -21
  224. package/dist/index.cjs +0 -125
  225. package/dist/lib/abis/ERC20.json +0 -258
  226. package/dist/lib/fuels/connectors/walletConnect/WalletConnectConnector.d.ts +0 -42
  227. package/dist/lib/fuels/connectors/walletConnect/WalletConnectConnector.js +0 -357
  228. package/dist/lib/fuels/connectors/walletConnect/constants.d.ts +0 -6
  229. package/dist/lib/fuels/connectors/walletConnect/constants.js +0 -7
  230. package/dist/lib/fuels/connectors/walletConnect/index.d.ts +0 -3
  231. package/dist/lib/fuels/connectors/walletConnect/index.js +0 -3
  232. package/dist/lib/fuels/connectors/walletConnect/types.d.ts +0 -12
  233. package/dist/lib/fuels/connectors/walletConnect/types.js +0 -1
  234. package/dist/lib/fuels/connectors/walletConnect/utils/index.d.ts +0 -1
  235. package/dist/lib/fuels/connectors/walletConnect/utils/index.js +0 -1
  236. package/dist/lib/fuels/connectors/walletConnect/utils/subscribeAndEnforceChain.d.ts +0 -2
  237. package/dist/lib/fuels/connectors/walletConnect/utils/subscribeAndEnforceChain.js +0 -39
  238. package/dist/lib/fuels/connectors/walletConnect/web3Modal.d.ts +0 -10
  239. package/dist/lib/fuels/connectors/walletConnect/web3Modal.js +0 -38
  240. package/dist/lib/loopring/LoopringAPI.d.ts +0 -12
  241. package/dist/lib/loopring/LoopringAPI.js +0 -13
  242. package/dist/lib/loopring/defs.d.ts +0 -425
  243. package/dist/lib/loopring/defs.js +0 -217
  244. package/dist/lib/loopring/eddsa.d.ts +0 -29
  245. package/dist/lib/loopring/eddsa.js +0 -208
  246. package/dist/lib/loopring/field.d.ts +0 -17
  247. package/dist/lib/loopring/field.js +0 -61
  248. package/dist/lib/loopring/formatter.d.ts +0 -137
  249. package/dist/lib/loopring/formatter.js +0 -516
  250. package/dist/lib/loopring/helpers.d.ts +0 -36
  251. package/dist/lib/loopring/helpers.js +0 -140
  252. package/dist/lib/loopring/jubjub.d.ts +0 -19
  253. package/dist/lib/loopring/jubjub.js +0 -79
  254. package/dist/lib/loopring/permutation.d.ts +0 -22
  255. package/dist/lib/loopring/permutation.js +0 -198
  256. package/dist/lib/loopring/poseidon/EDDSAUtil.d.ts +0 -14
  257. package/dist/lib/loopring/poseidon/EDDSAUtil.js +0 -61
  258. package/dist/lib/loopring/poseidon/babyJub.d.ts +0 -6
  259. package/dist/lib/loopring/poseidon/babyJub.js +0 -51
  260. package/dist/lib/loopring/poseidon/eddsa.d.ts +0 -29
  261. package/dist/lib/loopring/poseidon/eddsa.js +0 -210
  262. package/dist/lib/loopring/utils.d.ts +0 -76
  263. package/dist/lib/loopring/utils.js +0 -230
  264. package/dist/styles/dialog-transition.css +0 -28
  265. package/dist/styles/globals.css +0 -372
  266. package/dist/styles/manual-trasnfer-svg.css +0 -299
  267. package/dist/styles/vaul.css +0 -256
@@ -1,336 +1,364 @@
1
- import { Adapter, AdapterState, isInBrowser, WalletReadyState, WalletSignMessageError, WalletNotFoundError, WalletDisconnectedError, WalletConnectionError, WalletSignTransactionError, WalletGetNetworkError, isInMobileBrowser, } from '@tronweb3/tronwallet-abstract-adapter';
2
- import { getNetworkInfoByTronWeb } from '@tronweb3/tronwallet-adapter-tronlink';
3
- export function supportOkxWallet() {
4
- return !!(window.okxwallet && window.okxwallet.tronLink);
5
- }
6
- export const isOKApp = () => /OKApp/i.test(navigator.userAgent);
7
- export function openOkxWallet() {
8
- if (!isOKApp() && isInMobileBrowser()) {
9
- window.location.href = 'okx://wallet/dapp/url?dappUrl=' + encodeURIComponent(window.location.href);
10
- return true;
11
- }
12
- return false;
13
- }
14
- export const OkxWalletAdapterName = 'OKX Wallet';
15
- export class OkxWalletAdapter extends Adapter {
16
- constructor(config = {}) {
17
- super();
18
- this.name = OkxWalletAdapterName;
19
- this.url = 'https://okx.com';
20
- this.icon = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiByeD0iOCIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTIzLjU1ODMgMTUuODk2NUgxNi40NDc0QzE2LjE0NTMgMTUuODk2NSAxNS45MDA0IDE2LjE0MTQgMTUuOTAwNCAxNi40NDM1VjIzLjU1NDRDMTUuOTAwNCAyMy44NTY1IDE2LjE0NTMgMjQuMTAxNCAxNi40NDc0IDI0LjEwMTRIMjMuNTU4M0MyMy44NjA0IDI0LjEwMTQgMjQuMTA1MyAyMy44NTY1IDI0LjEwNTMgMjMuNTU0NFYxNi40NDM1QzI0LjEwNTMgMTYuMTQxNCAyMy44NjA0IDE1Ljg5NjUgMjMuNTU4MyAxNS44OTY1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE2LjQ0NzQgMTYuMzk2NUgyMy41NTgzQzIzLjU4NDIgMTYuMzk2NSAyMy42MDUzIDE2LjQxNzUgMjMuNjA1MyAxNi40NDM1VjIzLjU1NDRDMjMuNjA1MyAyMy41ODAzIDIzLjU4NDIgMjMuNjAxNCAyMy41NTgzIDIzLjYwMTRIMTYuNDQ3NEMxNi40MjE0IDIzLjYwMTQgMTYuNDAwNCAyMy41ODAzIDE2LjQwMDQgMjMuNTU0NFYxNi40NDM1QzE2LjQwMDQgMTYuNDE3NSAxNi40MjE0IDE2LjM5NjUgMTYuNDQ3NCAxNi4zOTY1WiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPHBhdGggZD0iTTE1LjM1MDMgNy42OTE0MUg4LjIzOTM3QzcuOTM3MjggNy42OTE0MSA3LjY5MjM4IDcuOTM2MyA3LjY5MjM4IDguMjM4NFYxNS4zNDkzQzcuNjkyMzggMTUuNjUxNCA3LjkzNzI4IDE1Ljg5NjMgOC4yMzkzNyAxNS44OTYzSDE1LjM1MDNDMTUuNjUyMyAxNS44OTYzIDE1Ljg5NzIgMTUuNjUxNCAxNS44OTcyIDE1LjM0OTNWOC4yMzg0QzE1Ljg5NzIgNy45MzYzIDE1LjY1MjMgNy42OTE0MSAxNS4zNTAzIDcuNjkxNDFaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOC4yMzkzNyA4LjE5MTQxSDE1LjM1MDNDMTUuMzc2MiA4LjE5MTQxIDE1LjM5NzIgOC4yMTI0NSAxNS4zOTcyIDguMjM4NFYxNS4zNDkzQzE1LjM5NzIgMTUuMzc1MiAxNS4zNzYyIDE1LjM5NjMgMTUuMzUwMyAxNS4zOTYzSDguMjM5MzdDOC4yMTM0MiAxNS4zOTYzIDguMTkyMzggMTUuMzc1MiA4LjE5MjM4IDE1LjM0OTNWOC4yMzg0QzguMTkyMzggOC4yMTI0NCA4LjIxMzQyIDguMTkxNDEgOC4yMzkzNyA4LjE5MTQxWiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPHBhdGggZD0iTTMxLjc2MDQgNy42OTE0MUgyNC42NDk1QzI0LjM0NzQgNy42OTE0MSAyNC4xMDI1IDcuOTM2MyAyNC4xMDI1IDguMjM4NFYxNS4zNDkzQzI0LjEwMjUgMTUuNjUxNCAyNC4zNDc0IDE1Ljg5NjMgMjQuNjQ5NSAxNS44OTYzSDMxLjc2MDRDMzIuMDYyNSAxNS44OTYzIDMyLjMwNzQgMTUuNjUxNCAzMi4zMDc0IDE1LjM0OTNWOC4yMzg0QzMyLjMwNzQgNy45MzYzIDMyLjA2MjUgNy42OTE0MSAzMS43NjA0IDcuNjkxNDFaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjQuNjQ5NSA4LjE5MTQxSDMxLjc2MDRDMzEuNzg2NCA4LjE5MTQxIDMxLjgwNzQgOC4yMTI0NSAzMS44MDc0IDguMjM4NFYxNS4zNDkzQzMxLjgwNzQgMTUuMzc1MiAzMS43ODY0IDE1LjM5NjMgMzEuNzYwNCAxNS4zOTYzSDI0LjY0OTVDMjQuNjIzNiAxNS4zOTYzIDI0LjYwMjUgMTUuMzc1MiAyNC42MDI1IDE1LjM0OTNWOC4yMzg0QzI0LjYwMjUgOC4yMTI0NCAyNC42MjM2IDguMTkxNDEgMjQuNjQ5NSA4LjE5MTQxWiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPHBhdGggZD0iTTE1LjM1MDMgMjQuMDk5Nkg4LjIzOTM3QzcuOTM3MjggMjQuMDk5NiA3LjY5MjM4IDI0LjM0NDUgNy42OTIzOCAyNC42NDY2VjMxLjc1NzVDNy42OTIzOCAzMi4wNTk2IDcuOTM3MjggMzIuMzA0NSA4LjIzOTM3IDMyLjMwNDVIMTUuMzUwM0MxNS42NTI0IDMyLjMwNDUgMTUuODk3MyAzMi4wNTk2IDE1Ljg5NzMgMzEuNzU3NVYyNC42NDY2QzE1Ljg5NzMgMjQuMzQ0NSAxNS42NTI0IDI0LjA5OTYgMTUuMzUwMyAyNC4wOTk2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTguMjM5MzcgMjQuNTk5NkgxNS4zNTAzQzE1LjM3NjIgMjQuNTk5NiAxNS4zOTczIDI0LjYyMDYgMTUuMzk3MyAyNC42NDY2VjMxLjc1NzVDMTUuMzk3MyAzMS43ODM0IDE1LjM3NjIgMzEuODA0NSAxNS4zNTAzIDMxLjgwNDVIOC4yMzkzN0M4LjIxMzQyIDMxLjgwNDUgOC4xOTIzOCAzMS43ODM0IDguMTkyMzggMzEuNzU3NVYyNC42NDY2QzguMTkyMzggMjQuNjIwNiA4LjIxMzQyIDI0LjU5OTYgOC4yMzkzNyAyNC41OTk2WiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPHBhdGggZD0iTTMxLjc2MDQgMjQuMDk5NkgyNC42NDk1QzI0LjM0NzQgMjQuMDk5NiAyNC4xMDI1IDI0LjM0NDUgMjQuMTAyNSAyNC42NDY2VjMxLjc1NzVDMjQuMTAyNSAzMi4wNTk2IDI0LjM0NzQgMzIuMzA0NSAyNC42NDk1IDMyLjMwNDVIMzEuNzYwNEMzMi4wNjI1IDMyLjMwNDUgMzIuMzA3NCAzMi4wNTk2IDMyLjMwNzQgMzEuNzU3NVYyNC42NDY2QzMyLjMwNzQgMjQuMzQ0NSAzMi4wNjI1IDI0LjA5OTYgMzEuNzYwNCAyNC4wOTk2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTI0LjY0OTUgMjQuNTk5NkgzMS43NjA0QzMxLjc4NjQgMjQuNTk5NiAzMS44MDc0IDI0LjYyMDYgMzEuODA3NCAyNC42NDY2VjMxLjc1NzVDMzEuODA3NCAzMS43ODM0IDMxLjc4NjQgMzEuODA0NSAzMS43NjA0IDMxLjgwNDVIMjQuNjQ5NUMyNC42MjM2IDMxLjgwNDUgMjQuNjAyNSAzMS43ODM0IDI0LjYwMjUgMzEuNzU3NVYyNC42NDY2QzI0LjYwMjUgMjQuNjIwNiAyNC42MjM2IDI0LjU5OTYgMjQuNjQ5NSAyNC41OTk2WiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPC9zdmc+Cg==';
21
- this._readyState = isInBrowser() ? WalletReadyState.Loading : WalletReadyState.NotFound;
22
- this._state = AdapterState.Loading;
23
- this.messageHandler = (e) => {
24
- const message = e.data?.message;
25
- if (!message) {
26
- return;
27
- }
28
- if (message.action === 'accountsChanged') {
29
- setTimeout(() => {
30
- const preAddr = this.address || '';
31
- if (this._wallet?.ready) {
32
- const address = message.data.address;
33
- this.setAddress(address);
34
- this.setState(AdapterState.Connected);
35
- }
36
- else {
37
- this.setAddress(null);
38
- this.setState(AdapterState.Disconnect);
39
- }
40
- const address = this.address || '';
41
- if (address !== preAddr) {
42
- this.emit('accountsChanged', this.address || '', preAddr);
43
- }
44
- if (!preAddr && this.address) {
45
- this.emit('connect', this.address);
46
- }
47
- else if (preAddr && !this.address) {
48
- this.emit('disconnect');
49
- }
50
- }, 200);
51
- }
52
- else if (message.action === 'connect') {
53
- const isCurConnected = this.connected;
54
- const preAddress = this.address || '';
55
- const address = this._wallet.tronWeb?.defaultAddress?.base58 || '';
56
- this.setAddress(address);
57
- this.setState(AdapterState.Connected);
58
- if (!isCurConnected) {
59
- this.emit('connect', address);
60
- }
61
- else if (address !== preAddress) {
62
- this.emit('accountsChanged', this.address || '', preAddress);
63
- }
64
- }
65
- else if (message.action === 'disconnect') {
66
- this.setAddress(null);
67
- this.setState(AdapterState.Disconnect);
68
- this.emit('disconnect');
69
- }
70
- };
71
- this._checkPromise = null;
72
- this._updateWallet = () => {
73
- let state = this.state;
74
- let address = this.address;
75
- if (supportOkxWallet()) {
76
- this._wallet = window.okxwallet.tronLink;
77
- this._listenEvent();
78
- if (state === AdapterState.Connected) {
79
- address = this._wallet.tronWeb.defaultAddress?.base58 || null;
80
- }
81
- state = this._wallet.ready ? AdapterState.Connected : AdapterState.Disconnect;
82
- }
83
- else {
84
- this._wallet = null;
85
- address = null;
86
- state = AdapterState.NotFound;
87
- }
88
- this.setAddress(address);
89
- this.setState(state);
90
- };
91
- const { checkTimeout = 2 * 1000, openUrlWhenWalletNotFound = true, openAppWithDeeplink = true } = config;
92
- if (typeof checkTimeout !== 'number') {
93
- throw new Error('[OkxWalletAdapter] config.checkTimeout should be a number');
94
- }
95
- this.config = {
96
- checkTimeout,
97
- openAppWithDeeplink,
98
- openUrlWhenWalletNotFound,
99
- };
100
- this._connecting = false;
101
- this._wallet = null;
102
- this._address = null;
103
- if (!isInBrowser()) {
104
- this._readyState = WalletReadyState.NotFound;
105
- this.setState(AdapterState.NotFound);
106
- return;
107
- }
108
- if (supportOkxWallet()) {
109
- this._readyState = WalletReadyState.Found;
110
- this._updateWallet();
111
- }
112
- else {
113
- this._checkWallet().then(() => {
114
- if (this.connected) {
115
- this.emit('connect', this.address || '');
116
- }
117
- });
118
- }
119
- }
120
- get address() {
121
- return this._address;
122
- }
123
- get state() {
124
- return this._state;
125
- }
126
- get readyState() {
127
- return this._readyState;
128
- }
129
- get connecting() {
130
- return this._connecting;
131
- }
132
- /**
133
- * Get network information used by OkxWallet.
134
- * @returns {Network} Current network information.
135
- */
136
- async network() {
137
- try {
138
- await this._checkWallet();
139
- if (this.state !== AdapterState.Connected)
140
- throw new WalletDisconnectedError();
141
- const wallet = this._wallet;
142
- if (!wallet || !wallet.tronWeb)
143
- throw new WalletDisconnectedError();
144
- try {
145
- return await getNetworkInfoByTronWeb(wallet.tronWeb);
146
- }
147
- catch (e) {
148
- throw new WalletGetNetworkError(e?.message, e);
149
- }
150
- }
151
- catch (e) {
152
- this.emit('error', e);
153
- throw e;
154
- }
155
- }
156
- async connect() {
157
- try {
158
- this.checkIfOpenOkxWallet();
159
- if (this.connected || this.connecting)
160
- return;
161
- await this._checkWallet();
162
- if (this.state === AdapterState.NotFound) {
163
- if (this.config.openUrlWhenWalletNotFound !== false && isInBrowser()) {
164
- window.open(this.url, '_blank');
165
- }
166
- throw new WalletNotFoundError();
167
- }
168
- if (!this._wallet)
169
- return;
170
- this._connecting = true;
171
- const wallet = this._wallet;
172
- try {
173
- const res = await wallet.request({ method: 'tron_requestAccounts' });
174
- if (!res) {
175
- throw new WalletConnectionError('Request connect error.');
176
- }
177
- if (res.code === 4000) {
178
- throw new WalletConnectionError('The same DApp has already initiated a request to connect to OkxWallet, and the pop-up window has not been closed.');
179
- }
180
- if (res.code === 4001) {
181
- throw new WalletConnectionError('The user rejected connection.');
182
- }
183
- }
184
- catch (error) {
185
- throw new WalletConnectionError(error?.message, error);
186
- }
187
- const address = wallet.tronWeb.defaultAddress?.base58 || '';
188
- this.setAddress(address);
189
- this.setState(AdapterState.Connected);
190
- this._listenEvent();
191
- this.connected && this.emit('connect', this.address || '');
192
- }
193
- catch (error) {
194
- this.emit('error', error);
195
- throw error;
196
- }
197
- finally {
198
- this._connecting = false;
199
- }
200
- }
201
- async disconnect() {
202
- this._stopListenEvent();
203
- if (this.state !== AdapterState.Connected) {
204
- return;
205
- }
206
- this.setAddress(null);
207
- this.setState(AdapterState.Disconnect);
208
- this.emit('disconnect');
209
- }
210
- async signTransaction(transaction, privateKey) {
211
- try {
212
- const wallet = await this.checkAndGetWallet();
213
- try {
214
- return await wallet.tronWeb.trx.sign(transaction, privateKey);
215
- }
216
- catch (error) {
217
- if (error instanceof Error) {
218
- throw new WalletSignTransactionError(error.message, error);
219
- }
220
- else {
221
- throw new WalletSignTransactionError(error, new Error(error));
222
- }
223
- }
224
- }
225
- catch (error) {
226
- this.emit('error', error);
227
- throw error;
228
- }
229
- }
230
- async multiSign(transaction, privateKey, permissionId) {
231
- try {
232
- const wallet = await this.checkAndGetWallet();
233
- try {
234
- return await wallet.tronWeb.trx.multiSign(transaction, privateKey, permissionId);
235
- }
236
- catch (error) {
237
- if (error instanceof Error) {
238
- throw new WalletSignTransactionError(error.message, error);
239
- }
240
- else {
241
- throw new WalletSignTransactionError(error, new Error(error));
242
- }
243
- }
244
- }
245
- catch (error) {
246
- this.emit('error', error);
247
- throw error;
248
- }
249
- }
250
- async signMessage(message, privateKey) {
251
- try {
252
- const wallet = await this.checkAndGetWallet();
253
- try {
254
- return await wallet.tronWeb.trx.signMessageV2(message, privateKey);
255
- }
256
- catch (error) {
257
- if (error instanceof Error) {
258
- throw new WalletSignMessageError(error.message, error);
259
- }
260
- else {
261
- throw new WalletSignMessageError(error, new Error(error));
262
- }
263
- }
264
- }
265
- catch (error) {
266
- this.emit('error', error);
267
- throw error;
268
- }
269
- }
270
- async checkAndGetWallet() {
271
- this.checkIfOpenOkxWallet();
272
- await this._checkWallet();
273
- if (this.state !== AdapterState.Connected)
274
- throw new WalletDisconnectedError();
275
- const wallet = this._wallet;
276
- if (!wallet || !wallet.tronWeb)
277
- throw new WalletDisconnectedError();
278
- return wallet;
279
- }
280
- _listenEvent() {
281
- this._stopListenEvent();
282
- window.addEventListener('message', this.messageHandler);
283
- }
284
- _stopListenEvent() {
285
- window.removeEventListener('message', this.messageHandler);
286
- }
287
- checkIfOpenOkxWallet() {
288
- if (this.config.openAppWithDeeplink === false) {
289
- return;
290
- }
291
- if (openOkxWallet()) {
292
- throw new WalletNotFoundError();
293
- }
294
- }
295
- /**
296
- * check if wallet exists by interval, the promise only resolve when wallet detected or timeout
297
- * @returns if OkxWallet exists
298
- */
299
- _checkWallet() {
300
- if (this.readyState === WalletReadyState.Found) {
301
- return Promise.resolve(true);
302
- }
303
- if (this._checkPromise) {
304
- return this._checkPromise;
305
- }
306
- const interval = 100;
307
- const maxTimes = Math.floor(this.config.checkTimeout / interval);
308
- let times = 0, timer;
309
- this._checkPromise = new Promise((resolve) => {
310
- const check = () => {
311
- times++;
312
- const isSupport = supportOkxWallet();
313
- if (isSupport || times > maxTimes) {
314
- timer && clearInterval(timer);
315
- this._readyState = isSupport ? WalletReadyState.Found : WalletReadyState.NotFound;
316
- this._updateWallet();
317
- this.emit('readyStateChanged', this.readyState);
318
- resolve(isSupport);
319
- }
320
- };
321
- timer = setInterval(check, interval);
322
- check();
323
- });
324
- return this._checkPromise;
325
- }
326
- setAddress(address) {
327
- this._address = address;
328
- }
329
- setState(state) {
330
- const preState = this.state;
331
- if (state !== preState) {
332
- this._state = state;
333
- this.emit('stateChanged', state);
334
- }
335
- }
336
- }
1
+ // import {
2
+ // Adapter,
3
+ // AdapterState,
4
+ // isInBrowser,
5
+ // WalletReadyState,
6
+ // WalletSignMessageError,
7
+ // WalletNotFoundError,
8
+ // WalletDisconnectedError,
9
+ // WalletConnectionError,
10
+ // WalletSignTransactionError,
11
+ // WalletGetNetworkError,
12
+ // isInMobileBrowser,
13
+ // } from '@tronweb3/tronwallet-abstract-adapter';
14
+ // import type {
15
+ // Transaction,
16
+ // SignedTransaction,
17
+ // AdapterName,
18
+ // BaseAdapterConfig,
19
+ // Network,
20
+ // } from '@tronweb3/tronwallet-abstract-adapter';
21
+ // import type {
22
+ // AccountsChangedEventData,
23
+ // TronLinkMessageEvent,
24
+ // TronLinkWallet,
25
+ // } from '@tronweb3/tronwallet-adapter-tronlink';
26
+ // import { getNetworkInfoByTronWeb } from '@tronweb3/tronwallet-adapter-tronlink';
27
+ // export function supportOkxWallet() {
28
+ // return !!(window.okxwallet && window.okxwallet.tronLink);
29
+ // }
30
+ // export const isOKApp = ()=>/OKApp/i.test(navigator.userAgent);
31
+ // export function openOkxWallet() {
32
+ // if (!isOKApp() && isInMobileBrowser()) {
33
+ // window.location.href = 'okx://wallet/dapp/url?dappUrl=' + encodeURIComponent(window.location.href);
34
+ // return true;
35
+ // }
36
+ // return false;
37
+ // }
38
+ // declare global {
39
+ // interface Window {
40
+ // okxwallet?: {
41
+ // tronLink: TronLinkWallet;
42
+ // };
43
+ // }
44
+ // }
45
+ // export interface OkxWalletAdapterConfig extends BaseAdapterConfig {
46
+ // /**
47
+ // * Timeout in millisecond for checking if OkxWallet wallet exists.
48
+ // * Default is 2 * 1000ms
49
+ // */
50
+ // checkTimeout?: number;
51
+ // /**
52
+ // * Set if open OkxWallet app using DeepLink.
53
+ // * Default is true.
54
+ // */
55
+ // openAppWithDeeplink?: boolean;
56
+ // }
57
+ // export const OkxWalletAdapterName = 'OKX Wallet' as AdapterName<'OKX Wallet'>;
58
+ // export class OkxWalletAdapter extends Adapter {
59
+ // name = OkxWalletAdapterName;
60
+ // url = 'https://okx.com';
61
+ // icon =
62
+ // 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiByeD0iOCIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTIzLjU1ODMgMTUuODk2NUgxNi40NDc0QzE2LjE0NTMgMTUuODk2NSAxNS45MDA0IDE2LjE0MTQgMTUuOTAwNCAxNi40NDM1VjIzLjU1NDRDMTUuOTAwNCAyMy44NTY1IDE2LjE0NTMgMjQuMTAxNCAxNi40NDc0IDI0LjEwMTRIMjMuNTU4M0MyMy44NjA0IDI0LjEwMTQgMjQuMTA1MyAyMy44NTY1IDI0LjEwNTMgMjMuNTU0NFYxNi40NDM1QzI0LjEwNTMgMTYuMTQxNCAyMy44NjA0IDE1Ljg5NjUgMjMuNTU4MyAxNS44OTY1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE2LjQ0NzQgMTYuMzk2NUgyMy41NTgzQzIzLjU4NDIgMTYuMzk2NSAyMy42MDUzIDE2LjQxNzUgMjMuNjA1MyAxNi40NDM1VjIzLjU1NDRDMjMuNjA1MyAyMy41ODAzIDIzLjU4NDIgMjMuNjAxNCAyMy41NTgzIDIzLjYwMTRIMTYuNDQ3NEMxNi40MjE0IDIzLjYwMTQgMTYuNDAwNCAyMy41ODAzIDE2LjQwMDQgMjMuNTU0NFYxNi40NDM1QzE2LjQwMDQgMTYuNDE3NSAxNi40MjE0IDE2LjM5NjUgMTYuNDQ3NCAxNi4zOTY1WiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPHBhdGggZD0iTTE1LjM1MDMgNy42OTE0MUg4LjIzOTM3QzcuOTM3MjggNy42OTE0MSA3LjY5MjM4IDcuOTM2MyA3LjY5MjM4IDguMjM4NFYxNS4zNDkzQzcuNjkyMzggMTUuNjUxNCA3LjkzNzI4IDE1Ljg5NjMgOC4yMzkzNyAxNS44OTYzSDE1LjM1MDNDMTUuNjUyMyAxNS44OTYzIDE1Ljg5NzIgMTUuNjUxNCAxNS44OTcyIDE1LjM0OTNWOC4yMzg0QzE1Ljg5NzIgNy45MzYzIDE1LjY1MjMgNy42OTE0MSAxNS4zNTAzIDcuNjkxNDFaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOC4yMzkzNyA4LjE5MTQxSDE1LjM1MDNDMTUuMzc2MiA4LjE5MTQxIDE1LjM5NzIgOC4yMTI0NSAxNS4zOTcyIDguMjM4NFYxNS4zNDkzQzE1LjM5NzIgMTUuMzc1MiAxNS4zNzYyIDE1LjM5NjMgMTUuMzUwMyAxNS4zOTYzSDguMjM5MzdDOC4yMTM0MiAxNS4zOTYzIDguMTkyMzggMTUuMzc1MiA4LjE5MjM4IDE1LjM0OTNWOC4yMzg0QzguMTkyMzggOC4yMTI0NCA4LjIxMzQyIDguMTkxNDEgOC4yMzkzNyA4LjE5MTQxWiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPHBhdGggZD0iTTMxLjc2MDQgNy42OTE0MUgyNC42NDk1QzI0LjM0NzQgNy42OTE0MSAyNC4xMDI1IDcuOTM2MyAyNC4xMDI1IDguMjM4NFYxNS4zNDkzQzI0LjEwMjUgMTUuNjUxNCAyNC4zNDc0IDE1Ljg5NjMgMjQuNjQ5NSAxNS44OTYzSDMxLjc2MDRDMzIuMDYyNSAxNS44OTYzIDMyLjMwNzQgMTUuNjUxNCAzMi4zMDc0IDE1LjM0OTNWOC4yMzg0QzMyLjMwNzQgNy45MzYzIDMyLjA2MjUgNy42OTE0MSAzMS43NjA0IDcuNjkxNDFaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjQuNjQ5NSA4LjE5MTQxSDMxLjc2MDRDMzEuNzg2NCA4LjE5MTQxIDMxLjgwNzQgOC4yMTI0NSAzMS44MDc0IDguMjM4NFYxNS4zNDkzQzMxLjgwNzQgMTUuMzc1MiAzMS43ODY0IDE1LjM5NjMgMzEuNzYwNCAxNS4zOTYzSDI0LjY0OTVDMjQuNjIzNiAxNS4zOTYzIDI0LjYwMjUgMTUuMzc1MiAyNC42MDI1IDE1LjM0OTNWOC4yMzg0QzI0LjYwMjUgOC4yMTI0NCAyNC42MjM2IDguMTkxNDEgMjQuNjQ5NSA4LjE5MTQxWiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPHBhdGggZD0iTTE1LjM1MDMgMjQuMDk5Nkg4LjIzOTM3QzcuOTM3MjggMjQuMDk5NiA3LjY5MjM4IDI0LjM0NDUgNy42OTIzOCAyNC42NDY2VjMxLjc1NzVDNy42OTIzOCAzMi4wNTk2IDcuOTM3MjggMzIuMzA0NSA4LjIzOTM3IDMyLjMwNDVIMTUuMzUwM0MxNS42NTI0IDMyLjMwNDUgMTUuODk3MyAzMi4wNTk2IDE1Ljg5NzMgMzEuNzU3NVYyNC42NDY2QzE1Ljg5NzMgMjQuMzQ0NSAxNS42NTI0IDI0LjA5OTYgMTUuMzUwMyAyNC4wOTk2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTguMjM5MzcgMjQuNTk5NkgxNS4zNTAzQzE1LjM3NjIgMjQuNTk5NiAxNS4zOTczIDI0LjYyMDYgMTUuMzk3MyAyNC42NDY2VjMxLjc1NzVDMTUuMzk3MyAzMS43ODM0IDE1LjM3NjIgMzEuODA0NSAxNS4zNTAzIDMxLjgwNDVIOC4yMzkzN0M4LjIxMzQyIDMxLjgwNDUgOC4xOTIzOCAzMS43ODM0IDguMTkyMzggMzEuNzU3NVYyNC42NDY2QzguMTkyMzggMjQuNjIwNiA4LjIxMzQyIDI0LjU5OTYgOC4yMzkzNyAyNC41OTk2WiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPHBhdGggZD0iTTMxLjc2MDQgMjQuMDk5NkgyNC42NDk1QzI0LjM0NzQgMjQuMDk5NiAyNC4xMDI1IDI0LjM0NDUgMjQuMTAyNSAyNC42NDY2VjMxLjc1NzVDMjQuMTAyNSAzMi4wNTk2IDI0LjM0NzQgMzIuMzA0NSAyNC42NDk1IDMyLjMwNDVIMzEuNzYwNEMzMi4wNjI1IDMyLjMwNDUgMzIuMzA3NCAzMi4wNTk2IDMyLjMwNzQgMzEuNzU3NVYyNC42NDY2QzMyLjMwNzQgMjQuMzQ0NSAzMi4wNjI1IDI0LjA5OTYgMzEuNzYwNCAyNC4wOTk2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTI0LjY0OTUgMjQuNTk5NkgzMS43NjA0QzMxLjc4NjQgMjQuNTk5NiAzMS44MDc0IDI0LjYyMDYgMzEuODA3NCAyNC42NDY2VjMxLjc1NzVDMzEuODA3NCAzMS43ODM0IDMxLjc4NjQgMzEuODA0NSAzMS43NjA0IDMxLjgwNDVIMjQuNjQ5NUMyNC42MjM2IDMxLjgwNDUgMjQuNjAyNSAzMS43ODM0IDI0LjYwMjUgMzEuNzU3NVYyNC42NDY2QzI0LjYwMjUgMjQuNjIwNiAyNC42MjM2IDI0LjU5OTYgMjQuNjQ5NSAyNC41OTk2WiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPC9zdmc+Cg==';
63
+ // config: Required<OkxWalletAdapterConfig>;
64
+ // private _readyState: WalletReadyState = isInBrowser() ? WalletReadyState.Loading : WalletReadyState.NotFound;
65
+ // private _state: AdapterState = AdapterState.Loading;
66
+ // private _connecting: boolean;
67
+ // private _wallet: TronLinkWallet | null;
68
+ // private _address: string | null;
69
+ // constructor(config: OkxWalletAdapterConfig = {}) {
70
+ // super();
71
+ // const { checkTimeout = 2 * 1000, openUrlWhenWalletNotFound = true, openAppWithDeeplink = true } = config;
72
+ // if (typeof checkTimeout !== 'number') {
73
+ // throw new Error('[OkxWalletAdapter] config.checkTimeout should be a number');
74
+ // }
75
+ // this.config = {
76
+ // checkTimeout,
77
+ // openAppWithDeeplink,
78
+ // openUrlWhenWalletNotFound,
79
+ // };
80
+ // this._connecting = false;
81
+ // this._wallet = null;
82
+ // this._address = null;
83
+ // if (!isInBrowser()) {
84
+ // this._readyState = WalletReadyState.NotFound;
85
+ // this.setState(AdapterState.NotFound);
86
+ // return;
87
+ // }
88
+ // if (supportOkxWallet()) {
89
+ // this._readyState = WalletReadyState.Found;
90
+ // this._updateWallet();
91
+ // } else {
92
+ // this._checkWallet().then(() => {
93
+ // if (this.connected) {
94
+ // this.emit('connect', this.address || '');
95
+ // }
96
+ // });
97
+ // }
98
+ // }
99
+ // get address() {
100
+ // return this._address;
101
+ // }
102
+ // get state() {
103
+ // return this._state;
104
+ // }
105
+ // get readyState() {
106
+ // return this._readyState;
107
+ // }
108
+ // get connecting() {
109
+ // return this._connecting;
110
+ // }
111
+ // /**
112
+ // * Get network information used by OkxWallet.
113
+ // * @returns {Network} Current network information.
114
+ // */
115
+ // async network(): Promise<Network> {
116
+ // try {
117
+ // await this._checkWallet();
118
+ // if (this.state !== AdapterState.Connected) throw new WalletDisconnectedError();
119
+ // const wallet = this._wallet;
120
+ // if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError();
121
+ // try {
122
+ // return await getNetworkInfoByTronWeb(wallet.tronWeb);
123
+ // } catch (e: any) {
124
+ // throw new WalletGetNetworkError(e?.message, e);
125
+ // }
126
+ // } catch (e: any) {
127
+ // this.emit('error', e);
128
+ // throw e;
129
+ // }
130
+ // }
131
+ // async connect(): Promise<void> {
132
+ // try {
133
+ // this.checkIfOpenOkxWallet();
134
+ // if (this.connected || this.connecting) return;
135
+ // await this._checkWallet();
136
+ // if (this.state === AdapterState.NotFound) {
137
+ // if (this.config.openUrlWhenWalletNotFound !== false && isInBrowser()) {
138
+ // window.open(this.url, '_blank');
139
+ // }
140
+ // throw new WalletNotFoundError();
141
+ // }
142
+ // if (!this._wallet) return;
143
+ // this._connecting = true;
144
+ // const wallet = this._wallet as TronLinkWallet;
145
+ // try {
146
+ // const res = await wallet.request({ method: 'tron_requestAccounts' });
147
+ // if (!res) {
148
+ // throw new WalletConnectionError('Request connect error.');
149
+ // }
150
+ // if (res.code === 4000) {
151
+ // throw new WalletConnectionError(
152
+ // 'The same DApp has already initiated a request to connect to OkxWallet, and the pop-up window has not been closed.'
153
+ // );
154
+ // }
155
+ // if (res.code === 4001) {
156
+ // throw new WalletConnectionError('The user rejected connection.');
157
+ // }
158
+ // } catch (error: any) {
159
+ // throw new WalletConnectionError(error?.message, error);
160
+ // }
161
+ // const address = wallet.tronWeb.defaultAddress?.base58 || '';
162
+ // this.setAddress(address);
163
+ // this.setState(AdapterState.Connected);
164
+ // this._listenEvent();
165
+ // this.connected && this.emit('connect', this.address || '');
166
+ // } catch (error: any) {
167
+ // this.emit('error', error);
168
+ // throw error;
169
+ // } finally {
170
+ // this._connecting = false;
171
+ // }
172
+ // }
173
+ // async disconnect(): Promise<void> {
174
+ // this._stopListenEvent();
175
+ // if (this.state !== AdapterState.Connected) {
176
+ // return;
177
+ // }
178
+ // this.setAddress(null);
179
+ // this.setState(AdapterState.Disconnect);
180
+ // this.emit('disconnect');
181
+ // }
182
+ // async signTransaction(transaction: Transaction, privateKey?: string): Promise<SignedTransaction> {
183
+ // try {
184
+ // const wallet = await this.checkAndGetWallet();
185
+ // try {
186
+ // return await wallet.tronWeb.trx.sign(transaction, privateKey);
187
+ // } catch (error: any) {
188
+ // if (error instanceof Error) {
189
+ // throw new WalletSignTransactionError(error.message, error);
190
+ // } else {
191
+ // throw new WalletSignTransactionError(error, new Error(error));
192
+ // }
193
+ // }
194
+ // } catch (error: any) {
195
+ // this.emit('error', error);
196
+ // throw error;
197
+ // }
198
+ // }
199
+ // async multiSign(
200
+ // transaction: Transaction,
201
+ // privateKey?: string | false,
202
+ // permissionId?: number
203
+ // ): Promise<SignedTransaction> {
204
+ // try {
205
+ // const wallet = await this.checkAndGetWallet();
206
+ // try {
207
+ // return await wallet.tronWeb.trx.multiSign(transaction, privateKey, permissionId);
208
+ // } catch (error: any) {
209
+ // if (error instanceof Error) {
210
+ // throw new WalletSignTransactionError(error.message, error);
211
+ // } else {
212
+ // throw new WalletSignTransactionError(error, new Error(error));
213
+ // }
214
+ // }
215
+ // } catch (error: any) {
216
+ // this.emit('error', error);
217
+ // throw error;
218
+ // }
219
+ // }
220
+ // async signMessage(message: string, privateKey?: string): Promise<string> {
221
+ // try {
222
+ // const wallet = await this.checkAndGetWallet();
223
+ // try {
224
+ // return await wallet.tronWeb.trx.signMessageV2(message, privateKey);
225
+ // } catch (error: any) {
226
+ // if (error instanceof Error) {
227
+ // throw new WalletSignMessageError(error.message, error);
228
+ // } else {
229
+ // throw new WalletSignMessageError(error, new Error(error));
230
+ // }
231
+ // }
232
+ // } catch (error: any) {
233
+ // this.emit('error', error);
234
+ // throw error;
235
+ // }
236
+ // }
237
+ // private async checkAndGetWallet() {
238
+ // this.checkIfOpenOkxWallet();
239
+ // await this._checkWallet();
240
+ // if (this.state !== AdapterState.Connected) throw new WalletDisconnectedError();
241
+ // const wallet = this._wallet;
242
+ // if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError();
243
+ // return wallet as TronLinkWallet;
244
+ // }
245
+ // private _listenEvent() {
246
+ // this._stopListenEvent();
247
+ // window.addEventListener('message', this.messageHandler);
248
+ // }
249
+ // private _stopListenEvent() {
250
+ // window.removeEventListener('message', this.messageHandler);
251
+ // }
252
+ // private messageHandler = (e: TronLinkMessageEvent) => {
253
+ // const message = e.data?.message;
254
+ // if (!message) {
255
+ // return;
256
+ // }
257
+ // if (message.action === 'accountsChanged') {
258
+ // setTimeout(() => {
259
+ // const preAddr = this.address || '';
260
+ // if ((this._wallet as TronLinkWallet)?.ready) {
261
+ // const address = (message.data as AccountsChangedEventData).address;
262
+ // this.setAddress(address);
263
+ // this.setState(AdapterState.Connected);
264
+ // } else {
265
+ // this.setAddress(null);
266
+ // this.setState(AdapterState.Disconnect);
267
+ // }
268
+ // const address = this.address || '';
269
+ // if (address !== preAddr) {
270
+ // this.emit('accountsChanged', this.address || '', preAddr);
271
+ // }
272
+ // if (!preAddr && this.address) {
273
+ // this.emit('connect', this.address);
274
+ // } else if (preAddr && !this.address) {
275
+ // this.emit('disconnect');
276
+ // }
277
+ // }, 200);
278
+ // } else if (message.action === 'connect') {
279
+ // const isCurConnected = this.connected;
280
+ // const preAddress = this.address || '';
281
+ // const address = (this._wallet as TronLinkWallet).tronWeb?.defaultAddress?.base58 || '';
282
+ // this.setAddress(address);
283
+ // this.setState(AdapterState.Connected);
284
+ // if (!isCurConnected) {
285
+ // this.emit('connect', address);
286
+ // } else if (address !== preAddress) {
287
+ // this.emit('accountsChanged', this.address || '', preAddress);
288
+ // }
289
+ // } else if (message.action === 'disconnect') {
290
+ // this.setAddress(null);
291
+ // this.setState(AdapterState.Disconnect);
292
+ // this.emit('disconnect');
293
+ // }
294
+ // };
295
+ // private checkIfOpenOkxWallet() {
296
+ // if (this.config.openAppWithDeeplink === false) {
297
+ // return;
298
+ // }
299
+ // if (openOkxWallet()) {
300
+ // throw new WalletNotFoundError();
301
+ // }
302
+ // }
303
+ // private _checkPromise: Promise<boolean> | null = null;
304
+ // /**
305
+ // * check if wallet exists by interval, the promise only resolve when wallet detected or timeout
306
+ // * @returns if OkxWallet exists
307
+ // */
308
+ // private _checkWallet(): Promise<boolean> {
309
+ // if (this.readyState === WalletReadyState.Found) {
310
+ // return Promise.resolve(true);
311
+ // }
312
+ // if (this._checkPromise) {
313
+ // return this._checkPromise;
314
+ // }
315
+ // const interval = 100;
316
+ // const maxTimes = Math.floor(this.config.checkTimeout / interval);
317
+ // let times = 0,
318
+ // timer: ReturnType<typeof setInterval>;
319
+ // this._checkPromise = new Promise((resolve) => {
320
+ // const check = () => {
321
+ // times++;
322
+ // const isSupport = supportOkxWallet();
323
+ // if (isSupport || times > maxTimes) {
324
+ // timer && clearInterval(timer);
325
+ // this._readyState = isSupport ? WalletReadyState.Found : WalletReadyState.NotFound;
326
+ // this._updateWallet();
327
+ // this.emit('readyStateChanged', this.readyState);
328
+ // resolve(isSupport);
329
+ // }
330
+ // };
331
+ // timer = setInterval(check, interval);
332
+ // check();
333
+ // });
334
+ // return this._checkPromise;
335
+ // }
336
+ // private _updateWallet = () => {
337
+ // let state = this.state;
338
+ // let address = this.address;
339
+ // if (supportOkxWallet()) {
340
+ // this._wallet = window.okxwallet!.tronLink;
341
+ // this._listenEvent();
342
+ // if (state === AdapterState.Connected) {
343
+ // address = this._wallet.tronWeb.defaultAddress?.base58 || null;
344
+ // }
345
+ // state = this._wallet.ready ? AdapterState.Connected : AdapterState.Disconnect;
346
+ // } else {
347
+ // this._wallet = null;
348
+ // address = null;
349
+ // state = AdapterState.NotFound;
350
+ // }
351
+ // this.setAddress(address);
352
+ // this.setState(state);
353
+ // };
354
+ // private setAddress(address: string | null) {
355
+ // this._address = address;
356
+ // }
357
+ // private setState(state: AdapterState) {
358
+ // const preState = this.state;
359
+ // if (state !== preState) {
360
+ // this._state = state;
361
+ // this.emit('stateChanged', state);
362
+ // }
363
+ // }
364
+ // }