tool-db 2.1.0 → 2.2.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 (143) hide show
  1. package/bundle.js +1 -1
  2. package/dist/crdt/listCrdt.d.ts +2 -2
  3. package/dist/index.d.ts +14 -6
  4. package/dist/index.js +22 -12
  5. package/dist/index.js.map +1 -1
  6. package/dist/messageHandlers/handleCrdtPut.js +19 -5
  7. package/dist/messageHandlers/handleCrdtPut.js.map +1 -1
  8. package/dist/messageHandlers/handleJoin.js +24 -20
  9. package/dist/messageHandlers/handleJoin.js.map +1 -1
  10. package/dist/messageHandlers/handlePing.js +1 -1
  11. package/dist/messageHandlers/handlePing.js.map +1 -1
  12. package/dist/messageHandlers/handlePong.js +5 -5
  13. package/dist/messageHandlers/handlePong.js.map +1 -1
  14. package/dist/messageHandlers/handlePut.js +1 -0
  15. package/dist/messageHandlers/handlePut.js.map +1 -1
  16. package/dist/messageHandlers/handleServers.js +9 -8
  17. package/dist/messageHandlers/handleServers.js.map +1 -1
  18. package/dist/toolDbAnonSignIn.js +1 -6
  19. package/dist/toolDbAnonSignIn.js.map +1 -1
  20. package/dist/toolDbCrdtGet.js +6 -2
  21. package/dist/toolDbCrdtGet.js.map +1 -1
  22. package/dist/toolDbCrdtPut.js +9 -7
  23. package/dist/toolDbCrdtPut.js.map +1 -1
  24. package/dist/toolDbGet.js +8 -4
  25. package/dist/toolDbGet.js.map +1 -1
  26. package/dist/toolDbKeysSignIn.d.ts +1 -1
  27. package/dist/toolDbKeysSignIn.js +4 -2
  28. package/dist/toolDbKeysSignIn.js.map +1 -1
  29. package/dist/toolDbNetwork.d.ts +4 -16
  30. package/dist/toolDbNetwork.js +74 -179
  31. package/dist/toolDbNetwork.js.map +1 -1
  32. package/dist/toolDbNetworkAdapter.d.ts +57 -0
  33. package/dist/toolDbNetworkAdapter.js +192 -0
  34. package/dist/toolDbNetworkAdapter.js.map +1 -0
  35. package/dist/toolDbPut.js +7 -7
  36. package/dist/toolDbPut.js.map +1 -1
  37. package/dist/toolDbQueryKeys.js +3 -2
  38. package/dist/toolDbQueryKeys.js.map +1 -1
  39. package/dist/toolDbSignIn.d.ts +1 -2
  40. package/dist/toolDbSignIn.js +2 -2
  41. package/dist/toolDbSignIn.js.map +1 -1
  42. package/dist/toolDbSignUp.js +33 -38
  43. package/dist/toolDbSignUp.js.map +1 -1
  44. package/dist/toolDbSubscribe.js +4 -2
  45. package/dist/toolDbSubscribe.js.map +1 -1
  46. package/dist/toolDbWeb3User.d.ts +20 -0
  47. package/dist/toolDbWeb3User.js +75 -0
  48. package/dist/toolDbWeb3User.js.map +1 -0
  49. package/dist/toolDbWebrtc.d.ts +2 -12
  50. package/dist/toolDbWebrtc.js +69 -104
  51. package/dist/toolDbWebrtc.js.map +1 -1
  52. package/dist/toolDbWebsocket.d.ts +19 -0
  53. package/dist/toolDbWebsocket.js +193 -0
  54. package/dist/toolDbWebsocket.js.map +1 -0
  55. package/dist/tooldb.d.ts +6 -10
  56. package/dist/tooldb.js +24 -35
  57. package/dist/tooldb.js.map +1 -1
  58. package/dist/types/tooldb.d.ts +16 -10
  59. package/dist/types/tooldb.js +27 -13
  60. package/dist/types/tooldb.js.map +1 -1
  61. package/dist/utils/getPeerSignature.d.ts +2 -2
  62. package/dist/utils/getPeerSignature.js +1 -1
  63. package/dist/utils/getPeerSignature.js.map +1 -1
  64. package/dist/utils/randomAnimal.js +36 -1
  65. package/dist/utils/randomAnimal.js.map +1 -1
  66. package/dist/utils/verifyMessage.js +4 -3
  67. package/dist/utils/verifyMessage.js.map +1 -1
  68. package/dist/utils/verifyPeer.d.ts +2 -2
  69. package/dist/utils/verifyPeer.js +8 -4
  70. package/dist/utils/verifyPeer.js.map +1 -1
  71. package/package.json +2 -1
  72. package/test-alice/000663.ldb +0 -0
  73. package/test-alice/000665.ldb +0 -0
  74. package/test-alice/000668.ldb +0 -0
  75. package/test-alice/000669.log +0 -0
  76. package/test-alice/CURRENT +1 -1
  77. package/test-alice/LOG +5 -5
  78. package/test-alice/LOG.old +5 -5
  79. package/test-alice/MANIFEST-000667 +0 -0
  80. package/test-alice-speed/000035.log +0 -0
  81. package/test-alice-speed/000036.ldb +0 -0
  82. package/test-alice-speed/CURRENT +1 -1
  83. package/test-alice-speed/LOG +13 -5
  84. package/test-alice-speed/LOG.old +5 -5
  85. package/test-alice-speed/MANIFEST-000033 +0 -0
  86. package/test-bob/000665.ldb +0 -0
  87. package/test-bob/000667.ldb +0 -0
  88. package/test-bob/000668.log +0 -0
  89. package/test-bob/CURRENT +1 -1
  90. package/test-bob/LOG +5 -5
  91. package/test-bob/LOG.old +14 -5
  92. package/test-bob/MANIFEST-000666 +0 -0
  93. package/test-node-a/000663.ldb +0 -0
  94. package/test-node-a/000665.ldb +0 -0
  95. package/test-node-a/000668.ldb +0 -0
  96. package/test-node-a/000669.log +0 -0
  97. package/test-node-a/CURRENT +1 -1
  98. package/test-node-a/LOG +5 -5
  99. package/test-node-a/LOG.old +5 -5
  100. package/test-node-a/MANIFEST-000667 +0 -0
  101. package/test-node-b/000663.ldb +0 -0
  102. package/test-node-b/000665.ldb +0 -0
  103. package/test-node-b/000668.ldb +0 -0
  104. package/test-node-b/000669.log +0 -0
  105. package/test-node-b/CURRENT +1 -1
  106. package/test-node-b/LOG +5 -5
  107. package/test-node-b/LOG.old +5 -5
  108. package/test-node-b/MANIFEST-000667 +0 -0
  109. package/test-verify-a/{000194.log → 000250.log} +0 -0
  110. package/test-verify-a/CURRENT +1 -1
  111. package/test-verify-a/LOG +3 -3
  112. package/test-verify-a/LOG.old +3 -3
  113. package/test-verify-a/{MANIFEST-000193 → MANIFEST-000249} +0 -0
  114. package/test-alice/000347.ldb +0 -0
  115. package/test-alice/000349.ldb +0 -0
  116. package/test-alice/000352.ldb +0 -0
  117. package/test-alice/000355.ldb +0 -0
  118. package/test-alice/000356.log +0 -0
  119. package/test-alice/MANIFEST-000354 +0 -0
  120. package/test-alice-speed/000198.ldb +0 -0
  121. package/test-alice-speed/000200.ldb +0 -0
  122. package/test-alice-speed/000203.ldb +0 -0
  123. package/test-alice-speed/000206.ldb +0 -0
  124. package/test-alice-speed/000207.log +0 -0
  125. package/test-alice-speed/MANIFEST-000205 +0 -0
  126. package/test-bob/000347.ldb +0 -0
  127. package/test-bob/000349.ldb +0 -0
  128. package/test-bob/000352.ldb +0 -0
  129. package/test-bob/000355.ldb +0 -0
  130. package/test-bob/000356.log +0 -0
  131. package/test-bob/MANIFEST-000354 +0 -0
  132. package/test-node-a/000347.ldb +0 -0
  133. package/test-node-a/000349.ldb +0 -0
  134. package/test-node-a/000352.ldb +0 -0
  135. package/test-node-a/000355.ldb +0 -0
  136. package/test-node-a/000356.log +0 -0
  137. package/test-node-a/MANIFEST-000354 +0 -0
  138. package/test-node-b/000347.ldb +0 -0
  139. package/test-node-b/000349.ldb +0 -0
  140. package/test-node-b/000352.ldb +0 -0
  141. package/test-node-b/000355.ldb +0 -0
  142. package/test-node-b/000356.log +0 -0
  143. package/test-node-b/MANIFEST-000354 +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolDbNetworkAdapter.js","sourceRoot":"","sources":["../src/toolDbNetworkAdapter.ts"],"names":[],"mappings":"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"}
package/dist/toolDbPut.js CHANGED
@@ -21,29 +21,29 @@ function toolDbPut(key, value, userNamespaced) {
21
21
  reject(new Error("Key cannot include dots!; " + key));
22
22
  return;
23
23
  }
24
- if (!_this.getAddress()) {
24
+ if (!_this.userAccount || !_this.userAccount.getAddress()) {
25
25
  reject(new Error("You need to log in before you can PUT."));
26
26
  return;
27
27
  }
28
28
  var timestamp = new Date().getTime();
29
- var dataString = "" + JSON.stringify(value) + _this.getAddress() + timestamp;
29
+ var dataString = "" + JSON.stringify(value) + _this.userAccount.getAddress() + timestamp;
30
30
  // WORK
31
31
  (0, proofOfWork_1.default)(dataString, _this.options.pow)
32
32
  .then(function (_a) {
33
33
  var hash = _a.hash, nonce = _a.nonce;
34
- var signature = _this.signData(hash);
35
- if (signature && _this.getAddress()) {
34
+ var signature = _this.userAccount.signData(hash);
35
+ if (signature && _this.userAccount.getAddress()) {
36
36
  var finalKey = userNamespaced
37
- ? ":" + _this.getAddress() + "." + key
37
+ ? ":" + _this.userAccount.getAddress() + "." + key
38
38
  : key;
39
39
  // Compose the message
40
40
  var data = {
41
41
  k: finalKey,
42
- a: _this.getAddress() || "",
42
+ a: _this.userAccount.getAddress() || "",
43
43
  n: nonce,
44
44
  t: timestamp,
45
45
  h: hash,
46
- s: signature.signature,
46
+ s: signature,
47
47
  v: value,
48
48
  c: null,
49
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbPut.js","sourceRoot":"","sources":["../src/toolDbPut.ts"],"names":[],"mappings":";;;;;AAAA,sBAA6D;AAG7D,oEAA8C;AAE9C;;;;;;GAMG;AACH,SAAwB,SAAS,CAE/B,GAAW,EACX,KAAQ,EACR,cAAsB;IAJxB,iBAgEC;IA5DC,+BAAA,EAAA,sBAAsB;IAEtB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACrB,8FAA8F;YAC9F,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA6B,GAAK,CAAC,CAAC,CAAC;YACtD,OAAO;SACR;QAED,IAAI,CAAC,KAAI,CAAC,UAAU,EAAE,EAAE;YACtB,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAC5D,OAAO;SACR;QAED,IAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,IAAM,UAAU,GAAG,KAAG,IAAI,CAAC,SAAS,CAClC,KAAK,CACN,GAAG,KAAI,CAAC,UAAU,EAAE,GAAG,SAAW,CAAC;QAEpC,OAAO;QACP,IAAA,qBAAW,EAAC,UAAU,EAAE,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC;aACtC,IAAI,CAAC,UAAC,EAAe;gBAAb,IAAI,UAAA,EAAE,KAAK,WAAA;YAClB,IAAM,SAAS,GAAG,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,SAAS,IAAI,KAAI,CAAC,UAAU,EAAE,EAAE;gBAClC,IAAM,QAAQ,GAAG,cAAc;oBAC7B,CAAC,CAAC,MAAI,KAAI,CAAC,UAAU,EAAE,SAAI,GAAK;oBAChC,CAAC,CAAC,GAAG,CAAC;gBACR,sBAAsB;gBACtB,IAAM,IAAI,GAAqB;oBAC7B,CAAC,EAAE,QAAQ;oBACX,CAAC,EAAE,KAAI,CAAC,UAAU,EAAE,IAAI,EAAE;oBAC1B,CAAC,EAAE,KAAK;oBACR,CAAC,EAAE,SAAS;oBACZ,CAAC,EAAE,IAAI;oBACP,CAAC,EAAE,SAAS,CAAC,SAAS;oBACtB,CAAC,EAAE,KAAK;oBACR,CAAC,EAAE,IAAI;iBACR,CAAC;gBAEF,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,UAAC,GAAG,EAAE,IAAI;oBACvD,EAAE;gBACJ,CAAC,CAAC,CAAC;gBAEH,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oBACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;iBACnC;gBAED,IAAM,YAAY,GAAe;oBAC/B,IAAI,EAAE,KAAK;oBACX,EAAE,EAAE,IAAA,aAAU,EAAC,EAAE,CAAC;oBAClB,EAAE,EAAE,EAAE;oBACN,IAAI,MAAA;iBACL,CAAC;gBACF,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAErC,OAAO,CAAC,YAAY,CAAC,CAAC;aACvB;QACH,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAhED,4BAgEC"}
1
+ {"version":3,"file":"toolDbPut.js","sourceRoot":"","sources":["../src/toolDbPut.ts"],"names":[],"mappings":";;;;;AAAA,sBAA6D;AAG7D,oEAA8C;AAE9C;;;;;;GAMG;AACH,SAAwB,SAAS,CAE/B,GAAW,EACX,KAAQ,EACR,cAAsB;IAJxB,iBAgEC;IA5DC,+BAAA,EAAA,sBAAsB;IAEtB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACrB,8FAA8F;YAC9F,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA6B,GAAK,CAAC,CAAC,CAAC;YACtD,OAAO;SACR;QAED,IAAI,CAAC,KAAI,CAAC,WAAW,IAAI,CAAC,KAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE;YACvD,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAC5D,OAAO;SACR;QAED,IAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,IAAM,UAAU,GAAG,KAAG,IAAI,CAAC,SAAS,CAClC,KAAK,CACN,GAAG,KAAI,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,SAAW,CAAC;QAEhD,OAAO;QACP,IAAA,qBAAW,EAAC,UAAU,EAAE,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC;aACtC,IAAI,CAAC,UAAC,EAAe;gBAAb,IAAI,UAAA,EAAE,KAAK,WAAA;YAClB,IAAM,SAAS,GAAG,KAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,SAAS,IAAI,KAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE;gBAC9C,IAAM,QAAQ,GAAG,cAAc;oBAC7B,CAAC,CAAC,MAAI,KAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAI,GAAK;oBAC5C,CAAC,CAAC,GAAG,CAAC;gBACR,sBAAsB;gBACtB,IAAM,IAAI,GAAqB;oBAC7B,CAAC,EAAE,QAAQ;oBACX,CAAC,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE;oBACtC,CAAC,EAAE,KAAK;oBACR,CAAC,EAAE,SAAS;oBACZ,CAAC,EAAE,IAAI;oBACP,CAAC,EAAE,SAAS;oBACZ,CAAC,EAAE,KAAK;oBACR,CAAC,EAAE,IAAI;iBACR,CAAC;gBAEF,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,UAAC,GAAG,EAAE,IAAI;oBACvD,EAAE;gBACJ,CAAC,CAAC,CAAC;gBAEH,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oBACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;iBACnC;gBAED,IAAM,YAAY,GAAe;oBAC/B,IAAI,EAAE,KAAK;oBACX,EAAE,EAAE,IAAA,aAAU,EAAC,EAAE,CAAC;oBAClB,EAAE,EAAE,EAAE;oBACN,IAAI,MAAA;iBACL,CAAC;gBACF,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAErC,OAAO,CAAC,YAAY,CAAC,CAAC;aACvB;QACH,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAhED,4BAgEC"}
@@ -24,12 +24,13 @@ function toolDbQueryKeys(key, userNamespaced, timeoutMs) {
24
24
  var _this = this;
25
25
  if (userNamespaced === void 0) { userNamespaced = false; }
26
26
  if (timeoutMs === void 0) { timeoutMs = 1000; }
27
+ var user = this.userAccount;
27
28
  return new Promise(function (resolve, reject) {
28
- if (userNamespaced && _this.getAddress() === undefined) {
29
+ if (userNamespaced && user.getAddress() === undefined) {
29
30
  reject(new Error("You are not authorized yet!"));
30
31
  return;
31
32
  }
32
- var finalKey = userNamespaced ? ":" + _this.getAddress() + "." + key : key;
33
+ var finalKey = userNamespaced ? ":" + user.getAddress() + "." + key : key;
33
34
  if (_this.options.debug) {
34
35
  console.log("QUERY > " + finalKey);
35
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbQueryKeys.js","sourceRoot":"","sources":["../src/toolDbQueryKeys.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAAuB;AACvB,sBAA+B;AAG/B;;;;;GAKG;AACH,SAAwB,eAAe,CAErC,GAAW,EACX,cAAsB,EACtB,SAAgB;IAJlB,iBAmDC;IAhDC,+BAAA,EAAA,sBAAsB;IACtB,0BAAA,EAAA,gBAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,cAAc,IAAI,KAAI,CAAC,UAAU,EAAE,KAAK,SAAS,EAAE;YACrD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,MAAI,KAAI,CAAC,UAAU,EAAE,SAAI,GAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;SACpC;QAED,IAAM,KAAK,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,SAAS,GAAa,EAAE,CAAC;QAC7B,IAAI,OAAmC,CAAC;QAExC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAC,SAAS;YACxC,SAAS,mCAAO,SAAS,SAAK,SAAS,OAAC,CAAC;YACzC,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAM,eAAe,GAAG;YACtB,OAAO,CAAC,gBAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,KAAI,CAAC,aAAa,CAAC,KAAK,EAAE,UAAC,GAAG;YAC5B,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;aAC/C;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC3B,SAAS,mCAAO,SAAS,SAAK,GAAG,CAAC,IAAI,OAAC,CAAC;gBAExC,IAAI,OAAO,EAAE;oBACX,YAAY,CAAC,OAAO,CAAC,CAAC;iBACvB;gBACD,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;aAClD;QACH,CAAC,CAAC,CAAC;QAEH,SAAS;QACT,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACrB,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,EAAE;YACN,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAnDD,kCAmDC"}
1
+ {"version":3,"file":"toolDbQueryKeys.js","sourceRoot":"","sources":["../src/toolDbQueryKeys.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAAuB;AACvB,sBAA+B;AAG/B;;;;;GAKG;AACH,SAAwB,eAAe,CAErC,GAAW,EACX,cAAsB,EACtB,SAAgB;IAJlB,iBAqDC;IAlDC,+BAAA,EAAA,sBAAsB;IACtB,0BAAA,EAAA,gBAAgB;IAEhB,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IAE9B,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,cAAc,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,SAAS,EAAE;YACrD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,MAAI,IAAI,CAAC,UAAU,EAAE,SAAI,GAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;SACpC;QAED,IAAM,KAAK,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,SAAS,GAAa,EAAE,CAAC;QAC7B,IAAI,OAAmC,CAAC;QAExC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAC,SAAS;YACxC,SAAS,mCAAO,SAAS,SAAK,SAAS,OAAC,CAAC;YACzC,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAM,eAAe,GAAG;YACtB,OAAO,CAAC,gBAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,KAAI,CAAC,aAAa,CAAC,KAAK,EAAE,UAAC,GAAG;YAC5B,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;aAC/C;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC3B,SAAS,mCAAO,SAAS,SAAK,GAAG,CAAC,IAAI,OAAC,CAAC;gBAExC,IAAI,OAAO,EAAE;oBACX,YAAY,CAAC,OAAO,CAAC,CAAC;iBACvB;gBACD,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;aAClD;QACH,CAAC,CAAC,CAAC;QAEH,SAAS;QACT,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACrB,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,EAAE;YACN,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AArDD,kCAqDC"}
@@ -1,3 +1,2 @@
1
1
  import ToolDb from "./tooldb";
2
- import { Account } from "web3-core";
3
- export default function toolDbSignIn(this: ToolDb, user: string, password: string): Promise<Account | undefined>;
2
+ export default function toolDbSignIn(this: ToolDb, user: string, password: string): Promise<unknown | undefined>;
@@ -14,8 +14,8 @@ function toolDbSignIn(user, password) {
14
14
  return;
15
15
  }
16
16
  try {
17
- var newAccount = _this.web3.eth.accounts.decrypt(_user, (0, sha256_1.default)(password));
18
- _this.setUser(newAccount, user || "Anonymous " + (0, randomAnimal_1.default)());
17
+ var newAccount = _this.userAccount.decryptAccount(_user, (0, sha256_1.default)(password));
18
+ _this.userAccount.setUser(newAccount, user || "Anonymous " + (0, randomAnimal_1.default)());
19
19
  resolve(newAccount);
20
20
  }
21
21
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbSignIn.js","sourceRoot":"","sources":["../src/toolDbSignIn.ts"],"names":[],"mappings":";;;;;AAIA,0DAAoC;AACpC,sEAAgD;AAEhD,SAAwB,YAAY,CAElC,IAAY,EACZ,QAAgB;IAHlB,iBA2BC;IAtBC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,KAAI,CAAC,OAAO,CAA0B,OAAK,IAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAClE,UAAC,KAAK;YACJ,IAAI,CAAC,KAAK,EAAE;gBACV,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC9B,OAAO;aACR;YAED,IAAI;gBACF,IAAM,UAAU,GAAG,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAC/C,KAAK,EACL,IAAA,gBAAM,EAAC,QAAQ,CAAC,CACjB,CAAC;gBACF,KAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,eAAa,IAAA,sBAAY,GAAI,CAAC,CAAC;gBAEhE,OAAO,CAAC,UAAU,CAAC,CAAC;aACrB;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,CAAC,CAAC,CAAC,CAAC;aACX;QACH,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AA3BD,+BA2BC"}
1
+ {"version":3,"file":"toolDbSignIn.js","sourceRoot":"","sources":["../src/toolDbSignIn.ts"],"names":[],"mappings":";;;;;AAEA,0DAAoC;AACpC,sEAAgD;AAEhD,SAAwB,YAAY,CAElC,IAAY,EACZ,QAAgB;IAHlB,iBA4BC;IAvBC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,KAAI,CAAC,OAAO,CAAU,OAAK,IAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,KAAK;YACzD,IAAI,CAAC,KAAK,EAAE;gBACV,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC9B,OAAO;aACR;YAED,IAAI;gBACF,IAAM,UAAU,GAAG,KAAI,CAAC,WAAW,CAAC,cAAc,CAChD,KAAK,EACL,IAAA,gBAAM,EAAC,QAAQ,CAAC,CACjB,CAAC;gBACF,KAAI,CAAC,WAAW,CAAC,OAAO,CACtB,UAAU,EACV,IAAI,IAAI,eAAa,IAAA,sBAAY,GAAI,CACtC,CAAC;gBAEF,OAAO,CAAC,UAAU,CAAC,CAAC;aACrB;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,CAAC,CAAC,CAAC,CAAC;aACX;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AA5BD,+BA4BC"}
@@ -47,45 +47,40 @@ function toolDbSignUp(user, password) {
47
47
  _this.getData(userRoot, false, 3000)
48
48
  .then(function (data) {
49
49
  if (data === null) {
50
- var account_1 = _this.web3.eth.accounts.create();
51
- var iv = (0, _1.generateIv)();
52
- (0, _1.encryptWithPass)(account_1.privateKey, password, iv).then(function (encryptedPrivateKey) {
53
- if (encryptedPrivateKey) {
54
- var userData_1 = account_1.encrypt((0, _1.sha256)(password));
55
- var timestamp_1 = new Date().getTime();
56
- var userDataString = "" + JSON.stringify(userData_1) + account_1.address + timestamp_1;
57
- (0, _1.proofOfWork)(userDataString, 0)
58
- .then(function (_a) {
59
- var hash = _a.hash, nonce = _a.nonce;
60
- var signature = _this.web3.eth.accounts.sign(hash, account_1.privateKey);
61
- var signupMessage = {
62
- k: userRoot,
63
- a: account_1.address,
64
- n: nonce,
65
- t: timestamp_1,
66
- h: hash,
67
- s: signature.signature,
68
- v: userData_1,
69
- c: null,
70
- };
71
- _this.store.put(userRoot, JSON.stringify(signupMessage), function (err, data) {
72
- //
73
- });
74
- if (_this.options.debug) {
75
- console.log("SIGNUP PUT > " + userRoot, signupMessage);
76
- }
77
- var finalMsg = {
78
- type: "put",
79
- id: (0, _1.textRandom)(10),
80
- to: [],
81
- data: signupMessage,
82
- };
83
- _this.network.sendToAll(finalMsg);
84
- resolve(finalMsg);
85
- })
86
- .catch(reject);
50
+ var account_1 = new _this.options.userAdapter(_this);
51
+ var userData_1 = account_1.encryptAccount((0, _1.sha256)(password));
52
+ var timestamp_1 = new Date().getTime();
53
+ var userDataString = "" + JSON.stringify(userData_1) + account_1.getAddress() + timestamp_1;
54
+ (0, _1.proofOfWork)(userDataString, 0)
55
+ .then(function (_a) {
56
+ var hash = _a.hash, nonce = _a.nonce;
57
+ var signature = account_1.signData(hash);
58
+ var signupMessage = {
59
+ k: userRoot,
60
+ a: account_1.getAddress() || "",
61
+ n: nonce,
62
+ t: timestamp_1,
63
+ h: hash,
64
+ s: signature,
65
+ v: userData_1,
66
+ c: null,
67
+ };
68
+ _this.store.put(userRoot, JSON.stringify(signupMessage), function (err, data) {
69
+ //
70
+ });
71
+ if (_this.options.debug) {
72
+ console.log("SIGNUP PUT > " + userRoot, signupMessage);
87
73
  }
88
- });
74
+ var finalMsg = {
75
+ type: "put",
76
+ id: (0, _1.textRandom)(10),
77
+ to: [],
78
+ data: signupMessage,
79
+ };
80
+ _this.network.sendToAll(finalMsg);
81
+ resolve(finalMsg);
82
+ })
83
+ .catch(reject);
89
84
  }
90
85
  else {
91
86
  reject(new Error("User already exists!"));
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbSignUp.js","sourceRoot":"","sources":["../src/toolDbSignUp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,sBAQW;AAEX,SAA8B,YAAY,CAExC,IAAY,EACZ,QAAgB;;;;;YAEV,QAAQ,GAAG,OAAK,IAAM,CAAC;YAC7B,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBACjC,KAAI,CAAC,OAAO,CAA0B,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;yBACzD,IAAI,CAAC,UAAC,IAAI;wBACT,IAAI,IAAI,KAAK,IAAI,EAAE;4BACjB,IAAM,SAAO,GAAG,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;4BAChD,IAAM,EAAE,GAAG,IAAA,aAAU,GAAE,CAAC;4BACxB,IAAA,kBAAe,EAAC,SAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CACpD,UAAC,mBAAmB;gCAClB,IAAI,mBAAmB,EAAE;oCACvB,IAAM,UAAQ,GAAG,SAAO,CAAC,OAAO,CAAC,IAAA,SAAM,EAAC,QAAQ,CAAC,CAAC,CAAC;oCAEnD,IAAM,WAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;oCACvC,IAAM,cAAc,GAAG,KAAG,IAAI,CAAC,SAAS,CAAC,UAAQ,CAAC,GAChD,SAAO,CAAC,OAAO,GACd,WAAW,CAAC;oCAEf,IAAA,cAAW,EAAC,cAAc,EAAE,CAAC,CAAC;yCAC3B,IAAI,CAAC,UAAC,EAAe;4CAAb,IAAI,UAAA,EAAE,KAAK,WAAA;wCAClB,IAAM,SAAS,GAAG,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAC3C,IAAI,EACJ,SAAO,CAAC,UAAU,CACnB,CAAC;wCAEF,IAAM,aAAa,GACjB;4CACE,CAAC,EAAE,QAAQ;4CACX,CAAC,EAAE,SAAO,CAAC,OAAO;4CAClB,CAAC,EAAE,KAAK;4CACR,CAAC,EAAE,WAAS;4CACZ,CAAC,EAAE,IAAI;4CACP,CAAC,EAAE,SAAS,CAAC,SAAS;4CACtB,CAAC,EAAE,UAAQ;4CACX,CAAC,EAAE,IAAI;yCACR,CAAC;wCAEJ,KAAI,CAAC,KAAK,CAAC,GAAG,CACZ,QAAQ,EACR,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAC7B,UAAC,GAAG,EAAE,IAAI;4CACR,EAAE;wCACJ,CAAC,CACF,CAAC;wCAEF,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;4CACtB,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ,EAAE,aAAa,CAAC,CAAC;yCACxD;wCAED,IAAM,QAAQ,GAAG;4CACf,IAAI,EAAE,KAAK;4CACX,EAAE,EAAE,IAAA,aAAU,EAAC,EAAE,CAAC;4CAClB,EAAE,EAAE,EAAE;4CACN,IAAI,EAAE,aAAa;yCACN,CAAC;wCAEhB,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;wCACjC,OAAO,CAAC,QAAQ,CAAC,CAAC;oCACpB,CAAC,CAAC;yCACD,KAAK,CAAC,MAAM,CAAC,CAAC;iCAClB;4BACH,CAAC,CACF,CAAC;yBACH;6BAAM;4BACL,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;yBAC3C;oBACH,CAAC,CAAC;yBACD,KAAK,CAAC;wBACL,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBAC5C,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,EAAC;;;CACJ;AA3ED,+BA2EC"}
1
+ {"version":3,"file":"toolDbSignUp.js","sourceRoot":"","sources":["../src/toolDbSignUp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,sBAMW;AAEX,SAA8B,YAAY,CAExC,IAAY,EACZ,QAAgB;;;;;YAEV,QAAQ,GAAG,OAAK,IAAM,CAAC;YAC7B,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBACjC,KAAI,CAAC,OAAO,CAA0B,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;yBACzD,IAAI,CAAC,UAAC,IAAI;wBACT,IAAI,IAAI,KAAK,IAAI,EAAE;4BACjB,IAAM,SAAO,GAAG,IAAI,KAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAI,CAAC,CAAC;4BACnD,IAAM,UAAQ,GAAG,SAAO,CAAC,cAAc,CAAC,IAAA,SAAM,EAAC,QAAQ,CAAC,CAAC,CAAC;4BAE1D,IAAM,WAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;4BACvC,IAAM,cAAc,GAAG,KAAG,IAAI,CAAC,SAAS,CACtC,UAAQ,CACT,GAAG,SAAO,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC;4BAEvC,IAAA,cAAW,EAAC,cAAc,EAAE,CAAC,CAAC;iCAC3B,IAAI,CAAC,UAAC,EAAe;oCAAb,IAAI,UAAA,EAAE,KAAK,WAAA;gCAClB,IAAM,SAAS,GAAG,SAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gCAEzC,IAAM,aAAa,GAA8C;oCAC/D,CAAC,EAAE,QAAQ;oCACX,CAAC,EAAE,SAAO,CAAC,UAAU,EAAE,IAAI,EAAE;oCAC7B,CAAC,EAAE,KAAK;oCACR,CAAC,EAAE,WAAS;oCACZ,CAAC,EAAE,IAAI;oCACP,CAAC,EAAE,SAAS;oCACZ,CAAC,EAAE,UAAe;oCAClB,CAAC,EAAE,IAAI;iCACR,CAAC;gCAEF,KAAI,CAAC,KAAK,CAAC,GAAG,CACZ,QAAQ,EACR,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAC7B,UAAC,GAAG,EAAE,IAAI;oCACR,EAAE;gCACJ,CAAC,CACF,CAAC;gCAEF,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oCACtB,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ,EAAE,aAAa,CAAC,CAAC;iCACxD;gCAED,IAAM,QAAQ,GAAG;oCACf,IAAI,EAAE,KAAK;oCACX,EAAE,EAAE,IAAA,aAAU,EAAC,EAAE,CAAC;oCAClB,EAAE,EAAE,EAAE;oCACN,IAAI,EAAE,aAAa;iCACN,CAAC;gCAEhB,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gCACjC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BACpB,CAAC,CAAC;iCACD,KAAK,CAAC,MAAM,CAAC,CAAC;yBAClB;6BAAM;4BACL,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;yBAC3C;oBACH,CAAC,CAAC;yBACD,KAAK,CAAC;wBACL,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBAC5C,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,EAAC;;;CACJ;AAhED,+BAgEC"}
@@ -11,11 +11,13 @@ function toolDbSubscribe(key, userNamespaced) {
11
11
  var _this = this;
12
12
  if (userNamespaced === void 0) { userNamespaced = false; }
13
13
  return new Promise(function (resolve, reject) {
14
- if (userNamespaced && _this.getAddress() === undefined) {
14
+ if (userNamespaced && _this.userAccount.getAddress() === undefined) {
15
15
  reject(new Error("You are not authorized yet!"));
16
16
  return;
17
17
  }
18
- var finalKey = userNamespaced ? ":" + _this.getAddress() + "." + key : key;
18
+ var finalKey = userNamespaced
19
+ ? ":" + _this.userAccount.getAddress() + "." + key
20
+ : key;
19
21
  if (_this.options.debug) {
20
22
  console.log("Subscribe > " + finalKey);
21
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbSubscribe.js","sourceRoot":"","sources":["../src/toolDbSubscribe.ts"],"names":[],"mappings":";;AAAA,sBAA+B;AAG/B;;;;;GAKG;AACH,SAAwB,eAAe,CAErC,GAAW,EACX,cAAsB;IAHxB,iBAqCC;IAlCC,+BAAA,EAAA,sBAAsB;IAEtB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,cAAc,IAAI,KAAI,CAAC,UAAU,EAAE,KAAK,SAAS,EAAE;YACrD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,MAAI,KAAI,CAAC,UAAU,EAAE,SAAI,GAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC;SACxC;QAED,IAAM,KAAK,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC;QAE7B,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;YACjC,IAAI,IAAI,EAAE;gBACR,IAAI;oBACF,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjC,KAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;iBAC5C;gBAAC,OAAO,CAAC,EAAE;oBACV,aAAa;iBACd;aACF;QACH,CAAC,CAAC,CAAC;QAEH,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACrB,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AArCD,kCAqCC"}
1
+ {"version":3,"file":"toolDbSubscribe.js","sourceRoot":"","sources":["../src/toolDbSubscribe.ts"],"names":[],"mappings":";;AAAA,sBAA+B;AAG/B;;;;;GAKG;AACH,SAAwB,eAAe,CAErC,GAAW,EACX,cAAsB;IAHxB,iBAuCC;IApCC,+BAAA,EAAA,sBAAsB;IAEtB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,cAAc,IAAI,KAAI,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,SAAS,EAAE;YACjE,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc;YAC7B,CAAC,CAAC,MAAI,KAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAI,GAAK;YAC5C,CAAC,CAAC,GAAG,CAAC;QACR,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC;SACxC;QAED,IAAM,KAAK,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC;QAE7B,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;YACjC,IAAI,IAAI,EAAE;gBACR,IAAI;oBACF,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjC,KAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;iBAC5C;gBAAC,OAAO,CAAC,EAAE;oBACV,aAAa;iBACd;aACF;QACH,CAAC,CAAC,CAAC;QAEH,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACrB,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAvCD,kCAuCC"}
@@ -0,0 +1,20 @@
1
+ import w3 from "web3";
2
+ import { EncryptedKeystoreV3Json, Account } from "web3-core";
3
+ import ToolDb from "./tooldb";
4
+ import { VerificationData } from "./types/message";
5
+ import { ToolDbUserAdapter } from "./types/tooldb";
6
+ export default class ToolDbWeb3User extends ToolDbUserAdapter {
7
+ web3: w3;
8
+ private _user;
9
+ private _userName;
10
+ constructor(db: ToolDb);
11
+ anonUser(): void;
12
+ setUser(account: Account, name: string): void;
13
+ signData(data: string): string;
14
+ verifySignature(message: Partial<VerificationData<any>>): boolean;
15
+ getAccountFromPrivate(privateKey: string): Account;
16
+ encryptAccount(password: string): EncryptedKeystoreV3Json;
17
+ decryptAccount(acc: EncryptedKeystoreV3Json, password: string): Account;
18
+ getAddress(): string;
19
+ getUsername(): string;
20
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ var web3_1 = __importDefault(require("web3"));
22
+ var tooldb_1 = require("./types/tooldb");
23
+ var randomAnimal_1 = __importDefault(require("./utils/randomAnimal"));
24
+ var ToolDbWeb3User = /** @class */ (function (_super) {
25
+ __extends(ToolDbWeb3User, _super);
26
+ function ToolDbWeb3User(db) {
27
+ var _this = _super.call(this, db) || this;
28
+ _this.web3 = new web3_1.default(web3_1.default.givenProvider);
29
+ _this._user = _this.web3.eth.accounts.create();
30
+ _this._userName = (0, randomAnimal_1.default)();
31
+ return _this;
32
+ }
33
+ ToolDbWeb3User.prototype.anonUser = function () {
34
+ this._user = this.web3.eth.accounts.create();
35
+ this._userName = (0, randomAnimal_1.default)();
36
+ };
37
+ ToolDbWeb3User.prototype.setUser = function (account, name) {
38
+ this._user = account;
39
+ this._userName = name;
40
+ };
41
+ ToolDbWeb3User.prototype.signData = function (data) {
42
+ var signature = this.web3.eth.accounts.sign(data, this._user.privateKey);
43
+ return signature.signature;
44
+ };
45
+ ToolDbWeb3User.prototype.verifySignature = function (message) {
46
+ if (!message.h || !message.s)
47
+ return false;
48
+ var address = this.web3.eth.accounts.recover(message.h, message.s);
49
+ return address === message.a;
50
+ };
51
+ ToolDbWeb3User.prototype.getAccountFromPrivate = function (privateKey) {
52
+ return this.web3.eth.accounts.privateKeyToAccount(privateKey);
53
+ };
54
+ ToolDbWeb3User.prototype.encryptAccount = function (password) {
55
+ return this._user.encrypt(password);
56
+ };
57
+ ToolDbWeb3User.prototype.decryptAccount = function (acc, password) {
58
+ try {
59
+ var newAccount = this.web3.eth.accounts.decrypt(acc, password);
60
+ return newAccount;
61
+ }
62
+ catch (e) {
63
+ throw e;
64
+ }
65
+ };
66
+ ToolDbWeb3User.prototype.getAddress = function () {
67
+ return this._user.address;
68
+ };
69
+ ToolDbWeb3User.prototype.getUsername = function () {
70
+ return this._userName;
71
+ };
72
+ return ToolDbWeb3User;
73
+ }(tooldb_1.ToolDbUserAdapter));
74
+ exports.default = ToolDbWeb3User;
75
+ //# sourceMappingURL=toolDbWeb3User.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolDbWeb3User.js","sourceRoot":"","sources":["../src/toolDbWeb3User.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,8CAAsB;AAMtB,yCAAmD;AACnD,sEAAgD;AAEhD;IAA4C,kCAAiB;IAM3D,wBAAY,EAAU;QAAtB,YACE,kBAAM,EAAE,CAAC,SAIV;QAHC,KAAI,CAAC,IAAI,GAAG,IAAI,cAAE,CAAC,cAAE,CAAC,aAAa,CAAC,CAAC;QACrC,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7C,KAAI,CAAC,SAAS,GAAG,IAAA,sBAAY,GAAE,CAAC;;IAClC,CAAC;IAEM,iCAAQ,GAAf;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAA,sBAAY,GAAE,CAAC;IAClC,CAAC;IAEM,gCAAO,GAAd,UAAe,OAAgB,EAAE,IAAY;QAC3C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEM,iCAAQ,GAAf,UAAgB,IAAY;QAC1B,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE3E,OAAO,SAAS,CAAC,SAAS,CAAC;IAC7B,CAAC;IAEM,wCAAe,GAAtB,UAAuB,OAAuC;QAC5D,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAE3C,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC;IAC/B,CAAC;IAEM,8CAAqB,GAA5B,UAA6B,UAAkB;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAEM,uCAAc,GAArB,UAAsB,QAAgB;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAEM,uCAAc,GAArB,UAAsB,GAA4B,EAAE,QAAgB;QAClE,IAAI;YACF,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACjE,OAAO,UAAU,CAAC;SACnB;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IAEM,mCAAU,GAAjB;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEM,oCAAW,GAAlB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACH,qBAAC;AAAD,CAAC,AA5DD,CAA4C,0BAAiB,GA4D5D"}
@@ -1,17 +1,12 @@
1
- import { ToolDbMessage } from ".";
2
- import { ToolDbNetworkAdapter, ToolDbOptions } from "./types/tooldb";
3
1
  import ToolDb from "./tooldb";
4
2
  import WebSocket from "ws";
3
+ import ToolDbNetworkAdapter from "./toolDbNetworkAdapter";
5
4
  export declare type ToolDbWebSocket = WebSocket & {
6
5
  toolDbId?: string;
7
6
  isServer: boolean;
8
7
  origUrl: string;
9
8
  };
10
- interface WebrtcAdapterOptions {
11
- wrtc?: any;
12
- }
13
9
  export default class toolDbWebrtc extends ToolDbNetworkAdapter {
14
- private _tooldb;
15
10
  private wnd;
16
11
  private wss;
17
12
  private sockets;
@@ -19,6 +14,7 @@ export default class toolDbWebrtc extends ToolDbNetworkAdapter {
19
14
  private peerMap;
20
15
  private connectedPeers;
21
16
  private onDisconnect;
17
+ private peersCheck;
22
18
  private announceInterval;
23
19
  /**
24
20
  * Initialize webrtc peer
@@ -66,10 +62,4 @@ export default class toolDbWebrtc extends ToolDbNetworkAdapter {
66
62
  onLeave: () => Promise<void>;
67
63
  constructor(db: ToolDb);
68
64
  close(clientId: string): void;
69
- sendToAll(msg: ToolDbMessage, crossServerOnly?: boolean, isRelay?: boolean): void;
70
- sendToClientId(clientId: string, msg: ToolDbMessage): void;
71
- get tooldb(): ToolDb & {
72
- options: ToolDbOptions & WebrtcAdapterOptions;
73
- };
74
65
  }
75
- export {};
@@ -61,24 +61,14 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
61
61
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
62
  }
63
63
  };
64
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
65
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
66
- if (ar || !(i in from)) {
67
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
68
- ar[i] = from[i];
69
- }
70
- }
71
- return to.concat(ar || Array.prototype.slice.call(from));
72
- };
73
64
  var __importDefault = (this && this.__importDefault) || function (mod) {
74
65
  return (mod && mod.__esModule) ? mod : { "default": mod };
75
66
  };
76
67
  Object.defineProperty(exports, "__esModule", { value: true });
77
- var lodash_1 = __importDefault(require("lodash"));
78
68
  var simple_peer_1 = __importDefault(require("simple-peer"));
79
69
  var _1 = require(".");
80
- var tooldb_1 = require("./types/tooldb");
81
70
  var ws_1 = __importDefault(require("ws"));
71
+ var toolDbNetworkAdapter_1 = __importDefault(require("./toolDbNetworkAdapter"));
82
72
  var offerPoolSize = 5;
83
73
  var maxPeers = 4;
84
74
  var announceSecs = 30;
@@ -120,7 +110,7 @@ var toolDbWebrtc = /** @class */ (function (_super) {
120
110
  _this.initPeer = function (initiator, trickle, rtcConfig // RTCConfiguration
121
111
  ) {
122
112
  var peer = new simple_peer_1.default({
123
- wrtc: _this._tooldb.options.wrtc,
113
+ wrtc: _this.tooldb.options.wrtc,
124
114
  initiator: initiator,
125
115
  trickle: trickle,
126
116
  config: rtcConfig,
@@ -160,27 +150,20 @@ var toolDbWebrtc = /** @class */ (function (_super) {
160
150
  _this.peerMap[id].destroy();
161
151
  delete _this.peerMap[id];
162
152
  }
153
+ var clientId = null;
163
154
  // console.log("onPeerConnect", id);
164
155
  var onData = function (data) {
165
156
  var str = new TextDecoder().decode(data);
166
- try {
167
- var msg = JSON.parse(str);
168
- if (msg.type !== "servers" &&
169
- msg.type !== "join" &&
170
- msg.type !== "pong") {
171
- _this.tooldb.clientOnMessage(msg, id);
172
- }
173
- if (msg.type === "pong" || msg.type === "ping") {
174
- if (_this.tooldb.isConnected) {
175
- _this.tooldb.onConnect();
176
- _this.tooldb.isConnected = true;
177
- }
178
- _this.tooldb.onPeerConnect(id);
179
- }
180
- }
181
- catch (e) {
182
- //
183
- }
157
+ _this.onClientMessage(str, clientId || "", function (id) {
158
+ clientId = id;
159
+ // Set this socket's functions on the adapter
160
+ _this.isClientConnected[id] = function () {
161
+ return peer.connected;
162
+ };
163
+ _this.clientToSend[id] = function (_msg) {
164
+ peer.send(_msg);
165
+ };
166
+ });
184
167
  };
185
168
  _this.peerMap[id] = peer;
186
169
  peer.on("data", onData);
@@ -188,9 +171,9 @@ var toolDbWebrtc = /** @class */ (function (_super) {
188
171
  peer.on("error", function (err) { return _this.onDisconnect(id, err); });
189
172
  peer.send(JSON.stringify({
190
173
  type: "ping",
191
- clientId: _this._tooldb.options.peerAccount.address,
192
- to: [_this._tooldb.options.peerAccount.address],
193
- isServer: _this._tooldb.options.server,
174
+ clientId: _this.getClientAddress(),
175
+ to: [_this.getClientAddress()],
176
+ isServer: _this.tooldb.options.server,
194
177
  id: (0, _1.textRandom)(10),
195
178
  }));
196
179
  };
@@ -274,7 +257,7 @@ var toolDbWebrtc = /** @class */ (function (_super) {
274
257
  action: "announce",
275
258
  info_hash: infoHash,
276
259
  numwant: offerPoolSize,
277
- peer_id: this.tooldb.options.peerAccount.address.slice(-20)
260
+ peer_id: this.getClientAddress()
278
261
  };
279
262
  return [4 /*yield*/, Promise.all(Object.entries(this.offerPool).map(function (_a) {
280
263
  var id = _a[0], offerP = _a[1].offerP;
@@ -353,8 +336,7 @@ var toolDbWebrtc = /** @class */ (function (_super) {
353
336
  // console.warn("Info hash mismatch");
354
337
  return [2 /*return*/];
355
338
  }
356
- if (val.peer_id &&
357
- val.peer_id === this.tooldb.options.peerAccount.address.slice(-20)) {
339
+ if (val.peer_id && val.peer_id === this.getClientAddress()) {
358
340
  // console.warn("Peer ids mismatch", val.peer_id, selfId);
359
341
  return [2 /*return*/];
360
342
  }
@@ -378,7 +360,7 @@ var toolDbWebrtc = /** @class */ (function (_super) {
378
360
  answer: answer,
379
361
  action: "announce",
380
362
  info_hash: _this.infoHash,
381
- peer_id: _this.tooldb.options.peerAccount.address.slice(-20),
363
+ peer_id: _this.getClientAddress(),
382
364
  to_peer_id: val.peer_id,
383
365
  offer_id: val.offer_id,
384
366
  }));
@@ -424,8 +406,8 @@ var toolDbWebrtc = /** @class */ (function (_super) {
424
406
  return [2 /*return*/];
425
407
  });
426
408
  }); };
427
- _this._tooldb = db;
428
409
  _this.announceInterval = setInterval(_this.announceAll, announceSecs * 1000);
410
+ setInterval(function () { return _this.peersCheck(); }, 100);
429
411
  // Stop announcing after maxAnnounceSecs
430
412
  var intervalStart = new Date().getTime();
431
413
  var checkInterval = setInterval(function () {
@@ -445,80 +427,63 @@ var toolDbWebrtc = /** @class */ (function (_super) {
445
427
  _this.cleanPool();
446
428
  }
447
429
  }
430
+ // Basically the same as the WS network adapter
431
+ if (_this.tooldb.options.server) {
432
+ var server = new ws_1.default.Server({
433
+ port: _this.tooldb.options.port,
434
+ server: _this.tooldb.options.httpServer,
435
+ });
436
+ server.on("connection", function (socket) {
437
+ var clientId = null;
438
+ socket.on("close", function () {
439
+ if (clientId) {
440
+ _this.onClientDisconnect(clientId);
441
+ }
442
+ });
443
+ socket.on("error", function () {
444
+ if (clientId) {
445
+ _this.onClientDisconnect(clientId);
446
+ }
447
+ });
448
+ socket.on("message", function (message) {
449
+ _this.onClientMessage(message, clientId || "", function (id) {
450
+ clientId = id;
451
+ _this.isClientConnected[id] = function () {
452
+ return socket.readyState === socket.OPEN;
453
+ };
454
+ _this.clientToSend[id] = function (_msg) {
455
+ socket.send(_msg);
456
+ };
457
+ });
458
+ });
459
+ });
460
+ }
448
461
  return _this;
449
462
  }
450
- toolDbWebrtc.prototype.close = function (clientId) {
451
- //
452
- };
453
- toolDbWebrtc.prototype.sendToAll = function (msg, crossServerOnly, isRelay) {
454
- // if (this.tooldb.options.debug) {
455
- // console.log("> sendToAll", msg);
456
- // }
463
+ toolDbWebrtc.prototype.peersCheck = function () {
457
464
  var _this = this;
458
- if (crossServerOnly === void 0) { crossServerOnly = false; }
459
- if (isRelay === void 0) { isRelay = false; }
460
- var to = lodash_1.default.uniq(__spreadArray(__spreadArray([], msg.to, true), [
461
- this.tooldb.options.peerAccount.address.slice(-20),
462
- ], false));
463
- Object.keys(this.peerMap)
464
- .filter(function (id) { return !to.includes(id); })
465
- .forEach(function (id) {
466
- var peer = _this.peerMap[id];
467
- if (peer.connected) {
468
- // if (this.tooldb.options.debug) {
469
- // console.log("Sent out to: ", id);
470
- // console.log("OUT > ", { ...msg, to });
471
- // }
472
- peer.send(JSON.stringify(__assign(__assign({}, msg), { to: to })));
473
- }
474
- else {
475
- peer.destroy();
476
- delete _this.peerMap[id];
477
- if (Object.keys(_this.peerMap).length === 0) {
478
- _this.tooldb.isConnected = false;
479
- _this.tooldb.onDisconnect();
465
+ Object.keys(this.clientToSend).forEach(function (id) {
466
+ if (!_this.isConnected(id)) {
467
+ console.log("disconnected from " + id);
468
+ _this.onClientDisconnect(id);
469
+ var peer = _this.peerMap[id];
470
+ if (peer) {
471
+ peer.destroy();
480
472
  }
481
- }
482
- });
483
- };
484
- toolDbWebrtc.prototype.sendToClientId = function (clientId, msg) {
485
- // if (this.tooldb.options.debug) {
486
- // console.log("> sendToClientId", clientId, msg);
487
- // }
488
- var _this = this;
489
- var to = lodash_1.default.uniq(__spreadArray(__spreadArray([], [msg.to || []], false), [
490
- this.tooldb.options.peerAccount.address.slice(-20),
491
- ], false));
492
- Object.keys(this.peerMap)
493
- .filter(function (id) { return id === clientId; })
494
- .filter(function (id) { return !to.includes(id); })
495
- .forEach(function (id) {
496
- var peer = _this.peerMap[id];
497
- if (peer.connected) {
498
- // if (this.tooldb.options.debug) {
499
- // console.log("Sent out to client ID ", id);
500
- // console.log("OUT > ", { ...msg, to });
501
- // }
502
- peer.send(JSON.stringify(__assign(__assign({}, msg), { to: to })));
503
- }
504
- else {
505
- peer.destroy();
473
+ if (_this.connectedPeers[id])
474
+ delete _this.connectedPeers[id];
506
475
  delete _this.peerMap[id];
507
- if (Object.keys(_this.peerMap).length === 0) {
508
- _this.tooldb.isConnected = false;
509
- _this.tooldb.onDisconnect();
510
- }
511
476
  }
512
477
  });
478
+ if (Object.keys(this.peerMap).length === 0) {
479
+ this.tooldb.isConnected = false;
480
+ this.tooldb.onDisconnect();
481
+ }
482
+ };
483
+ toolDbWebrtc.prototype.close = function (clientId) {
484
+ //
513
485
  };
514
- Object.defineProperty(toolDbWebrtc.prototype, "tooldb", {
515
- get: function () {
516
- return this._tooldb;
517
- },
518
- enumerable: false,
519
- configurable: true
520
- });
521
486
  return toolDbWebrtc;
522
- }(tooldb_1.ToolDbNetworkAdapter));
487
+ }(toolDbNetworkAdapter_1.default));
523
488
  exports.default = toolDbWebrtc;
524
489
  //# sourceMappingURL=toolDbWebrtc.js.map