tool-db 1.4.2 → 2.0.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 (342) hide show
  1. package/README.md +32 -14
  2. package/bundle.js +124672 -0
  3. package/dist/__tests__ copy/base64.d.ts +1 -0
  4. package/dist/__tests__ copy/base64.js +61 -0
  5. package/dist/__tests__ copy/base64.js.map +1 -0
  6. package/dist/__tests__ copy/encryption.d.ts +1 -0
  7. package/dist/__tests__ copy/encryption.js +68 -0
  8. package/dist/__tests__ copy/encryption.js.map +1 -0
  9. package/dist/__tests__ copy/keys.d.ts +1 -0
  10. package/dist/__tests__ copy/keys.js +238 -0
  11. package/dist/__tests__ copy/keys.js.map +1 -0
  12. package/dist/__tests__ copy/network.d.ts +1 -0
  13. package/dist/__tests__ copy/network.js +206 -0
  14. package/dist/__tests__ copy/network.js.map +1 -0
  15. package/dist/__tests__ copy/pow.d.ts +1 -0
  16. package/dist/__tests__ copy/pow.js +25 -0
  17. package/dist/__tests__ copy/pow.js.map +1 -0
  18. package/dist/__tests__ copy/sha1.d.ts +1 -0
  19. package/dist/__tests__ copy/sha1.js +16 -0
  20. package/dist/__tests__ copy/sha1.js.map +1 -0
  21. package/dist/__tests__ copy/sha256.d.ts +1 -0
  22. package/dist/__tests__ copy/sha256.js +16 -0
  23. package/dist/__tests__ copy/sha256.js.map +1 -0
  24. package/dist/__tests__ copy/textRandom.d.ts +1 -0
  25. package/dist/__tests__ copy/textRandom.js +17 -0
  26. package/dist/__tests__ copy/textRandom.js.map +1 -0
  27. package/dist/bundle.js +69086 -0
  28. package/dist/chain/Block.d.ts +21 -0
  29. package/dist/chain/Block.js +81 -0
  30. package/dist/chain/Block.js.map +1 -0
  31. package/dist/chain/ToolChain.d.ts +12 -0
  32. package/dist/chain/ToolChain.js +86 -0
  33. package/dist/chain/ToolChain.js.map +1 -0
  34. package/dist/chain/Tx.d.ts +34 -0
  35. package/dist/chain/Tx.js +111 -0
  36. package/dist/chain/Tx.js.map +1 -0
  37. package/dist/chain/Wallet.d.ts +9 -0
  38. package/dist/chain/Wallet.js +37 -0
  39. package/dist/chain/Wallet.js.map +1 -0
  40. package/dist/chain/isValidChain.d.ts +2 -0
  41. package/dist/chain/isValidChain.js +20 -0
  42. package/dist/chain/isValidChain.js.map +1 -0
  43. package/{test-keys-a/000039.log → dist/chain/mempool.d.ts} +0 -0
  44. package/dist/chain/mempool.js +2 -0
  45. package/dist/chain/mempool.js.map +1 -0
  46. package/dist/index.d.ts +19 -24
  47. package/dist/index.js +40 -50
  48. package/dist/index.js.map +1 -1
  49. package/dist/loadCrdtDocument.js +4 -9
  50. package/dist/loadCrdtDocument.js.map +1 -1
  51. package/dist/messageHandlers/handleCrdt.d.ts +2 -1
  52. package/dist/messageHandlers/handleCrdt.js +1 -5
  53. package/dist/messageHandlers/handleCrdt.js.map +1 -1
  54. package/dist/messageHandlers/handleCrdtGet.d.ts +2 -1
  55. package/dist/messageHandlers/handleCrdtGet.js +2 -2
  56. package/dist/messageHandlers/handleCrdtGet.js.map +1 -1
  57. package/dist/messageHandlers/handleCrdtPut.d.ts +2 -1
  58. package/dist/messageHandlers/handleCrdtPut.js +17 -9
  59. package/dist/messageHandlers/handleCrdtPut.js.map +1 -1
  60. package/dist/messageHandlers/handleGet.d.ts +2 -1
  61. package/dist/messageHandlers/handleGet.js +1 -1
  62. package/dist/messageHandlers/handleGet.js.map +1 -1
  63. package/dist/messageHandlers/handleJoin.d.ts +2 -1
  64. package/dist/messageHandlers/handleJoin.js +20 -24
  65. package/dist/messageHandlers/handleJoin.js.map +1 -1
  66. package/dist/messageHandlers/handlePing.d.ts +2 -1
  67. package/dist/messageHandlers/handlePing.js +10 -3
  68. package/dist/messageHandlers/handlePing.js.map +1 -1
  69. package/dist/messageHandlers/handlePong.d.ts +2 -1
  70. package/dist/messageHandlers/handlePong.js +22 -20
  71. package/dist/messageHandlers/handlePong.js.map +1 -1
  72. package/dist/messageHandlers/handlePut.d.ts +2 -1
  73. package/dist/messageHandlers/handlePut.js +3 -2
  74. package/dist/messageHandlers/handlePut.js.map +1 -1
  75. package/dist/messageHandlers/handleQuery.d.ts +2 -1
  76. package/dist/messageHandlers/handleQuery.js.map +1 -1
  77. package/dist/messageHandlers/handleServers.d.ts +2 -1
  78. package/dist/messageHandlers/handleServers.js +8 -9
  79. package/dist/messageHandlers/handleServers.js.map +1 -1
  80. package/dist/messageHandlers/handleSubscribe.d.ts +2 -1
  81. package/dist/messageHandlers/handleSubscribe.js +4 -3
  82. package/dist/messageHandlers/handleSubscribe.js.map +1 -1
  83. package/dist/toolDbAnonSignIn.d.ts +1 -4
  84. package/dist/toolDbAnonSignIn.js +2 -16
  85. package/dist/toolDbAnonSignIn.js.map +1 -1
  86. package/dist/toolDbClientOnMessage.js +3 -4
  87. package/dist/toolDbClientOnMessage.js.map +1 -1
  88. package/dist/toolDbCrdtGet.d.ts +1 -1
  89. package/dist/toolDbCrdtGet.js +13 -5
  90. package/dist/toolDbCrdtGet.js.map +1 -1
  91. package/dist/toolDbCrdtPut.js +22 -68
  92. package/dist/toolDbCrdtPut.js.map +1 -1
  93. package/dist/toolDbGet.js +2 -3
  94. package/dist/toolDbGet.js.map +1 -1
  95. package/dist/toolDbKeysSignIn.d.ts +1 -7
  96. package/dist/toolDbKeysSignIn.js +5 -18
  97. package/dist/toolDbKeysSignIn.js.map +1 -1
  98. package/dist/toolDbNetwork.js +31 -7
  99. package/dist/toolDbNetwork.js.map +1 -1
  100. package/dist/toolDbPut.js +24 -73
  101. package/dist/toolDbPut.js.map +1 -1
  102. package/dist/toolDbQueryKeys.js +2 -3
  103. package/dist/toolDbQueryKeys.js.map +1 -1
  104. package/dist/toolDbSignIn.d.ts +2 -4
  105. package/dist/toolDbSignIn.js +7 -113
  106. package/dist/toolDbSignIn.js.map +1 -1
  107. package/dist/toolDbSignUp.d.ts +2 -1
  108. package/dist/toolDbSignUp.js +37 -70
  109. package/dist/toolDbSignUp.js.map +1 -1
  110. package/dist/toolDbSubscribe.js +4 -4
  111. package/dist/toolDbSubscribe.js.map +1 -1
  112. package/dist/toolDbVerificationWrapper.d.ts +2 -2
  113. package/dist/toolDbVerificationWrapper.js +23 -10
  114. package/dist/toolDbVerificationWrapper.js.map +1 -1
  115. package/dist/toolDbWebrtc.d.ts +11 -2
  116. package/dist/toolDbWebrtc.js +84 -35
  117. package/dist/toolDbWebrtc.js.map +1 -1
  118. package/dist/tooldb.d.ts +25 -16
  119. package/dist/tooldb.js +52 -28
  120. package/dist/tooldb.js.map +1 -1
  121. package/dist/types/graph.d.ts +0 -23
  122. package/dist/types/graph.js +0 -1
  123. package/dist/types/message.d.ts +40 -1
  124. package/dist/types/tooldb.d.ts +70 -4
  125. package/dist/types/tooldb.js.map +1 -1
  126. package/dist/utils/arrayBufferToHex.d.ts +1 -0
  127. package/dist/utils/arrayBufferToHex.js +19 -0
  128. package/dist/utils/arrayBufferToHex.js.map +1 -0
  129. package/dist/utils/base64ToHex.d.ts +1 -0
  130. package/dist/utils/base64ToHex.js +13 -0
  131. package/dist/utils/base64ToHex.js.map +1 -0
  132. package/dist/utils/crypto/base64KeyToHex.d.ts +1 -0
  133. package/dist/utils/crypto/base64KeyToHex.js +24 -0
  134. package/dist/utils/crypto/base64KeyToHex.js.map +1 -0
  135. package/dist/utils/crypto/base64PublicKeyToHex.d.ts +1 -0
  136. package/dist/utils/crypto/base64PublicKeyToHex.js +22 -0
  137. package/dist/utils/crypto/base64PublicKeyToHex.js.map +1 -0
  138. package/dist/utils/crypto/decodeKeyString.d.ts +1 -1
  139. package/dist/utils/crypto/decodeKeyString.js +3 -4
  140. package/dist/utils/crypto/decodeKeyString.js.map +1 -1
  141. package/dist/utils/crypto/decryptData.js +3 -3
  142. package/dist/utils/crypto/decryptData.js.map +1 -1
  143. package/dist/utils/crypto/decryptWithPass.d.ts +1 -1
  144. package/dist/utils/crypto/decryptWithPass.js +2 -3
  145. package/dist/utils/crypto/decryptWithPass.js.map +1 -1
  146. package/dist/utils/crypto/encodeKeyString.js +3 -4
  147. package/dist/utils/crypto/encodeKeyString.js.map +1 -1
  148. package/dist/utils/crypto/encryptData.d.ts +1 -1
  149. package/dist/utils/crypto/encryptData.js +1 -6
  150. package/dist/utils/crypto/encryptData.js.map +1 -1
  151. package/dist/utils/crypto/encryptWithPass.d.ts +1 -1
  152. package/dist/utils/crypto/encryptWithPass.js +1 -5
  153. package/dist/utils/crypto/encryptWithPass.js.map +1 -1
  154. package/dist/utils/crypto/exportKeyAsHex.d.ts +1 -0
  155. package/dist/utils/crypto/exportKeyAsHex.js +18 -0
  156. package/dist/utils/crypto/exportKeyAsHex.js.map +1 -0
  157. package/dist/utils/crypto/generateKeyFromPassword.js +1 -1
  158. package/dist/utils/crypto/generateKeyFromPassword.js.map +1 -1
  159. package/dist/utils/crypto/loadKeysComb.d.ts +1 -1
  160. package/dist/utils/crypto/loadKeysComb.js +10 -10
  161. package/dist/utils/crypto/loadKeysComb.js.map +1 -1
  162. package/dist/utils/crypto/loadSignKeys.d.ts +1 -1
  163. package/dist/utils/crypto/recoverPubKey.d.ts +1 -0
  164. package/dist/utils/crypto/recoverPubKey.js +33 -0
  165. package/dist/utils/crypto/recoverPubKey.js.map +1 -0
  166. package/dist/utils/crypto/recoverPubKeyFromPrivate.d.ts +1 -0
  167. package/dist/utils/crypto/recoverPubKeyFromPrivate.js +16 -0
  168. package/dist/utils/crypto/recoverPubKeyFromPrivate.js.map +1 -0
  169. package/dist/utils/crypto/saveKeysComb.d.ts +1 -1
  170. package/dist/utils/crypto/saveSignKeys.d.ts +2 -2
  171. package/dist/utils/crypto/saveSignKeys.js +2 -2
  172. package/dist/utils/crypto/verifyData.d.ts +1 -1
  173. package/dist/utils/crypto/verifyData.js +2 -2
  174. package/dist/utils/crypto/verifyData.js.map +1 -1
  175. package/dist/utils/encoding/arrayBufferToBase64.d.ts +1 -0
  176. package/dist/utils/encoding/arrayBufferToBase64.js +12 -0
  177. package/dist/utils/encoding/arrayBufferToBase64.js.map +1 -0
  178. package/dist/utils/encoding/arrayBufferToHex.d.ts +1 -0
  179. package/dist/utils/encoding/arrayBufferToHex.js +19 -0
  180. package/dist/utils/encoding/arrayBufferToHex.js.map +1 -0
  181. package/dist/utils/encoding/arrayBufferToString.d.ts +1 -0
  182. package/dist/utils/encoding/arrayBufferToString.js +12 -0
  183. package/dist/utils/encoding/arrayBufferToString.js.map +1 -0
  184. package/dist/utils/encoding/base64ToArrayBuffer.d.ts +1 -0
  185. package/dist/utils/encoding/base64ToArrayBuffer.js +12 -0
  186. package/dist/utils/encoding/base64ToArrayBuffer.js.map +1 -0
  187. package/dist/utils/encoding/base64ToBinaryChange.d.ts +2 -0
  188. package/dist/utils/encoding/base64ToBinaryChange.js +18 -0
  189. package/dist/utils/encoding/base64ToBinaryChange.js.map +1 -0
  190. package/dist/utils/encoding/base64ToBinaryDocument.d.ts +2 -0
  191. package/dist/utils/encoding/base64ToBinaryDocument.js +18 -0
  192. package/dist/utils/encoding/base64ToBinaryDocument.js.map +1 -0
  193. package/dist/utils/encoding/base64ToHex.d.ts +1 -0
  194. package/dist/utils/encoding/base64ToHex.js +13 -0
  195. package/dist/utils/encoding/base64ToHex.js.map +1 -0
  196. package/dist/utils/encoding/base64ToUint8.d.ts +1 -0
  197. package/dist/utils/encoding/base64ToUint8.js +17 -0
  198. package/dist/utils/encoding/base64ToUint8.js.map +1 -0
  199. package/dist/utils/encoding/fromBase64.d.ts +1 -0
  200. package/dist/utils/encoding/fromBase64.js +7 -0
  201. package/dist/utils/encoding/fromBase64.js.map +1 -0
  202. package/dist/utils/encoding/hexToArrayBuffer.d.ts +1 -0
  203. package/dist/utils/encoding/hexToArrayBuffer.js +15 -0
  204. package/dist/utils/encoding/hexToArrayBuffer.js.map +1 -0
  205. package/dist/utils/encoding/hexToBase64.d.ts +1 -0
  206. package/dist/utils/encoding/hexToBase64.js +12 -0
  207. package/dist/utils/encoding/hexToBase64.js.map +1 -0
  208. package/dist/utils/encoding/hexToString.d.ts +1 -0
  209. package/dist/utils/encoding/hexToString.js +12 -0
  210. package/dist/utils/encoding/hexToString.js.map +1 -0
  211. package/dist/utils/encoding/hexToUint8.d.ts +1 -0
  212. package/dist/utils/encoding/hexToUint8.js +11 -0
  213. package/dist/utils/encoding/hexToUint8.js.map +1 -0
  214. package/dist/utils/encoding/stringToArrayBuffer.d.ts +1 -0
  215. package/dist/utils/encoding/stringToArrayBuffer.js +12 -0
  216. package/dist/utils/encoding/stringToArrayBuffer.js.map +1 -0
  217. package/dist/utils/encoding/toBase64.d.ts +1 -0
  218. package/dist/utils/encoding/toBase64.js +7 -0
  219. package/dist/utils/encoding/toBase64.js.map +1 -0
  220. package/dist/utils/encoding/uint8ArrayToHex.d.ts +2 -0
  221. package/dist/utils/encoding/uint8ArrayToHex.js +7 -0
  222. package/dist/utils/encoding/uint8ArrayToHex.js.map +1 -0
  223. package/dist/utils/encoding/uint8ToBase64.d.ts +2 -0
  224. package/dist/utils/encoding/uint8ToBase64.js +15 -0
  225. package/dist/utils/encoding/uint8ToBase64.js.map +1 -0
  226. package/dist/utils/getPeerSignature.d.ts +2 -1
  227. package/dist/utils/getPeerSignature.js +7 -4
  228. package/dist/utils/getPeerSignature.js.map +1 -1
  229. package/dist/utils/getTimestamp.d.ts +1 -0
  230. package/dist/utils/getTimestamp.js +7 -0
  231. package/dist/utils/getTimestamp.js.map +1 -0
  232. package/dist/utils/hexToArrayBuffer.d.ts +1 -0
  233. package/dist/utils/hexToArrayBuffer.js +15 -0
  234. package/dist/utils/hexToArrayBuffer.js.map +1 -0
  235. package/dist/utils/hexToBase64.d.ts +1 -0
  236. package/dist/utils/hexToBase64.js +12 -0
  237. package/dist/utils/hexToBase64.js.map +1 -0
  238. package/dist/utils/hexToString.d.ts +1 -0
  239. package/dist/utils/hexToString.js +12 -0
  240. package/dist/utils/hexToString.js.map +1 -0
  241. package/dist/utils/hexToUint8.d.ts +1 -0
  242. package/dist/utils/hexToUint8.js +8 -0
  243. package/dist/utils/hexToUint8.js.map +1 -0
  244. package/dist/utils/leveldb.js +2 -0
  245. package/dist/utils/leveldb.js.map +1 -1
  246. package/dist/utils/signData.d.ts +1 -1
  247. package/dist/utils/signData.js +3 -9
  248. package/dist/utils/signData.js.map +1 -1
  249. package/dist/utils/uint8ArrayToHex.d.ts +2 -0
  250. package/dist/utils/uint8ArrayToHex.js +7 -0
  251. package/dist/utils/uint8ArrayToHex.js.map +1 -0
  252. package/dist/utils/verifyMessage.js +9 -18
  253. package/dist/utils/verifyMessage.js.map +1 -1
  254. package/dist/utils/verifyPeer.d.ts +2 -1
  255. package/dist/utils/verifyPeer.js +9 -8
  256. package/dist/utils/verifyPeer.js.map +1 -1
  257. package/package.json +10 -2
  258. package/test-alice/000087.ldb +0 -0
  259. package/test-alice/000089.ldb +0 -0
  260. package/test-alice/000090.log +0 -0
  261. package/test-alice/CURRENT +1 -1
  262. package/test-alice/LOG +5 -5
  263. package/test-alice/LOG.old +14 -5
  264. package/test-alice/MANIFEST-000088 +0 -0
  265. package/test-alice-speed/000029.ldb +0 -0
  266. package/test-alice-speed/000031.ldb +0 -0
  267. package/test-alice-speed/000034.ldb +0 -0
  268. package/test-alice-speed/000035.log +0 -0
  269. package/test-alice-speed/CURRENT +1 -0
  270. package/{test-keys-a → test-alice-speed}/LOCK +0 -0
  271. package/test-alice-speed/LOG +5 -0
  272. package/test-alice-speed/LOG.old +5 -0
  273. package/test-alice-speed/MANIFEST-000033 +0 -0
  274. package/test-bob/000087.ldb +0 -0
  275. package/test-bob/000089.ldb +0 -0
  276. package/test-bob/000090.log +0 -0
  277. package/test-bob/CURRENT +1 -1
  278. package/test-bob/LOG +5 -5
  279. package/test-bob/LOG.old +14 -5
  280. package/test-bob/MANIFEST-000088 +0 -0
  281. package/test-node-a/000087.ldb +0 -0
  282. package/test-node-a/000089.ldb +0 -0
  283. package/test-node-a/000090.log +0 -0
  284. package/test-node-a/CURRENT +1 -1
  285. package/test-node-a/LOG +5 -5
  286. package/test-node-a/LOG.old +14 -5
  287. package/test-node-a/MANIFEST-000088 +0 -0
  288. package/test-node-b/000087.ldb +0 -0
  289. package/test-node-b/000089.ldb +0 -0
  290. package/test-node-b/000090.log +0 -0
  291. package/test-node-b/CURRENT +1 -1
  292. package/test-node-b/LOG +5 -5
  293. package/test-node-b/LOG.old +14 -5
  294. package/test-node-b/MANIFEST-000088 +0 -0
  295. package/test-verify-a/000026.ldb +0 -0
  296. package/test-verify-a/000029.ldb +0 -0
  297. package/test-verify-a/000031.ldb +0 -0
  298. package/test-verify-a/000033.ldb +0 -0
  299. package/{test-keys-b/000039.log → test-verify-a/000066.log} +0 -0
  300. package/test-verify-a/CURRENT +1 -1
  301. package/test-verify-a/LOG +3 -3
  302. package/test-verify-a/LOG.old +3 -3
  303. package/test-verify-a/MANIFEST-000065 +0 -0
  304. package/dist/webrtc/joinWebrtcTorrent.d.ts +0 -3
  305. package/dist/webrtc/joinWebrtcTorrent.js +0 -312
  306. package/dist/webrtc/joinWebrtcTorrent.js.map +0 -1
  307. package/test-alice/000236.ldb +0 -0
  308. package/test-alice/000344.ldb +0 -0
  309. package/test-alice/000611.ldb +0 -0
  310. package/test-alice/000613.ldb +0 -0
  311. package/test-alice/000616.ldb +0 -0
  312. package/test-alice/000619.ldb +0 -0
  313. package/test-alice/000620.log +0 -0
  314. package/test-alice/MANIFEST-000618 +0 -0
  315. package/test-bob/000611.ldb +0 -0
  316. package/test-bob/000613.ldb +0 -0
  317. package/test-bob/000616.ldb +0 -0
  318. package/test-bob/000617.log +0 -0
  319. package/test-bob/MANIFEST-000615 +0 -0
  320. package/test-keys-a/CURRENT +0 -1
  321. package/test-keys-a/LOG +0 -3
  322. package/test-keys-a/LOG.old +0 -3
  323. package/test-keys-a/MANIFEST-000038 +0 -0
  324. package/test-keys-b/CURRENT +0 -1
  325. package/test-keys-b/LOCK +0 -0
  326. package/test-keys-b/LOG +0 -3
  327. package/test-keys-b/LOG.old +0 -3
  328. package/test-keys-b/MANIFEST-000038 +0 -0
  329. package/test-node-a/000615.ldb +0 -0
  330. package/test-node-a/000617.ldb +0 -0
  331. package/test-node-a/000620.ldb +0 -0
  332. package/test-node-a/000623.ldb +0 -0
  333. package/test-node-a/000624.log +0 -0
  334. package/test-node-a/MANIFEST-000622 +0 -0
  335. package/test-node-b/000615.ldb +0 -0
  336. package/test-node-b/000617.ldb +0 -0
  337. package/test-node-b/000620.ldb +0 -0
  338. package/test-node-b/000623.ldb +0 -0
  339. package/test-node-b/000624.log +0 -0
  340. package/test-node-b/MANIFEST-000622 +0 -0
  341. package/test-verify-a/000017.log +0 -0
  342. package/test-verify-a/MANIFEST-000016 +0 -0
@@ -1,13 +1,19 @@
1
1
  import { ToolDbMessage } from ".";
2
- import { ToolDbNetworkAdapter } from "./types/tooldb";
2
+ import { ToolDbNetworkAdapter, ToolDbOptions } from "./types/tooldb";
3
3
  import ToolDb from "./tooldb";
4
+ import WebSocket from "ws";
4
5
  export declare type ToolDbWebSocket = WebSocket & {
5
6
  toolDbId?: string;
6
7
  isServer: boolean;
7
8
  origUrl: string;
8
9
  };
10
+ interface WebrtcAdapterOptions {
11
+ wrtc?: any;
12
+ }
9
13
  export default class toolDbWebrtc extends ToolDbNetworkAdapter {
10
14
  private _tooldb;
15
+ private wnd;
16
+ private wss;
11
17
  private sockets;
12
18
  private socketListeners;
13
19
  private peerMap;
@@ -62,5 +68,8 @@ export default class toolDbWebrtc extends ToolDbNetworkAdapter {
62
68
  close(clientId: string): void;
63
69
  sendToAll(msg: ToolDbMessage, crossServerOnly?: boolean, isRelay?: boolean): void;
64
70
  sendToClientId(clientId: string, msg: ToolDbMessage): void;
65
- get tooldb(): ToolDb;
71
+ get tooldb(): ToolDb & {
72
+ options: ToolDbOptions & WebrtcAdapterOptions;
73
+ };
66
74
  }
75
+ export {};
@@ -78,10 +78,12 @@ var lodash_1 = __importDefault(require("lodash"));
78
78
  var simple_peer_1 = __importDefault(require("simple-peer"));
79
79
  var _1 = require(".");
80
80
  var tooldb_1 = require("./types/tooldb");
81
+ var ws_1 = __importDefault(require("ws"));
81
82
  var offerPoolSize = 5;
82
83
  var announceSecs = 30;
83
- var maxAnnounceSecs = 120;
84
+ var maxAnnounceSecs = 86400;
84
85
  var defaultTrackerUrls = [
86
+ "wss://tooldb-tracker.herokuapp.com/",
85
87
  "wss://tracker.openwebtorrent.com",
86
88
  "wss://tracker.btorrent.xyz",
87
89
  "wss://tracker.webtorrent.io",
@@ -92,16 +94,24 @@ var toolDbWebrtc = /** @class */ (function (_super) {
92
94
  __extends(toolDbWebrtc, _super);
93
95
  function toolDbWebrtc(db) {
94
96
  var _this = _super.call(this, db) || this;
97
+ _this.wnd = typeof window === "undefined" ? undefined : window;
98
+ _this.wss = _this.wnd
99
+ ? _this.wnd.WebSocket || _this.wnd.webkitWebSocket || _this.wnd.mozWebSocket
100
+ : ws_1.default;
95
101
  _this.sockets = {};
96
102
  _this.socketListeners = {};
97
103
  _this.peerMap = {};
98
104
  _this.connectedPeers = {};
99
105
  _this.onDisconnect = function (id, err) {
100
- // console.warn(id, err);
106
+ console.warn(id, err);
101
107
  if (_this.connectedPeers[id])
102
108
  delete _this.connectedPeers[id];
103
109
  if (_this.peerMap[id])
104
110
  delete _this.peerMap[id];
111
+ if (Object.keys(_this.peerMap).length === 0) {
112
+ _this.tooldb.isConnected = false;
113
+ _this.tooldb.onDisconnect();
114
+ }
105
115
  };
106
116
  /**
107
117
  * Initialize webrtc peer
@@ -109,6 +119,7 @@ var toolDbWebrtc = /** @class */ (function (_super) {
109
119
  _this.initPeer = function (initiator, trickle, rtcConfig // RTCConfiguration
110
120
  ) {
111
121
  var peer = new simple_peer_1.default({
122
+ wrtc: _this._tooldb.options.wrtc,
112
123
  initiator: initiator,
113
124
  trickle: trickle,
114
125
  config: rtcConfig,
@@ -125,12 +136,17 @@ var toolDbWebrtc = /** @class */ (function (_super) {
125
136
  _this.makeOffers = function () {
126
137
  var offers = {};
127
138
  new Array(offerPoolSize).fill(0).forEach(function () {
128
- var peer = _this.initPeer(true, false, {});
129
- var oid = (0, _1.textRandom)(20);
130
- offers[oid] = {
131
- peer: peer,
132
- offerP: new Promise(function (res) { return peer.once("signal", res); }),
133
- };
139
+ try {
140
+ var peer_1 = _this.initPeer(true, false, {});
141
+ var oid = (0, _1.textRandom)(20);
142
+ offers[oid] = {
143
+ peer: peer_1,
144
+ offerP: new Promise(function (res) { return peer_1.once("signal", res); }),
145
+ };
146
+ }
147
+ catch (e) {
148
+ console.warn(e);
149
+ }
134
150
  });
135
151
  return offers;
136
152
  };
@@ -143,6 +159,7 @@ var toolDbWebrtc = /** @class */ (function (_super) {
143
159
  _this.peerMap[id].destroy();
144
160
  delete _this.peerMap[id];
145
161
  }
162
+ // console.log("onPeerConnect", id);
146
163
  var onData = function (data) {
147
164
  var str = new TextDecoder().decode(data);
148
165
  try {
@@ -153,7 +170,11 @@ var toolDbWebrtc = /** @class */ (function (_super) {
153
170
  _this.tooldb.clientOnMessage(msg, id);
154
171
  }
155
172
  if (msg.type === "pong" || msg.type === "ping") {
156
- _this.tooldb.onConnect();
173
+ if (_this.tooldb.isConnected) {
174
+ _this.tooldb.onConnect();
175
+ _this.tooldb.isConnected = true;
176
+ }
177
+ _this.tooldb.onPeerConnect(id);
157
178
  }
158
179
  }
159
180
  catch (e) {
@@ -166,6 +187,10 @@ var toolDbWebrtc = /** @class */ (function (_super) {
166
187
  peer.on("error", function (err) { return _this.onDisconnect(id, err); });
167
188
  peer.send(JSON.stringify({
168
189
  type: "ping",
190
+ clientId: _this._tooldb.options.peerAccount.address,
191
+ to: [_this._tooldb.options.peerAccount.address],
192
+ isServer: _this._tooldb.options.server,
193
+ id: (0, _1.textRandom)(10),
169
194
  }));
170
195
  };
171
196
  /**
@@ -189,6 +214,10 @@ var toolDbWebrtc = /** @class */ (function (_super) {
189
214
  peer.end();
190
215
  peer.destroy();
191
216
  delete _this.peerMap[id];
217
+ if (Object.keys(_this.peerMap).length === 0) {
218
+ _this.tooldb.isConnected = false;
219
+ _this.tooldb.onDisconnect();
220
+ }
192
221
  }
193
222
  });
194
223
  _this.handledOffers = {};
@@ -202,7 +231,7 @@ var toolDbWebrtc = /** @class */ (function (_super) {
202
231
  if (!_this.sockets[url]) {
203
232
  _this.socketListeners[url] = __assign(__assign({}, _this.socketListeners[url]), (_a = {}, _a[info_hash] = _this.onSocketMessage, _a));
204
233
  try {
205
- var socket_1 = new WebSocket(url);
234
+ var socket_1 = new _this.wss(url);
206
235
  // eslint-disable-next-line func-names
207
236
  var socks_1 = _this.sockets;
208
237
  socket_1.onopen = function () {
@@ -244,7 +273,7 @@ var toolDbWebrtc = /** @class */ (function (_super) {
244
273
  action: "announce",
245
274
  info_hash: infoHash,
246
275
  numwant: offerPoolSize,
247
- peer_id: encodeURIComponent(this.tooldb.options.id).slice(-20)
276
+ peer_id: this.tooldb.options.peerAccount.address.slice(-20)
248
277
  };
249
278
  return [4 /*yield*/, Promise.all(Object.entries(this.offerPool).map(function (_a) {
250
279
  var id = _a[0], offerP = _a[1].offerP;
@@ -279,7 +308,6 @@ var toolDbWebrtc = /** @class */ (function (_super) {
279
308
  this.cleanPool();
280
309
  }
281
310
  this.offerPool = this.makeOffers();
282
- // console.log("offerPool", this.offerPool);
283
311
  this.trackerUrls.forEach(function (url) { return __awaiter(_this, void 0, void 0, function () {
284
312
  var socket;
285
313
  return __generator(this, function (_a) {
@@ -287,7 +315,9 @@ var toolDbWebrtc = /** @class */ (function (_super) {
287
315
  case 0: return [4 /*yield*/, this.makeSocket(url, this.infoHash)];
288
316
  case 1:
289
317
  socket = _a.sent();
290
- if (socket && socket.readyState === WebSocket.OPEN) {
318
+ // console.log(" ok tracker " + url);
319
+ // console.log("socket", url, socket);
320
+ if (socket && socket.readyState === 1) {
291
321
  // console.log("announce to " + url);
292
322
  this.announce(socket, this.infoHash);
293
323
  }
@@ -302,7 +332,7 @@ var toolDbWebrtc = /** @class */ (function (_super) {
302
332
  * Handle the tracker messages
303
333
  */
304
334
  _this.onSocketMessage = function (socket, e) { return __awaiter(_this, void 0, void 0, function () {
305
- var val, failure, peer_1, offer, peer_2;
335
+ var val, failure, peer_2, offer, peer_3;
306
336
  var _this = this;
307
337
  return __generator(this, function (_a) {
308
338
  try {
@@ -323,7 +353,7 @@ var toolDbWebrtc = /** @class */ (function (_super) {
323
353
  return [2 /*return*/];
324
354
  }
325
355
  if (val.peer_id &&
326
- val.peer_id === encodeURIComponent(this.tooldb.options.id).slice(-20)) {
356
+ val.peer_id === this.tooldb.options.peerAccount.address.slice(-20)) {
327
357
  // console.warn("Peer ids mismatch", val.peer_id, selfId);
328
358
  return [2 /*return*/];
329
359
  }
@@ -335,20 +365,20 @@ var toolDbWebrtc = /** @class */ (function (_super) {
335
365
  return [2 /*return*/];
336
366
  }
337
367
  this.handledOffers[val.offer_id] = true;
338
- peer_1 = this.initPeer(false, false, {});
339
- peer_1.once("signal", function (answer) {
368
+ peer_2 = this.initPeer(false, false, {});
369
+ peer_2.once("signal", function (answer) {
340
370
  return socket.send(JSON.stringify({
341
371
  answer: answer,
342
372
  action: "announce",
343
373
  info_hash: _this.infoHash,
344
- peer_id: encodeURIComponent(_this.tooldb.options.id).slice(-20),
374
+ peer_id: _this.tooldb.options.peerAccount.address.slice(-20),
345
375
  to_peer_id: val.peer_id,
346
376
  offer_id: val.offer_id,
347
377
  }));
348
378
  });
349
- peer_1.on("connect", function () { return _this.onConnect(peer_1, val.peer_id); });
350
- peer_1.on("close", function (err) { return _this.onDisconnect(val.peer_id, err); });
351
- peer_1.signal(val.offer);
379
+ peer_2.on("connect", function () { return _this.onConnect(peer_2, val.peer_id); });
380
+ peer_2.on("close", function (err) { return _this.onDisconnect(val.peer_id, err); });
381
+ peer_2.signal(val.offer);
352
382
  return [2 /*return*/];
353
383
  }
354
384
  if (val.answer) {
@@ -360,16 +390,16 @@ var toolDbWebrtc = /** @class */ (function (_super) {
360
390
  }
361
391
  offer = this.offerPool[val.offer_id];
362
392
  if (offer) {
363
- peer_2 = offer.peer;
364
- if (peer_2.destroyed) {
393
+ peer_3 = offer.peer;
394
+ if (peer_3.destroyed) {
365
395
  return [2 /*return*/];
366
396
  }
367
397
  this.handledOffers[val.offer_id] = true;
368
- peer_2.on("connect", function () {
369
- _this.onConnect(peer_2, val.peer_id, val.offer_id);
398
+ peer_3.on("connect", function () {
399
+ _this.onConnect(peer_3, val.peer_id, val.offer_id);
370
400
  });
371
- peer_2.on("close", function (err) { return _this.onDisconnect(val.peer_id, err); });
372
- peer_2.signal(val.answer);
401
+ peer_3.on("close", function (err) { return _this.onDisconnect(val.peer_id, err); });
402
+ peer_3.signal(val.answer);
373
403
  }
374
404
  }
375
405
  return [2 /*return*/];
@@ -406,44 +436,63 @@ var toolDbWebrtc = /** @class */ (function (_super) {
406
436
  //
407
437
  };
408
438
  toolDbWebrtc.prototype.sendToAll = function (msg, crossServerOnly, isRelay) {
439
+ // if (this.tooldb.options.debug) {
440
+ // console.log("> sendToAll", msg);
441
+ // }
409
442
  var _this = this;
410
443
  if (crossServerOnly === void 0) { crossServerOnly = false; }
411
444
  if (isRelay === void 0) { isRelay = false; }
412
445
  var to = lodash_1.default.uniq(__spreadArray(__spreadArray([], msg.to, true), [
413
- encodeURIComponent(this.tooldb.options.id).slice(-20),
446
+ this.tooldb.options.peerAccount.address.slice(-20),
414
447
  ], false));
415
448
  Object.keys(this.peerMap)
416
449
  .filter(function (id) { return !to.includes(id); })
417
450
  .forEach(function (id) {
418
451
  var peer = _this.peerMap[id];
419
452
  if (peer.connected) {
420
- if (_this.tooldb.options.debug) {
421
- console.log("Sent out to: ", id);
422
- // console.log("OUT > ", { ...msg, to });
423
- }
453
+ // if (this.tooldb.options.debug) {
454
+ // console.log("Sent out to: ", id);
455
+ // console.log("OUT > ", { ...msg, to });
456
+ // }
424
457
  peer.send(JSON.stringify(__assign(__assign({}, msg), { to: to })));
425
458
  }
426
459
  else {
427
460
  peer.destroy();
428
461
  delete _this.peerMap[id];
462
+ if (Object.keys(_this.peerMap).length === 0) {
463
+ _this.tooldb.isConnected = false;
464
+ _this.tooldb.onDisconnect();
465
+ }
429
466
  }
430
467
  });
431
468
  };
432
469
  toolDbWebrtc.prototype.sendToClientId = function (clientId, msg) {
470
+ // if (this.tooldb.options.debug) {
471
+ // console.log("> sendToClientId", clientId, msg);
472
+ // }
433
473
  var _this = this;
474
+ var to = lodash_1.default.uniq(__spreadArray(__spreadArray([], [msg.to || []], false), [
475
+ this.tooldb.options.peerAccount.address.slice(-20),
476
+ ], false));
434
477
  Object.keys(this.peerMap)
435
478
  .filter(function (id) { return id === clientId; })
479
+ .filter(function (id) { return !to.includes(id); })
436
480
  .forEach(function (id) {
437
481
  var peer = _this.peerMap[id];
438
482
  if (peer.connected) {
439
- var to = lodash_1.default.uniq(__spreadArray(__spreadArray([], [msg.to || []], false), [
440
- encodeURIComponent(_this.tooldb.options.id).slice(-20),
441
- ], false));
483
+ // if (this.tooldb.options.debug) {
484
+ // console.log("Sent out to client ID ", id);
485
+ // console.log("OUT > ", { ...msg, to });
486
+ // }
442
487
  peer.send(JSON.stringify(__assign(__assign({}, msg), { to: to })));
443
488
  }
444
489
  else {
445
490
  peer.destroy();
446
491
  delete _this.peerMap[id];
492
+ if (Object.keys(_this.peerMap).length === 0) {
493
+ _this.tooldb.isConnected = false;
494
+ _this.tooldb.onDisconnect();
495
+ }
447
496
  }
448
497
  });
449
498
  };
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbWebrtc.js","sourceRoot":"","sources":["../src/toolDbWebrtc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolDbWebrtc.js","sourceRoot":"","sources":["../src/toolDbWebrtc.ts"],"names":[],"mappings":"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"}
package/dist/tooldb.d.ts CHANGED
@@ -1,14 +1,15 @@
1
1
  /// <reference types="node" />
2
2
  import { FreezeObject } from "automerge";
3
3
  import EventEmitter from "events";
4
- import { CrdtMessage, PutMessage, ToolDbMessage, VerificationData, verifyMessage } from ".";
4
+ import w3 from "web3";
5
+ import { Account } from "web3-core";
6
+ import { BaseMessage, CrdtMessage, PutMessage, ToolDbMessage, VerificationData, verifyMessage } from ".";
5
7
  import toolDbGet from "./toolDbGet";
6
8
  import toolDbPut from "./toolDbPut";
7
9
  import toolDbSignIn from "./toolDbSignIn";
8
10
  import toolDbSignUp from "./toolDbSignUp";
9
11
  import toolDbCrdtGet from "./toolDbCrdtGet";
10
12
  import toolDbCrdtPut from "./toolDbCrdtPut";
11
- import toolDbGetPubKey from "./toolDbGetPubKey";
12
13
  import toolDbAnonSignIn from "./toolDbAnonSignIn";
13
14
  import toolDbClientOnMessage from "./toolDbClientOnMessage";
14
15
  import toolDbVerificationWrapper from "./toolDbVerificationWrapper";
@@ -25,7 +26,7 @@ import handleQuery from "./messageHandlers/handleQuery";
25
26
  import handleCrdtGet from "./messageHandlers/handleCrdtGet";
26
27
  import handleCrdtPut from "./messageHandlers/handleCrdtPut";
27
28
  import handleSubscribe from "./messageHandlers/handleSubscribe";
28
- import { Peer, ToolDbOptions } from "./types/tooldb";
29
+ import { Peer, ToolDbOptions, ToolDbStore } from "./types/tooldb";
29
30
  export interface Listener {
30
31
  key: string;
31
32
  timeout: number | null;
@@ -33,12 +34,13 @@ export interface Listener {
33
34
  }
34
35
  interface Verificator<T> {
35
36
  key: string;
36
- fn: (msg: VerificationData<T>) => Promise<boolean>;
37
+ fn: (msg: VerificationData<T> & BaseMessage, previousData: T | undefined) => Promise<boolean>;
37
38
  }
38
39
  export default class ToolDb extends EventEmitter {
39
40
  private _network;
40
41
  private _store;
41
42
  private _peers;
43
+ web3: w3;
42
44
  private _documents;
43
45
  clientOnMessage: typeof toolDbClientOnMessage;
44
46
  verifyMessage: typeof verifyMessage;
@@ -46,16 +48,26 @@ export default class ToolDb extends EventEmitter {
46
48
  get subscriptions(): string[];
47
49
  private _processedIds;
48
50
  get processedIds(): Record<string, string[]>;
51
+ private _processedOutHashes;
52
+ get processedOutHashes(): Record<string, string[]>;
49
53
  subscribeData: typeof toolDbSubscribe;
54
+ isConnected: boolean;
55
+ /**
56
+ * Emitted after a disconnection, when there are no more peers connected to.
57
+ */
50
58
  onDisconnect: () => void;
59
+ /**
60
+ * Emitted the first time we are connected to a peer.
61
+ */
51
62
  onConnect: () => void;
63
+ onPeerDisconnect: (peerId: string) => void;
64
+ onPeerConnect: (peerId: string) => void;
52
65
  loadCrdtDocument: typeof loadCrdtDocument;
53
66
  getData: typeof toolDbGet;
54
67
  putData: typeof toolDbPut;
55
68
  putCrdt: typeof toolDbCrdtPut;
56
69
  getCrdt: typeof toolDbCrdtGet;
57
70
  queryKeys: typeof toolDbQueryKeys;
58
- getPubKey: typeof toolDbGetPubKey;
59
71
  signIn: typeof toolDbSignIn;
60
72
  anonSignIn: typeof toolDbAnonSignIn;
61
73
  keysSignIn: typeof toolDbKeysSignIn;
@@ -70,6 +82,10 @@ export default class ToolDb extends EventEmitter {
70
82
  handlePut: typeof handlePut;
71
83
  handleQuery: typeof handleQuery;
72
84
  handleSubscribe: typeof handleSubscribe;
85
+ setUser(account: Account | undefined, name: string): void;
86
+ signData(data: string): import("web3-core").Sign | undefined;
87
+ getPubKey(): string | undefined;
88
+ getUsername(): string | undefined;
73
89
  /**
74
90
  * id listeners listen for a specific message ID just once
75
91
  */
@@ -88,21 +104,14 @@ export default class ToolDb extends EventEmitter {
88
104
  * Custom verificators can enhance default verification on any key field
89
105
  */
90
106
  _customVerificator: (Verificator<any> | null)[];
91
- addCustomVerification: <T = any>(key: string, fn: (msg: VerificationData) => Promise<boolean>) => number;
107
+ addCustomVerification: <T = any>(key: string, fn: (msg: VerificationData & BaseMessage, previous: T | undefined) => Promise<boolean>) => number;
92
108
  removeCustomVerification: (id: number) => void;
93
- user: {
94
- keys: {
95
- signKeys: CryptoKeyPair;
96
- encryptionKeys: CryptoKeyPair;
97
- };
98
- name: string;
99
- pubKey: string;
100
- } | undefined;
109
+ private _user;
101
110
  private _options;
102
111
  get options(): ToolDbOptions;
103
- get network(): import("./types/tooldb").ToolDbNetworkAdapter;
112
+ get network(): import(".").ToolDbNetworkAdapter;
104
113
  get peers(): Peer[];
105
- get store(): import("./types/tooldb").ToolDbStore;
114
+ get store(): ToolDbStore;
106
115
  get documents(): Record<string, FreezeObject<any>>;
107
116
  constructor(options?: Partial<ToolDbOptions>);
108
117
  }
package/dist/tooldb.js CHANGED
@@ -30,6 +30,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
30
30
  };
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
32
  var events_1 = __importDefault(require("events"));
33
+ var web3_1 = __importDefault(require("web3"));
33
34
  var _1 = require(".");
34
35
  var toolDbGet_1 = __importDefault(require("./toolDbGet"));
35
36
  var toolDbPut_1 = __importDefault(require("./toolDbPut"));
@@ -38,7 +39,6 @@ var toolDbSignUp_1 = __importDefault(require("./toolDbSignUp"));
38
39
  var toolDbNetwork_1 = __importDefault(require("./toolDbNetwork"));
39
40
  var toolDbCrdtGet_1 = __importDefault(require("./toolDbCrdtGet"));
40
41
  var toolDbCrdtPut_1 = __importDefault(require("./toolDbCrdtPut"));
41
- var toolDbGetPubKey_1 = __importDefault(require("./toolDbGetPubKey"));
42
42
  var toolDbAnonSignIn_1 = __importDefault(require("./toolDbAnonSignIn"));
43
43
  var toolDbClientOnMessage_1 = __importDefault(require("./toolDbClientOnMessage"));
44
44
  var toolDbVerificationWrapper_1 = __importDefault(require("./toolDbVerificationWrapper"));
@@ -68,22 +68,33 @@ var ToolDb = /** @class */ (function (_super) {
68
68
  _this.verifyMessage = _1.verifyMessage;
69
69
  _this._subscriptions = [];
70
70
  _this._processedIds = {};
71
+ _this._processedOutHashes = {};
71
72
  _this.subscribeData = toolDbSubscribe_1.default;
72
- // Emitted when there are no more server peers connected to
73
+ _this.isConnected = false;
74
+ /**
75
+ * Emitted after a disconnection, when there are no more peers connected to.
76
+ */
73
77
  _this.onDisconnect = function () {
74
78
  //
75
79
  };
76
- // Emitted when a server peer responds with "pong"
80
+ /**
81
+ * Emitted the first time we are connected to a peer.
82
+ */
77
83
  _this.onConnect = function () {
78
84
  //
79
85
  };
86
+ _this.onPeerDisconnect = function (peerId) {
87
+ //
88
+ };
89
+ _this.onPeerConnect = function (peerId) {
90
+ //
91
+ };
80
92
  _this.loadCrdtDocument = loadCrdtDocument_1.default;
81
93
  _this.getData = toolDbGet_1.default;
82
94
  _this.putData = toolDbPut_1.default;
83
95
  _this.putCrdt = toolDbCrdtPut_1.default;
84
96
  _this.getCrdt = toolDbCrdtGet_1.default;
85
97
  _this.queryKeys = toolDbQueryKeys_1.default;
86
- _this.getPubKey = toolDbGetPubKey_1.default;
87
98
  _this.signIn = toolDbSignIn_1.default;
88
99
  _this.anonSignIn = toolDbAnonSignIn_1.default;
89
100
  _this.keysSignIn = toolDbKeysSignIn_1.default;
@@ -156,7 +167,7 @@ var ToolDb = /** @class */ (function (_super) {
156
167
  _this.removeCustomVerification = function (id) {
157
168
  _this._customVerificator[id] = null;
158
169
  };
159
- _this.user = undefined;
170
+ _this._user = undefined;
160
171
  _this._options = {
161
172
  db: "tooldb",
162
173
  peers: [],
@@ -172,30 +183,14 @@ var ToolDb = /** @class */ (function (_super) {
172
183
  networkAdapter: toolDbNetwork_1.default,
173
184
  storageName: "tooldb",
174
185
  storageAdapter: typeof window === "undefined" ? leveldb_1.default : indexedb_1.default,
175
- id: "",
176
186
  topic: "tool-db-default",
177
- publicKey: undefined,
178
- privateKey: undefined,
187
+ peerAccount: undefined,
179
188
  };
180
189
  _this._options = __assign(__assign({}, _this.options), options);
181
- if (_this._options.id === "") {
182
- (0, _1.generateKeyPair)("ECDSA", false)
183
- .then(function (key) {
184
- if (key.publicKey && key.privateKey) {
185
- _this._options.publicKey = key.publicKey;
186
- _this._options.privateKey = key.privateKey;
187
- (0, _1.exportKey)("spki", key.publicKey).then(function (skpub) {
188
- _this._options.id = (0, _1.encodeKeyString)(skpub);
189
- if (_this._options.debug) {
190
- console.log("My ID is:", _this._options.id);
191
- }
192
- });
193
- }
194
- })
195
- .catch(console.warn);
196
- } // else {
197
- // this._options.id = sha1(`${textRandom(100)}-${new Date().getTime()}`);
198
- // }
190
+ _this.web3 = new web3_1.default(web3_1.default.givenProvider);
191
+ var account = _this.web3.eth.accounts.create();
192
+ _this.options.peerAccount = account;
193
+ _this.emit("init", account.address);
199
194
  // These could be made to be customizable by setting the variables as public
200
195
  _this._network = new _this.options.networkAdapter(_this);
201
196
  _this._store = _this.options.storageAdapter(_this.options.storageName);
@@ -215,9 +210,38 @@ var ToolDb = /** @class */ (function (_super) {
215
210
  enumerable: false,
216
211
  configurable: true
217
212
  });
218
- ToolDb.prototype.getUserNamespacedKey = function (key) {
213
+ Object.defineProperty(ToolDb.prototype, "processedOutHashes", {
214
+ get: function () {
215
+ return this._processedOutHashes;
216
+ },
217
+ enumerable: false,
218
+ configurable: true
219
+ });
220
+ ToolDb.prototype.setUser = function (account, name) {
221
+ this._user = account
222
+ ? {
223
+ account: account,
224
+ name: name,
225
+ }
226
+ : undefined;
227
+ };
228
+ ToolDb.prototype.signData = function (data) {
229
+ if (this._user) {
230
+ var signature = this.web3.eth.accounts.sign(data, this._user.account.privateKey);
231
+ return signature;
232
+ }
233
+ return undefined;
234
+ };
235
+ ToolDb.prototype.getPubKey = function () {
236
+ var _a;
237
+ return (_a = this._user) === null || _a === void 0 ? void 0 : _a.account.address;
238
+ };
239
+ ToolDb.prototype.getUsername = function () {
219
240
  var _a;
220
- return ":" + (((_a = this.user) === null || _a === void 0 ? void 0 : _a.pubKey) || "") + "." + key;
241
+ return (_a = this._user) === null || _a === void 0 ? void 0 : _a.name;
242
+ };
243
+ ToolDb.prototype.getUserNamespacedKey = function (key) {
244
+ return ":" + (this.getPubKey() || "") + "." + key;
221
245
  };
222
246
  Object.defineProperty(ToolDb.prototype, "options", {
223
247
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"file":"tooldb.js","sourceRoot":"","sources":["../src/tooldb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tooldb.js","sourceRoot":"","sources":["../src/tooldb.ts"],"names":[],"mappings":"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"}