@tezos-x/octez.connect-core 0.9.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 (285) hide show
  1. package/LICENCE +19 -0
  2. package/README.md +9 -0
  3. package/dist/cjs/MockAnalytics.d.ts +4 -0
  4. package/dist/cjs/MockAnalytics.js +11 -0
  5. package/dist/cjs/MockAnalytics.js.map +1 -0
  6. package/dist/cjs/MockWindow.d.ts +14 -0
  7. package/dist/cjs/MockWindow.js +39 -0
  8. package/dist/cjs/MockWindow.js.map +1 -0
  9. package/dist/cjs/Serializer.d.ts +19 -0
  10. package/dist/cjs/Serializer.js +48 -0
  11. package/dist/cjs/Serializer.js.map +1 -0
  12. package/dist/cjs/clients/beacon-client/BeaconClient.d.ts +53 -0
  13. package/dist/cjs/clients/beacon-client/BeaconClient.js +111 -0
  14. package/dist/cjs/clients/beacon-client/BeaconClient.js.map +1 -0
  15. package/dist/cjs/clients/beacon-client/BeaconClientOptions.d.ts +26 -0
  16. package/dist/cjs/clients/beacon-client/BeaconClientOptions.js +3 -0
  17. package/dist/cjs/clients/beacon-client/BeaconClientOptions.js.map +1 -0
  18. package/dist/cjs/clients/client/Client.d.ts +91 -0
  19. package/dist/cjs/clients/client/Client.js +241 -0
  20. package/dist/cjs/clients/client/Client.js.map +1 -0
  21. package/dist/cjs/clients/client/ClientOptions.d.ts +42 -0
  22. package/dist/cjs/clients/client/ClientOptions.js +3 -0
  23. package/dist/cjs/clients/client/ClientOptions.js.map +1 -0
  24. package/dist/cjs/constants.d.ts +4 -0
  25. package/dist/cjs/constants.js +8 -0
  26. package/dist/cjs/constants.js.map +1 -0
  27. package/dist/cjs/debug.d.ts +2 -0
  28. package/dist/cjs/debug.js +17 -0
  29. package/dist/cjs/debug.js.map +1 -0
  30. package/dist/cjs/errors/AbortedBeaconError.d.ts +9 -0
  31. package/dist/cjs/errors/AbortedBeaconError.js +17 -0
  32. package/dist/cjs/errors/AbortedBeaconError.js.map +1 -0
  33. package/dist/cjs/errors/BeaconError.d.ts +15 -0
  34. package/dist/cjs/errors/BeaconError.js +19 -0
  35. package/dist/cjs/errors/BeaconError.js.map +1 -0
  36. package/dist/cjs/errors/BroadcastBeaconError.d.ts +9 -0
  37. package/dist/cjs/errors/BroadcastBeaconError.js +17 -0
  38. package/dist/cjs/errors/BroadcastBeaconError.js.map +1 -0
  39. package/dist/cjs/errors/EncryptionTypeNotSupportedBeaconError.d.ts +3 -0
  40. package/dist/cjs/errors/EncryptionTypeNotSupportedBeaconError.js +18 -0
  41. package/dist/cjs/errors/EncryptionTypeNotSupportedBeaconError.js.map +1 -0
  42. package/dist/cjs/errors/NetworkNotSupportedBeaconError.d.ts +9 -0
  43. package/dist/cjs/errors/NetworkNotSupportedBeaconError.js +17 -0
  44. package/dist/cjs/errors/NetworkNotSupportedBeaconError.js.map +1 -0
  45. package/dist/cjs/errors/NoAddressBeaconError.d.ts +9 -0
  46. package/dist/cjs/errors/NoAddressBeaconError.js +17 -0
  47. package/dist/cjs/errors/NoAddressBeaconError.js.map +1 -0
  48. package/dist/cjs/errors/NoPrivateKeyBeaconError.d.ts +9 -0
  49. package/dist/cjs/errors/NoPrivateKeyBeaconError.js +17 -0
  50. package/dist/cjs/errors/NoPrivateKeyBeaconError.js.map +1 -0
  51. package/dist/cjs/errors/NotGrantedBeaconError.d.ts +9 -0
  52. package/dist/cjs/errors/NotGrantedBeaconError.js +17 -0
  53. package/dist/cjs/errors/NotGrantedBeaconError.js.map +1 -0
  54. package/dist/cjs/errors/ParametersInvalidBeaconError.d.ts +9 -0
  55. package/dist/cjs/errors/ParametersInvalidBeaconError.js +17 -0
  56. package/dist/cjs/errors/ParametersInvalidBeaconError.js.map +1 -0
  57. package/dist/cjs/errors/SignatureTypeNotSupportedBeaconError.d.ts +9 -0
  58. package/dist/cjs/errors/SignatureTypeNotSupportedBeaconError.js +17 -0
  59. package/dist/cjs/errors/SignatureTypeNotSupportedBeaconError.js.map +1 -0
  60. package/dist/cjs/errors/TooManyOperationsBeaconError.d.ts +9 -0
  61. package/dist/cjs/errors/TooManyOperationsBeaconError.js +17 -0
  62. package/dist/cjs/errors/TooManyOperationsBeaconError.js.map +1 -0
  63. package/dist/cjs/errors/TransactionInvalidBeaconError.d.ts +14 -0
  64. package/dist/cjs/errors/TransactionInvalidBeaconError.js +22 -0
  65. package/dist/cjs/errors/TransactionInvalidBeaconError.js.map +1 -0
  66. package/dist/cjs/errors/UnknownBeaconError.d.ts +9 -0
  67. package/dist/cjs/errors/UnknownBeaconError.js +17 -0
  68. package/dist/cjs/errors/UnknownBeaconError.js.map +1 -0
  69. package/dist/cjs/errors/get-error.d.ts +8 -0
  70. package/dist/cjs/errors/get-error.js +53 -0
  71. package/dist/cjs/errors/get-error.js.map +1 -0
  72. package/dist/cjs/index.d.ts +53 -0
  73. package/dist/cjs/index.js +90 -0
  74. package/dist/cjs/index.js.map +1 -0
  75. package/dist/cjs/managers/AccountManager.d.ts +18 -0
  76. package/dist/cjs/managers/AccountManager.js +73 -0
  77. package/dist/cjs/managers/AccountManager.js.map +1 -0
  78. package/dist/cjs/managers/AppMetadataManager.d.ts +16 -0
  79. package/dist/cjs/managers/AppMetadataManager.js +57 -0
  80. package/dist/cjs/managers/AppMetadataManager.js.map +1 -0
  81. package/dist/cjs/managers/PeerManager.d.ts +18 -0
  82. package/dist/cjs/managers/PeerManager.js +61 -0
  83. package/dist/cjs/managers/PeerManager.js.map +1 -0
  84. package/dist/cjs/managers/PermissionManager.d.ts +17 -0
  85. package/dist/cjs/managers/PermissionManager.js +64 -0
  86. package/dist/cjs/managers/PermissionManager.js.map +1 -0
  87. package/dist/cjs/managers/PermissionValidator.d.ts +16 -0
  88. package/dist/cjs/managers/PermissionValidator.js +58 -0
  89. package/dist/cjs/managers/PermissionValidator.js.map +1 -0
  90. package/dist/cjs/managers/StorageManager.d.ts +18 -0
  91. package/dist/cjs/managers/StorageManager.js +72 -0
  92. package/dist/cjs/managers/StorageManager.js.map +1 -0
  93. package/dist/cjs/migrations/migrate-0.7.0.d.ts +20 -0
  94. package/dist/cjs/migrations/migrate-0.7.0.js +44 -0
  95. package/dist/cjs/migrations/migrate-0.7.0.js.map +1 -0
  96. package/dist/cjs/migrations/migrations.d.ts +2 -0
  97. package/dist/cjs/migrations/migrations.js +44 -0
  98. package/dist/cjs/migrations/migrations.js.map +1 -0
  99. package/dist/cjs/storage/ChromeStorage.d.ts +19 -0
  100. package/dist/cjs/storage/ChromeStorage.js +76 -0
  101. package/dist/cjs/storage/ChromeStorage.js.map +1 -0
  102. package/dist/cjs/storage/IndexedDBStorage.d.ts +65 -0
  103. package/dist/cjs/storage/IndexedDBStorage.js +230 -0
  104. package/dist/cjs/storage/IndexedDBStorage.js.map +1 -0
  105. package/dist/cjs/storage/LocalStorage.d.ts +21 -0
  106. package/dist/cjs/storage/LocalStorage.js +92 -0
  107. package/dist/cjs/storage/LocalStorage.js.map +1 -0
  108. package/dist/cjs/storage/StorageValidator.d.ts +12 -0
  109. package/dist/cjs/storage/StorageValidator.js +110 -0
  110. package/dist/cjs/storage/StorageValidator.js.map +1 -0
  111. package/dist/cjs/storage/WCStorage.d.ts +15 -0
  112. package/dist/cjs/storage/WCStorage.js +84 -0
  113. package/dist/cjs/storage/WCStorage.js.map +1 -0
  114. package/dist/cjs/storage/getStorage.d.ts +5 -0
  115. package/dist/cjs/storage/getStorage.js +34 -0
  116. package/dist/cjs/storage/getStorage.js.map +1 -0
  117. package/dist/cjs/transports/Transport.d.ts +85 -0
  118. package/dist/cjs/transports/Transport.js +171 -0
  119. package/dist/cjs/transports/Transport.js.map +1 -0
  120. package/dist/cjs/transports/clients/ClientEvents.d.ts +6 -0
  121. package/dist/cjs/transports/clients/ClientEvents.js +3 -0
  122. package/dist/cjs/transports/clients/ClientEvents.js.map +1 -0
  123. package/dist/cjs/transports/clients/CommunicationClient.d.ts +47 -0
  124. package/dist/cjs/transports/clients/CommunicationClient.js +86 -0
  125. package/dist/cjs/transports/clients/CommunicationClient.js.map +1 -0
  126. package/dist/cjs/transports/clients/MessageBasedClient.d.ts +56 -0
  127. package/dist/cjs/transports/clients/MessageBasedClient.js +109 -0
  128. package/dist/cjs/transports/clients/MessageBasedClient.js.map +1 -0
  129. package/dist/cjs/utils/Logger.d.ts +33 -0
  130. package/dist/cjs/utils/Logger.js +98 -0
  131. package/dist/cjs/utils/Logger.js.map +1 -0
  132. package/dist/cjs/utils/assert-never.d.ts +6 -0
  133. package/dist/cjs/utils/assert-never.js +14 -0
  134. package/dist/cjs/utils/assert-never.js.map +1 -0
  135. package/dist/cjs/utils/get-account-identifier.d.ts +10 -0
  136. package/dist/cjs/utils/get-account-identifier.js +36 -0
  137. package/dist/cjs/utils/get-account-identifier.js.map +1 -0
  138. package/dist/cjs/utils/get-sender-id.d.ts +8 -0
  139. package/dist/cjs/utils/get-sender-id.js +31 -0
  140. package/dist/cjs/utils/get-sender-id.js.map +1 -0
  141. package/dist/cjs/utils/multi-tab-channel.d.ts +17 -0
  142. package/dist/cjs/utils/multi-tab-channel.js +85 -0
  143. package/dist/cjs/utils/multi-tab-channel.js.map +1 -0
  144. package/dist/esm/MockAnalytics.d.ts +4 -0
  145. package/dist/esm/MockAnalytics.js +7 -0
  146. package/dist/esm/MockAnalytics.js.map +1 -0
  147. package/dist/esm/MockWindow.d.ts +14 -0
  148. package/dist/esm/MockWindow.js +35 -0
  149. package/dist/esm/MockWindow.js.map +1 -0
  150. package/dist/esm/Serializer.d.ts +19 -0
  151. package/dist/esm/Serializer.js +31 -0
  152. package/dist/esm/Serializer.js.map +1 -0
  153. package/dist/esm/clients/beacon-client/BeaconClient.d.ts +53 -0
  154. package/dist/esm/clients/beacon-client/BeaconClient.js +103 -0
  155. package/dist/esm/clients/beacon-client/BeaconClient.js.map +1 -0
  156. package/dist/esm/clients/beacon-client/BeaconClientOptions.d.ts +26 -0
  157. package/dist/esm/clients/beacon-client/BeaconClientOptions.js +2 -0
  158. package/dist/esm/clients/beacon-client/BeaconClientOptions.js.map +1 -0
  159. package/dist/esm/clients/client/Client.d.ts +91 -0
  160. package/dist/esm/clients/client/Client.js +198 -0
  161. package/dist/esm/clients/client/Client.js.map +1 -0
  162. package/dist/esm/clients/client/ClientOptions.d.ts +42 -0
  163. package/dist/esm/clients/client/ClientOptions.js +2 -0
  164. package/dist/esm/clients/client/ClientOptions.js.map +1 -0
  165. package/dist/esm/constants.d.ts +4 -0
  166. package/dist/esm/constants.js +5 -0
  167. package/dist/esm/constants.js.map +1 -0
  168. package/dist/esm/debug.d.ts +2 -0
  169. package/dist/esm/debug.js +12 -0
  170. package/dist/esm/debug.js.map +1 -0
  171. package/dist/esm/errors/AbortedBeaconError.d.ts +9 -0
  172. package/dist/esm/errors/AbortedBeaconError.js +13 -0
  173. package/dist/esm/errors/AbortedBeaconError.js.map +1 -0
  174. package/dist/esm/errors/BeaconError.d.ts +15 -0
  175. package/dist/esm/errors/BeaconError.js +17 -0
  176. package/dist/esm/errors/BeaconError.js.map +1 -0
  177. package/dist/esm/errors/BroadcastBeaconError.d.ts +9 -0
  178. package/dist/esm/errors/BroadcastBeaconError.js +13 -0
  179. package/dist/esm/errors/BroadcastBeaconError.js.map +1 -0
  180. package/dist/esm/errors/EncryptionTypeNotSupportedBeaconError.d.ts +3 -0
  181. package/dist/esm/errors/EncryptionTypeNotSupportedBeaconError.js +18 -0
  182. package/dist/esm/errors/EncryptionTypeNotSupportedBeaconError.js.map +1 -0
  183. package/dist/esm/errors/NetworkNotSupportedBeaconError.d.ts +9 -0
  184. package/dist/esm/errors/NetworkNotSupportedBeaconError.js +13 -0
  185. package/dist/esm/errors/NetworkNotSupportedBeaconError.js.map +1 -0
  186. package/dist/esm/errors/NoAddressBeaconError.d.ts +9 -0
  187. package/dist/esm/errors/NoAddressBeaconError.js +13 -0
  188. package/dist/esm/errors/NoAddressBeaconError.js.map +1 -0
  189. package/dist/esm/errors/NoPrivateKeyBeaconError.d.ts +9 -0
  190. package/dist/esm/errors/NoPrivateKeyBeaconError.js +13 -0
  191. package/dist/esm/errors/NoPrivateKeyBeaconError.js.map +1 -0
  192. package/dist/esm/errors/NotGrantedBeaconError.d.ts +9 -0
  193. package/dist/esm/errors/NotGrantedBeaconError.js +13 -0
  194. package/dist/esm/errors/NotGrantedBeaconError.js.map +1 -0
  195. package/dist/esm/errors/ParametersInvalidBeaconError.d.ts +9 -0
  196. package/dist/esm/errors/ParametersInvalidBeaconError.js +13 -0
  197. package/dist/esm/errors/ParametersInvalidBeaconError.js.map +1 -0
  198. package/dist/esm/errors/SignatureTypeNotSupportedBeaconError.d.ts +9 -0
  199. package/dist/esm/errors/SignatureTypeNotSupportedBeaconError.js +13 -0
  200. package/dist/esm/errors/SignatureTypeNotSupportedBeaconError.js.map +1 -0
  201. package/dist/esm/errors/TooManyOperationsBeaconError.d.ts +9 -0
  202. package/dist/esm/errors/TooManyOperationsBeaconError.js +13 -0
  203. package/dist/esm/errors/TooManyOperationsBeaconError.js.map +1 -0
  204. package/dist/esm/errors/TransactionInvalidBeaconError.d.ts +14 -0
  205. package/dist/esm/errors/TransactionInvalidBeaconError.js +19 -0
  206. package/dist/esm/errors/TransactionInvalidBeaconError.js.map +1 -0
  207. package/dist/esm/errors/UnknownBeaconError.d.ts +9 -0
  208. package/dist/esm/errors/UnknownBeaconError.js +13 -0
  209. package/dist/esm/errors/UnknownBeaconError.js.map +1 -0
  210. package/dist/esm/errors/get-error.d.ts +8 -0
  211. package/dist/esm/errors/get-error.js +49 -0
  212. package/dist/esm/errors/get-error.js.map +1 -0
  213. package/dist/esm/index.d.ts +53 -0
  214. package/dist/esm/index.js +67 -0
  215. package/dist/esm/index.js.map +1 -0
  216. package/dist/esm/managers/AccountManager.d.ts +18 -0
  217. package/dist/esm/managers/AccountManager.js +44 -0
  218. package/dist/esm/managers/AccountManager.js.map +1 -0
  219. package/dist/esm/managers/AppMetadataManager.d.ts +16 -0
  220. package/dist/esm/managers/AppMetadataManager.js +32 -0
  221. package/dist/esm/managers/AppMetadataManager.js.map +1 -0
  222. package/dist/esm/managers/PeerManager.d.ts +18 -0
  223. package/dist/esm/managers/PeerManager.js +34 -0
  224. package/dist/esm/managers/PeerManager.js.map +1 -0
  225. package/dist/esm/managers/PermissionManager.d.ts +17 -0
  226. package/dist/esm/managers/PermissionManager.js +37 -0
  227. package/dist/esm/managers/PermissionManager.js.map +1 -0
  228. package/dist/esm/managers/PermissionValidator.d.ts +16 -0
  229. package/dist/esm/managers/PermissionValidator.js +43 -0
  230. package/dist/esm/managers/PermissionValidator.js.map +1 -0
  231. package/dist/esm/managers/StorageManager.d.ts +18 -0
  232. package/dist/esm/managers/StorageManager.js +50 -0
  233. package/dist/esm/managers/StorageManager.js.map +1 -0
  234. package/dist/esm/migrations/migrate-0.7.0.d.ts +20 -0
  235. package/dist/esm/migrations/migrate-0.7.0.js +31 -0
  236. package/dist/esm/migrations/migrate-0.7.0.js.map +1 -0
  237. package/dist/esm/migrations/migrations.d.ts +2 -0
  238. package/dist/esm/migrations/migrations.js +31 -0
  239. package/dist/esm/migrations/migrations.js.map +1 -0
  240. package/dist/esm/storage/ChromeStorage.d.ts +19 -0
  241. package/dist/esm/storage/ChromeStorage.js +53 -0
  242. package/dist/esm/storage/ChromeStorage.js.map +1 -0
  243. package/dist/esm/storage/IndexedDBStorage.d.ts +65 -0
  244. package/dist/esm/storage/IndexedDBStorage.js +212 -0
  245. package/dist/esm/storage/IndexedDBStorage.js.map +1 -0
  246. package/dist/esm/storage/LocalStorage.d.ts +21 -0
  247. package/dist/esm/storage/LocalStorage.js +70 -0
  248. package/dist/esm/storage/LocalStorage.js.map +1 -0
  249. package/dist/esm/storage/StorageValidator.d.ts +12 -0
  250. package/dist/esm/storage/StorageValidator.js +96 -0
  251. package/dist/esm/storage/StorageValidator.js.map +1 -0
  252. package/dist/esm/storage/WCStorage.d.ts +15 -0
  253. package/dist/esm/storage/WCStorage.js +64 -0
  254. package/dist/esm/storage/WCStorage.js.map +1 -0
  255. package/dist/esm/storage/getStorage.d.ts +5 -0
  256. package/dist/esm/storage/getStorage.js +21 -0
  257. package/dist/esm/storage/getStorage.js.map +1 -0
  258. package/dist/esm/transports/Transport.d.ts +85 -0
  259. package/dist/esm/transports/Transport.js +149 -0
  260. package/dist/esm/transports/Transport.js.map +1 -0
  261. package/dist/esm/transports/clients/ClientEvents.d.ts +6 -0
  262. package/dist/esm/transports/clients/ClientEvents.js +2 -0
  263. package/dist/esm/transports/clients/ClientEvents.js.map +1 -0
  264. package/dist/esm/transports/clients/CommunicationClient.d.ts +47 -0
  265. package/dist/esm/transports/clients/CommunicationClient.js +63 -0
  266. package/dist/esm/transports/clients/CommunicationClient.js.map +1 -0
  267. package/dist/esm/transports/clients/MessageBasedClient.d.ts +56 -0
  268. package/dist/esm/transports/clients/MessageBasedClient.js +83 -0
  269. package/dist/esm/transports/clients/MessageBasedClient.js.map +1 -0
  270. package/dist/esm/utils/Logger.d.ts +33 -0
  271. package/dist/esm/utils/Logger.js +92 -0
  272. package/dist/esm/utils/Logger.js.map +1 -0
  273. package/dist/esm/utils/assert-never.d.ts +6 -0
  274. package/dist/esm/utils/assert-never.js +11 -0
  275. package/dist/esm/utils/assert-never.js.map +1 -0
  276. package/dist/esm/utils/get-account-identifier.d.ts +10 -0
  277. package/dist/esm/utils/get-account-identifier.js +23 -0
  278. package/dist/esm/utils/get-account-identifier.js.map +1 -0
  279. package/dist/esm/utils/get-sender-id.d.ts +8 -0
  280. package/dist/esm/utils/get-sender-id.js +18 -0
  281. package/dist/esm/utils/get-sender-id.js.map +1 -0
  282. package/dist/esm/utils/multi-tab-channel.d.ts +17 -0
  283. package/dist/esm/utils/multi-tab-channel.js +66 -0
  284. package/dist/esm/utils/multi-tab-channel.js.map +1 -0
  285. package/package.json +46 -0
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLogger = exports.setLogger = exports.Logger = exports.InternalLogger = void 0;
4
+ const debug_1 = require("../debug");
5
+ /**
6
+ * The logger that is used internally
7
+ */
8
+ class InternalLogger {
9
+ constructor() { }
10
+ debug(name, method, ...args) {
11
+ this._log('debug', name, method, args);
12
+ }
13
+ log(name, method, ...args) {
14
+ this._log('log', name, method, args);
15
+ }
16
+ warn(name, method, ...args) {
17
+ this._log('warn', name, method, args);
18
+ }
19
+ error(name, method, ...args) {
20
+ this._log('error', name, method, args);
21
+ }
22
+ time(start, label) {
23
+ start ? console.time(label) : console.timeEnd(label);
24
+ }
25
+ timeLog(name, method, ...args) {
26
+ this._log('timeLog', name, method, args);
27
+ }
28
+ _log(type, name, method, args = []) {
29
+ if (!(0, debug_1.getDebugEnabled)()) {
30
+ return;
31
+ }
32
+ let groupText = `[BEACON] ${new Date().toISOString()} [${name}](${method})`;
33
+ let data = args;
34
+ if (args[0] && typeof args[0] === 'string') {
35
+ groupText += ` ${args[0]}`;
36
+ data = args.slice(1);
37
+ }
38
+ switch (type) {
39
+ case 'error':
40
+ console.group(groupText);
41
+ console.error(...data);
42
+ break;
43
+ case 'warn':
44
+ console.group(groupText);
45
+ console.warn(...data);
46
+ break;
47
+ case 'debug':
48
+ console.groupCollapsed(groupText);
49
+ console.debug(...data);
50
+ break;
51
+ case 'timeLog':
52
+ console.group(groupText);
53
+ console.timeLog(...data);
54
+ break;
55
+ default:
56
+ console.group(groupText);
57
+ console.log(...data);
58
+ }
59
+ console.groupEnd();
60
+ // echo.group(echo.asWarning(`[BEACON] ${message}`))
61
+ // echo.log(echo.asWarning(`[${this.name}]`), echo.asAlert(`(${method})`), ...args)
62
+ // echo.groupEnd()
63
+ }
64
+ }
65
+ exports.InternalLogger = InternalLogger;
66
+ class Logger {
67
+ constructor(service) {
68
+ this.name = service;
69
+ }
70
+ debug(method, ...args) {
71
+ logger.debug(this.name, method, args);
72
+ }
73
+ log(method, ...args) {
74
+ logger.log(this.name, method, args);
75
+ }
76
+ warn(method, ...args) {
77
+ logger.warn(this.name, method, args);
78
+ }
79
+ error(method, ...args) {
80
+ logger.error(this.name, method, args);
81
+ }
82
+ time(start, label) {
83
+ logger.time(start, label);
84
+ }
85
+ timeLog(method, ...args) {
86
+ logger.timeLog(method, args);
87
+ }
88
+ }
89
+ exports.Logger = Logger;
90
+ const loggerWrapper = new Logger('');
91
+ let logger = new InternalLogger();
92
+ const setLogger = (newLogger) => {
93
+ logger = newLogger;
94
+ };
95
+ exports.setLogger = setLogger;
96
+ const getLogger = () => loggerWrapper;
97
+ exports.getLogger = getLogger;
98
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../src/utils/Logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * A helper function to make sure if/elses and switch/cases are exhaustive
3
+ *
4
+ * @param empty The data that has to be empty
5
+ */
6
+ export declare function assertNever(empty: never): never;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ /* eslint-disable prefer-arrow/prefer-arrow-functions */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.assertNever = assertNever;
5
+ /**
6
+ * A helper function to make sure if/elses and switch/cases are exhaustive
7
+ *
8
+ * @param empty The data that has to be empty
9
+ */
10
+ function assertNever(empty) {
11
+ return empty;
12
+ }
13
+ /* eslint-enable prefer-arrow/prefer-arrow-functions */
14
+ //# sourceMappingURL=assert-never.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-never.js","sourceRoot":"","sources":["../../../src/utils/assert-never.ts"],"names":[],"mappings":";AAAA,wDAAwD;;AAOxD,kCAEC;AAPD;;;;GAIG;AACH,SAAgB,WAAW,CAAC,KAAY;IACtC,OAAO,KAAK,CAAA;AACd,CAAC;AAED,uDAAuD"}
@@ -0,0 +1,10 @@
1
+ import { Network } from '@tezos-x/octez.connect-types';
2
+ /**
3
+ * @internalapi
4
+ *
5
+ * Generate a deterministic account identifier based on an address and a network
6
+ *
7
+ * @param address
8
+ * @param network
9
+ */
10
+ export declare const getAccountIdentifier: (address: string, network: Network) => Promise<string>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getAccountIdentifier = void 0;
13
+ const bs58check_1 = require("bs58check");
14
+ const blake2b_1 = require("@stablelib/blake2b");
15
+ const utf8_1 = require("@stablelib/utf8");
16
+ /**
17
+ * @internalapi
18
+ *
19
+ * Generate a deterministic account identifier based on an address and a network
20
+ *
21
+ * @param address
22
+ * @param network
23
+ */
24
+ const getAccountIdentifier = (address, network) => __awaiter(void 0, void 0, void 0, function* () {
25
+ const data = [address, network.type];
26
+ if (network.name) {
27
+ data.push(`name:${network.name}`);
28
+ }
29
+ if (network.rpcUrl) {
30
+ data.push(`rpc:${network.rpcUrl}`);
31
+ }
32
+ const buffer = Buffer.from((0, blake2b_1.hash)((0, utf8_1.encode)(data.join('-')), 10));
33
+ return bs58check_1.default.encode(buffer);
34
+ });
35
+ exports.getAccountIdentifier = getAccountIdentifier;
36
+ //# sourceMappingURL=get-account-identifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-account-identifier.js","sourceRoot":"","sources":["../../../src/utils/get-account-identifier.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAiC;AAEjC,gDAAyC;AACzC,0CAAwC;AAExC;;;;;;;GAOG;AACI,MAAM,oBAAoB,GAAG,CAAO,OAAe,EAAE,OAAgB,EAAmB,EAAE;IAC/F,MAAM,IAAI,GAAa,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACnC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAA,cAAI,EAAC,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAE5D,OAAO,mBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACjC,CAAC,CAAA,CAAA;AAZY,QAAA,oBAAoB,wBAYhC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @internalapi
3
+ *
4
+ * Generate a deterministic sender identifier based on a public key
5
+ *
6
+ * @param publicKey
7
+ */
8
+ export declare const getSenderId: (publicKey: string) => Promise<string>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getSenderId = void 0;
13
+ const blake2b_1 = require("@stablelib/blake2b");
14
+ const bs58check_1 = require("bs58check");
15
+ const isHex = (str) => /^[A-F0-9]+$/i.test(str);
16
+ /**
17
+ * @internalapi
18
+ *
19
+ * Generate a deterministic sender identifier based on a public key
20
+ *
21
+ * @param publicKey
22
+ */
23
+ const getSenderId = (publicKey) => __awaiter(void 0, void 0, void 0, function* () {
24
+ if (!isHex(publicKey)) {
25
+ console.error('PublicKey needs to be in hex format!');
26
+ }
27
+ const buffer = Buffer.from((0, blake2b_1.hash)(Buffer.from(publicKey, 'hex'), 5));
28
+ return bs58check_1.default.encode(buffer);
29
+ });
30
+ exports.getSenderId = getSenderId;
31
+ //# sourceMappingURL=get-sender-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-sender-id.js","sourceRoot":"","sources":["../../../src/utils/get-sender-id.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAAyC;AACzC,yCAAiC;AAEjC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEhE;;;;;;GAMG;AACI,MAAM,WAAW,GAAG,CAAO,SAAiB,EAAmB,EAAE;IACtE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAA,cAAI,EAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAElE,OAAO,mBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACjC,CAAC,CAAA,CAAA;AARY,QAAA,WAAW,eAQvB"}
@@ -0,0 +1,17 @@
1
+ export declare class MultiTabChannel {
2
+ private channel;
3
+ private elector;
4
+ private eventListeners;
5
+ private onBCMessageHandler;
6
+ private onElectedLeaderHandler;
7
+ private wasLeader;
8
+ private initialized;
9
+ constructor(name: string, onBCMessageHandler: Function, onElectedLeaderHandler: Function);
10
+ init(): Promise<void>;
11
+ private onBeforeUnloadHandler;
12
+ private onMessageHandler;
13
+ isLeader(): boolean;
14
+ getLeadership(): Promise<void>;
15
+ hasLeader(): Promise<boolean>;
16
+ postMessage(message: any): void;
17
+ }
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MultiTabChannel = void 0;
13
+ const broadcast_channel_1 = require("broadcast-channel");
14
+ class MultiTabChannel {
15
+ constructor(name, onBCMessageHandler, onElectedLeaderHandler) {
16
+ this.eventListeners = [
17
+ () => this.onBeforeUnloadHandler(),
18
+ (message) => this.onMessageHandler(message)
19
+ ];
20
+ // Auxiliary variable needed for handling beforeUnload.
21
+ // Closing a tab causes the elector to be killed immediately
22
+ this.wasLeader = false;
23
+ this.initialized = false;
24
+ this.onBCMessageHandler = onBCMessageHandler;
25
+ this.onElectedLeaderHandler = onElectedLeaderHandler;
26
+ this.channel = new broadcast_channel_1.BroadcastChannel(name);
27
+ this.elector = (0, broadcast_channel_1.createLeaderElection)(this.channel);
28
+ }
29
+ init() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ if (this.initialized) {
32
+ return;
33
+ }
34
+ const hasLeader = yield this.elector.hasLeader();
35
+ if (!hasLeader) {
36
+ yield this.elector.awaitLeadership();
37
+ this.wasLeader = this.isLeader();
38
+ }
39
+ this.channel.onmessage = this.eventListeners[1];
40
+ window === null || window === void 0 ? void 0 : window.addEventListener('beforeunload', this.eventListeners[0]);
41
+ this.initialized = true;
42
+ });
43
+ }
44
+ onBeforeUnloadHandler() {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ if (this.wasLeader) {
47
+ yield this.elector.die();
48
+ this.postMessage({ type: 'LEADER_DEAD' });
49
+ }
50
+ window === null || window === void 0 ? void 0 : window.removeEventListener('beforeunload', this.eventListeners[0]);
51
+ this.channel.removeEventListener('message', this.eventListeners[1]);
52
+ });
53
+ }
54
+ onMessageHandler(message) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ if (message.type === 'LEADER_DEAD') {
57
+ yield this.elector.awaitLeadership();
58
+ this.wasLeader = this.isLeader();
59
+ if (this.isLeader()) {
60
+ this.onElectedLeaderHandler();
61
+ }
62
+ return;
63
+ }
64
+ this.onBCMessageHandler(message);
65
+ });
66
+ }
67
+ isLeader() {
68
+ return this.elector.isLeader;
69
+ }
70
+ getLeadership() {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ return this.elector.awaitLeadership();
73
+ });
74
+ }
75
+ hasLeader() {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ return this.elector.hasLeader();
78
+ });
79
+ }
80
+ postMessage(message) {
81
+ this.channel.postMessage(message);
82
+ }
83
+ }
84
+ exports.MultiTabChannel = MultiTabChannel;
85
+ //# sourceMappingURL=multi-tab-channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-tab-channel.js","sourceRoot":"","sources":["../../../src/utils/multi-tab-channel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { AnalyticsInterface } from '@tezos-x/octez.connect-types';
2
+ export declare class MockAnalytics implements AnalyticsInterface {
3
+ track(_trigger: 'click' | 'event', _section: string, _label: string, _data?: Record<string, any>): void;
4
+ }
@@ -0,0 +1,7 @@
1
+ export class MockAnalytics {
2
+ track(_trigger, _section, _label, _data) {
3
+ // console.log('##### TRACK', trigger, section, label, data)
4
+ // noop
5
+ }
6
+ }
7
+ //# sourceMappingURL=MockAnalytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockAnalytics.js","sourceRoot":"","sources":["../../src/MockAnalytics.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACxB,KAAK,CACH,QAA2B,EAC3B,QAAgB,EAChB,MAAc,EACd,KAA2B;QAE3B,4DAA4D;QAC5D,OAAO;IACT,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ type Callback = (message: unknown) => void;
2
+ /**
3
+ * A mock for postmessage if run in node.js environment
4
+ */
5
+ declare let windowRef: {
6
+ postMessage: (message: string | Record<string, unknown>, _target?: string) => void;
7
+ addEventListener: (_name: string, eventCallback: Callback) => void;
8
+ removeEventListener: (_name: string, eventCallback: Callback) => void;
9
+ location: {
10
+ origin: string;
11
+ };
12
+ };
13
+ declare const clearMockWindowState: () => void;
14
+ export { windowRef, clearMockWindowState };
@@ -0,0 +1,35 @@
1
+ const cbs = [(_) => undefined];
2
+ /**
3
+ * A mock for postmessage if run in node.js environment
4
+ */
5
+ let windowRef = {
6
+ postMessage: (message, _target) => {
7
+ console.log('GOT MOCK POST MESSAGE', message);
8
+ cbs.forEach((callbackElement) => {
9
+ callbackElement({ data: message });
10
+ });
11
+ },
12
+ addEventListener: (_name, eventCallback) => {
13
+ cbs.push(eventCallback);
14
+ },
15
+ removeEventListener: (_name, eventCallback) => {
16
+ cbs.splice(cbs.indexOf((element) => element === eventCallback), 1);
17
+ },
18
+ location: {
19
+ origin: '*'
20
+ }
21
+ };
22
+ try {
23
+ if (typeof window !== 'undefined') {
24
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
+ windowRef = window;
26
+ }
27
+ }
28
+ catch (windowError) {
29
+ console.log(`not defined: ${windowError}`);
30
+ }
31
+ const clearMockWindowState = () => {
32
+ cbs.length = 0;
33
+ };
34
+ export { windowRef, clearMockWindowState };
35
+ //# sourceMappingURL=MockWindow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockWindow.js","sourceRoot":"","sources":["../../src/MockWindow.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG,GAAe,CAAC,CAAC,CAAU,EAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;AAEzD;;GAEG;AACH,IAAI,SAAS,GAAG;IACd,WAAW,EAAE,CAAC,OAAyC,EAAE,OAAgB,EAAQ,EAAE;QACjF,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAA;QAC7C,GAAG,CAAC,OAAO,CAAC,CAAC,eAAyB,EAAE,EAAE;YACxC,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,gBAAgB,EAAE,CAAC,KAAa,EAAE,aAAuB,EAAQ,EAAE;QACjE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACzB,CAAC;IACD,mBAAmB,EAAE,CAAC,KAAa,EAAE,aAAuB,EAAQ,EAAE;QACpE,GAAG,CAAC,MAAM,CACR,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,aAAa,CAAC,EACnD,CAAC,CACF,CAAA;IACH,CAAC;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,GAAG;KACZ;CACF,CAAA;AAED,IAAI,CAAC;IACH,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,8DAA8D;QAC9D,SAAS,GAAG,MAAa,CAAA;IAC3B,CAAC;AACH,CAAC;AAAC,OAAO,WAAW,EAAE,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,gBAAgB,WAAW,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,oBAAoB,GAAe,GAAS,EAAE;IAClD,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;AAChB,CAAC,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAA"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @internalapi
3
+ *
4
+ * The Serializer is used to serialize / deserialize JSON objects and encode them with bs58check
5
+ */
6
+ export declare class Serializer {
7
+ /**
8
+ * Serialize and bs58check encode an object
9
+ *
10
+ * @param message JSON object to serialize
11
+ */
12
+ serialize(message: unknown): Promise<string>;
13
+ /**
14
+ * Deserialize a bs58check encoded string
15
+ *
16
+ * @param encoded String to be deserialized
17
+ */
18
+ deserialize(encoded: string): Promise<unknown>;
19
+ }
@@ -0,0 +1,31 @@
1
+ import bs58check from 'bs58check';
2
+ /**
3
+ * @internalapi
4
+ *
5
+ * The Serializer is used to serialize / deserialize JSON objects and encode them with bs58check
6
+ */
7
+ export class Serializer {
8
+ /**
9
+ * Serialize and bs58check encode an object
10
+ *
11
+ * @param message JSON object to serialize
12
+ */
13
+ async serialize(message) {
14
+ const str = JSON.stringify(message);
15
+ return bs58check.encode(Buffer.from(str));
16
+ }
17
+ /**
18
+ * Deserialize a bs58check encoded string
19
+ *
20
+ * @param encoded String to be deserialized
21
+ */
22
+ async deserialize(encoded) {
23
+ if (typeof encoded !== 'string') {
24
+ throw new Error('Encoded payload needs to be a string');
25
+ }
26
+ const decodedBytes = bs58check.decode(encoded);
27
+ const jsonString = Buffer.from(decodedBytes).toString('utf8');
28
+ return JSON.parse(jsonString);
29
+ }
30
+ }
31
+ //# sourceMappingURL=Serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Serializer.js","sourceRoot":"","sources":["../../src/Serializer.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;AAEjC;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACrB;;;;OAIG;IACI,KAAK,CAAC,SAAS,CAAC,OAAgB;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAEnC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAC,OAAe;QACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACzD,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC/B,CAAC;CACF"}
@@ -0,0 +1,53 @@
1
+ import { ExposedPromise } from '@tezos-x/octez.connect-utils';
2
+ import { AnalyticsInterface, Storage } from '@tezos-x/octez.connect-types';
3
+ import { BeaconClientOptions } from './BeaconClientOptions';
4
+ import { KeyPair } from '@stablelib/ed25519';
5
+ /**
6
+ * @internalapi
7
+ *
8
+ * The beacon client is an abstract client that handles everything that is shared between all other clients.
9
+ * Specifically, it handles managing the beaconId and and the local keypair.
10
+ */
11
+ export declare abstract class BeaconClient {
12
+ /**
13
+ * The name of the client
14
+ */
15
+ readonly name: string;
16
+ /**
17
+ * The URL of the dApp Icon. This can be used to display the icon of the dApp on in the wallet
18
+ */
19
+ readonly iconUrl?: string;
20
+ /**
21
+ * The URL of the dApp.
22
+ */
23
+ readonly appUrl?: string;
24
+ /** The beaconId is a public key that is used to identify one specific application (dapp or wallet).
25
+ * This is used inside a message to specify the sender, for example.
26
+ */
27
+ protected _beaconId: ExposedPromise<string>;
28
+ get beaconId(): Promise<string>;
29
+ protected storage: Storage;
30
+ protected analytics: AnalyticsInterface;
31
+ /**
32
+ * The local keypair that is used for the communication encryption
33
+ */
34
+ protected _keyPair: ExposedPromise<KeyPair>;
35
+ protected get keyPair(): Promise<KeyPair>;
36
+ constructor(config: BeaconClientOptions);
37
+ /**
38
+ * This resets the SDK. After using this method, this instance is no longer usable. You will have to instanciate a new client.
39
+ */
40
+ destroy(): Promise<void>;
41
+ /**
42
+ * This method initializes the SDK by setting some values in the storage and generating a keypair.
43
+ */
44
+ protected initSDK(): Promise<void>;
45
+ /**
46
+ * Removes all beacon values from the storage.
47
+ */
48
+ private removeBeaconEntriesFromStorage;
49
+ /**
50
+ * This method tries to load the seed from storage, if it doesn't exist, a new one will be created and persisted.
51
+ */
52
+ private loadOrCreateBeaconSecret;
53
+ }
@@ -0,0 +1,103 @@
1
+ import { ExposedPromise } from '@tezos-x/octez.connect-utils';
2
+ import { getKeypairFromSeed, toHex, generateGUID } from '@tezos-x/octez.connect-utils';
3
+ import { StorageKey } from '@tezos-x/octez.connect-types';
4
+ import { SDK_VERSION } from '../../constants';
5
+ import { windowRef } from '../../MockWindow';
6
+ import { MockAnalytics } from '../../MockAnalytics';
7
+ /**
8
+ * @internalapi
9
+ *
10
+ * The beacon client is an abstract client that handles everything that is shared between all other clients.
11
+ * Specifically, it handles managing the beaconId and and the local keypair.
12
+ */
13
+ export class BeaconClient {
14
+ /**
15
+ * The name of the client
16
+ */
17
+ name;
18
+ /**
19
+ * The URL of the dApp Icon. This can be used to display the icon of the dApp on in the wallet
20
+ */
21
+ iconUrl;
22
+ /**
23
+ * The URL of the dApp.
24
+ */
25
+ appUrl;
26
+ /** The beaconId is a public key that is used to identify one specific application (dapp or wallet).
27
+ * This is used inside a message to specify the sender, for example.
28
+ */
29
+ _beaconId = new ExposedPromise();
30
+ get beaconId() {
31
+ return this._beaconId.promise;
32
+ }
33
+ storage;
34
+ analytics;
35
+ /**
36
+ * The local keypair that is used for the communication encryption
37
+ */
38
+ _keyPair = new ExposedPromise();
39
+ get keyPair() {
40
+ return this._keyPair.promise;
41
+ }
42
+ constructor(config) {
43
+ if (!config.name) {
44
+ throw new Error('Name not set');
45
+ }
46
+ if (!config.storage) {
47
+ throw new Error('Storage not set');
48
+ }
49
+ this.name = config.name;
50
+ this.iconUrl = config.iconUrl;
51
+ this.appUrl = config.appUrl ?? windowRef.location.origin;
52
+ this.storage = config.storage;
53
+ this.analytics = config.analytics ?? new MockAnalytics();
54
+ // TODO: This is a temporary "workaround" to prevent users from creating multiple Client instances
55
+ if (windowRef.beaconCreatedClientInstance) {
56
+ console.error('[OCTEZ.CONNECT] It looks like you created multiple octez.connect SDK Client instances. This can lead to problems. Only create one instance and re-use it everywhere.');
57
+ }
58
+ else {
59
+ ;
60
+ windowRef.beaconCreatedClientInstance = true;
61
+ }
62
+ this.initSDK().catch(console.error);
63
+ }
64
+ /**
65
+ * This resets the SDK. After using this method, this instance is no longer usable. You will have to instanciate a new client.
66
+ */
67
+ async destroy() {
68
+ await this.removeBeaconEntriesFromStorage();
69
+ windowRef.beaconCreatedClientInstance = false;
70
+ }
71
+ /**
72
+ * This method initializes the SDK by setting some values in the storage and generating a keypair.
73
+ */
74
+ async initSDK() {
75
+ this.storage.set(StorageKey.BEACON_SDK_VERSION, SDK_VERSION).catch(console.error);
76
+ this.loadOrCreateBeaconSecret().catch(console.error);
77
+ return this.keyPair.then((keyPair) => {
78
+ this._beaconId.resolve(toHex(keyPair.publicKey));
79
+ });
80
+ }
81
+ /**
82
+ * Removes all beacon values from the storage.
83
+ */
84
+ async removeBeaconEntriesFromStorage() {
85
+ const allKeys = Object.values(StorageKey);
86
+ await Promise.all(allKeys.map((key) => this.storage.delete(key)));
87
+ }
88
+ /**
89
+ * This method tries to load the seed from storage, if it doesn't exist, a new one will be created and persisted.
90
+ */
91
+ async loadOrCreateBeaconSecret() {
92
+ const storageValue = await this.storage.get(StorageKey.BEACON_SDK_SECRET_SEED);
93
+ if (storageValue && typeof storageValue === 'string') {
94
+ this._keyPair.resolve(await getKeypairFromSeed(storageValue));
95
+ }
96
+ else {
97
+ const key = await generateGUID();
98
+ await this.storage.set(StorageKey.BEACON_SDK_SECRET_SEED, key);
99
+ this._keyPair.resolve(await getKeypairFromSeed(key));
100
+ }
101
+ }
102
+ }
103
+ //# sourceMappingURL=BeaconClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BeaconClient.js","sourceRoot":"","sources":["../../../../src/clients/beacon-client/BeaconClient.ts"],"names":[],"mappings":"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"}