@gala-chain/launchpad-sdk 8.1.0 → 9.0.0-rc.1

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 (372) hide show
  1. package/CHANGELOG.md +837 -0
  2. package/EXAMPLES.md +95 -681
  3. package/MIGRATING-TO-9.0.md +343 -0
  4. package/README.md +46 -17
  5. package/dist/LaunchpadSDK.d.ts +536 -616
  6. package/dist/LaunchpadSDK.d.ts.map +1 -1
  7. package/dist/api/LaunchpadAPI.d.ts +6 -176
  8. package/dist/api/LaunchpadAPI.d.ts.map +1 -1
  9. package/dist/auth/SessionAuthService.d.ts +32 -2
  10. package/dist/auth/SessionAuthService.d.ts.map +1 -1
  11. package/dist/auth/SignatureAuth.d.ts +2 -2
  12. package/dist/auth/SignatureAuth.d.ts.map +1 -1
  13. package/dist/auth/session.d.ts +59 -0
  14. package/dist/auth/session.d.ts.map +1 -0
  15. package/dist/auth/types.d.ts +7 -2
  16. package/dist/auth/types.d.ts.map +1 -1
  17. package/dist/config/environments.d.ts +7 -2
  18. package/dist/config/environments.d.ts.map +1 -1
  19. package/dist/constants/decimals.d.ts +0 -23
  20. package/dist/constants/decimals.d.ts.map +1 -1
  21. package/dist/constants/endpoints.d.ts +19 -8
  22. package/dist/constants/endpoints.d.ts.map +1 -1
  23. package/dist/constants/enums.d.ts +19 -0
  24. package/dist/constants/enums.d.ts.map +1 -1
  25. package/dist/constants/version.generated.d.ts +1 -1
  26. package/dist/constants/version.generated.d.ts.map +1 -1
  27. package/dist/errors/LaunchpadSDKError.d.ts +18 -0
  28. package/dist/errors/LaunchpadSDKError.d.ts.map +1 -1
  29. package/dist/helpers/sdk.d.ts.map +1 -1
  30. package/dist/index.browser.d.ts +40 -45
  31. package/dist/index.browser.d.ts.map +1 -1
  32. package/dist/index.browser.esm.js +1 -1
  33. package/dist/index.cjs +1 -1
  34. package/dist/index.esm.js +1 -1
  35. package/dist/index.js +1 -1
  36. package/dist/index.node.d.ts +4 -5
  37. package/dist/index.node.d.ts.map +1 -1
  38. package/dist/launchpad/bundle-submission.d.ts +57 -10
  39. package/dist/launchpad/bundle-submission.d.ts.map +1 -1
  40. package/dist/launchpad/create-sale-validation.d.ts +19 -0
  41. package/dist/launchpad/create-sale-validation.d.ts.map +1 -0
  42. package/dist/launchpad/transport.d.ts +33 -2
  43. package/dist/launchpad/transport.d.ts.map +1 -1
  44. package/dist/launchpad/writes.d.ts +37 -11
  45. package/dist/launchpad/writes.d.ts.map +1 -1
  46. package/dist/native.cjs +1 -1
  47. package/dist/native.d.ts +4 -5
  48. package/dist/native.d.ts.map +1 -1
  49. package/dist/native.esm.js +1 -1
  50. package/dist/schemas/launchpad.d.ts +3 -2
  51. package/dist/schemas/launchpad.d.ts.map +1 -1
  52. package/dist/schemas/primitives.d.ts +12 -2
  53. package/dist/schemas/primitives.d.ts.map +1 -1
  54. package/dist/schemas/user.d.ts +3 -18
  55. package/dist/schemas/user.d.ts.map +1 -1
  56. package/dist/schemas/validators.d.ts +3 -3
  57. package/dist/services/AbstractCacheService.d.ts +2 -2
  58. package/dist/services/ApiKeyService.d.ts +1 -1
  59. package/dist/services/BanService.d.ts +1 -1
  60. package/dist/services/ChartService.d.ts.map +1 -1
  61. package/dist/services/ContentReactionService.d.ts +6 -18
  62. package/dist/services/ContentReactionService.d.ts.map +1 -1
  63. package/dist/services/EventsQueryService.d.ts +47 -0
  64. package/dist/services/EventsQueryService.d.ts.map +1 -0
  65. package/dist/services/GalaChainBalanceService.d.ts +17 -89
  66. package/dist/services/GalaChainBalanceService.d.ts.map +1 -1
  67. package/dist/services/GalaChainLockService.d.ts +19 -20
  68. package/dist/services/GalaChainLockService.d.ts.map +1 -1
  69. package/dist/services/GalaChainService.d.ts +28 -15
  70. package/dist/services/GalaChainService.d.ts.map +1 -1
  71. package/dist/services/GalaChainTokenService.d.ts +25 -53
  72. package/dist/services/GalaChainTokenService.d.ts.map +1 -1
  73. package/dist/services/GalaChainTransferService.d.ts +42 -41
  74. package/dist/services/GalaChainTransferService.d.ts.map +1 -1
  75. package/dist/services/HealthService.d.ts +33 -0
  76. package/dist/services/HealthService.d.ts.map +1 -0
  77. package/dist/services/ImageService.d.ts +3 -3
  78. package/dist/services/ImageService.d.ts.map +1 -1
  79. package/dist/services/LaunchpadPriceService.d.ts +66 -0
  80. package/dist/services/LaunchpadPriceService.d.ts.map +1 -0
  81. package/dist/services/LaunchpadService.d.ts +34 -42
  82. package/dist/services/LaunchpadService.d.ts.map +1 -1
  83. package/dist/services/MessagesService.d.ts +12 -44
  84. package/dist/services/MessagesService.d.ts.map +1 -1
  85. package/dist/services/ModeratorService.d.ts +2 -2
  86. package/dist/services/ModeratorService.d.ts.map +1 -1
  87. package/dist/services/NftCollectionService.d.ts +22 -6
  88. package/dist/services/NftCollectionService.d.ts.map +1 -1
  89. package/dist/services/OverseerService.d.ts +3 -3
  90. package/dist/services/OverseerService.d.ts.map +1 -1
  91. package/dist/services/PlatformStatsService.d.ts +1 -2
  92. package/dist/services/PlatformStatsService.d.ts.map +1 -1
  93. package/dist/services/PoolService.d.ts +28 -65
  94. package/dist/services/PoolService.d.ts.map +1 -1
  95. package/dist/services/RestrictedNamesService.d.ts +1 -1
  96. package/dist/services/RestrictedNamesService.d.ts.map +1 -1
  97. package/dist/services/StreamChatService.d.ts +8 -19
  98. package/dist/services/StreamChatService.d.ts.map +1 -1
  99. package/dist/services/StreamTokenServiceBase.d.ts +2 -1
  100. package/dist/services/StreamTokenServiceBase.d.ts.map +1 -1
  101. package/dist/services/StreamWebSocketService.d.ts +423 -451
  102. package/dist/services/StreamWebSocketService.d.ts.map +1 -1
  103. package/dist/services/StreamingService.d.ts +14 -15
  104. package/dist/services/StreamingService.d.ts.map +1 -1
  105. package/dist/services/TokenBanService.d.ts +1 -1
  106. package/dist/services/TokenResolverService.d.ts +5 -5
  107. package/dist/services/TokenResolverService.d.ts.map +1 -1
  108. package/dist/services/TradeService.d.ts +13 -9
  109. package/dist/services/TradeService.d.ts.map +1 -1
  110. package/dist/services/TradingQuotesService.d.ts.map +1 -1
  111. package/dist/services/UserService.d.ts +64 -20
  112. package/dist/services/UserService.d.ts.map +1 -1
  113. package/dist/services/gateway-transport.d.ts +32 -0
  114. package/dist/services/gateway-transport.d.ts.map +1 -0
  115. package/dist/services/gateway-writes.d.ts +83 -0
  116. package/dist/services/gateway-writes.d.ts.map +1 -0
  117. package/dist/services/realtime/event-catalog.d.ts +456 -0
  118. package/dist/services/realtime/event-catalog.d.ts.map +1 -0
  119. package/dist/services/shared/pagination-helpers.d.ts +22 -5
  120. package/dist/services/shared/pagination-helpers.d.ts.map +1 -1
  121. package/dist/services/shared/service-validators.d.ts.map +1 -1
  122. package/dist/signing/index.d.ts +2 -3
  123. package/dist/signing/index.d.ts.map +1 -1
  124. package/dist/signing/signers.d.ts +64 -9
  125. package/dist/signing/signers.d.ts.map +1 -1
  126. package/dist/signing/types.d.ts +7 -10
  127. package/dist/signing/types.d.ts.map +1 -1
  128. package/dist/types/api-key.dto.d.ts +1 -1
  129. package/dist/types/ban.dto.d.ts +21 -16
  130. package/dist/types/ban.dto.d.ts.map +1 -1
  131. package/dist/types/burn.dto.d.ts +4 -2
  132. package/dist/types/burn.dto.d.ts.map +1 -1
  133. package/dist/types/chat-messages.dto.d.ts +10 -72
  134. package/dist/types/chat-messages.dto.d.ts.map +1 -1
  135. package/dist/types/comments.dto.d.ts +8 -78
  136. package/dist/types/comments.dto.d.ts.map +1 -1
  137. package/dist/types/common.d.ts +42 -85
  138. package/dist/types/common.d.ts.map +1 -1
  139. package/dist/types/constraints.d.ts +47 -23
  140. package/dist/types/constraints.d.ts.map +1 -1
  141. package/dist/types/content-flag.dto.d.ts +5 -1
  142. package/dist/types/content-flag.dto.d.ts.map +1 -1
  143. package/dist/types/content-reactions.dto.d.ts +0 -4
  144. package/dist/types/content-reactions.dto.d.ts.map +1 -1
  145. package/dist/types/dto.d.ts +0 -5
  146. package/dist/types/dto.d.ts.map +1 -1
  147. package/dist/types/engagement-stats.dto.d.ts +16 -27
  148. package/dist/types/engagement-stats.dto.d.ts.map +1 -1
  149. package/dist/types/events.dto.d.ts +89 -0
  150. package/dist/types/events.dto.d.ts.map +1 -1
  151. package/dist/types/global-feed.dto.d.ts +23 -164
  152. package/dist/types/global-feed.dto.d.ts.map +1 -1
  153. package/dist/types/health.dto.d.ts +32 -0
  154. package/dist/types/health.dto.d.ts.map +1 -0
  155. package/dist/types/launchpad.dto.d.ts +77 -323
  156. package/dist/types/launchpad.dto.d.ts.map +1 -1
  157. package/dist/types/lock.dto.d.ts +12 -7
  158. package/dist/types/lock.dto.d.ts.map +1 -1
  159. package/dist/types/messages.dto.d.ts +168 -118
  160. package/dist/types/messages.dto.d.ts.map +1 -1
  161. package/dist/types/moderator.dto.d.ts +1 -1
  162. package/dist/types/options.dto.d.ts +8 -36
  163. package/dist/types/options.dto.d.ts.map +1 -1
  164. package/dist/types/overseer.dto.d.ts +2 -1
  165. package/dist/types/overseer.dto.d.ts.map +1 -1
  166. package/dist/types/platform-stats.dto.d.ts +3 -3
  167. package/dist/types/realtime-events.dto.d.ts +340 -0
  168. package/dist/types/realtime-events.dto.d.ts.map +1 -0
  169. package/dist/types/restricted-names.dto.d.ts +2 -2
  170. package/dist/types/restricted-names.dto.d.ts.map +1 -1
  171. package/dist/types/stream-chat.dto.d.ts +15 -14
  172. package/dist/types/stream-chat.dto.d.ts.map +1 -1
  173. package/dist/types/streaming.dto.d.ts +73 -104
  174. package/dist/types/streaming.dto.d.ts.map +1 -1
  175. package/dist/types/token-ban.dto.d.ts.map +1 -1
  176. package/dist/types/token-config.dto.d.ts +34 -19
  177. package/dist/types/token-config.dto.d.ts.map +1 -1
  178. package/dist/types/trades-query.dto.d.ts +8 -24
  179. package/dist/types/trades-query.dto.d.ts.map +1 -1
  180. package/dist/types/user.dto.d.ts +133 -112
  181. package/dist/types/user.dto.d.ts.map +1 -1
  182. package/dist/types/websocket-events.dto.d.ts +5 -5
  183. package/dist/types/websocket-events.dto.d.ts.map +1 -1
  184. package/dist/utils/address-formatter.d.ts +25 -2
  185. package/dist/utils/address-formatter.d.ts.map +1 -1
  186. package/dist/utils/agent-config.d.ts +9 -4
  187. package/dist/utils/agent-config.d.ts.map +1 -1
  188. package/dist/utils/auto-pagination.d.ts +7 -240
  189. package/dist/utils/auto-pagination.d.ts.map +1 -1
  190. package/dist/utils/bignumber-helpers.d.ts +3 -2
  191. package/dist/utils/bignumber-helpers.d.ts.map +1 -1
  192. package/dist/utils/delimiter-parser.d.ts +0 -13
  193. package/dist/utils/delimiter-parser.d.ts.map +1 -1
  194. package/dist/utils/error-factories.d.ts +4 -3
  195. package/dist/utils/error-factories.d.ts.map +1 -1
  196. package/dist/utils/error-patterns.d.ts +0 -47
  197. package/dist/utils/error-patterns.d.ts.map +1 -1
  198. package/dist/utils/error-wrapper.d.ts +5 -5
  199. package/dist/utils/errors.d.ts +53 -318
  200. package/dist/utils/errors.d.ts.map +1 -1
  201. package/dist/utils/http.d.ts +36 -3
  202. package/dist/utils/http.d.ts.map +1 -1
  203. package/dist/utils/message-validators.d.ts.map +1 -1
  204. package/dist/utils/pagination-helpers.d.ts +17 -0
  205. package/dist/utils/pagination-helpers.d.ts.map +1 -1
  206. package/dist/utils/pagination-validation.d.ts +2 -2
  207. package/dist/utils/response-handlers.d.ts.map +1 -1
  208. package/dist/utils/service-validators.d.ts +6 -6
  209. package/dist/utils/service-validators.d.ts.map +1 -1
  210. package/dist/utils/token-format-converter.d.ts +1 -1
  211. package/dist/utils/token-parser.d.ts +6 -127
  212. package/dist/utils/token-parser.d.ts.map +1 -1
  213. package/dist/utils/token-stringification.d.ts +7 -7
  214. package/dist/utils/token-stringification.d.ts.map +1 -1
  215. package/dist/utils/tokenNameNormalizer.d.ts +2 -2
  216. package/dist/utils/tokenNormalizer.d.ts +5 -29
  217. package/dist/utils/tokenNormalizer.d.ts.map +1 -1
  218. package/dist/utils/unique-key-generator.d.ts +7 -134
  219. package/dist/utils/unique-key-generator.d.ts.map +1 -1
  220. package/dist/utils/validation-helpers.d.ts +21 -64
  221. package/dist/utils/validation-helpers.d.ts.map +1 -1
  222. package/dist/utils/validation.d.ts +4 -1
  223. package/dist/utils/validation.d.ts.map +1 -1
  224. package/package.json +47 -87
  225. package/dist/api/dto/BurnTokensDto.d.ts +0 -77
  226. package/dist/api/dto/BurnTokensDto.d.ts.map +0 -1
  227. package/dist/api/dto/LockTokenDto.d.ts +0 -85
  228. package/dist/api/dto/LockTokenDto.d.ts.map +0 -1
  229. package/dist/api/dto/TransferTokenDto.d.ts +0 -64
  230. package/dist/api/dto/TransferTokenDto.d.ts.map +0 -1
  231. package/dist/api/dto/UnlockTokenDto.d.ts +0 -74
  232. package/dist/api/dto/UnlockTokenDto.d.ts.map +0 -1
  233. package/dist/bridge/BridgeService.d.ts +0 -484
  234. package/dist/bridge/BridgeService.d.ts.map +0 -1
  235. package/dist/bridge/GalaConnectClient.d.ts +0 -170
  236. package/dist/bridge/GalaConnectClient.d.ts.map +0 -1
  237. package/dist/bridge/constants/index.d.ts +0 -7
  238. package/dist/bridge/constants/index.d.ts.map +0 -1
  239. package/dist/bridge/constants/tokens.d.ts +0 -212
  240. package/dist/bridge/constants/tokens.d.ts.map +0 -1
  241. package/dist/bridge/index.d.ts +0 -24
  242. package/dist/bridge/index.d.ts.map +0 -1
  243. package/dist/bridge/public-types.d.ts +0 -2
  244. package/dist/bridge/public-types.d.ts.map +0 -1
  245. package/dist/bridge/strategies/BridgeStrategy.d.ts +0 -204
  246. package/dist/bridge/strategies/BridgeStrategy.d.ts.map +0 -1
  247. package/dist/bridge/strategies/EthereumBridgeStrategy.d.ts +0 -178
  248. package/dist/bridge/strategies/EthereumBridgeStrategy.d.ts.map +0 -1
  249. package/dist/bridge/strategies/SolanaBridgeStrategy.d.ts +0 -236
  250. package/dist/bridge/strategies/SolanaBridgeStrategy.d.ts.map +0 -1
  251. package/dist/bridge/types/bridge.dto.d.ts +0 -772
  252. package/dist/bridge/types/bridge.dto.d.ts.map +0 -1
  253. package/dist/bridge/types/bridgeable-token.dto.d.ts +0 -209
  254. package/dist/bridge/types/bridgeable-token.dto.d.ts.map +0 -1
  255. package/dist/bridge/types/eip712.d.ts +0 -66
  256. package/dist/bridge/types/eip712.d.ts.map +0 -1
  257. package/dist/bridge/types/index.d.ts +0 -8
  258. package/dist/bridge/types/index.d.ts.map +0 -1
  259. package/dist/bridge/utils/RateLimiter.d.ts +0 -34
  260. package/dist/bridge/utils/RateLimiter.d.ts.map +0 -1
  261. package/dist/bridge/utils/address-formatter.d.ts +0 -25
  262. package/dist/bridge/utils/address-formatter.d.ts.map +0 -1
  263. package/dist/bridge/utils/addressValidation.d.ts +0 -200
  264. package/dist/bridge/utils/addressValidation.d.ts.map +0 -1
  265. package/dist/bridge/utils/balanceHelpers.d.ts +0 -215
  266. package/dist/bridge/utils/balanceHelpers.d.ts.map +0 -1
  267. package/dist/bridge/utils/bridgeErrors.d.ts +0 -98
  268. package/dist/bridge/utils/bridgeErrors.d.ts.map +0 -1
  269. package/dist/bridge/utils/bridgeOutHelpers.d.ts +0 -68
  270. package/dist/bridge/utils/bridgeOutHelpers.d.ts.map +0 -1
  271. package/dist/bridge/utils/bridgePayload.d.ts +0 -98
  272. package/dist/bridge/utils/bridgePayload.d.ts.map +0 -1
  273. package/dist/bridge/utils/bridgeStatusParser.d.ts +0 -76
  274. package/dist/bridge/utils/bridgeStatusParser.d.ts.map +0 -1
  275. package/dist/bridge/utils/eip712Helpers.d.ts +0 -66
  276. package/dist/bridge/utils/eip712Helpers.d.ts.map +0 -1
  277. package/dist/bridge/utils/index.d.ts +0 -19
  278. package/dist/bridge/utils/index.d.ts.map +0 -1
  279. package/dist/bridge/utils/retry.d.ts +0 -112
  280. package/dist/bridge/utils/retry.d.ts.map +0 -1
  281. package/dist/bridge/utils/strategyDelegation.d.ts +0 -126
  282. package/dist/bridge/utils/strategyDelegation.d.ts.map +0 -1
  283. package/dist/bridge/utils/tokenIdUtils.d.ts +0 -86
  284. package/dist/bridge/utils/tokenIdUtils.d.ts.map +0 -1
  285. package/dist/bridge/utils/tokenMath.d.ts +0 -39
  286. package/dist/bridge/utils/tokenMath.d.ts.map +0 -1
  287. package/dist/bridge/utils/tokenMetadataResolver.d.ts +0 -97
  288. package/dist/bridge/utils/tokenMetadataResolver.d.ts.map +0 -1
  289. package/dist/helpers/wallet.d.ts +0 -151
  290. package/dist/helpers/wallet.d.ts.map +0 -1
  291. package/dist/react/WalletContext.d.ts +0 -60
  292. package/dist/react/WalletContext.d.ts.map +0 -1
  293. package/dist/react/index.d.ts +0 -65
  294. package/dist/react/index.d.ts.map +0 -1
  295. package/dist/react/types.d.ts +0 -76
  296. package/dist/react/types.d.ts.map +0 -1
  297. package/dist/react/useWallet.d.ts +0 -123
  298. package/dist/react/useWallet.d.ts.map +0 -1
  299. package/dist/react/useWalletConnection.d.ts +0 -89
  300. package/dist/react/useWalletConnection.d.ts.map +0 -1
  301. package/dist/react/useWalletDetection.d.ts +0 -81
  302. package/dist/react/useWalletDetection.d.ts.map +0 -1
  303. package/dist/react.cjs +0 -1
  304. package/dist/react.esm.js +0 -1
  305. package/dist/services/AbstractTokenFetchService.d.ts +0 -150
  306. package/dist/services/AbstractTokenFetchService.d.ts.map +0 -1
  307. package/dist/services/BatchedCacheService.d.ts +0 -133
  308. package/dist/services/BatchedCacheService.d.ts.map +0 -1
  309. package/dist/services/BridgeableTokenCache.d.ts +0 -120
  310. package/dist/services/BridgeableTokenCache.d.ts.map +0 -1
  311. package/dist/services/BridgeableTokenService.d.ts +0 -218
  312. package/dist/services/BridgeableTokenService.d.ts.map +0 -1
  313. package/dist/services/DexService.d.ts +0 -440
  314. package/dist/services/DexService.d.ts.map +0 -1
  315. package/dist/services/NetworkKeyedCacheService.d.ts +0 -185
  316. package/dist/services/NetworkKeyedCacheService.d.ts.map +0 -1
  317. package/dist/services/PriceHistoryService.d.ts +0 -209
  318. package/dist/services/PriceHistoryService.d.ts.map +0 -1
  319. package/dist/services/StreamingEventService.d.ts +0 -441
  320. package/dist/services/StreamingEventService.d.ts.map +0 -1
  321. package/dist/services/WrapService.d.ts +0 -171
  322. package/dist/services/WrapService.d.ts.map +0 -1
  323. package/dist/services/WrappableTokenCache.d.ts +0 -100
  324. package/dist/services/WrappableTokenCache.d.ts.map +0 -1
  325. package/dist/services/WrappableTokenService.d.ts +0 -130
  326. package/dist/services/WrappableTokenService.d.ts.map +0 -1
  327. package/dist/setup.d.ts +0 -8
  328. package/dist/setup.d.ts.map +0 -1
  329. package/dist/tokens/transfers.d.ts +0 -95
  330. package/dist/tokens/transfers.d.ts.map +0 -1
  331. package/dist/types/comment.dto.d.ts +0 -176
  332. package/dist/types/comment.dto.d.ts.map +0 -1
  333. package/dist/types/galachain-api.types.d.ts +0 -297
  334. package/dist/types/galachain-api.types.d.ts.map +0 -1
  335. package/dist/types/priceHistory.dto.d.ts +0 -134
  336. package/dist/types/priceHistory.dto.d.ts.map +0 -1
  337. package/dist/types/streaming-events.dto.d.ts +0 -605
  338. package/dist/types/streaming-events.dto.d.ts.map +0 -1
  339. package/dist/types/token.types.d.ts +0 -359
  340. package/dist/types/token.types.d.ts.map +0 -1
  341. package/dist/types/wrappable-token.dto.d.ts +0 -305
  342. package/dist/types/wrappable-token.dto.d.ts.map +0 -1
  343. package/dist/utils/crypto-compat.d.ts +0 -40
  344. package/dist/utils/crypto-compat.d.ts.map +0 -1
  345. package/dist/utils/load-env.d.ts +0 -31
  346. package/dist/utils/load-env.d.ts.map +0 -1
  347. package/dist/utils/token-instance-key.d.ts +0 -57
  348. package/dist/utils/token-instance-key.d.ts.map +0 -1
  349. package/dist/utils/wallet.d.ts +0 -166
  350. package/dist/utils/wallet.d.ts.map +0 -1
  351. package/dist/wallet/ExternalWalletProvider.d.ts +0 -90
  352. package/dist/wallet/ExternalWalletProvider.d.ts.map +0 -1
  353. package/dist/wallet/GalaWalletProvider.d.ts +0 -122
  354. package/dist/wallet/GalaWalletProvider.d.ts.map +0 -1
  355. package/dist/wallet/PrivateKeyProvider.d.ts +0 -90
  356. package/dist/wallet/PrivateKeyProvider.d.ts.map +0 -1
  357. package/dist/wallet/detection.d.ts +0 -107
  358. package/dist/wallet/detection.d.ts.map +0 -1
  359. package/dist/wallet/event-handlers.d.ts +0 -50
  360. package/dist/wallet/event-handlers.d.ts.map +0 -1
  361. package/dist/wallet/index.d.ts +0 -51
  362. package/dist/wallet/index.d.ts.map +0 -1
  363. package/dist/wallet/signing-operation.d.ts +0 -19
  364. package/dist/wallet/signing-operation.d.ts.map +0 -1
  365. package/dist/wallet/typed-data-helpers.d.ts +0 -68
  366. package/dist/wallet/typed-data-helpers.d.ts.map +0 -1
  367. package/dist/wallet/types.d.ts +0 -267
  368. package/dist/wallet/types.d.ts.map +0 -1
  369. package/dist/wallet/utils.d.ts +0 -117
  370. package/dist/wallet/utils.d.ts.map +0 -1
  371. package/dist/wallet.cjs +0 -1
  372. package/dist/wallet.esm.js +0 -1
@@ -1,60 +0,0 @@
1
- /**
2
- * Wallet Context
3
- *
4
- * React context provider for managing wallet state across components.
5
- * Provides connection state, detected wallets, and actions for connecting/disconnecting.
6
- *
7
- * @packageDocumentation
8
- */
9
- import { type ReactNode } from 'react';
10
- import type { WalletContextValue, WalletProviderProps } from './types';
11
- /**
12
- * React context for wallet state
13
- */
14
- export declare const WalletContext: import("react").Context<WalletContextValue>;
15
- /**
16
- * Wallet context provider component
17
- *
18
- * Wraps your application to provide wallet state and actions to all child components.
19
- *
20
- * @example
21
- * ```tsx
22
- * import { WalletProvider, useWallet } from '@gala-chain/launchpad-sdk/react';
23
- *
24
- * function App() {
25
- * return (
26
- * <WalletProvider autoDetect onConnect={(addr) => console.log('Connected:', addr)}>
27
- * <MyApp />
28
- * </WalletProvider>
29
- * );
30
- * }
31
- *
32
- * function MyApp() {
33
- * const { isConnected, address, detectedWallets, connectDetected } = useWallet();
34
- *
35
- * if (!isConnected) {
36
- * return (
37
- * <div>
38
- * {detectedWallets.map(wallet => (
39
- * <button key={wallet.rdns} onClick={() => connectDetected(wallet)}>
40
- * Connect {wallet.name}
41
- * </button>
42
- * ))}
43
- * </div>
44
- * );
45
- * }
46
- *
47
- * return <div>Connected: {address}</div>;
48
- * }
49
- * ```
50
- */
51
- export declare function WalletProvider({ children, autoDetect, initialProvider, autoConnect, onConnect, onDisconnect, onError, }: WalletProviderProps): ReactNode;
52
- /**
53
- * Hook to access the wallet context
54
- *
55
- * Must be used within a WalletProvider.
56
- *
57
- * @throws Error if used outside of WalletProvider
58
- */
59
- export declare function useWalletContext(): WalletContextValue;
60
- //# sourceMappingURL=WalletContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WalletContext.d.ts","sourceRoot":"","sources":["../../src/react/WalletContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAEV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AA6CjB;;GAEG;AACH,eAAO,MAAM,aAAa,6CAAyD,CAAC;AAOpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,UAAsB,EACtB,eAAe,EACf,WAAkB,EAClB,SAAS,EACT,YAAY,EACZ,OAAO,GACR,EAAE,mBAAmB,GAAG,SAAS,CA0MjC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,kBAAkB,CAMrD"}
@@ -1,65 +0,0 @@
1
- /**
2
- * React Wallet Integration
3
- *
4
- * React hooks and components for wallet integration in React applications.
5
- * Provides context-based state management, wallet detection, and connection handling.
6
- *
7
- * @example
8
- * ```tsx
9
- * import {
10
- * WalletProvider,
11
- * useWallet,
12
- * useWalletConnection,
13
- * useWalletDetection,
14
- * } from '@gala-chain/launchpad-sdk/react';
15
- *
16
- * // Wrap your app with WalletProvider
17
- * function App() {
18
- * return (
19
- * <WalletProvider autoDetect>
20
- * <MyApp />
21
- * </WalletProvider>
22
- * );
23
- * }
24
- *
25
- * // Use hooks in components
26
- * function WalletButton() {
27
- * const { isConnected, address, disconnect } = useWallet();
28
- * const { wallets } = useWalletDetection();
29
- * const { connectDetected, isConnecting } = useWalletConnection();
30
- *
31
- * if (isConnected) {
32
- * return (
33
- * <button onClick={disconnect}>
34
- * {address?.slice(0, 6)}...{address?.slice(-4)}
35
- * </button>
36
- * );
37
- * }
38
- *
39
- * return (
40
- * <div>
41
- * {wallets.map(wallet => (
42
- * <button
43
- * key={wallet.rdns}
44
- * onClick={() => connectDetected(wallet)}
45
- * disabled={isConnecting}
46
- * >
47
- * <img src={wallet.icon} alt="" />
48
- * {wallet.name}
49
- * </button>
50
- * ))}
51
- * </div>
52
- * );
53
- * }
54
- * ```
55
- *
56
- * @packageDocumentation
57
- */
58
- export { useWalletContext, WalletContext, WalletProvider } from './WalletContext';
59
- export { useGalaAddress, useIsWalletConnected, useWallet, useWalletAddress, useWalletProvider, } from './useWallet';
60
- export { useWalletConnection, type UseWalletConnectionReturn } from './useWalletConnection';
61
- export { useWalletDetection, type UseWalletDetectionReturn } from './useWalletDetection';
62
- export type { ConnectionStatus, WalletContextActions, WalletContextState, WalletContextValue, WalletProviderProps, } from './types';
63
- export type { DetectedWallet, Eip6963ProviderInfo, WalletConnectionState, WalletProvider as WalletProviderInterface, } from '../wallet/types';
64
- export { detectWallets, ExternalWalletProvider, KNOWN_WALLET_RDNS, PrivateKeyProvider, } from '../wallet';
65
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAGH,OAAO,EAAE,gBAAgB,EAAC,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjF,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAG5F,OAAO,EAAE,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGzF,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,IAAI,uBAAuB,GAC1C,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC"}
@@ -1,76 +0,0 @@
1
- /**
2
- * React Wallet Types
3
- *
4
- * Type definitions for the React wallet integration hooks and context.
5
- *
6
- * @packageDocumentation
7
- */
8
- import type { ReactNode } from 'react';
9
- import type { DetectedWallet, WalletProvider } from '../wallet/types';
10
- /**
11
- * Wallet context state
12
- */
13
- export interface WalletContextState {
14
- /** The currently connected wallet provider */
15
- provider: WalletProvider | null;
16
- /** The connected wallet address (0x format) */
17
- address: string | null;
18
- /** The connected wallet address in Gala format (eth|0x...) */
19
- galaAddress: string | null;
20
- /** Whether a wallet is currently connected */
21
- isConnected: boolean;
22
- /** Whether a connection is in progress */
23
- isConnecting: boolean;
24
- /** Whether wallets are being detected */
25
- isDetecting: boolean;
26
- /** Connection error if any */
27
- error: Error | null;
28
- /** List of detected wallets (EIP-6963) */
29
- detectedWallets: DetectedWallet[];
30
- }
31
- /**
32
- * Wallet context actions
33
- */
34
- export interface WalletContextActions {
35
- /** Connect to a wallet using a provider */
36
- connect: (provider: WalletProvider) => Promise<string>;
37
- /** Connect to a detected wallet by its info */
38
- connectDetected: (wallet: DetectedWallet) => Promise<string>;
39
- /** Disconnect from the current wallet */
40
- disconnect: () => Promise<void>;
41
- /** Set the wallet provider directly (for external state management) */
42
- setProvider: (provider: WalletProvider | null) => void;
43
- /** Refresh the list of detected wallets */
44
- refreshWallets: () => Promise<void>;
45
- /** Clear any connection error */
46
- clearError: () => void;
47
- }
48
- /**
49
- * Full wallet context value
50
- */
51
- export interface WalletContextValue extends WalletContextState, WalletContextActions {
52
- }
53
- /**
54
- * Wallet provider component props
55
- */
56
- export interface WalletProviderProps {
57
- /** Child components */
58
- children: ReactNode;
59
- /** Auto-detect wallets on mount (default: true in browser) */
60
- autoDetect?: boolean;
61
- /** Initial wallet provider to use */
62
- initialProvider?: WalletProvider;
63
- /** Auto-connect if a provider is set (default: true) */
64
- autoConnect?: boolean;
65
- /** Callback when wallet connects */
66
- onConnect?: (address: string, provider: WalletProvider) => void;
67
- /** Callback when wallet disconnects */
68
- onDisconnect?: () => void;
69
- /** Callback when an error occurs */
70
- onError?: (error: Error) => void;
71
- }
72
- /**
73
- * Connection status for useWalletConnection hook
74
- */
75
- export type ConnectionStatus = 'disconnected' | 'connecting' | 'connected' | 'error';
76
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/react/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAC,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAEhC,+CAA+C;IAC/C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,8CAA8C;IAC9C,WAAW,EAAE,OAAO,CAAC;IAErB,0CAA0C;IAC1C,YAAY,EAAE,OAAO,CAAC;IAEtB,yCAAyC;IACzC,WAAW,EAAE,OAAO,CAAC;IAErB,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,0CAA0C;IAC1C,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,OAAO,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD,+CAA+C;IAC/C,eAAe,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7D,yCAAyC;IACzC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC,uEAAuE;IACvE,WAAW,EAAE,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAEvD,2CAA2C;IAC3C,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC,iCAAiC;IACjC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB,EAAE,oBAAoB;CAAG;AAEvF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uBAAuB;IACvB,QAAQ,EAAE,SAAS,CAAC;IAEpB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qCAAqC;IACrC,eAAe,CAAC,EAAE,cAAc,CAAC;IAEjC,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,oCAAoC;IACpC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAEhE,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC"}
@@ -1,123 +0,0 @@
1
- /**
2
- * useWallet Hook
3
- *
4
- * Primary hook for accessing wallet state and actions.
5
- * This is the main hook most applications will use.
6
- *
7
- * @packageDocumentation
8
- */
9
- import type { WalletProvider } from '../wallet/types';
10
- import type { WalletContextValue } from './types';
11
- /**
12
- * Hook to access the current wallet state and actions
13
- *
14
- * This is the primary hook for wallet integration. It provides:
15
- * - Current connection state (address, isConnected, etc.)
16
- * - Detected wallets list
17
- * - Actions (connect, disconnect, etc.)
18
- *
19
- * @returns The complete wallet context value
20
- *
21
- * @example
22
- * ```tsx
23
- * import { useWallet } from '@gala-chain/launchpad-sdk/react';
24
- *
25
- * function WalletButton() {
26
- * const {
27
- * isConnected,
28
- * address,
29
- * isConnecting,
30
- * error,
31
- * detectedWallets,
32
- * connectDetected,
33
- * disconnect
34
- * } = useWallet();
35
- *
36
- * if (isConnecting) {
37
- * return <button disabled>Connecting...</button>;
38
- * }
39
- *
40
- * if (isConnected) {
41
- * return (
42
- * <div>
43
- * <span>{address?.slice(0, 6)}...{address?.slice(-4)}</span>
44
- * <button onClick={disconnect}>Disconnect</button>
45
- * </div>
46
- * );
47
- * }
48
- *
49
- * return (
50
- * <div>
51
- * {error && <p style={{ color: 'red' }}>{error.message}</p>}
52
- * {detectedWallets.map(wallet => (
53
- * <button
54
- * key={wallet.rdns}
55
- * onClick={() => connectDetected(wallet)}
56
- * >
57
- * <img src={wallet.icon} alt={wallet.name} width={24} />
58
- * {wallet.name}
59
- * </button>
60
- * ))}
61
- * {detectedWallets.length === 0 && (
62
- * <p>No wallets detected. Please install a wallet extension.</p>
63
- * )}
64
- * </div>
65
- * );
66
- * }
67
- * ```
68
- */
69
- export declare function useWallet(): WalletContextValue;
70
- /**
71
- * Hook to get just the wallet address
72
- *
73
- * @returns The connected address or null
74
- *
75
- * @example
76
- * ```tsx
77
- * const address = useWalletAddress();
78
- * console.log('Connected to:', address);
79
- * ```
80
- */
81
- export declare function useWalletAddress(): string | null;
82
- /**
83
- * Hook to get the Gala-formatted address
84
- *
85
- * @returns The connected address in Gala format (eth|0x...) or null
86
- *
87
- * @example
88
- * ```tsx
89
- * const galaAddress = useGalaAddress();
90
- * // Use with SDK methods that require Gala format
91
- * sdk.fetchTokensHeld({ ownerAddress: galaAddress });
92
- * ```
93
- */
94
- export declare function useGalaAddress(): string | null;
95
- /**
96
- * Hook to check if wallet is connected
97
- *
98
- * @returns True if a wallet is connected
99
- *
100
- * @example
101
- * ```tsx
102
- * const isConnected = useIsWalletConnected();
103
- * if (isConnected) {
104
- * // Show authenticated content
105
- * }
106
- * ```
107
- */
108
- export declare function useIsWalletConnected(): boolean;
109
- /**
110
- * Hook to get the current wallet provider
111
- *
112
- * @returns The wallet provider or null
113
- *
114
- * @example
115
- * ```tsx
116
- * const provider = useWalletProvider();
117
- * if (provider) {
118
- * const signature = await provider.signMessage('Hello');
119
- * }
120
- * ```
121
- */
122
- export declare function useWalletProvider(): WalletProvider | null;
123
- //# sourceMappingURL=useWallet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useWallet.d.ts","sourceRoot":"","sources":["../../src/react/useWallet.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAE9C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAGhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAG9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAG9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAGzD"}
@@ -1,89 +0,0 @@
1
- /**
2
- * useWalletConnection Hook
3
- *
4
- * Hook for managing wallet connection lifecycle.
5
- * Provides connection actions and status tracking.
6
- *
7
- * @packageDocumentation
8
- */
9
- import type { DetectedWallet, WalletProvider } from '../wallet/types';
10
- import type { ConnectionStatus } from './types';
11
- /**
12
- * Return type for useWalletConnection
13
- */
14
- export interface UseWalletConnectionReturn {
15
- /** Current connection status */
16
- status: ConnectionStatus;
17
- /** Whether currently connecting */
18
- isConnecting: boolean;
19
- /** Whether connected to a wallet */
20
- isConnected: boolean;
21
- /** Connection error if any */
22
- error: Error | null;
23
- /** Connect to a wallet provider */
24
- connect: (provider: WalletProvider) => Promise<string>;
25
- /** Connect to a detected wallet */
26
- connectDetected: (wallet: DetectedWallet) => Promise<string>;
27
- /** Disconnect from the current wallet */
28
- disconnect: () => Promise<void>;
29
- /** Clear any connection error */
30
- clearError: () => void;
31
- }
32
- /**
33
- * Hook for managing wallet connection
34
- *
35
- * Provides a focused interface for connection management:
36
- * - Connection status tracking
37
- * - Connect/disconnect actions
38
- * - Error handling
39
- *
40
- * @returns Connection state and actions
41
- *
42
- * @example
43
- * ```tsx
44
- * import { useWalletConnection, useWalletDetection } from '@gala-chain/launchpad-sdk/react';
45
- *
46
- * function ConnectWallet() {
47
- * const { status, connect, disconnect, error, clearError } = useWalletConnection();
48
- * const { wallets } = useWalletDetection();
49
- *
50
- * const handleConnect = async (wallet) => {
51
- * try {
52
- * await connect(new ExternalWalletProvider(wallet.provider));
53
- * console.log('Connected!');
54
- * } catch (err) {
55
- * console.error('Connection failed:', err);
56
- * }
57
- * };
58
- *
59
- * switch (status) {
60
- * case 'connecting':
61
- * return <div>Connecting...</div>;
62
- *
63
- * case 'connected':
64
- * return <button onClick={disconnect}>Disconnect</button>;
65
- *
66
- * case 'error':
67
- * return (
68
- * <div>
69
- * <p>Error: {error?.message}</p>
70
- * <button onClick={clearError}>Try Again</button>
71
- * </div>
72
- * );
73
- *
74
- * default:
75
- * return (
76
- * <div>
77
- * {wallets.map(w => (
78
- * <button key={w.info.rdns} onClick={() => handleConnect(w)}>
79
- * {w.info.name}
80
- * </button>
81
- * ))}
82
- * </div>
83
- * );
84
- * }
85
- * }
86
- * ```
87
- */
88
- export declare function useWalletConnection(): UseWalletConnectionReturn;
89
- //# sourceMappingURL=useWalletConnection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useWalletConnection.d.ts","sourceRoot":"","sources":["../../src/react/useWalletConnection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAC,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,gCAAgC;IAChC,MAAM,EAAE,gBAAgB,CAAC;IAEzB,mCAAmC;IACnC,YAAY,EAAE,OAAO,CAAC;IAEtB,oCAAoC;IACpC,WAAW,EAAE,OAAO,CAAC;IAErB,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,mCAAmC;IACnC,OAAO,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD,mCAAmC;IACnC,eAAe,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7D,yCAAyC;IACzC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC,iCAAiC;IACjC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAgB,mBAAmB,IAAI,yBAAyB,CAgC/D"}
@@ -1,81 +0,0 @@
1
- /**
2
- * useWalletDetection Hook
3
- *
4
- * Hook for detecting available browser wallets via EIP-6963.
5
- * Provides the list of detected wallets and detection state.
6
- *
7
- * @packageDocumentation
8
- */
9
- import type { DetectedWallet } from '../wallet/types';
10
- /**
11
- * Return type for useWalletDetection
12
- */
13
- export interface UseWalletDetectionReturn {
14
- /** List of all detected wallets */
15
- wallets: DetectedWallet[];
16
- /** Whether wallet detection is in progress */
17
- isDetecting: boolean;
18
- /** Refresh the list of detected wallets */
19
- refresh: () => Promise<void>;
20
- /** Check if a specific wallet is available by RDNS */
21
- hasWallet: (rdns: string) => boolean;
22
- /** Get a wallet by its RDNS identifier */
23
- getWallet: (rdns: string) => DetectedWallet | undefined;
24
- /** Check if MetaMask is available */
25
- hasMetaMask: boolean;
26
- /** Check if Coinbase Wallet is available */
27
- hasCoinbaseWallet: boolean;
28
- /** Check if any wallet is available */
29
- hasAnyWallet: boolean;
30
- }
31
- /**
32
- * Hook for detecting available browser wallets
33
- *
34
- * Uses EIP-6963 to discover installed wallet extensions.
35
- * Automatically updates when new wallets are detected.
36
- *
37
- * @returns Detection state and wallet list
38
- *
39
- * @example
40
- * ```tsx
41
- * import { useWalletDetection, useWalletConnection } from '@gala-chain/launchpad-sdk/react';
42
- *
43
- * function WalletSelector() {
44
- * const { wallets, isDetecting, hasAnyWallet, hasMetaMask } = useWalletDetection();
45
- * const { connectDetected } = useWalletConnection();
46
- *
47
- * if (isDetecting) {
48
- * return <div>Detecting wallets...</div>;
49
- * }
50
- *
51
- * if (!hasAnyWallet) {
52
- * return (
53
- * <div>
54
- * <p>No wallets detected.</p>
55
- * <a href="https://metamask.io/download/" target="_blank">
56
- * Install MetaMask
57
- * </a>
58
- * </div>
59
- * );
60
- * }
61
- *
62
- * return (
63
- * <div>
64
- * <h3>Select a wallet:</h3>
65
- * {wallets.map(wallet => (
66
- * <button
67
- * key={wallet.rdns}
68
- * onClick={() => connectDetected(wallet)}
69
- * style={{ display: 'flex', alignItems: 'center', gap: '8px' }}
70
- * >
71
- * <img src={wallet.icon} alt="" width={24} height={24} />
72
- * {wallet.name}
73
- * </button>
74
- * ))}
75
- * </div>
76
- * );
77
- * }
78
- * ```
79
- */
80
- export declare function useWalletDetection(): UseWalletDetectionReturn;
81
- //# sourceMappingURL=useWalletDetection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useWalletDetection.d.ts","sourceRoot":"","sources":["../../src/react/useWalletDetection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGtD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,mCAAmC;IACnC,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B,8CAA8C;IAC9C,WAAW,EAAE,OAAO,CAAC;IAErB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,sDAAsD;IACtD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAErC,0CAA0C;IAC1C,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;IAExD,qCAAqC;IACrC,WAAW,EAAE,OAAO,CAAC;IAErB,4CAA4C;IAC5C,iBAAiB,EAAE,OAAO,CAAC;IAE3B,uCAAuC;IACvC,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,kBAAkB,IAAI,wBAAwB,CAkD7D"}
package/dist/react.cjs DELETED
@@ -1 +0,0 @@
1
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("ethers");const r={METAMASK:"io.metamask",METAMASK_FLASK:"io.metamask.flask",COINBASE:"com.coinbase.wallet",TRUST_WALLET:"com.trustwallet.app",PHANTOM:"app.phantom",RAINBOW:"me.rainbow",OKX:"com.okex.wallet",RABBY:"io.rabby",BRAVE:"com.brave.wallet",FRAME:"sh.frame",LEDGER:"com.ledger",ZERION:"io.zerion.wallet",GALA:"com.gala.wallet"},s={[r.METAMASK]:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIxLjU0IDQuMjJsLTguMzQgNi4yMSAxLjU0LTMuNjUtLTUuNTMtMi41MXoiIGZpbGw9IiNFMjc2MUIiLz48L3N2Zz4=",[r.GALA]:"data:image/png;base64,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"};function o(){return"undefined"!=typeof window&&"function"==typeof window.dispatchEvent}function i(e){return"object"==typeof e&&null!==e&&"function"==typeof e.request}async function a(e=500){const t=[],n=new Map;return o()?new Promise(a=>{const d=new Set,c=e=>{const r=e,{info:o,provider:i}=r.detail;if(d.has(o.uuid))return;d.add(o.uuid);const a={id:o.rdns||o.uuid,name:o.name,rdns:o.rdns||o.uuid,icon:o.icon??s[o.rdns||""]??"",provider:i,isInjected:!1};t.push(a),n.set(a.id,a)};window.addEventListener("eip6963:announceProvider",c),window.dispatchEvent(new Event("eip6963:requestProvider")),setTimeout(()=>{if(window.removeEventListener("eip6963:announceProvider",c),0===t.length){const e=o()?window.ethereum??null:null;if(e){const o=window;let i="Browser Wallet",a="injected";o.ethereum?.isMetaMask?(i="MetaMask",a=r.METAMASK):o.ethereum?.isCoinbaseWallet?(i="Coinbase Wallet",a=r.COINBASE):o.ethereum?.isTrust&&(i="Trust Wallet",a=r.TRUST_WALLET);const d={id:a,name:i,rdns:a,icon:s[a]??"",provider:e,isInjected:!0};t.push(d),n.set(d.id,d)}}if(!n.has(r.TRUST_WALLET)){const e=function(){if(!o())return null;const e=window;if(i(e.ethereum)&&e.ethereum.isTrust)return e.ethereum;const t=e.ethereum?.providers?.find(e=>i(e)&&!0===e.isTrust);return void 0!==t?t:i(e.trustwallet)?e.trustwallet:null}();if(null!==e&&!t.some(t=>t.provider===e)){const o={id:r.TRUST_WALLET,name:"Trust Wallet",rdns:r.TRUST_WALLET,icon:s[r.TRUST_WALLET]??"",provider:e,isInjected:!0};t.push(o),n.set(o.id,o)}}const e=window;if(e.gala?.request&&!n.has(r.GALA)){const o={id:r.GALA,name:"Gala Wallet",rdns:r.GALA,icon:s[r.GALA]??"",provider:e.gala,isInjected:!0};t.push(o),n.set(o.id,o)}a({wallets:t,byId:n,hasWallets:t.length>0,...void 0===t[0]?{}:{primary:t[0]}})},e)}):{wallets:t,byId:n,hasWallets:!1}}function d(e,t,n){return{types:{EIP712Domain:c(e),...t},primaryType:Object.keys(t)[0],domain:l(e),message:n}}function c(e){const t=[];return void 0!==e.name&&t.push({name:"name",type:"string"}),void 0!==e.version&&t.push({name:"version",type:"string"}),void 0!==e.chainId&&t.push({name:"chainId",type:"uint256"}),void 0!==e.verifyingContract&&t.push({name:"verifyingContract",type:"address"}),void 0!==e.salt&&t.push({name:"salt",type:"bytes32"}),t}function l(e){const t={};return void 0!==e.name&&(t.name=e.name),void 0!==e.version&&(t.version=e.version),void 0!==e.chainId&&(t.chainId="bigint"==typeof e.chainId||"number"==typeof e.chainId?`0x${e.chainId.toString(16)}`:e.chainId),void 0!==e.verifyingContract&&(t.verifyingContract=e.verifyingContract),void 0!==e.salt&&(t.salt=e.salt),t}function u(e){return`0x${Buffer.from(e,"utf8").toString("hex")}`}async function h(e,t,n){return e.request({method:"personal_sign",params:[u(n),t]})}async function A(e,t,n,r,s){return e.request({method:"eth_signTypedData_v4",params:[t,JSON.stringify(d(n,r,s))]})}class w{constructor(e){this.connectedAddress=null,this.provider=e,this.eventHandlers=function(e,t,r){if(null==e||"function"!=typeof e.on)return{accountsChanged:null,disconnect:null};const s=e=>{const r=e[0];t(void 0===r?null:n.getAddress(r))},o=()=>r();return e.on("accountsChanged",s),e.on("disconnect",o),{accountsChanged:s,disconnect:o}}(e,e=>{this.connectedAddress=e},()=>{this.connectedAddress=null})}removeEventListeners(){!function(e,t){if("function"!=typeof e.removeListener)return;null!==t.accountsChanged&&e.removeListener("accountsChanged",t.accountsChanged);null!==t.disconnect&&e.removeListener("disconnect",t.disconnect)}(this.provider,this.eventHandlers)}}class v extends Error{constructor(e,t,n){super(e),this.code=t,this.originalError=n,this.name="WalletProviderError"}}var E;async function g(e,t,n){try{return await e()}catch(e){if(e instanceof v)throw e;return t(e,n)}}!function(e){e.USER_REJECTED="USER_REJECTED",e.NOT_CONNECTED="NOT_CONNECTED",e.CONNECTION_FAILED="CONNECTION_FAILED",e.SIGNING_FAILED="SIGNING_FAILED",e.PROVIDER_NOT_AVAILABLE="PROVIDER_NOT_AVAILABLE",e.PRIVATE_KEY_NOT_ACCESSIBLE="PRIVATE_KEY_NOT_ACCESSIBLE",e.INVALID_CONFIG="INVALID_CONFIG",e.CHAIN_MISMATCH="CHAIN_MISMATCH",e.UNKNOWN="UNKNOWN"}(E||(E={}));const p=4001,f=4100,m=4900,y=4901;class N extends w{constructor(e){if(super(e),this.providerType="external",null==e)throw new v("EIP-1193 provider is required",E.INVALID_CONFIG)}handleProviderError(e,t){const n=e;if(n.code===p)throw new v(`User rejected ${t}`,E.USER_REJECTED,e instanceof Error?e:void 0);if(n.code===f)throw new v("Wallet is not authorized",E.NOT_CONNECTED,e instanceof Error?e:void 0);if(n.code===m||n.code===y)throw this.connectedAddress=null,new v("Wallet disconnected",E.NOT_CONNECTED,e instanceof Error?e:void 0);throw new v(n.message??`${t} failed`,t.includes("sign")?E.SIGNING_FAILED:E.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(!this.connectedAddress)throw new v("Wallet is not connected. Call connect() first.",E.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new v("No accounts returned from wallet",E.CONNECTION_FAILED);const t=e[0];if(void 0===t)throw new v("No accounts returned from wallet",E.CONNECTION_FAILED);return this.connectedAddress=n.getAddress(t),this.connectedAddress}catch(e){if(e instanceof v)throw e;return this.handleProviderError(e,"connect")}}async disconnect(){this.connectedAddress=null,this.removeEventListeners();try{await this.provider.request({method:"wallet_revokePermissions",params:[{eth_accounts:{}}]})}catch{}}isConnected(){return null!==this.connectedAddress}async signMessage(e){return this.ensureConnected(),g(()=>h(this.provider,this.connectedAddress,e),(e,t)=>this.handleProviderError(e,t),"sign message")}async signTypedData(e,t,n){return this.ensureConnected(),g(()=>A(this.provider,this.connectedAddress,e,t,n),(e,t)=>this.handleProviderError(e,t),"sign typed data")}async getAddress(){await Promise.resolve(),this.ensureConnected();const e=this.connectedAddress;if(null==e)throw new v("Wallet is not connected",E.NOT_CONNECTED);return e}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async getPrivateKey(){return Promise.reject(new v("Private key is not accessible with external wallet providers. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",E.PRIVATE_KEY_NOT_ACCESSIBLE))}getProvider(){return this.provider}}class C extends w{constructor(e){if(super(e),this.providerType="external",this.galaRawAddress=null,!e)throw new v("Gala Wallet provider is required",E.PROVIDER_NOT_AVAILABLE)}parseGalaError(e){if(e instanceof Error)try{const t=JSON.parse(e.message);if("object"==typeof t&&null!==t){const n=t,r={message:"string"==typeof n.message?n.message:e.message};return"number"==typeof n.code&&(r.code=n.code),r}return{message:e.message}}catch{return{message:e.message}}return{message:String(e)}}handleProviderError(e,t){const n=this.parseGalaError(e);if(4001===n.code)throw new v(`User rejected ${t}`,E.USER_REJECTED,e instanceof Error?e:void 0);if(4900===n.code)throw this.connectedAddress=null,new v("Wallet disconnected",E.NOT_CONNECTED,e instanceof Error?e:void 0);const r=n.message?n.message:`${t} failed`;throw new v(r,t.includes("sign")?E.SIGNING_FAILED:E.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(null===this.connectedAddress||void 0===this.connectedAddress)throw new v("Wallet is not connected. Call connect() first.",E.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new v("No accounts returned from Gala Wallet",E.CONNECTION_FAILED);const t=e[0];if(void 0===t)throw new v("No accounts returned from Gala Wallet",E.CONNECTION_FAILED);this.galaRawAddress=t;let r=t;return r.startsWith("eth|")?r=`0x${r.slice(4)}`:r.startsWith("0x")||(r=`0x${r}`),this.connectedAddress=n.getAddress(r),this.connectedAddress}catch(e){if(e instanceof v)throw e;return this.handleProviderError(e,"connect")}}async disconnect(){this.connectedAddress=null,this.galaRawAddress=null,this.removeEventListeners();try{await this.provider.disconnect()}catch{}}isConnected(){return null!==this.connectedAddress}async signMessage(e){return this.ensureConnected(),g(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),h(this.provider,this.connectedAddress,e)),(e,t)=>this.handleProviderError(e,t),"sign message")}async signTypedData(e,t,n){return this.ensureConnected(),g(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),A(this.provider,this.connectedAddress,e,t,n)),(e,t)=>this.handleProviderError(e,t),"sign typed data")}getAddress(){return this.ensureConnected(),Promise.resolve(this.connectedAddress)}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}getPrivateKey(){throw new v("Private key is not accessible with Gala Wallet. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",E.PRIVATE_KEY_NOT_ACCESSIBLE)}getProvider(){return this.provider}}const I={provider:null,address:null,galaAddress:null,isConnected:!1,isConnecting:!1,isDetecting:!1,error:null,detectedWallets:[],connect:async()=>{throw new Error("WalletContext not initialized")},connectDetected:async()=>{throw new Error("WalletContext not initialized")},disconnect:async()=>{throw new Error("WalletContext not initialized")},setProvider:()=>{throw new Error("WalletContext not initialized")},refreshWallets:async()=>{throw new Error("WalletContext not initialized")},clearError:()=>{throw new Error("WalletContext not initialized")}},L=t.createContext(I),T="undefined"!=typeof window;function W(){const e=t.useContext(L);if(e===I)throw new Error("useWalletContext must be used within a WalletProvider");return e}class D{constructor(e){this.providerType="privateKey",this.connected=!0;try{this.wallet=new n.Wallet(e)}catch(e){throw new v("Invalid private key provided",E.INVALID_CONFIG,e instanceof Error?e:void 0)}}static fromWallet(e){return new D(e.privateKey)}async signMessage(e){try{return await this.wallet.signMessage(e)}catch(e){throw new v("Failed to sign message",E.SIGNING_FAILED,e instanceof Error?e:void 0)}}async signTypedData(e,t,n){try{return await this.wallet.signTypedData(e,t,n)}catch(e){throw new v("Failed to sign typed data",E.SIGNING_FAILED,e instanceof Error?e:void 0)}}getAddress(){return Promise.resolve(n.getAddress(this.wallet.address))}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async connect(){return this.connected=!0,this.getAddress()}disconnect(){return this.connected=!1,Promise.resolve()}isConnected(){return this.connected}getPrivateKey(){return Promise.resolve(this.wallet.privateKey)}getWallet(){return this.wallet}}exports.ExternalWalletProvider=N,exports.KNOWN_WALLET_RDNS=r,exports.PrivateKeyProvider=D,exports.WalletContext=L,exports.WalletProvider=function({children:n,autoDetect:s=T,initialProvider:i,autoConnect:d=!0,onConnect:c,onDisconnect:l,onError:u}){const[h,A]=t.useState(i??null),[w,v]=t.useState(null),[E,g]=t.useState(null),[p,f]=t.useState(!1),[m,y]=t.useState(!1),[I,W]=t.useState(null),[D,O]=t.useState([]),S=null!==h&&null!==w,M=t.useCallback(()=>{W(null)},[]),P=t.useCallback(e=>{A(e),e||(v(null),g(null))},[]),G=t.useCallback(async e=>{f(!0),W(null);try{e.isConnected()||await e.connect();const t=await e.getAddress(),n=await e.getGalaAddress();return A(e),v(t),g(n),c?.(t,e),t}catch(e){const t=e instanceof Error?e:new Error(String(e));throw W(t),u?.(t),t}finally{f(!1)}},[c,u]),x=t.useCallback(async e=>{if(e.rdns===r.GALA){const t=new C(e.provider);return G(t)}const t=new N(e.provider);return G(t)},[G]),R=t.useCallback(async()=>{if(h)try{await h.disconnect()}catch{}A(null),v(null),g(null),W(null),l?.()},[h,l]),b=t.useCallback(async()=>{if(T){y(!0);try{let e=[...(await a()).wallets];const t=window;if(void 0!==t.gala&&!e.some(e=>e.rdns===r.GALA)){e=[{id:r.GALA,name:"Gala Wallet",rdns:r.GALA,icon:"",provider:t.gala,isInjected:!0},...e]}O(e)}catch{O([])}finally{y(!1)}}},[]);t.useEffect(()=>{if(!s||!T)return;b();const e=function(e){if(!o())return()=>{};let t=!0,n={wallets:[],byId:new Map,hasWallets:!1};const r=r=>{if(!t)return;const s=r,{info:o,provider:i}=s.detail,a=o.rdns||o.uuid;if(n.byId.has(a))return;const d={id:a,name:o.name,rdns:a,icon:o.icon??"",provider:i,isInjected:!1},c=[...n.wallets,d],l=new Map(n.byId);l.set(d.id,d),n={wallets:c,byId:l,hasWallets:!0,...void 0===c[0]?{}:{primary:c[0]}},e(n)};return window.addEventListener("eip6963:announceProvider",r),a().then(r=>{t&&(n=r,e(r))}),()=>{t=!1,window.removeEventListener("eip6963:announceProvider",r)}}(e=>{O(e.wallets)});return()=>{e()}},[s,b]),t.useEffect(()=>{i&&d&&!S&&!p&&G(i)},[i,d,S,p,G]);const U=t.useMemo(()=>({provider:h,address:w,galaAddress:E,isConnected:S,isConnecting:p,isDetecting:m,error:I,detectedWallets:D,connect:G,connectDetected:x,disconnect:R,setProvider:P,refreshWallets:b,clearError:M}),[h,w,E,S,p,m,I,D,G,x,R,P,b,M]);return e.jsx(L.Provider,{value:U,children:n})},exports.detectWallets=a,exports.useGalaAddress=function(){const{galaAddress:e}=W();return e},exports.useIsWalletConnected=function(){const{isConnected:e}=W();return e},exports.useWallet=function(){return W()},exports.useWalletAddress=function(){const{address:e}=W();return e},exports.useWalletConnection=function(){const{isConnecting:e,isConnected:n,error:r,connect:s,connectDetected:o,disconnect:i,clearError:a}=W(),d=t.useMemo(()=>e?"connecting":r?"error":n?"connected":"disconnected",[e,r,n]);return t.useMemo(()=>({status:d,isConnecting:e,isConnected:n,error:r,connect:s,connectDetected:o,disconnect:i,clearError:a}),[d,e,n,r,s,o,i,a])},exports.useWalletContext=W,exports.useWalletDetection=function(){const{detectedWallets:e,isDetecting:n,refreshWallets:s}=W(),o=t.useMemo(()=>t=>e.some(e=>e.rdns===t),[e]),i=t.useMemo(()=>t=>e.find(e=>e.rdns===t),[e]),a=t.useMemo(()=>e.some(e=>e.rdns===r.METAMASK),[e]),d=t.useMemo(()=>e.some(e=>e.rdns===r.COINBASE),[e]),c=e.length>0;return t.useMemo(()=>({wallets:e,isDetecting:n,refresh:s,hasWallet:o,getWallet:i,hasMetaMask:a,hasCoinbaseWallet:d,hasAnyWallet:c}),[e,n,s,o,i,a,d,c])},exports.useWalletProvider=function(){const{provider:e}=W();return e};
package/dist/react.esm.js DELETED
@@ -1 +0,0 @@
1
- if(void 0===globalThis.process&&(globalThis.process={env:{},versions:{},platform:"browser"}),void 0===globalThis.Buffer){var e=function(e){return"number"==typeof e||ArrayBuffer,new Uint8Array(e)};e.isBuffer=function(){return!1},e.from=function(e,n){if("string"==typeof e){if("hex"===n){var t=(e.match(/.{1,2}/g)||[]).map(function(e){return parseInt(e,16)});return new Uint8Array(t)}return(new TextEncoder).encode(e)}return e instanceof ArrayBuffer?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e)},e.alloc=function(e){return new Uint8Array(e)},e.concat=function(e){for(var n=0,t=0;t<e.length;t++)n+=e[t].length;for(var r=new Uint8Array(n),s=0,i=0;i<e.length;i++)r.set(e[i],s),s+=e[i].length;return r},e.prototype=Object.create(Uint8Array.prototype),globalThis.Buffer=e}import{jsx as n}from"react/jsx-runtime";import{createContext as t,useState as r,useCallback as s,useEffect as i,useMemo as o,useContext as a}from"react";import{getAddress as c,Wallet as d}from"ethers";const l={METAMASK:"io.metamask",METAMASK_FLASK:"io.metamask.flask",COINBASE:"com.coinbase.wallet",TRUST_WALLET:"com.trustwallet.app",PHANTOM:"app.phantom",RAINBOW:"me.rainbow",OKX:"com.okex.wallet",RABBY:"io.rabby",BRAVE:"com.brave.wallet",FRAME:"sh.frame",LEDGER:"com.ledger",ZERION:"io.zerion.wallet",GALA:"com.gala.wallet"},u={[l.METAMASK]:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIxLjU0IDQuMjJsLTguMzQgNi4yMSAxLjU0LTMuNjUtLTUuNTMtMi41MXoiIGZpbGw9IiNFMjc2MUIiLz48L3N2Zz4=",[l.GALA]:"data:image/png;base64,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"};function h(){return"undefined"!=typeof window&&"function"==typeof window.dispatchEvent}function A(e){return"object"==typeof e&&null!==e&&"function"==typeof e.request}async function w(e=500){const n=[],t=new Map;return h()?new Promise(r=>{const s=new Set,i=e=>{const r=e,{info:i,provider:o}=r.detail;if(s.has(i.uuid))return;s.add(i.uuid);const a={id:i.rdns||i.uuid,name:i.name,rdns:i.rdns||i.uuid,icon:i.icon??u[i.rdns||""]??"",provider:o,isInjected:!1};n.push(a),t.set(a.id,a)};window.addEventListener("eip6963:announceProvider",i),window.dispatchEvent(new Event("eip6963:requestProvider")),setTimeout(()=>{if(window.removeEventListener("eip6963:announceProvider",i),0===n.length){const e=h()?window.ethereum??null:null;if(e){const r=window;let s="Browser Wallet",i="injected";r.ethereum?.isMetaMask?(s="MetaMask",i=l.METAMASK):r.ethereum?.isCoinbaseWallet?(s="Coinbase Wallet",i=l.COINBASE):r.ethereum?.isTrust&&(s="Trust Wallet",i=l.TRUST_WALLET);const o={id:i,name:s,rdns:i,icon:u[i]??"",provider:e,isInjected:!0};n.push(o),t.set(o.id,o)}}if(!t.has(l.TRUST_WALLET)){const e=function(){if(!h())return null;const e=window;if(A(e.ethereum)&&e.ethereum.isTrust)return e.ethereum;const n=e.ethereum?.providers?.find(e=>A(e)&&!0===e.isTrust);return void 0!==n?n:A(e.trustwallet)?e.trustwallet:null}();if(null!==e&&!n.some(n=>n.provider===e)){const r={id:l.TRUST_WALLET,name:"Trust Wallet",rdns:l.TRUST_WALLET,icon:u[l.TRUST_WALLET]??"",provider:e,isInjected:!0};n.push(r),t.set(r.id,r)}}const e=window;if(e.gala?.request&&!t.has(l.GALA)){const r={id:l.GALA,name:"Gala Wallet",rdns:l.GALA,icon:u[l.GALA]??"",provider:e.gala,isInjected:!0};n.push(r),t.set(r.id,r)}r({wallets:n,byId:t,hasWallets:n.length>0,...void 0===n[0]?{}:{primary:n[0]}})},e)}):{wallets:n,byId:t,hasWallets:!1}}function f(e,n,t){return{types:{EIP712Domain:v(e),...n},primaryType:Object.keys(n)[0],domain:g(e),message:t}}function v(e){const n=[];return void 0!==e.name&&n.push({name:"name",type:"string"}),void 0!==e.version&&n.push({name:"version",type:"string"}),void 0!==e.chainId&&n.push({name:"chainId",type:"uint256"}),void 0!==e.verifyingContract&&n.push({name:"verifyingContract",type:"address"}),void 0!==e.salt&&n.push({name:"salt",type:"bytes32"}),n}function g(e){const n={};return void 0!==e.name&&(n.name=e.name),void 0!==e.version&&(n.version=e.version),void 0!==e.chainId&&(n.chainId="bigint"==typeof e.chainId||"number"==typeof e.chainId?`0x${e.chainId.toString(16)}`:e.chainId),void 0!==e.verifyingContract&&(n.verifyingContract=e.verifyingContract),void 0!==e.salt&&(n.salt=e.salt),n}function E(e){return`0x${Buffer.from(e,"utf8").toString("hex")}`}async function p(e,n,t){return e.request({method:"personal_sign",params:[E(t),n]})}async function y(e,n,t,r,s){return e.request({method:"eth_signTypedData_v4",params:[n,JSON.stringify(f(t,r,s))]})}class m{constructor(e){this.connectedAddress=null,this.provider=e,this.eventHandlers=function(e,n,t){if(null==e||"function"!=typeof e.on)return{accountsChanged:null,disconnect:null};const r=e=>{const t=e[0];n(void 0===t?null:c(t))},s=()=>t();return e.on("accountsChanged",r),e.on("disconnect",s),{accountsChanged:r,disconnect:s}}(e,e=>{this.connectedAddress=e},()=>{this.connectedAddress=null})}removeEventListeners(){!function(e,n){if("function"!=typeof e.removeListener)return;null!==n.accountsChanged&&e.removeListener("accountsChanged",n.accountsChanged);null!==n.disconnect&&e.removeListener("disconnect",n.disconnect)}(this.provider,this.eventHandlers)}}class N extends Error{constructor(e,n,t){super(e),this.code=n,this.originalError=t,this.name="WalletProviderError"}}var I;async function C(e,n,t){try{return await e()}catch(e){if(e instanceof N)throw e;return n(e,t)}}!function(e){e.USER_REJECTED="USER_REJECTED",e.NOT_CONNECTED="NOT_CONNECTED",e.CONNECTION_FAILED="CONNECTION_FAILED",e.SIGNING_FAILED="SIGNING_FAILED",e.PROVIDER_NOT_AVAILABLE="PROVIDER_NOT_AVAILABLE",e.PRIVATE_KEY_NOT_ACCESSIBLE="PRIVATE_KEY_NOT_ACCESSIBLE",e.INVALID_CONFIG="INVALID_CONFIG",e.CHAIN_MISMATCH="CHAIN_MISMATCH",e.UNKNOWN="UNKNOWN"}(I||(I={}));const L=4001,T=4100,O=4900,D=4901;class S extends m{constructor(e){if(super(e),this.providerType="external",null==e)throw new N("EIP-1193 provider is required",I.INVALID_CONFIG)}handleProviderError(e,n){const t=e;if(t.code===L)throw new N(`User rejected ${n}`,I.USER_REJECTED,e instanceof Error?e:void 0);if(t.code===T)throw new N("Wallet is not authorized",I.NOT_CONNECTED,e instanceof Error?e:void 0);if(t.code===O||t.code===D)throw this.connectedAddress=null,new N("Wallet disconnected",I.NOT_CONNECTED,e instanceof Error?e:void 0);throw new N(t.message??`${n} failed`,n.includes("sign")?I.SIGNING_FAILED:I.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(!this.connectedAddress)throw new N("Wallet is not connected. Call connect() first.",I.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new N("No accounts returned from wallet",I.CONNECTION_FAILED);const n=e[0];if(void 0===n)throw new N("No accounts returned from wallet",I.CONNECTION_FAILED);return this.connectedAddress=c(n),this.connectedAddress}catch(e){if(e instanceof N)throw e;return this.handleProviderError(e,"connect")}}async disconnect(){this.connectedAddress=null,this.removeEventListeners();try{await this.provider.request({method:"wallet_revokePermissions",params:[{eth_accounts:{}}]})}catch{}}isConnected(){return null!==this.connectedAddress}async signMessage(e){return this.ensureConnected(),C(()=>p(this.provider,this.connectedAddress,e),(e,n)=>this.handleProviderError(e,n),"sign message")}async signTypedData(e,n,t){return this.ensureConnected(),C(()=>y(this.provider,this.connectedAddress,e,n,t),(e,n)=>this.handleProviderError(e,n),"sign typed data")}async getAddress(){await Promise.resolve(),this.ensureConnected();const e=this.connectedAddress;if(null==e)throw new N("Wallet is not connected",I.NOT_CONNECTED);return e}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async getPrivateKey(){return Promise.reject(new N("Private key is not accessible with external wallet providers. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",I.PRIVATE_KEY_NOT_ACCESSIBLE))}getProvider(){return this.provider}}class W extends m{constructor(e){if(super(e),this.providerType="external",this.galaRawAddress=null,!e)throw new N("Gala Wallet provider is required",I.PROVIDER_NOT_AVAILABLE)}parseGalaError(e){if(e instanceof Error)try{const n=JSON.parse(e.message);if("object"==typeof n&&null!==n){const t=n,r={message:"string"==typeof t.message?t.message:e.message};return"number"==typeof t.code&&(r.code=t.code),r}return{message:e.message}}catch{return{message:e.message}}return{message:String(e)}}handleProviderError(e,n){const t=this.parseGalaError(e);if(4001===t.code)throw new N(`User rejected ${n}`,I.USER_REJECTED,e instanceof Error?e:void 0);if(4900===t.code)throw this.connectedAddress=null,new N("Wallet disconnected",I.NOT_CONNECTED,e instanceof Error?e:void 0);const r=t.message?t.message:`${n} failed`;throw new N(r,n.includes("sign")?I.SIGNING_FAILED:I.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(null===this.connectedAddress||void 0===this.connectedAddress)throw new N("Wallet is not connected. Call connect() first.",I.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new N("No accounts returned from Gala Wallet",I.CONNECTION_FAILED);const n=e[0];if(void 0===n)throw new N("No accounts returned from Gala Wallet",I.CONNECTION_FAILED);this.galaRawAddress=n;let t=n;return t.startsWith("eth|")?t=`0x${t.slice(4)}`:t.startsWith("0x")||(t=`0x${t}`),this.connectedAddress=c(t),this.connectedAddress}catch(e){if(e instanceof N)throw e;return this.handleProviderError(e,"connect")}}async disconnect(){this.connectedAddress=null,this.galaRawAddress=null,this.removeEventListeners();try{await this.provider.disconnect()}catch{}}isConnected(){return null!==this.connectedAddress}async signMessage(e){return this.ensureConnected(),C(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),p(this.provider,this.connectedAddress,e)),(e,n)=>this.handleProviderError(e,n),"sign message")}async signTypedData(e,n,t){return this.ensureConnected(),C(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),y(this.provider,this.connectedAddress,e,n,t)),(e,n)=>this.handleProviderError(e,n),"sign typed data")}getAddress(){return this.ensureConnected(),Promise.resolve(this.connectedAddress)}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}getPrivateKey(){throw new N("Private key is not accessible with Gala Wallet. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",I.PRIVATE_KEY_NOT_ACCESSIBLE)}getProvider(){return this.provider}}const M={provider:null,address:null,galaAddress:null,isConnected:!1,isConnecting:!1,isDetecting:!1,error:null,detectedWallets:[],connect:async()=>{throw new Error("WalletContext not initialized")},connectDetected:async()=>{throw new Error("WalletContext not initialized")},disconnect:async()=>{throw new Error("WalletContext not initialized")},setProvider:()=>{throw new Error("WalletContext not initialized")},refreshWallets:async()=>{throw new Error("WalletContext not initialized")},clearError:()=>{throw new Error("WalletContext not initialized")}},P=t(M),U="undefined"!=typeof window;function G({children:e,autoDetect:t=U,initialProvider:a,autoConnect:c=!0,onConnect:d,onDisconnect:u,onError:A}){const[f,v]=r(a??null),[g,E]=r(null),[p,y]=r(null),[m,N]=r(!1),[I,C]=r(!1),[L,T]=r(null),[O,D]=r([]),M=null!==f&&null!==g,G=s(()=>{T(null)},[]),b=s(e=>{v(e),e||(E(null),y(null))},[]),B=s(async e=>{N(!0),T(null);try{e.isConnected()||await e.connect();const n=await e.getAddress(),t=await e.getGalaAddress();return v(e),E(n),y(t),d?.(n,e),n}catch(e){const n=e instanceof Error?e:new Error(String(e));throw T(n),A?.(n),n}finally{N(!1)}},[d,A]),R=s(async e=>{if(e.rdns===l.GALA){const n=new W(e.provider);return B(n)}const n=new S(e.provider);return B(n)},[B]),V=s(async()=>{if(f)try{await f.disconnect()}catch{}v(null),E(null),y(null),T(null),u?.()},[f,u]),F=s(async()=>{if(U){C(!0);try{let e=[...(await w()).wallets];const n=window;if(void 0!==n.gala&&!e.some(e=>e.rdns===l.GALA)){e=[{id:l.GALA,name:"Gala Wallet",rdns:l.GALA,icon:"",provider:n.gala,isInjected:!0},...e]}D(e)}catch{D([])}finally{C(!1)}}},[]);i(()=>{if(!t||!U)return;F();const e=function(e){if(!h())return()=>{};let n=!0,t={wallets:[],byId:new Map,hasWallets:!1};const r=r=>{if(!n)return;const s=r,{info:i,provider:o}=s.detail,a=i.rdns||i.uuid;if(t.byId.has(a))return;const c={id:a,name:i.name,rdns:a,icon:i.icon??"",provider:o,isInjected:!1},d=[...t.wallets,c],l=new Map(t.byId);l.set(c.id,c),t={wallets:d,byId:l,hasWallets:!0,...void 0===d[0]?{}:{primary:d[0]}},e(t)};return window.addEventListener("eip6963:announceProvider",r),w().then(r=>{n&&(t=r,e(r))}),()=>{n=!1,window.removeEventListener("eip6963:announceProvider",r)}}(e=>{D(e.wallets)});return()=>{e()}},[t,F]),i(()=>{a&&c&&!M&&!m&&B(a)},[a,c,M,m,B]);const K=o(()=>({provider:f,address:g,galaAddress:p,isConnected:M,isConnecting:m,isDetecting:I,error:L,detectedWallets:O,connect:B,connectDetected:R,disconnect:V,setProvider:b,refreshWallets:F,clearError:G}),[f,g,p,M,m,I,L,O,B,R,V,b,F,G]);return n(P.Provider,{value:K,children:e})}function b(){const e=a(P);if(e===M)throw new Error("useWalletContext must be used within a WalletProvider");return e}function B(){return b()}function R(){const{address:e}=b();return e}function V(){const{galaAddress:e}=b();return e}function F(){const{isConnected:e}=b();return e}function K(){const{provider:e}=b();return e}function j(){const{isConnecting:e,isConnected:n,error:t,connect:r,connectDetected:s,disconnect:i,clearError:a}=b(),c=o(()=>e?"connecting":t?"error":n?"connected":"disconnected",[e,t,n]);return o(()=>({status:c,isConnecting:e,isConnected:n,error:t,connect:r,connectDetected:s,disconnect:i,clearError:a}),[c,e,n,t,r,s,i,a])}function x(){const{detectedWallets:e,isDetecting:n,refreshWallets:t}=b(),r=o(()=>n=>e.some(e=>e.rdns===n),[e]),s=o(()=>n=>e.find(e=>e.rdns===n),[e]),i=o(()=>e.some(e=>e.rdns===l.METAMASK),[e]),a=o(()=>e.some(e=>e.rdns===l.COINBASE),[e]),c=e.length>0;return o(()=>({wallets:e,isDetecting:n,refresh:t,hasWallet:r,getWallet:s,hasMetaMask:i,hasCoinbaseWallet:a,hasAnyWallet:c}),[e,n,t,r,s,i,a,c])}class Q{constructor(e){this.providerType="privateKey",this.connected=!0;try{this.wallet=new d(e)}catch(e){throw new N("Invalid private key provided",I.INVALID_CONFIG,e instanceof Error?e:void 0)}}static fromWallet(e){return new Q(e.privateKey)}async signMessage(e){try{return await this.wallet.signMessage(e)}catch(e){throw new N("Failed to sign message",I.SIGNING_FAILED,e instanceof Error?e:void 0)}}async signTypedData(e,n,t){try{return await this.wallet.signTypedData(e,n,t)}catch(e){throw new N("Failed to sign typed data",I.SIGNING_FAILED,e instanceof Error?e:void 0)}}getAddress(){return Promise.resolve(c(this.wallet.address))}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async connect(){return this.connected=!0,this.getAddress()}disconnect(){return this.connected=!1,Promise.resolve()}isConnected(){return this.connected}getPrivateKey(){return Promise.resolve(this.wallet.privateKey)}getWallet(){return this.wallet}}export{S as ExternalWalletProvider,l as KNOWN_WALLET_RDNS,Q as PrivateKeyProvider,P as WalletContext,G as WalletProvider,w as detectWallets,V as useGalaAddress,F as useIsWalletConnected,B as useWallet,R as useWalletAddress,j as useWalletConnection,b as useWalletContext,x as useWalletDetection,K as useWalletProvider};