@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,308 +1,337 @@
1
- import { Adapter, AdapterState, isInBrowser, WalletReadyState, WalletSignMessageError, WalletNotFoundError, WalletDisconnectedError, WalletSignTransactionError, WalletGetNetworkError, isInMobileBrowser, } from '@tronweb3/tronwallet-abstract-adapter';
2
- import { getNetworkInfoByTronWeb } from '@tronweb3/tronwallet-adapter-tronlink';
3
- export function supportTokenPocket() {
4
- return typeof window !== 'undefined' && !!window.tronWeb && typeof window.tokenpocket !== 'undefined';
5
- }
6
- /**
7
- * Detect if in TokenPocketApp
8
- * There will be a `tokenpocket` object on window
9
- */
10
- export function isInTokenPocket() {
11
- return isInBrowser() && typeof window.tokenpocket !== 'undefined';
12
- }
13
- export function openTokenPocket() {
14
- if (!supportTokenPocket() && isInMobileBrowser() && !isInTokenPocket()) {
15
- const { origin, pathname, search, hash } = window.location;
16
- const url = origin + pathname + search + hash;
17
- const params = {
18
- action: 'open',
19
- actionId: Date.now() + '',
20
- callbackUrl: 'http://someurl.com', // no need callback
21
- blockchain: 'Tron',
22
- chain: 'Tron',
23
- url,
24
- protocol: 'TokenPocket',
25
- version: '1.0',
26
- };
27
- window.location.href = `tpdapp://open?params=${encodeURIComponent(JSON.stringify(params))}`;
28
- return true;
29
- }
30
- return false;
31
- }
32
- export const TokenPocketAdapterName = 'TokenPocket';
33
- export class TokenPocketAdapter extends Adapter {
34
- constructor(config = {}) {
35
- super();
36
- this.name = TokenPocketAdapterName;
37
- this.url = 'https://tokenpocket.pro/';
38
- this.icon = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGc+CjxwYXRoIGQ9Ik0xMDQxLjUyIDBILTI3VjEwMjRIMTA0MS41MlYwWiIgZmlsbD0iIzI5ODBGRSIvPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNDA4XzIyNSkiPgo8cGF0aCBkPSJNNDA2Ljc5NiA0MzguNjQzSDQwNi45MjdDNDA2Ljc5NiA0MzcuODU3IDQwNi43OTYgNDM2Ljk0IDQwNi43OTYgNDM2LjE1NFY0MzguNjQzWiIgZmlsbD0iIzI5QUVGRiIvPgo8cGF0aCBkPSJNNjY3LjYwMiA0NjMuNTMzSDUyMy4yNDlWNzI0LjA3NkM1MjMuMjQ5IDczNi4zODkgNTMzLjIwNCA3NDYuMzQ1IDU0NS41MTcgNzQ2LjM0NUg2NDUuMzMzQzY1Ny42NDcgNzQ2LjM0NSA2NjcuNjAyIDczNi4zODkgNjY3LjYwMiA3MjQuMDc2VjQ2My41MzNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNDUzLjU2MyAyNzdINDQ4LjcxNkgxOTAuMjY5QzE3Ny45NTUgMjc3IDE2OCAyODYuOTU1IDE2OCAyOTkuMjY5VjM4OS42NTNDMTY4IDQwMS45NjcgMTc3Ljk1NSA0MTEuOTIyIDE5MC4yNjkgNDExLjkyMkgyNTAuOTE4SDI3NS4wMjFWNDM4LjY0NFY3MjQuNzMxQzI3NS4wMjEgNzM3LjA0NSAyODQuOTc2IDc0NyAyOTcuMjg5IDc0N0gzOTIuMTI4QzQwNC40NDEgNzQ3IDQxNC4zOTYgNzM3LjA0NSA0MTQuMzk2IDcyNC43MzFWNDM4LjY0NFY0MzYuMTU2VjQxMS45MjJINDM4LjQ5OUg0NDguMzIzSDQ1My4xN0M0OTAuMzcyIDQxMS45MjIgNTIwLjYzMSAzODEuNjYzIDUyMC42MzEgMzQ0LjQ2MUM1MjEuMDI0IDMwNy4yNTkgNDkwLjc2NSAyNzcgNDUzLjU2MyAyNzdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNjY3LjczNSA0NjMuNTMzVjY0NS4zNUM2NzIuNzEzIDY0Ni41MjkgNjc3LjgyMSA2NDcuNDQ2IDY4My4wNjEgNjQ4LjIzMkM2OTAuMzk3IDY0OS4yOCA2OTcuOTk0IDY0OS45MzUgNzA1LjU5MiA2NTAuMDY2QzcwNS45ODUgNjUwLjA2NiA3MDYuMzc4IDY1MC4wNjYgNzA2LjkwMiA2NTAuMDY2VjUwNS40NUM2ODUuMDI2IDUwNC4wMDkgNjY3LjczNSA0ODUuODAxIDY2Ny43MzUgNDYzLjUzM1oiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl80MDhfMjI1KSIvPgo8cGF0aCBkPSJNNzA5Ljc4MSAyNzdDNjA2LjgyMiAyNzcgNTIzLjI0OSAzNjAuNTczIDUyMy4yNDkgNDYzLjUzM0M1MjMuMjQ5IDU1Mi4wODQgNTg0Ljk0NiA2MjYuMjI1IDY2Ny43MzMgNjQ1LjM1VjQ2My41MzNDNjY3LjczMyA0NDAuMzQ3IDY4Ni41OTYgNDIxLjQ4NCA3MDkuNzgxIDQyMS40ODRDNzMyLjk2NyA0MjEuNDg0IDc1MS44MyA0NDAuMzQ3IDc1MS44MyA0NjMuNTMzQzc1MS44MyA0ODMuMDUxIDczOC42IDQ5OS40MjUgNzIwLjUyMyA1MDQuMTRDNzE3LjExNyA1MDUuMDU3IDcxMy40NDkgNTA1LjU4MSA3MDkuNzgxIDUwNS41ODFWNjUwLjA2NkM3MTMuNDQ5IDY1MC4wNjYgNzE2Ljk4NiA2NDkuOTM1IDcyMC41MjMgNjQ5LjgwNEM4MTguNTA1IDY0NC4xNzEgODk2LjMxNCA1NjIuOTU2IDg5Ni4zMTQgNDYzLjUzM0M4OTYuNDQ1IDM2MC41NzMgODEyLjg3MiAyNzcgNzA5Ljc4MSAyNzdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzA5Ljc4IDY1MC4wNjZWNTA1LjU4MUM3MDguNzMzIDUwNS41ODEgNzA3LjgxNiA1MDUuNTgxIDcwNi43NjggNTA1LjQ1VjY1MC4wNjZDNzA3LjgxNiA2NTAuMDY2IDcwOC44NjQgNjUwLjA2NiA3MDkuNzggNjUwLjA2NloiIGZpbGw9IndoaXRlIi8+CjwvZz4KPC9nPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzQwOF8yMjUiIHgxPSI3MDkuODQ0IiB5MT0iNTU2LjgyNyIgeDI9IjY2Ny43NTMiIHkyPSI1NTYuODI3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IndoaXRlIi8+CjxzdG9wIG9mZnNldD0iMC45NjY3IiBzdG9wLWNvbG9yPSJ3aGl0ZSIgc3RvcC1vcGFjaXR5PSIwLjMyMzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSJ3aGl0ZSIgc3RvcC1vcGFjaXR5PSIwLjMiLz4KPC9saW5lYXJHcmFkaWVudD4KPGNsaXBQYXRoIGlkPSJjbGlwMF80MDhfMjI1Ij4KPHJlY3Qgd2lkdGg9IjcyOC40NDgiIGhlaWdodD0iNDcwIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY4IDI3NykiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K';
39
- this._readyState = isInBrowser() ? WalletReadyState.Loading : WalletReadyState.NotFound;
40
- this._state = AdapterState.Loading;
41
- this.checkReadyInterval = null;
42
- this._checkPromise = null;
43
- this._updateWallet = () => {
44
- let state = this.state;
45
- let address = this.address;
46
- if (supportTokenPocket()) {
47
- this._wallet = {
48
- tron: window.tokenpocket?.tron,
49
- ready: window.tronWeb?.ready,
50
- tronWeb: window.tokenpocket?.tronWeb,
51
- };
52
- if (state === AdapterState.Connected) {
53
- address = this._wallet.tronWeb.defaultAddress?.base58 || null;
54
- }
55
- state = window.tronWeb?.ready ? AdapterState.Connected : AdapterState.Disconnect;
56
- if (!window.tronWeb?.ready) {
57
- this.checkForWalletReady();
58
- }
59
- }
60
- else {
61
- this._wallet = null;
62
- address = null;
63
- state = AdapterState.NotFound;
64
- }
65
- this.setAddress(address);
66
- this.setState(state);
67
- };
68
- const { checkTimeout = 2 * 1000, openUrlWhenWalletNotFound = true, openAppWithDeeplink = true } = config;
69
- if (typeof checkTimeout !== 'number') {
70
- throw new Error('[TokenPocketAdapter] config.checkTimeout should be a number');
71
- }
72
- this.config = {
73
- checkTimeout,
74
- openAppWithDeeplink,
75
- openUrlWhenWalletNotFound,
76
- };
77
- this._connecting = false;
78
- this._wallet = null;
79
- this._address = null;
80
- if (supportTokenPocket()) {
81
- this._readyState = WalletReadyState.Found;
82
- this._updateWallet();
83
- }
84
- else {
85
- this._checkWallet().then(() => {
86
- if (this.connected) {
87
- this.emit('connect', this.address || '');
88
- }
89
- });
90
- }
91
- }
92
- get address() {
93
- return this._address;
94
- }
95
- get state() {
96
- return this._state;
97
- }
98
- get readyState() {
99
- return this._readyState;
100
- }
101
- get connecting() {
102
- return this._connecting;
103
- }
104
- /**
105
- * Get network information.
106
- * @returns {Network} Current network information.
107
- */
108
- async network() {
109
- try {
110
- await this._checkWallet();
111
- if (this.state !== AdapterState.Connected)
112
- throw new WalletDisconnectedError();
113
- const wallet = this._wallet;
114
- if (!wallet || !wallet.tronWeb)
115
- throw new WalletDisconnectedError();
116
- try {
117
- return await getNetworkInfoByTronWeb(wallet.tronWeb);
118
- }
119
- catch (e) {
120
- throw new WalletGetNetworkError(e?.message, e);
121
- }
122
- }
123
- catch (e) {
124
- this.emit('error', e);
125
- throw e;
126
- }
127
- }
128
- async connect() {
129
- try {
130
- this.checkIfOpenApp();
131
- if (this.connected || this.connecting)
132
- return;
133
- await this._checkWallet();
134
- if (this.readyState === WalletReadyState.NotFound) {
135
- if (this.config.openUrlWhenWalletNotFound !== false && isInBrowser()) {
136
- window.open(this.url, '_blank');
137
- }
138
- throw new WalletNotFoundError();
139
- }
140
- if (!this._wallet)
141
- return;
142
- this._connecting = true;
143
- const wallet = this._wallet;
144
- const res = await wallet.tron.request({ method: 'eth_requestAccounts' });
145
- const address = res[0];
146
- this.setAddress(address);
147
- this.setState(AdapterState.Connected);
148
- this.emit('connect', this.address || '');
149
- }
150
- catch (error) {
151
- this.emit('error', error);
152
- throw error;
153
- }
154
- finally {
155
- this._connecting = false;
156
- }
157
- }
158
- async disconnect() {
159
- if (this.state !== AdapterState.Connected) {
160
- return;
161
- }
162
- this.setAddress(null);
163
- this.setState(AdapterState.Disconnect);
164
- this.emit('disconnect');
165
- }
166
- async signTransaction(transaction, privateKey) {
167
- try {
168
- const wallet = await this.checkAndGetWallet();
169
- try {
170
- return await wallet.tronWeb.trx.sign(transaction, privateKey);
171
- }
172
- catch (error) {
173
- if (error instanceof Error) {
174
- throw new WalletSignTransactionError(error.message, error);
175
- }
176
- else {
177
- throw new WalletSignTransactionError(error, new Error(error));
178
- }
179
- }
180
- }
181
- catch (error) {
182
- this.emit('error', error);
183
- throw error;
184
- }
185
- }
186
- async multiSign(transaction, privateKey, permissionId) {
187
- try {
188
- const wallet = await this.checkAndGetWallet();
189
- try {
190
- return await wallet.tronWeb.trx.multiSign(transaction, privateKey, permissionId);
191
- }
192
- catch (error) {
193
- if (error instanceof Error) {
194
- throw new WalletSignTransactionError(error.message, error);
195
- }
196
- else {
197
- throw new WalletSignTransactionError(error, new Error(error));
198
- }
199
- }
200
- }
201
- catch (error) {
202
- this.emit('error', error);
203
- throw error;
204
- }
205
- }
206
- async signMessage(message, privateKey) {
207
- try {
208
- const wallet = await this.checkAndGetWallet();
209
- try {
210
- return await wallet.tronWeb.trx.signMessageV2(message, privateKey);
211
- }
212
- catch (error) {
213
- if (error instanceof Error) {
214
- throw new WalletSignMessageError(error.message, error);
215
- }
216
- else {
217
- throw new WalletSignMessageError(error, new Error(error));
218
- }
219
- }
220
- }
221
- catch (error) {
222
- this.emit('error', error);
223
- throw error;
224
- }
225
- }
226
- async checkAndGetWallet() {
227
- this.checkIfOpenApp();
228
- await this._checkWallet();
229
- if (!this.connected)
230
- throw new WalletDisconnectedError();
231
- const wallet = this._wallet;
232
- if (!wallet || !wallet.tronWeb)
233
- throw new WalletDisconnectedError();
234
- return wallet;
235
- }
236
- checkIfOpenApp() {
237
- if (this.config.openAppWithDeeplink === false) {
238
- return;
239
- }
240
- if (openTokenPocket()) {
241
- throw new WalletNotFoundError();
242
- }
243
- }
244
- checkForWalletReady() {
245
- if (this.checkReadyInterval) {
246
- return;
247
- }
248
- let times = 0;
249
- const maxTimes = Math.floor(this.config.checkTimeout / 200);
250
- const check = () => {
251
- if (window?.tronWeb?.ready) {
252
- this.checkReadyInterval && clearInterval(this.checkReadyInterval);
253
- this.checkReadyInterval = null;
254
- this._updateWallet();
255
- this.emit('connect', this.address || '');
256
- }
257
- else if (times > maxTimes) {
258
- this.checkReadyInterval && clearInterval(this.checkReadyInterval);
259
- this.checkReadyInterval = null;
260
- }
261
- else {
262
- times++;
263
- }
264
- };
265
- this.checkReadyInterval = setInterval(check, 200);
266
- }
267
- /**
268
- * check if wallet exists by interval, the promise only resolve when wallet detected or timeout
269
- * @returns if wallet exists
270
- */
271
- _checkWallet() {
272
- if (this.readyState === WalletReadyState.Found) {
273
- return Promise.resolve(true);
274
- }
275
- if (this._checkPromise) {
276
- return this._checkPromise;
277
- }
278
- const interval = 100;
279
- const maxTimes = Math.floor(this.config.checkTimeout / interval);
280
- let times = 0, timer;
281
- this._checkPromise = new Promise((resolve) => {
282
- const check = () => {
283
- times++;
284
- const isSupport = supportTokenPocket();
285
- if (isSupport || times > maxTimes) {
286
- timer && clearInterval(timer);
287
- this._readyState = isSupport ? WalletReadyState.Found : WalletReadyState.NotFound;
288
- this._updateWallet();
289
- this.emit('readyStateChanged', this.readyState);
290
- resolve(isSupport);
291
- }
292
- };
293
- timer = setInterval(check, interval);
294
- check();
295
- });
296
- return this._checkPromise;
297
- }
298
- setAddress(address) {
299
- this._address = address;
300
- }
301
- setState(state) {
302
- const preState = this.state;
303
- if (state !== preState) {
304
- this._state = state;
305
- this.emit('stateChanged', state);
306
- }
307
- }
308
- }
1
+ // import {
2
+ // Adapter,
3
+ // AdapterState,
4
+ // isInBrowser,
5
+ // WalletReadyState,
6
+ // WalletSignMessageError,
7
+ // WalletNotFoundError,
8
+ // WalletDisconnectedError,
9
+ // WalletSignTransactionError,
10
+ // WalletGetNetworkError,
11
+ // isInMobileBrowser,
12
+ // } from '@tronweb3/tronwallet-abstract-adapter';
13
+ // import type {
14
+ // Transaction,
15
+ // SignedTransaction,
16
+ // AdapterName,
17
+ // BaseAdapterConfig,
18
+ // Network,
19
+ // TronWeb,
20
+ // } from '@tronweb3/tronwallet-abstract-adapter';
21
+ // import { getNetworkInfoByTronWeb } from '@tronweb3/tronwallet-adapter-tronlink';
22
+ // import type { Tron } from '@tronweb3/tronwallet-adapter-tronlink';
23
+ // export function supportTokenPocket() {
24
+ // return typeof window !== 'undefined' && !!window.tronWeb && typeof (window as any).tokenpocket !== 'undefined';
25
+ // }
26
+ // /**
27
+ // * Detect if in TokenPocketApp
28
+ // * There will be a `tokenpocket` object on window
29
+ // */
30
+ // export function isInTokenPocket() {
31
+ // return isInBrowser() && typeof (window as any).tokenpocket !== 'undefined';
32
+ // }
33
+ // export function openTokenPocket() {
34
+ // if (!supportTokenPocket() && isInMobileBrowser() && !isInTokenPocket()) {
35
+ // const { origin, pathname, search, hash } = window.location;
36
+ // const url = origin + pathname + search + hash;
37
+ // const params = {
38
+ // action: 'open',
39
+ // actionId: Date.now() + '',
40
+ // callbackUrl: 'http://someurl.com', // no need callback
41
+ // blockchain: 'Tron',
42
+ // chain: 'Tron',
43
+ // url,
44
+ // protocol: 'TokenPocket',
45
+ // version: '1.0',
46
+ // };
47
+ // window.location.href = `tpdapp://open?params=${encodeURIComponent(JSON.stringify(params))}`;
48
+ // return true;
49
+ // }
50
+ // return false;
51
+ // }
52
+ // export interface TokenPocketAdapterConfig extends BaseAdapterConfig {
53
+ // /**
54
+ // * Timeout in millisecond for checking if is in TokenPocket App.
55
+ // * Default is 2 * 1000ms
56
+ // */
57
+ // checkTimeout?: number;
58
+ // /**
59
+ // * Set if open TokenPocket app using DeepLink.
60
+ // * Default is true.
61
+ // */
62
+ // openAppWithDeeplink?: boolean;
63
+ // }
64
+ // export const TokenPocketAdapterName = 'TokenPocket' as AdapterName<'TokenPocket'>;
65
+ // export interface TokenPocketWallet {
66
+ // ready: boolean;
67
+ // tronWeb: TronWeb;
68
+ // tron: Tron;
69
+ // }
70
+ // declare global {
71
+ // interface Window {
72
+ // tokenpocket?: TokenPocketWallet;
73
+ // }
74
+ // }
75
+ // export class TokenPocketAdapter extends Adapter {
76
+ // name = TokenPocketAdapterName;
77
+ // url = 'https://tokenpocket.pro/';
78
+ // icon =
79
+ // 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGc+CjxwYXRoIGQ9Ik0xMDQxLjUyIDBILTI3VjEwMjRIMTA0MS41MlYwWiIgZmlsbD0iIzI5ODBGRSIvPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNDA4XzIyNSkiPgo8cGF0aCBkPSJNNDA2Ljc5NiA0MzguNjQzSDQwNi45MjdDNDA2Ljc5NiA0MzcuODU3IDQwNi43OTYgNDM2Ljk0IDQwNi43OTYgNDM2LjE1NFY0MzguNjQzWiIgZmlsbD0iIzI5QUVGRiIvPgo8cGF0aCBkPSJNNjY3LjYwMiA0NjMuNTMzSDUyMy4yNDlWNzI0LjA3NkM1MjMuMjQ5IDczNi4zODkgNTMzLjIwNCA3NDYuMzQ1IDU0NS41MTcgNzQ2LjM0NUg2NDUuMzMzQzY1Ny42NDcgNzQ2LjM0NSA2NjcuNjAyIDczNi4zODkgNjY3LjYwMiA3MjQuMDc2VjQ2My41MzNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNDUzLjU2MyAyNzdINDQ4LjcxNkgxOTAuMjY5QzE3Ny45NTUgMjc3IDE2OCAyODYuOTU1IDE2OCAyOTkuMjY5VjM4OS42NTNDMTY4IDQwMS45NjcgMTc3Ljk1NSA0MTEuOTIyIDE5MC4yNjkgNDExLjkyMkgyNTAuOTE4SDI3NS4wMjFWNDM4LjY0NFY3MjQuNzMxQzI3NS4wMjEgNzM3LjA0NSAyODQuOTc2IDc0NyAyOTcuMjg5IDc0N0gzOTIuMTI4QzQwNC40NDEgNzQ3IDQxNC4zOTYgNzM3LjA0NSA0MTQuMzk2IDcyNC43MzFWNDM4LjY0NFY0MzYuMTU2VjQxMS45MjJINDM4LjQ5OUg0NDguMzIzSDQ1My4xN0M0OTAuMzcyIDQxMS45MjIgNTIwLjYzMSAzODEuNjYzIDUyMC42MzEgMzQ0LjQ2MUM1MjEuMDI0IDMwNy4yNTkgNDkwLjc2NSAyNzcgNDUzLjU2MyAyNzdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNjY3LjczNSA0NjMuNTMzVjY0NS4zNUM2NzIuNzEzIDY0Ni41MjkgNjc3LjgyMSA2NDcuNDQ2IDY4My4wNjEgNjQ4LjIzMkM2OTAuMzk3IDY0OS4yOCA2OTcuOTk0IDY0OS45MzUgNzA1LjU5MiA2NTAuMDY2QzcwNS45ODUgNjUwLjA2NiA3MDYuMzc4IDY1MC4wNjYgNzA2LjkwMiA2NTAuMDY2VjUwNS40NUM2ODUuMDI2IDUwNC4wMDkgNjY3LjczNSA0ODUuODAxIDY2Ny43MzUgNDYzLjUzM1oiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl80MDhfMjI1KSIvPgo8cGF0aCBkPSJNNzA5Ljc4MSAyNzdDNjA2LjgyMiAyNzcgNTIzLjI0OSAzNjAuNTczIDUyMy4yNDkgNDYzLjUzM0M1MjMuMjQ5IDU1Mi4wODQgNTg0Ljk0NiA2MjYuMjI1IDY2Ny43MzMgNjQ1LjM1VjQ2My41MzNDNjY3LjczMyA0NDAuMzQ3IDY4Ni41OTYgNDIxLjQ4NCA3MDkuNzgxIDQyMS40ODRDNzMyLjk2NyA0MjEuNDg0IDc1MS44MyA0NDAuMzQ3IDc1MS44MyA0NjMuNTMzQzc1MS44MyA0ODMuMDUxIDczOC42IDQ5OS40MjUgNzIwLjUyMyA1MDQuMTRDNzE3LjExNyA1MDUuMDU3IDcxMy40NDkgNTA1LjU4MSA3MDkuNzgxIDUwNS41ODFWNjUwLjA2NkM3MTMuNDQ5IDY1MC4wNjYgNzE2Ljk4NiA2NDkuOTM1IDcyMC41MjMgNjQ5LjgwNEM4MTguNTA1IDY0NC4xNzEgODk2LjMxNCA1NjIuOTU2IDg5Ni4zMTQgNDYzLjUzM0M4OTYuNDQ1IDM2MC41NzMgODEyLjg3MiAyNzcgNzA5Ljc4MSAyNzdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzA5Ljc4IDY1MC4wNjZWNTA1LjU4MUM3MDguNzMzIDUwNS41ODEgNzA3LjgxNiA1MDUuNTgxIDcwNi43NjggNTA1LjQ1VjY1MC4wNjZDNzA3LjgxNiA2NTAuMDY2IDcwOC44NjQgNjUwLjA2NiA3MDkuNzggNjUwLjA2NloiIGZpbGw9IndoaXRlIi8+CjwvZz4KPC9nPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzQwOF8yMjUiIHgxPSI3MDkuODQ0IiB5MT0iNTU2LjgyNyIgeDI9IjY2Ny43NTMiIHkyPSI1NTYuODI3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IndoaXRlIi8+CjxzdG9wIG9mZnNldD0iMC45NjY3IiBzdG9wLWNvbG9yPSJ3aGl0ZSIgc3RvcC1vcGFjaXR5PSIwLjMyMzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSJ3aGl0ZSIgc3RvcC1vcGFjaXR5PSIwLjMiLz4KPC9saW5lYXJHcmFkaWVudD4KPGNsaXBQYXRoIGlkPSJjbGlwMF80MDhfMjI1Ij4KPHJlY3Qgd2lkdGg9IjcyOC40NDgiIGhlaWdodD0iNDcwIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY4IDI3NykiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K';
80
+ // config: Required<TokenPocketAdapterConfig>;
81
+ // private _readyState: WalletReadyState = isInBrowser() ? WalletReadyState.Loading : WalletReadyState.NotFound;
82
+ // private _state: AdapterState = AdapterState.Loading;
83
+ // private _connecting: boolean;
84
+ // private _wallet: TokenPocketWallet | null;
85
+ // private _address: string | null;
86
+ // constructor(config: TokenPocketAdapterConfig = {}) {
87
+ // super();
88
+ // const { checkTimeout = 2 * 1000, openUrlWhenWalletNotFound = true, openAppWithDeeplink = true } = config;
89
+ // if (typeof checkTimeout !== 'number') {
90
+ // throw new Error('[TokenPocketAdapter] config.checkTimeout should be a number');
91
+ // }
92
+ // this.config = {
93
+ // checkTimeout,
94
+ // openAppWithDeeplink,
95
+ // openUrlWhenWalletNotFound,
96
+ // };
97
+ // this._connecting = false;
98
+ // this._wallet = null;
99
+ // this._address = null;
100
+ // if (supportTokenPocket()) {
101
+ // this._readyState = WalletReadyState.Found;
102
+ // this._updateWallet();
103
+ // } else {
104
+ // this._checkWallet().then(() => {
105
+ // if (this.connected) {
106
+ // this.emit('connect', this.address || '');
107
+ // }
108
+ // });
109
+ // }
110
+ // }
111
+ // get address() {
112
+ // return this._address;
113
+ // }
114
+ // get state() {
115
+ // return this._state;
116
+ // }
117
+ // get readyState() {
118
+ // return this._readyState;
119
+ // }
120
+ // get connecting() {
121
+ // return this._connecting;
122
+ // }
123
+ // /**
124
+ // * Get network information.
125
+ // * @returns {Network} Current network information.
126
+ // */
127
+ // async network(): Promise<Network> {
128
+ // try {
129
+ // await this._checkWallet();
130
+ // if (this.state !== AdapterState.Connected) throw new WalletDisconnectedError();
131
+ // const wallet = this._wallet;
132
+ // if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError();
133
+ // try {
134
+ // return await getNetworkInfoByTronWeb(wallet.tronWeb);
135
+ // } catch (e: any) {
136
+ // throw new WalletGetNetworkError(e?.message, e);
137
+ // }
138
+ // } catch (e: any) {
139
+ // this.emit('error', e);
140
+ // throw e;
141
+ // }
142
+ // }
143
+ // async connect(): Promise<void> {
144
+ // try {
145
+ // this.checkIfOpenApp();
146
+ // if (this.connected || this.connecting) return;
147
+ // await this._checkWallet();
148
+ // if (this.readyState === WalletReadyState.NotFound) {
149
+ // if (this.config.openUrlWhenWalletNotFound !== false && isInBrowser()) {
150
+ // window.open(this.url, '_blank');
151
+ // }
152
+ // throw new WalletNotFoundError();
153
+ // }
154
+ // if (!this._wallet) return;
155
+ // this._connecting = true;
156
+ // const wallet = this._wallet as TokenPocketWallet;
157
+ // const res = await wallet.tron.request({ method: 'eth_requestAccounts' });
158
+ // const address = res[0];
159
+ // this.setAddress(address);
160
+ // this.setState(AdapterState.Connected);
161
+ // this.emit('connect', this.address || '');
162
+ // } catch (error: any) {
163
+ // this.emit('error', error);
164
+ // throw error;
165
+ // } finally {
166
+ // this._connecting = false;
167
+ // }
168
+ // }
169
+ // async disconnect(): Promise<void> {
170
+ // if (this.state !== AdapterState.Connected) {
171
+ // return;
172
+ // }
173
+ // this.setAddress(null);
174
+ // this.setState(AdapterState.Disconnect);
175
+ // this.emit('disconnect');
176
+ // }
177
+ // async signTransaction(transaction: Transaction, privateKey?: string): Promise<SignedTransaction> {
178
+ // try {
179
+ // const wallet = await this.checkAndGetWallet();
180
+ // try {
181
+ // return await wallet.tronWeb.trx.sign(transaction, privateKey);
182
+ // } catch (error: any) {
183
+ // if (error instanceof Error) {
184
+ // throw new WalletSignTransactionError(error.message, error);
185
+ // } else {
186
+ // throw new WalletSignTransactionError(error, new Error(error));
187
+ // }
188
+ // }
189
+ // } catch (error: any) {
190
+ // this.emit('error', error);
191
+ // throw error;
192
+ // }
193
+ // }
194
+ // async multiSign(
195
+ // transaction: Transaction,
196
+ // privateKey?: string | false,
197
+ // permissionId?: number
198
+ // ): Promise<SignedTransaction> {
199
+ // try {
200
+ // const wallet = await this.checkAndGetWallet();
201
+ // try {
202
+ // return await wallet.tronWeb.trx.multiSign(transaction, privateKey, permissionId);
203
+ // } catch (error: any) {
204
+ // if (error instanceof Error) {
205
+ // throw new WalletSignTransactionError(error.message, error);
206
+ // } else {
207
+ // throw new WalletSignTransactionError(error, new Error(error));
208
+ // }
209
+ // }
210
+ // } catch (error: any) {
211
+ // this.emit('error', error);
212
+ // throw error;
213
+ // }
214
+ // }
215
+ // async signMessage(message: string, privateKey?: string): Promise<string> {
216
+ // try {
217
+ // const wallet = await this.checkAndGetWallet();
218
+ // try {
219
+ // return await wallet.tronWeb.trx.signMessageV2(message, privateKey);
220
+ // } catch (error: any) {
221
+ // if (error instanceof Error) {
222
+ // throw new WalletSignMessageError(error.message, error);
223
+ // } else {
224
+ // throw new WalletSignMessageError(error, new Error(error));
225
+ // }
226
+ // }
227
+ // } catch (error: any) {
228
+ // this.emit('error', error);
229
+ // throw error;
230
+ // }
231
+ // }
232
+ // private async checkAndGetWallet() {
233
+ // this.checkIfOpenApp();
234
+ // await this._checkWallet();
235
+ // if (!this.connected) throw new WalletDisconnectedError();
236
+ // const wallet = this._wallet;
237
+ // if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError();
238
+ // return wallet as TokenPocketWallet;
239
+ // }
240
+ // private checkIfOpenApp() {
241
+ // if (this.config.openAppWithDeeplink === false) {
242
+ // return;
243
+ // }
244
+ // if (openTokenPocket()) {
245
+ // throw new WalletNotFoundError();
246
+ // }
247
+ // }
248
+ // private checkReadyInterval: ReturnType<typeof setInterval> | null = null;
249
+ // private checkForWalletReady() {
250
+ // if (this.checkReadyInterval) {
251
+ // return;
252
+ // }
253
+ // let times = 0;
254
+ // const maxTimes = Math.floor(this.config.checkTimeout / 200);
255
+ // const check = () => {
256
+ // if (window?.tronWeb?.ready) {
257
+ // this.checkReadyInterval && clearInterval(this.checkReadyInterval);
258
+ // this.checkReadyInterval = null;
259
+ // this._updateWallet();
260
+ // this.emit('connect', this.address || '');
261
+ // } else if (times > maxTimes) {
262
+ // this.checkReadyInterval && clearInterval(this.checkReadyInterval);
263
+ // this.checkReadyInterval = null;
264
+ // } else {
265
+ // times++;
266
+ // }
267
+ // };
268
+ // this.checkReadyInterval = setInterval(check, 200);
269
+ // }
270
+ // private _checkPromise: Promise<boolean> | null = null;
271
+ // /**
272
+ // * check if wallet exists by interval, the promise only resolve when wallet detected or timeout
273
+ // * @returns if wallet exists
274
+ // */
275
+ // private _checkWallet(): Promise<boolean> {
276
+ // if (this.readyState === WalletReadyState.Found) {
277
+ // return Promise.resolve(true);
278
+ // }
279
+ // if (this._checkPromise) {
280
+ // return this._checkPromise;
281
+ // }
282
+ // const interval = 100;
283
+ // const maxTimes = Math.floor(this.config.checkTimeout / interval);
284
+ // let times = 0,
285
+ // timer: ReturnType<typeof setInterval>;
286
+ // this._checkPromise = new Promise((resolve) => {
287
+ // const check = () => {
288
+ // times++;
289
+ // const isSupport = supportTokenPocket();
290
+ // if (isSupport || times > maxTimes) {
291
+ // timer && clearInterval(timer);
292
+ // this._readyState = isSupport ? WalletReadyState.Found : WalletReadyState.NotFound;
293
+ // this._updateWallet();
294
+ // this.emit('readyStateChanged', this.readyState);
295
+ // resolve(isSupport);
296
+ // }
297
+ // };
298
+ // timer = setInterval(check, interval);
299
+ // check();
300
+ // });
301
+ // return this._checkPromise;
302
+ // }
303
+ // private _updateWallet = () => {
304
+ // let state = this.state;
305
+ // let address = this.address;
306
+ // if (supportTokenPocket()) {
307
+ // this._wallet = {
308
+ // tron: window.tokenpocket?.tron,
309
+ // ready: window.tronWeb?.ready,
310
+ // tronWeb: window.tokenpocket?.tronWeb,
311
+ // } as TokenPocketWallet;
312
+ // if (state === AdapterState.Connected) {
313
+ // address = this._wallet.tronWeb.defaultAddress?.base58 || null;
314
+ // }
315
+ // state = window.tronWeb?.ready ? AdapterState.Connected : AdapterState.Disconnect;
316
+ // if (!window.tronWeb?.ready) {
317
+ // this.checkForWalletReady();
318
+ // }
319
+ // } else {
320
+ // this._wallet = null;
321
+ // address = null;
322
+ // state = AdapterState.NotFound;
323
+ // }
324
+ // this.setAddress(address);
325
+ // this.setState(state);
326
+ // };
327
+ // private setAddress(address: string | null) {
328
+ // this._address = address;
329
+ // }
330
+ // private setState(state: AdapterState) {
331
+ // const preState = this.state;
332
+ // if (state !== preState) {
333
+ // this._state = state;
334
+ // this.emit('stateChanged', state);
335
+ // }
336
+ // }
337
+ // }