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

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 (252) hide show
  1. package/CHANGELOG.md +362 -0
  2. package/EXAMPLES.md +95 -681
  3. package/MIGRATING-TO-9.0.md +301 -0
  4. package/README.md +46 -17
  5. package/dist/LaunchpadSDK.d.ts +138 -413
  6. package/dist/LaunchpadSDK.d.ts.map +1 -1
  7. package/dist/api/LaunchpadAPI.d.ts +5 -37
  8. package/dist/api/LaunchpadAPI.d.ts.map +1 -1
  9. package/dist/auth/SignatureAuth.d.ts +2 -2
  10. package/dist/auth/SignatureAuth.d.ts.map +1 -1
  11. package/dist/auth/types.d.ts +1 -1
  12. package/dist/auth/types.d.ts.map +1 -1
  13. package/dist/config/environments.d.ts +7 -2
  14. package/dist/config/environments.d.ts.map +1 -1
  15. package/dist/constants/decimals.d.ts +0 -23
  16. package/dist/constants/decimals.d.ts.map +1 -1
  17. package/dist/constants/endpoints.d.ts +0 -7
  18. package/dist/constants/endpoints.d.ts.map +1 -1
  19. package/dist/constants/version.generated.d.ts +1 -1
  20. package/dist/constants/version.generated.d.ts.map +1 -1
  21. package/dist/helpers/sdk.d.ts.map +1 -1
  22. package/dist/index.browser.d.ts +8 -22
  23. package/dist/index.browser.d.ts.map +1 -1
  24. package/dist/index.browser.esm.js +1 -1
  25. package/dist/index.cjs +1 -1
  26. package/dist/index.esm.js +1 -1
  27. package/dist/index.js +1 -1
  28. package/dist/index.node.d.ts +4 -5
  29. package/dist/index.node.d.ts.map +1 -1
  30. package/dist/launchpad/bundle-submission.d.ts +1 -9
  31. package/dist/launchpad/bundle-submission.d.ts.map +1 -1
  32. package/dist/launchpad/transport.d.ts +2 -1
  33. package/dist/launchpad/transport.d.ts.map +1 -1
  34. package/dist/native.cjs +1 -1
  35. package/dist/native.d.ts +3 -4
  36. package/dist/native.d.ts.map +1 -1
  37. package/dist/native.esm.js +1 -1
  38. package/dist/schemas/user.d.ts +0 -15
  39. package/dist/schemas/user.d.ts.map +1 -1
  40. package/dist/services/AbstractCacheService.d.ts +2 -2
  41. package/dist/services/GalaChainBalanceService.d.ts +17 -89
  42. package/dist/services/GalaChainBalanceService.d.ts.map +1 -1
  43. package/dist/services/GalaChainLockService.d.ts +19 -20
  44. package/dist/services/GalaChainLockService.d.ts.map +1 -1
  45. package/dist/services/GalaChainService.d.ts +28 -15
  46. package/dist/services/GalaChainService.d.ts.map +1 -1
  47. package/dist/services/GalaChainTokenService.d.ts +25 -53
  48. package/dist/services/GalaChainTokenService.d.ts.map +1 -1
  49. package/dist/services/GalaChainTransferService.d.ts +42 -41
  50. package/dist/services/GalaChainTransferService.d.ts.map +1 -1
  51. package/dist/services/LaunchpadPriceService.d.ts +66 -0
  52. package/dist/services/LaunchpadPriceService.d.ts.map +1 -0
  53. package/dist/services/NftCollectionService.d.ts +22 -6
  54. package/dist/services/NftCollectionService.d.ts.map +1 -1
  55. package/dist/services/TokenResolverService.d.ts +5 -5
  56. package/dist/services/TokenResolverService.d.ts.map +1 -1
  57. package/dist/services/gateway-transport.d.ts +32 -0
  58. package/dist/services/gateway-transport.d.ts.map +1 -0
  59. package/dist/services/gateway-writes.d.ts +83 -0
  60. package/dist/services/gateway-writes.d.ts.map +1 -0
  61. package/dist/signing/index.d.ts +2 -3
  62. package/dist/signing/index.d.ts.map +1 -1
  63. package/dist/signing/signers.d.ts +7 -8
  64. package/dist/signing/signers.d.ts.map +1 -1
  65. package/dist/signing/types.d.ts +7 -10
  66. package/dist/signing/types.d.ts.map +1 -1
  67. package/dist/types/burn.dto.d.ts +4 -2
  68. package/dist/types/burn.dto.d.ts.map +1 -1
  69. package/dist/types/common.d.ts +2 -23
  70. package/dist/types/common.d.ts.map +1 -1
  71. package/dist/types/dto.d.ts +0 -5
  72. package/dist/types/dto.d.ts.map +1 -1
  73. package/dist/types/launchpad.dto.d.ts +0 -257
  74. package/dist/types/launchpad.dto.d.ts.map +1 -1
  75. package/dist/types/lock.dto.d.ts +12 -7
  76. package/dist/types/lock.dto.d.ts.map +1 -1
  77. package/dist/types/options.dto.d.ts +8 -34
  78. package/dist/types/options.dto.d.ts.map +1 -1
  79. package/dist/types/user.dto.d.ts +7 -62
  80. package/dist/types/user.dto.d.ts.map +1 -1
  81. package/dist/utils/address-formatter.d.ts +10 -2
  82. package/dist/utils/address-formatter.d.ts.map +1 -1
  83. package/dist/utils/agent-config.d.ts +9 -4
  84. package/dist/utils/agent-config.d.ts.map +1 -1
  85. package/dist/utils/auto-pagination.d.ts +6 -239
  86. package/dist/utils/auto-pagination.d.ts.map +1 -1
  87. package/dist/utils/bignumber-helpers.d.ts +3 -2
  88. package/dist/utils/bignumber-helpers.d.ts.map +1 -1
  89. package/dist/utils/delimiter-parser.d.ts +0 -13
  90. package/dist/utils/delimiter-parser.d.ts.map +1 -1
  91. package/dist/utils/error-patterns.d.ts +0 -47
  92. package/dist/utils/error-patterns.d.ts.map +1 -1
  93. package/dist/utils/error-wrapper.d.ts +5 -5
  94. package/dist/utils/errors.d.ts +0 -308
  95. package/dist/utils/errors.d.ts.map +1 -1
  96. package/dist/utils/http.d.ts +15 -3
  97. package/dist/utils/http.d.ts.map +1 -1
  98. package/dist/utils/token-format-converter.d.ts +1 -1
  99. package/dist/utils/token-parser.d.ts +6 -127
  100. package/dist/utils/token-parser.d.ts.map +1 -1
  101. package/dist/utils/token-stringification.d.ts +7 -7
  102. package/dist/utils/token-stringification.d.ts.map +1 -1
  103. package/dist/utils/tokenNameNormalizer.d.ts +2 -2
  104. package/dist/utils/tokenNormalizer.d.ts +5 -29
  105. package/dist/utils/tokenNormalizer.d.ts.map +1 -1
  106. package/dist/utils/unique-key-generator.d.ts +7 -134
  107. package/dist/utils/unique-key-generator.d.ts.map +1 -1
  108. package/dist/utils/validation-helpers.d.ts +3 -5
  109. package/dist/utils/validation-helpers.d.ts.map +1 -1
  110. package/package.json +47 -87
  111. package/dist/api/dto/BurnTokensDto.d.ts +0 -77
  112. package/dist/api/dto/BurnTokensDto.d.ts.map +0 -1
  113. package/dist/api/dto/LockTokenDto.d.ts +0 -85
  114. package/dist/api/dto/LockTokenDto.d.ts.map +0 -1
  115. package/dist/api/dto/TransferTokenDto.d.ts +0 -64
  116. package/dist/api/dto/TransferTokenDto.d.ts.map +0 -1
  117. package/dist/api/dto/UnlockTokenDto.d.ts +0 -74
  118. package/dist/api/dto/UnlockTokenDto.d.ts.map +0 -1
  119. package/dist/bridge/BridgeService.d.ts +0 -484
  120. package/dist/bridge/BridgeService.d.ts.map +0 -1
  121. package/dist/bridge/GalaConnectClient.d.ts +0 -170
  122. package/dist/bridge/GalaConnectClient.d.ts.map +0 -1
  123. package/dist/bridge/constants/index.d.ts +0 -7
  124. package/dist/bridge/constants/index.d.ts.map +0 -1
  125. package/dist/bridge/constants/tokens.d.ts +0 -212
  126. package/dist/bridge/constants/tokens.d.ts.map +0 -1
  127. package/dist/bridge/index.d.ts +0 -24
  128. package/dist/bridge/index.d.ts.map +0 -1
  129. package/dist/bridge/public-types.d.ts +0 -2
  130. package/dist/bridge/public-types.d.ts.map +0 -1
  131. package/dist/bridge/strategies/BridgeStrategy.d.ts +0 -204
  132. package/dist/bridge/strategies/BridgeStrategy.d.ts.map +0 -1
  133. package/dist/bridge/strategies/EthereumBridgeStrategy.d.ts +0 -178
  134. package/dist/bridge/strategies/EthereumBridgeStrategy.d.ts.map +0 -1
  135. package/dist/bridge/strategies/SolanaBridgeStrategy.d.ts +0 -236
  136. package/dist/bridge/strategies/SolanaBridgeStrategy.d.ts.map +0 -1
  137. package/dist/bridge/types/bridge.dto.d.ts +0 -772
  138. package/dist/bridge/types/bridge.dto.d.ts.map +0 -1
  139. package/dist/bridge/types/bridgeable-token.dto.d.ts +0 -209
  140. package/dist/bridge/types/bridgeable-token.dto.d.ts.map +0 -1
  141. package/dist/bridge/types/eip712.d.ts +0 -66
  142. package/dist/bridge/types/eip712.d.ts.map +0 -1
  143. package/dist/bridge/types/index.d.ts +0 -8
  144. package/dist/bridge/types/index.d.ts.map +0 -1
  145. package/dist/bridge/utils/RateLimiter.d.ts +0 -34
  146. package/dist/bridge/utils/RateLimiter.d.ts.map +0 -1
  147. package/dist/bridge/utils/address-formatter.d.ts +0 -25
  148. package/dist/bridge/utils/address-formatter.d.ts.map +0 -1
  149. package/dist/bridge/utils/addressValidation.d.ts +0 -200
  150. package/dist/bridge/utils/addressValidation.d.ts.map +0 -1
  151. package/dist/bridge/utils/balanceHelpers.d.ts +0 -215
  152. package/dist/bridge/utils/balanceHelpers.d.ts.map +0 -1
  153. package/dist/bridge/utils/bridgeErrors.d.ts +0 -98
  154. package/dist/bridge/utils/bridgeErrors.d.ts.map +0 -1
  155. package/dist/bridge/utils/bridgeOutHelpers.d.ts +0 -68
  156. package/dist/bridge/utils/bridgeOutHelpers.d.ts.map +0 -1
  157. package/dist/bridge/utils/bridgePayload.d.ts +0 -98
  158. package/dist/bridge/utils/bridgePayload.d.ts.map +0 -1
  159. package/dist/bridge/utils/bridgeStatusParser.d.ts +0 -76
  160. package/dist/bridge/utils/bridgeStatusParser.d.ts.map +0 -1
  161. package/dist/bridge/utils/eip712Helpers.d.ts +0 -66
  162. package/dist/bridge/utils/eip712Helpers.d.ts.map +0 -1
  163. package/dist/bridge/utils/index.d.ts +0 -19
  164. package/dist/bridge/utils/index.d.ts.map +0 -1
  165. package/dist/bridge/utils/retry.d.ts +0 -112
  166. package/dist/bridge/utils/retry.d.ts.map +0 -1
  167. package/dist/bridge/utils/strategyDelegation.d.ts +0 -126
  168. package/dist/bridge/utils/strategyDelegation.d.ts.map +0 -1
  169. package/dist/bridge/utils/tokenIdUtils.d.ts +0 -86
  170. package/dist/bridge/utils/tokenIdUtils.d.ts.map +0 -1
  171. package/dist/bridge/utils/tokenMath.d.ts +0 -39
  172. package/dist/bridge/utils/tokenMath.d.ts.map +0 -1
  173. package/dist/bridge/utils/tokenMetadataResolver.d.ts +0 -97
  174. package/dist/bridge/utils/tokenMetadataResolver.d.ts.map +0 -1
  175. package/dist/helpers/wallet.d.ts +0 -151
  176. package/dist/helpers/wallet.d.ts.map +0 -1
  177. package/dist/react/WalletContext.d.ts +0 -60
  178. package/dist/react/WalletContext.d.ts.map +0 -1
  179. package/dist/react/index.d.ts +0 -65
  180. package/dist/react/index.d.ts.map +0 -1
  181. package/dist/react/types.d.ts +0 -76
  182. package/dist/react/types.d.ts.map +0 -1
  183. package/dist/react/useWallet.d.ts +0 -123
  184. package/dist/react/useWallet.d.ts.map +0 -1
  185. package/dist/react/useWalletConnection.d.ts +0 -89
  186. package/dist/react/useWalletConnection.d.ts.map +0 -1
  187. package/dist/react/useWalletDetection.d.ts +0 -81
  188. package/dist/react/useWalletDetection.d.ts.map +0 -1
  189. package/dist/react.cjs +0 -1
  190. package/dist/react.esm.js +0 -1
  191. package/dist/services/AbstractTokenFetchService.d.ts +0 -150
  192. package/dist/services/AbstractTokenFetchService.d.ts.map +0 -1
  193. package/dist/services/BatchedCacheService.d.ts +0 -133
  194. package/dist/services/BatchedCacheService.d.ts.map +0 -1
  195. package/dist/services/BridgeableTokenCache.d.ts +0 -120
  196. package/dist/services/BridgeableTokenCache.d.ts.map +0 -1
  197. package/dist/services/BridgeableTokenService.d.ts +0 -218
  198. package/dist/services/BridgeableTokenService.d.ts.map +0 -1
  199. package/dist/services/DexService.d.ts +0 -440
  200. package/dist/services/DexService.d.ts.map +0 -1
  201. package/dist/services/NetworkKeyedCacheService.d.ts +0 -185
  202. package/dist/services/NetworkKeyedCacheService.d.ts.map +0 -1
  203. package/dist/services/PriceHistoryService.d.ts +0 -209
  204. package/dist/services/PriceHistoryService.d.ts.map +0 -1
  205. package/dist/services/WrapService.d.ts +0 -171
  206. package/dist/services/WrapService.d.ts.map +0 -1
  207. package/dist/services/WrappableTokenCache.d.ts +0 -100
  208. package/dist/services/WrappableTokenCache.d.ts.map +0 -1
  209. package/dist/services/WrappableTokenService.d.ts +0 -130
  210. package/dist/services/WrappableTokenService.d.ts.map +0 -1
  211. package/dist/setup.d.ts +0 -8
  212. package/dist/setup.d.ts.map +0 -1
  213. package/dist/tokens/transfers.d.ts +0 -95
  214. package/dist/tokens/transfers.d.ts.map +0 -1
  215. package/dist/types/galachain-api.types.d.ts +0 -297
  216. package/dist/types/galachain-api.types.d.ts.map +0 -1
  217. package/dist/types/priceHistory.dto.d.ts +0 -134
  218. package/dist/types/priceHistory.dto.d.ts.map +0 -1
  219. package/dist/types/token.types.d.ts +0 -359
  220. package/dist/types/token.types.d.ts.map +0 -1
  221. package/dist/types/wrappable-token.dto.d.ts +0 -305
  222. package/dist/types/wrappable-token.dto.d.ts.map +0 -1
  223. package/dist/utils/crypto-compat.d.ts +0 -40
  224. package/dist/utils/crypto-compat.d.ts.map +0 -1
  225. package/dist/utils/load-env.d.ts +0 -31
  226. package/dist/utils/load-env.d.ts.map +0 -1
  227. package/dist/utils/token-instance-key.d.ts +0 -57
  228. package/dist/utils/token-instance-key.d.ts.map +0 -1
  229. package/dist/utils/wallet.d.ts +0 -166
  230. package/dist/utils/wallet.d.ts.map +0 -1
  231. package/dist/wallet/ExternalWalletProvider.d.ts +0 -90
  232. package/dist/wallet/ExternalWalletProvider.d.ts.map +0 -1
  233. package/dist/wallet/GalaWalletProvider.d.ts +0 -122
  234. package/dist/wallet/GalaWalletProvider.d.ts.map +0 -1
  235. package/dist/wallet/PrivateKeyProvider.d.ts +0 -90
  236. package/dist/wallet/PrivateKeyProvider.d.ts.map +0 -1
  237. package/dist/wallet/detection.d.ts +0 -107
  238. package/dist/wallet/detection.d.ts.map +0 -1
  239. package/dist/wallet/event-handlers.d.ts +0 -50
  240. package/dist/wallet/event-handlers.d.ts.map +0 -1
  241. package/dist/wallet/index.d.ts +0 -51
  242. package/dist/wallet/index.d.ts.map +0 -1
  243. package/dist/wallet/signing-operation.d.ts +0 -19
  244. package/dist/wallet/signing-operation.d.ts.map +0 -1
  245. package/dist/wallet/typed-data-helpers.d.ts +0 -68
  246. package/dist/wallet/typed-data-helpers.d.ts.map +0 -1
  247. package/dist/wallet/types.d.ts +0 -267
  248. package/dist/wallet/types.d.ts.map +0 -1
  249. package/dist/wallet/utils.d.ts +0 -117
  250. package/dist/wallet/utils.d.ts.map +0 -1
  251. package/dist/wallet.cjs +0 -1
  252. package/dist/wallet.esm.js +0 -1
@@ -1,117 +0,0 @@
1
- /**
2
- * Wallet Provider Utilities
3
- *
4
- * Helper functions for creating and working with wallet providers.
5
- *
6
- * @packageDocumentation
7
- */
8
- import type { Wallet } from 'ethers';
9
- import { ExternalWalletProvider } from './ExternalWalletProvider';
10
- import { PrivateKeyProvider } from './PrivateKeyProvider';
11
- import type { Eip1193Provider, WalletProvider, WalletProviderConfig } from './types';
12
- /**
13
- * Creates a WalletProvider from configuration
14
- *
15
- * This is the main factory function for creating wallet providers.
16
- * It automatically selects the appropriate provider type based on config.
17
- *
18
- * @param config - Configuration specifying how to create the provider
19
- * @returns A WalletProvider instance
20
- *
21
- * @example
22
- * ```typescript
23
- * // From private key
24
- * const provider = createWalletProvider({ privateKey: '0x...' });
25
- *
26
- * // From browser wallet
27
- * const provider = createWalletProvider({ eip1193Provider: window.ethereum });
28
- * await provider.connect();
29
- * ```
30
- */
31
- export declare function createWalletProvider(config: WalletProviderConfig): WalletProvider;
32
- /**
33
- * Creates a PrivateKeyProvider from an ethers.js Wallet
34
- *
35
- * Convenience function for SDK users who already have an ethers Wallet.
36
- *
37
- * @param wallet - An ethers.js Wallet instance
38
- * @returns A PrivateKeyProvider wrapping the wallet
39
- */
40
- export declare function createProviderFromWallet(wallet: Wallet): PrivateKeyProvider;
41
- /**
42
- * Creates an ExternalWalletProvider from an EIP-1193 provider
43
- *
44
- * Convenience function for creating providers from browser wallets.
45
- *
46
- * @param provider - An EIP-1193 compatible provider
47
- * @returns An ExternalWalletProvider
48
- */
49
- export declare function createProviderFromEip1193(provider: Eip1193Provider): ExternalWalletProvider;
50
- /**
51
- * Checks if a provider is a PrivateKeyProvider
52
- *
53
- * Useful for determining if private key operations are available.
54
- *
55
- * @param provider - The provider to check
56
- * @returns true if the provider can access private keys
57
- */
58
- export declare function isPrivateKeyProvider(provider: WalletProvider): provider is PrivateKeyProvider;
59
- /**
60
- * Checks if a provider is an external provider
61
- *
62
- * @param provider - The provider to check
63
- * @returns true if the provider is an external wallet
64
- */
65
- export declare function isExternalProvider(provider: WalletProvider): boolean;
66
- /**
67
- * Gets the private key from a provider if available
68
- *
69
- * This is a safe way to get the private key, returning undefined
70
- * instead of throwing for external providers.
71
- *
72
- * @param provider - The wallet provider
73
- * @returns The private key or undefined if not available
74
- */
75
- export declare function getPrivateKeyIfAvailable(provider: WalletProvider): Promise<string | undefined>;
76
- /**
77
- * Converts an ethers Wallet to a WalletProvider
78
- *
79
- * For backward compatibility with SDK code that uses ethers Wallet directly.
80
- *
81
- * @param wallet - An ethers.js Wallet or undefined
82
- * @returns A WalletProvider or undefined
83
- */
84
- export declare function walletToProvider(wallet: Wallet | undefined): WalletProvider | undefined;
85
- /**
86
- * Gets an ethers Wallet from a provider if available
87
- *
88
- * For backward compatibility with SDK code that needs ethers Wallet.
89
- * Only works with PrivateKeyProvider.
90
- *
91
- * @param provider - The wallet provider
92
- * @returns An ethers Wallet or undefined
93
- */
94
- export declare function providerToWallet(provider: WalletProvider | undefined): Wallet | undefined;
95
- /**
96
- * Ensures a wallet provider is connected
97
- *
98
- * Calls connect() if not already connected and returns the address.
99
- *
100
- * @param provider - The wallet provider
101
- * @returns The connected address
102
- */
103
- export declare function ensureConnected(provider: WalletProvider): Promise<string>;
104
- /**
105
- * Type guard to check if an object looks like an EIP-1193 provider
106
- *
107
- * @param obj - Object to check
108
- * @returns true if the object has the EIP-1193 request method
109
- */
110
- export declare function isEip1193Provider(obj: unknown): obj is Eip1193Provider;
111
- /**
112
- * Gets window.ethereum if available (browser only)
113
- *
114
- * @returns The injected provider or null
115
- */
116
- export declare function getInjectedEip1193Provider(): Eip1193Provider | null;
117
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/wallet/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAGjB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAajF;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAE3E;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,eAAe,GAAG,sBAAsB,CAE3F;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,QAAQ,IAAI,kBAAkB,CAE7F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAEpE;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAUpG;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAGvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAKzF;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAK/E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAOtE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,eAAe,GAAG,IAAI,CAOnE"}
package/dist/wallet.cjs DELETED
@@ -1 +0,0 @@
1
- "use strict";var e,r=require("ethers");class t extends Error{constructor(e,r,t){super(e),this.code=r,this.originalError=t,this.name="WalletProviderError"}}function n(e,r,t){return{types:{EIP712Domain:s(e),...r},primaryType:Object.keys(r)[0],domain:o(e),message:t}}function s(e){const r=[];return void 0!==e.name&&r.push({name:"name",type:"string"}),void 0!==e.version&&r.push({name:"version",type:"string"}),void 0!==e.chainId&&r.push({name:"chainId",type:"uint256"}),void 0!==e.verifyingContract&&r.push({name:"verifyingContract",type:"address"}),void 0!==e.salt&&r.push({name:"salt",type:"bytes32"}),r}function o(e){const r={};return void 0!==e.name&&(r.name=e.name),void 0!==e.version&&(r.version=e.version),void 0!==e.chainId&&(r.chainId="bigint"==typeof e.chainId||"number"==typeof e.chainId?`0x${e.chainId.toString(16)}`:e.chainId),void 0!==e.verifyingContract&&(r.verifyingContract=e.verifyingContract),void 0!==e.salt&&(r.salt=e.salt),r}function i(e){return`0x${Buffer.from(e,"utf8").toString("hex")}`}async function a(e,r,t){return e.request({method:"personal_sign",params:[i(t),r]})}async function d(e,r,t,s,o){return e.request({method:"eth_signTypedData_v4",params:[r,JSON.stringify(n(t,s,o))]})}exports.WalletProviderErrorCode=void 0,(e=exports.WalletProviderErrorCode||(exports.WalletProviderErrorCode={})).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";class c{constructor(e){this.connectedAddress=null,this.provider=e,this.eventHandlers=function(e,t,n){if(null==e||"function"!=typeof e.on)return{accountsChanged:null,disconnect:null};const s=e=>{const n=e[0];t(void 0===n?null:r.getAddress(n))},o=()=>n();return e.on("accountsChanged",s),e.on("disconnect",o),{accountsChanged:s,disconnect:o}}(e,e=>{this.connectedAddress=e},()=>{this.connectedAddress=null})}removeEventListeners(){!function(e,r){if("function"!=typeof e.removeListener)return;null!==r.accountsChanged&&e.removeListener("accountsChanged",r.accountsChanged);null!==r.disconnect&&e.removeListener("disconnect",r.disconnect)}(this.provider,this.eventHandlers)}}async function l(e,r,n){try{return await e()}catch(e){if(e instanceof t)throw e;return r(e,n)}}const u=4001,h=4100,v=4900,A=4901;class p extends c{constructor(e){if(super(e),this.providerType="external",null==e)throw new t("EIP-1193 provider is required",exports.WalletProviderErrorCode.INVALID_CONFIG)}handleProviderError(e,r){const n=e;if(n.code===u)throw new t(`User rejected ${r}`,exports.WalletProviderErrorCode.USER_REJECTED,e instanceof Error?e:void 0);if(n.code===h)throw new t("Wallet is not authorized",exports.WalletProviderErrorCode.NOT_CONNECTED,e instanceof Error?e:void 0);if(n.code===v||n.code===A)throw this.connectedAddress=null,new t("Wallet disconnected",exports.WalletProviderErrorCode.NOT_CONNECTED,e instanceof Error?e:void 0);throw new t(n.message??`${r} failed`,r.includes("sign")?exports.WalletProviderErrorCode.SIGNING_FAILED:exports.WalletProviderErrorCode.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(!this.connectedAddress)throw new t("Wallet is not connected. Call connect() first.",exports.WalletProviderErrorCode.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new t("No accounts returned from wallet",exports.WalletProviderErrorCode.CONNECTION_FAILED);const n=e[0];if(void 0===n)throw new t("No accounts returned from wallet",exports.WalletProviderErrorCode.CONNECTION_FAILED);return this.connectedAddress=r.getAddress(n),this.connectedAddress}catch(e){if(e instanceof t)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(),l(()=>a(this.provider,this.connectedAddress,e),(e,r)=>this.handleProviderError(e,r),"sign message")}async signTypedData(e,r,t){return this.ensureConnected(),l(()=>d(this.provider,this.connectedAddress,e,r,t),(e,r)=>this.handleProviderError(e,r),"sign typed data")}async getAddress(){await Promise.resolve(),this.ensureConnected();const e=this.connectedAddress;if(null==e)throw new t("Wallet is not connected",exports.WalletProviderErrorCode.NOT_CONNECTED);return e}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async getPrivateKey(){return Promise.reject(new t("Private key is not accessible with external wallet providers. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",exports.WalletProviderErrorCode.PRIVATE_KEY_NOT_ACCESSIBLE))}getProvider(){return this.provider}}class E{constructor(e){this.providerType="privateKey",this.connected=!0;try{this.wallet=new r.Wallet(e)}catch(e){throw new t("Invalid private key provided",exports.WalletProviderErrorCode.INVALID_CONFIG,e instanceof Error?e:void 0)}}static fromWallet(e){return new E(e.privateKey)}async signMessage(e){try{return await this.wallet.signMessage(e)}catch(e){throw new t("Failed to sign message",exports.WalletProviderErrorCode.SIGNING_FAILED,e instanceof Error?e:void 0)}}async signTypedData(e,r,n){try{return await this.wallet.signTypedData(e,r,n)}catch(e){throw new t("Failed to sign typed data",exports.WalletProviderErrorCode.SIGNING_FAILED,e instanceof Error?e:void 0)}}getAddress(){return Promise.resolve(r.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}}const w={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"},f={[w.METAMASK]:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIxLjU0IDQuMjJsLTguMzQgNi4yMSAxLjU0LTMuNjUtLTUuNTMtMi41MXoiIGZpbGw9IiNFMjc2MUIiLz48L3N2Zz4=",[w.GALA]:"data:image/png;base64,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"};function g(){return"undefined"!=typeof window&&"function"==typeof window.dispatchEvent}function y(){if(!g())return null;return window.ethereum??null}function N(e){return"object"==typeof e&&null!==e&&"function"==typeof e.request}async function m(e=500){const r=[],t=new Map;return g()?new Promise(n=>{const s=new Set,o=e=>{const n=e,{info:o,provider:i}=n.detail;if(s.has(o.uuid))return;s.add(o.uuid);const a={id:o.rdns||o.uuid,name:o.name,rdns:o.rdns||o.uuid,icon:o.icon??f[o.rdns||""]??"",provider:i,isInjected:!1};r.push(a),t.set(a.id,a)};window.addEventListener("eip6963:announceProvider",o),window.dispatchEvent(new Event("eip6963:requestProvider")),setTimeout(()=>{if(window.removeEventListener("eip6963:announceProvider",o),0===r.length){const e=y();if(e){const n=window;let s="Browser Wallet",o="injected";n.ethereum?.isMetaMask?(s="MetaMask",o=w.METAMASK):n.ethereum?.isCoinbaseWallet?(s="Coinbase Wallet",o=w.COINBASE):n.ethereum?.isTrust&&(s="Trust Wallet",o=w.TRUST_WALLET);const i={id:o,name:s,rdns:o,icon:f[o]??"",provider:e,isInjected:!0};r.push(i),t.set(i.id,i)}}if(!t.has(w.TRUST_WALLET)){const e=function(){if(!g())return null;const e=window;if(N(e.ethereum)&&e.ethereum.isTrust)return e.ethereum;const r=e.ethereum?.providers?.find(e=>N(e)&&!0===e.isTrust);return void 0!==r?r:N(e.trustwallet)?e.trustwallet:null}();if(null!==e&&!r.some(r=>r.provider===e)){const n={id:w.TRUST_WALLET,name:"Trust Wallet",rdns:w.TRUST_WALLET,icon:f[w.TRUST_WALLET]??"",provider:e,isInjected:!0};r.push(n),t.set(n.id,n)}}const e=window;if(e.gala?.request&&!t.has(w.GALA)){const n={id:w.GALA,name:"Gala Wallet",rdns:w.GALA,icon:f[w.GALA]??"",provider:e.gala,isInjected:!0};r.push(n),t.set(n.id,n)}n({wallets:r,byId:t,hasWallets:r.length>0,...void 0===r[0]?{}:{primary:r[0]}})},e)}):{wallets:r,byId:t,hasWallets:!1}}async function I(e,r){return(await m(r)).byId.get(e)??null}function C(e){return"privateKey"===e.providerType}function P(e){return"object"==typeof e&&null!==e&&"request"in e&&"function"==typeof e.request}exports.ExternalWalletProvider=p,exports.GalaWalletProvider=class extends c{constructor(e){if(super(e),this.providerType="external",this.galaRawAddress=null,!e)throw new t("Gala Wallet provider is required",exports.WalletProviderErrorCode.PROVIDER_NOT_AVAILABLE)}parseGalaError(e){if(e instanceof Error)try{const r=JSON.parse(e.message);if("object"==typeof r&&null!==r){const t=r,n={message:"string"==typeof t.message?t.message:e.message};return"number"==typeof t.code&&(n.code=t.code),n}return{message:e.message}}catch{return{message:e.message}}return{message:String(e)}}handleProviderError(e,r){const n=this.parseGalaError(e);if(4001===n.code)throw new t(`User rejected ${r}`,exports.WalletProviderErrorCode.USER_REJECTED,e instanceof Error?e:void 0);if(4900===n.code)throw this.connectedAddress=null,new t("Wallet disconnected",exports.WalletProviderErrorCode.NOT_CONNECTED,e instanceof Error?e:void 0);const s=n.message?n.message:`${r} failed`;throw new t(s,r.includes("sign")?exports.WalletProviderErrorCode.SIGNING_FAILED:exports.WalletProviderErrorCode.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(null===this.connectedAddress||void 0===this.connectedAddress)throw new t("Wallet is not connected. Call connect() first.",exports.WalletProviderErrorCode.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new t("No accounts returned from Gala Wallet",exports.WalletProviderErrorCode.CONNECTION_FAILED);const n=e[0];if(void 0===n)throw new t("No accounts returned from Gala Wallet",exports.WalletProviderErrorCode.CONNECTION_FAILED);this.galaRawAddress=n;let s=n;return s.startsWith("eth|")?s=`0x${s.slice(4)}`:s.startsWith("0x")||(s=`0x${s}`),this.connectedAddress=r.getAddress(s),this.connectedAddress}catch(e){if(e instanceof t)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(),l(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),a(this.provider,this.connectedAddress,e)),(e,r)=>this.handleProviderError(e,r),"sign message")}async signTypedData(e,r,t){return this.ensureConnected(),l(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),d(this.provider,this.connectedAddress,e,r,t)),(e,r)=>this.handleProviderError(e,r),"sign typed data")}getAddress(){return this.ensureConnected(),Promise.resolve(this.connectedAddress)}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}getPrivateKey(){throw new t("Private key is not accessible with Gala Wallet. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",exports.WalletProviderErrorCode.PRIVATE_KEY_NOT_ACCESSIBLE)}getProvider(){return this.provider}},exports.KNOWN_WALLET_RDNS=w,exports.PrivateKeyProvider=E,exports.WalletProviderError=t,exports.createProviderFromEip1193=function(e){return new p(e)},exports.createProviderFromWallet=function(e){return E.fromWallet(e)},exports.createWalletProvider=function(e){if(null!==e.privateKey&&void 0!==e.privateKey&&e.privateKey.length>0)return new E(e.privateKey);if(null!==e.eip1193Provider&&void 0!==e.eip1193Provider)return new p(e.eip1193Provider);throw new t("Invalid wallet provider config: must provide either privateKey or eip1193Provider",exports.WalletProviderErrorCode.INVALID_CONFIG)},exports.detectWallets=m,exports.ensureConnected=async function(e){return e.isConnected()?e.getAddress():e.connect()},exports.getInjectedEip1193Provider=function(){if("undefined"==typeof window)return null;const e=window.ethereum;return P(e)?e:null},exports.getPrivateKeyIfAvailable=async function(e){if(C(e))try{return await e.getPrivateKey()}catch{return}},exports.getWalletByRdns=I,exports.hasAnyWallet=function(){return null!==y()},exports.isEip1193Provider=P,exports.isExternalProvider=function(e){return"external"===e.providerType},exports.isPrivateKeyProvider=C,exports.isWalletAvailable=async function(e,r){return null!==await I(e,r)},exports.providerToWallet=function(e){if(e&&C(e))return e.getWallet()},exports.subscribeToWalletChanges=function(e){if(!g())return()=>{};let r=!0,t={wallets:[],byId:new Map,hasWallets:!1};const n=n=>{if(!r)return;const s=n,{info:o,provider:i}=s.detail,a=o.rdns||o.uuid;if(t.byId.has(a))return;const d={id:a,name:o.name,rdns:a,icon:o.icon??"",provider:i,isInjected:!1},c=[...t.wallets,d],l=new Map(t.byId);l.set(d.id,d),t={wallets:c,byId:l,hasWallets:!0,...void 0===c[0]?{}:{primary:c[0]}},e(t)};return window.addEventListener("eip6963:announceProvider",n),m().then(n=>{r&&(t=n,e(n))}),()=>{r=!1,window.removeEventListener("eip6963:announceProvider",n)}},exports.walletToProvider=function(e){if(e)return E.fromWallet(e)};
@@ -1 +0,0 @@
1
- import{getAddress as e,Wallet as t}from"ethers";class n extends Error{constructor(e,t,n){super(e),this.code=t,this.originalError=n,this.name="WalletProviderError"}}var r;function s(e,t,n){return{types:{EIP712Domain:i(e),...t},primaryType:Object.keys(t)[0],domain:o(e),message:n}}function i(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 o(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 a(e){return`0x${Buffer.from(e,"utf8").toString("hex")}`}async function d(e,t,n){return e.request({method:"personal_sign",params:[a(n),t]})}async function c(e,t,n,r,i){return e.request({method:"eth_signTypedData_v4",params:[t,JSON.stringify(s(n,r,i))]})}!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"}(r||(r={}));class l{constructor(t){this.connectedAddress=null,this.provider=t,this.eventHandlers=function(t,n,r){if(null==t||"function"!=typeof t.on)return{accountsChanged:null,disconnect:null};const s=t=>{const r=t[0];n(void 0===r?null:e(r))},i=()=>r();return t.on("accountsChanged",s),t.on("disconnect",i),{accountsChanged:s,disconnect:i}}(t,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)}}async function u(e,t,r){try{return await e()}catch(e){if(e instanceof n)throw e;return t(e,r)}}const h=4001,A=4100,v=4900,w=4901;class f extends l{constructor(e){if(super(e),this.providerType="external",null==e)throw new n("EIP-1193 provider is required",r.INVALID_CONFIG)}handleProviderError(e,t){const s=e;if(s.code===h)throw new n(`User rejected ${t}`,r.USER_REJECTED,e instanceof Error?e:void 0);if(s.code===A)throw new n("Wallet is not authorized",r.NOT_CONNECTED,e instanceof Error?e:void 0);if(s.code===v||s.code===w)throw this.connectedAddress=null,new n("Wallet disconnected",r.NOT_CONNECTED,e instanceof Error?e:void 0);throw new n(s.message??`${t} failed`,t.includes("sign")?r.SIGNING_FAILED:r.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(!this.connectedAddress)throw new n("Wallet is not connected. Call connect() first.",r.NOT_CONNECTED)}async connect(){try{const t=await this.provider.request({method:"eth_requestAccounts"});if(null==t||0===t.length)throw new n("No accounts returned from wallet",r.CONNECTION_FAILED);const s=t[0];if(void 0===s)throw new n("No accounts returned from wallet",r.CONNECTION_FAILED);return this.connectedAddress=e(s),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(),u(()=>d(this.provider,this.connectedAddress,e),(e,t)=>this.handleProviderError(e,t),"sign message")}async signTypedData(e,t,n){return this.ensureConnected(),u(()=>c(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 n("Wallet is not connected",r.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.",r.PRIVATE_KEY_NOT_ACCESSIBLE))}getProvider(){return this.provider}}class p extends l{constructor(e){if(super(e),this.providerType="external",this.galaRawAddress=null,!e)throw new n("Gala Wallet provider is required",r.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 s=this.parseGalaError(e);if(4001===s.code)throw new n(`User rejected ${t}`,r.USER_REJECTED,e instanceof Error?e:void 0);if(4900===s.code)throw this.connectedAddress=null,new n("Wallet disconnected",r.NOT_CONNECTED,e instanceof Error?e:void 0);const i=s.message?s.message:`${t} failed`;throw new n(i,t.includes("sign")?r.SIGNING_FAILED:r.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.",r.NOT_CONNECTED)}async connect(){try{const t=await this.provider.request({method:"eth_requestAccounts"});if(null==t||0===t.length)throw new n("No accounts returned from Gala Wallet",r.CONNECTION_FAILED);const s=t[0];if(void 0===s)throw new n("No accounts returned from Gala Wallet",r.CONNECTION_FAILED);this.galaRawAddress=s;let i=s;return i.startsWith("eth|")?i=`0x${i.slice(4)}`:i.startsWith("0x")||(i=`0x${i}`),this.connectedAddress=e(i),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(),u(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),d(this.provider,this.connectedAddress,e)),(e,t)=>this.handleProviderError(e,t),"sign message")}async signTypedData(e,t,n){return this.ensureConnected(),u(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),c(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 n("Private key is not accessible with Gala Wallet. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",r.PRIVATE_KEY_NOT_ACCESSIBLE)}getProvider(){return this.provider}}class E{constructor(e){this.providerType="privateKey",this.connected=!0;try{this.wallet=new t(e)}catch(e){throw new n("Invalid private key provided",r.INVALID_CONFIG,e instanceof Error?e:void 0)}}static fromWallet(e){return new E(e.privateKey)}async signMessage(e){try{return await this.wallet.signMessage(e)}catch(e){throw new n("Failed to sign message",r.SIGNING_FAILED,e instanceof Error?e:void 0)}}async signTypedData(e,t,s){try{return await this.wallet.signTypedData(e,t,s)}catch(e){throw new n("Failed to sign typed data",r.SIGNING_FAILED,e instanceof Error?e:void 0)}}getAddress(){return Promise.resolve(e(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}}const g={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"},y={[g.METAMASK]:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIxLjU0IDQuMjJsLTguMzQgNi4yMSAxLjU0LTMuNjUtLTUuNTMtMi41MXoiIGZpbGw9IiNFMjc2MUIiLz48L3N2Zz4=",[g.GALA]:"data:image/png;base64,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"};function m(){return"undefined"!=typeof window&&"function"==typeof window.dispatchEvent}function N(){if(!m())return null;return window.ethereum??null}function I(e){return"object"==typeof e&&null!==e&&"function"==typeof e.request}async function L(e=500){const t=[],n=new Map;return m()?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??y[i.rdns||""]??"",provider:o,isInjected:!1};t.push(a),n.set(a.id,a)};window.addEventListener("eip6963:announceProvider",i),window.dispatchEvent(new Event("eip6963:requestProvider")),setTimeout(()=>{if(window.removeEventListener("eip6963:announceProvider",i),0===t.length){const e=N();if(e){const r=window;let s="Browser Wallet",i="injected";r.ethereum?.isMetaMask?(s="MetaMask",i=g.METAMASK):r.ethereum?.isCoinbaseWallet?(s="Coinbase Wallet",i=g.COINBASE):r.ethereum?.isTrust&&(s="Trust Wallet",i=g.TRUST_WALLET);const o={id:i,name:s,rdns:i,icon:y[i]??"",provider:e,isInjected:!0};t.push(o),n.set(o.id,o)}}if(!n.has(g.TRUST_WALLET)){const e=function(){if(!m())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 r={id:g.TRUST_WALLET,name:"Trust Wallet",rdns:g.TRUST_WALLET,icon:y[g.TRUST_WALLET]??"",provider:e,isInjected:!0};t.push(r),n.set(r.id,r)}}const e=window;if(e.gala?.request&&!n.has(g.GALA)){const r={id:g.GALA,name:"Gala Wallet",rdns:g.GALA,icon:y[g.GALA]??"",provider:e.gala,isInjected:!0};t.push(r),n.set(r.id,r)}r({wallets:t,byId:n,hasWallets:t.length>0,...void 0===t[0]?{}:{primary:t[0]}})},e)}):{wallets:t,byId:n,hasWallets:!1}}function C(e){if(!m())return()=>{};let t=!0,n={wallets:[],byId:new Map,hasWallets:!1};const r=r=>{if(!t)return;const s=r,{info:i,provider:o}=s.detail,a=i.rdns||i.uuid;if(n.byId.has(a))return;const d={id:a,name:i.name,rdns:a,icon:i.icon??"",provider:o,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),L().then(r=>{t&&(n=r,e(r))}),()=>{t=!1,window.removeEventListener("eip6963:announceProvider",r)}}async function T(e,t){return(await L(t)).byId.get(e)??null}async function O(e,t){return null!==await T(e,t)}function D(){return null!==N()}function S(e){if(null!==e.privateKey&&void 0!==e.privateKey&&e.privateKey.length>0)return new E(e.privateKey);if(null!==e.eip1193Provider&&void 0!==e.eip1193Provider)return new f(e.eip1193Provider);throw new n("Invalid wallet provider config: must provide either privateKey or eip1193Provider",r.INVALID_CONFIG)}function M(e){return E.fromWallet(e)}function P(e){return new f(e)}function W(e){return"privateKey"===e.providerType}function G(e){return"external"===e.providerType}async function R(e){if(W(e))try{return await e.getPrivateKey()}catch{return}}function U(e){if(e)return E.fromWallet(e)}function F(e){if(e&&W(e))return e.getWallet()}async function V(e){return e.isConnected()?e.getAddress():e.connect()}function b(e){return"object"==typeof e&&null!==e&&"request"in e&&"function"==typeof e.request}function B(){if("undefined"==typeof window)return null;const e=window.ethereum;return b(e)?e:null}export{f as ExternalWalletProvider,p as GalaWalletProvider,g as KNOWN_WALLET_RDNS,E as PrivateKeyProvider,n as WalletProviderError,r as WalletProviderErrorCode,P as createProviderFromEip1193,M as createProviderFromWallet,S as createWalletProvider,L as detectWallets,V as ensureConnected,B as getInjectedEip1193Provider,R as getPrivateKeyIfAvailable,T as getWalletByRdns,D as hasAnyWallet,b as isEip1193Provider,G as isExternalProvider,W as isPrivateKeyProvider,O as isWalletAvailable,F as providerToWallet,C as subscribeToWalletChanges,U as walletToProvider};