tool-db 1.4.3 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/README.md +32 -14
  2. package/bundle.js +112989 -57546
  3. package/dist/chain/Block.d.ts +3 -2
  4. package/dist/chain/Block.js +12 -1
  5. package/dist/chain/Block.js.map +1 -1
  6. package/dist/chain/ToolChain.d.ts +6 -4
  7. package/dist/chain/ToolChain.js +35 -13
  8. package/dist/chain/ToolChain.js.map +1 -1
  9. package/dist/chain/Tx.d.ts +34 -0
  10. package/dist/chain/Tx.js +111 -0
  11. package/dist/chain/Tx.js.map +1 -0
  12. package/dist/index.d.ts +18 -23
  13. package/dist/index.js +37 -52
  14. package/dist/index.js.map +1 -1
  15. package/dist/loadCrdtDocument.js +4 -9
  16. package/dist/loadCrdtDocument.js.map +1 -1
  17. package/dist/messageHandlers/handleCrdt.d.ts +2 -1
  18. package/dist/messageHandlers/handleCrdt.js +1 -5
  19. package/dist/messageHandlers/handleCrdt.js.map +1 -1
  20. package/dist/messageHandlers/handleCrdtGet.d.ts +2 -1
  21. package/dist/messageHandlers/handleCrdtGet.js +2 -2
  22. package/dist/messageHandlers/handleCrdtGet.js.map +1 -1
  23. package/dist/messageHandlers/handleCrdtPut.d.ts +2 -1
  24. package/dist/messageHandlers/handleCrdtPut.js +17 -9
  25. package/dist/messageHandlers/handleCrdtPut.js.map +1 -1
  26. package/dist/messageHandlers/handleGet.d.ts +2 -1
  27. package/dist/messageHandlers/handleGet.js +1 -1
  28. package/dist/messageHandlers/handleGet.js.map +1 -1
  29. package/dist/messageHandlers/handleJoin.d.ts +2 -1
  30. package/dist/messageHandlers/handleJoin.js +20 -24
  31. package/dist/messageHandlers/handleJoin.js.map +1 -1
  32. package/dist/messageHandlers/handlePing.d.ts +2 -1
  33. package/dist/messageHandlers/handlePing.js +10 -3
  34. package/dist/messageHandlers/handlePing.js.map +1 -1
  35. package/dist/messageHandlers/handlePong.d.ts +2 -1
  36. package/dist/messageHandlers/handlePong.js +22 -20
  37. package/dist/messageHandlers/handlePong.js.map +1 -1
  38. package/dist/messageHandlers/handlePut.d.ts +2 -1
  39. package/dist/messageHandlers/handlePut.js +3 -2
  40. package/dist/messageHandlers/handlePut.js.map +1 -1
  41. package/dist/messageHandlers/handleQuery.d.ts +2 -1
  42. package/dist/messageHandlers/handleQuery.js.map +1 -1
  43. package/dist/messageHandlers/handleServers.d.ts +2 -1
  44. package/dist/messageHandlers/handleServers.js +8 -9
  45. package/dist/messageHandlers/handleServers.js.map +1 -1
  46. package/dist/messageHandlers/handleSubscribe.d.ts +2 -1
  47. package/dist/messageHandlers/handleSubscribe.js +4 -3
  48. package/dist/messageHandlers/handleSubscribe.js.map +1 -1
  49. package/dist/toolDbAnonSignIn.d.ts +1 -4
  50. package/dist/toolDbAnonSignIn.js +2 -16
  51. package/dist/toolDbAnonSignIn.js.map +1 -1
  52. package/dist/toolDbClientOnMessage.js +3 -4
  53. package/dist/toolDbClientOnMessage.js.map +1 -1
  54. package/dist/toolDbCrdtGet.d.ts +1 -1
  55. package/dist/toolDbCrdtGet.js +13 -5
  56. package/dist/toolDbCrdtGet.js.map +1 -1
  57. package/dist/toolDbCrdtPut.js +22 -67
  58. package/dist/toolDbCrdtPut.js.map +1 -1
  59. package/dist/toolDbGet.js +2 -3
  60. package/dist/toolDbGet.js.map +1 -1
  61. package/dist/toolDbKeysSignIn.d.ts +1 -7
  62. package/dist/toolDbKeysSignIn.js +5 -18
  63. package/dist/toolDbKeysSignIn.js.map +1 -1
  64. package/dist/toolDbNetwork.js +7 -5
  65. package/dist/toolDbNetwork.js.map +1 -1
  66. package/dist/toolDbPut.js +24 -72
  67. package/dist/toolDbPut.js.map +1 -1
  68. package/dist/toolDbQueryKeys.js +2 -3
  69. package/dist/toolDbQueryKeys.js.map +1 -1
  70. package/dist/toolDbSignIn.d.ts +2 -4
  71. package/dist/toolDbSignIn.js +7 -113
  72. package/dist/toolDbSignIn.js.map +1 -1
  73. package/dist/toolDbSignUp.d.ts +1 -1
  74. package/dist/toolDbSignUp.js +37 -70
  75. package/dist/toolDbSignUp.js.map +1 -1
  76. package/dist/toolDbSubscribe.js +4 -4
  77. package/dist/toolDbSubscribe.js.map +1 -1
  78. package/dist/toolDbVerificationWrapper.js +23 -10
  79. package/dist/toolDbVerificationWrapper.js.map +1 -1
  80. package/dist/toolDbWebrtc.js +68 -16
  81. package/dist/toolDbWebrtc.js.map +1 -1
  82. package/dist/tooldb.d.ts +21 -14
  83. package/dist/tooldb.js +44 -27
  84. package/dist/tooldb.js.map +1 -1
  85. package/dist/types/message.d.ts +40 -1
  86. package/dist/types/tooldb.d.ts +53 -11
  87. package/dist/types/tooldb.js.map +1 -1
  88. package/dist/utils/crypto/decodeKeyString.d.ts +1 -1
  89. package/dist/utils/crypto/decodeKeyString.js +3 -4
  90. package/dist/utils/crypto/decodeKeyString.js.map +1 -1
  91. package/dist/utils/crypto/decryptData.js +3 -3
  92. package/dist/utils/crypto/decryptData.js.map +1 -1
  93. package/dist/utils/crypto/decryptWithPass.d.ts +1 -1
  94. package/dist/utils/crypto/decryptWithPass.js +2 -3
  95. package/dist/utils/crypto/decryptWithPass.js.map +1 -1
  96. package/dist/utils/crypto/encodeKeyString.js +3 -4
  97. package/dist/utils/crypto/encodeKeyString.js.map +1 -1
  98. package/dist/utils/crypto/encryptData.d.ts +1 -1
  99. package/dist/utils/crypto/encryptData.js +1 -6
  100. package/dist/utils/crypto/encryptData.js.map +1 -1
  101. package/dist/utils/crypto/encryptWithPass.d.ts +1 -1
  102. package/dist/utils/crypto/encryptWithPass.js +1 -5
  103. package/dist/utils/crypto/encryptWithPass.js.map +1 -1
  104. package/dist/utils/crypto/generateKeyFromPassword.js +1 -1
  105. package/dist/utils/crypto/generateKeyFromPassword.js.map +1 -1
  106. package/dist/utils/crypto/loadKeysComb.js +10 -10
  107. package/dist/utils/crypto/loadKeysComb.js.map +1 -1
  108. package/dist/utils/crypto/recoverPubKey.d.ts +1 -1
  109. package/dist/utils/crypto/recoverPubKey.js +12 -6
  110. package/dist/utils/crypto/recoverPubKey.js.map +1 -1
  111. package/dist/utils/crypto/saveSignKeys.d.ts +1 -1
  112. package/dist/utils/crypto/saveSignKeys.js +2 -2
  113. package/dist/utils/crypto/verifyData.js +1 -1
  114. package/dist/utils/crypto/verifyData.js.map +1 -1
  115. package/dist/utils/encoding/arrayBufferToHex.js +1 -1
  116. package/dist/utils/encoding/base64ToHex.js +1 -1
  117. package/dist/utils/encoding/uint8ArrayToHex.js +1 -1
  118. package/dist/utils/getPeerSignature.d.ts +2 -1
  119. package/dist/utils/getPeerSignature.js +7 -4
  120. package/dist/utils/getPeerSignature.js.map +1 -1
  121. package/dist/utils/leveldb.js +2 -0
  122. package/dist/utils/leveldb.js.map +1 -1
  123. package/dist/utils/signData.js +1 -1
  124. package/dist/utils/signData.js.map +1 -1
  125. package/dist/utils/verifyMessage.js +9 -18
  126. package/dist/utils/verifyMessage.js.map +1 -1
  127. package/dist/utils/verifyPeer.d.ts +2 -1
  128. package/dist/utils/verifyPeer.js +9 -8
  129. package/dist/utils/verifyPeer.js.map +1 -1
  130. package/package.json +4 -3
  131. package/test-alice/000087.ldb +0 -0
  132. package/test-alice/000089.ldb +0 -0
  133. package/test-alice/000092.ldb +0 -0
  134. package/test-alice/000093.log +0 -0
  135. package/test-alice/CURRENT +1 -1
  136. package/test-alice/LOG +5 -5
  137. package/test-alice/LOG.old +5 -5
  138. package/test-alice/MANIFEST-000091 +0 -0
  139. package/test-alice-speed/000003.log +0 -0
  140. package/test-alice-speed/CURRENT +1 -0
  141. package/{test-keys-a → test-alice-speed}/LOCK +0 -0
  142. package/test-alice-speed/LOG +1 -0
  143. package/test-alice-speed/MANIFEST-000002 +0 -0
  144. package/test-bob/000087.ldb +0 -0
  145. package/test-bob/000089.ldb +0 -0
  146. package/test-bob/000092.ldb +0 -0
  147. package/test-bob/000093.log +0 -0
  148. package/test-bob/CURRENT +1 -1
  149. package/test-bob/LOG +5 -5
  150. package/test-bob/LOG.old +5 -5
  151. package/test-bob/MANIFEST-000091 +0 -0
  152. package/test-node-a/000087.ldb +0 -0
  153. package/test-node-a/000089.ldb +0 -0
  154. package/test-node-a/000092.ldb +0 -0
  155. package/test-node-a/000093.log +0 -0
  156. package/test-node-a/CURRENT +1 -1
  157. package/test-node-a/LOG +5 -14
  158. package/test-node-a/LOG.old +5 -5
  159. package/test-node-a/MANIFEST-000091 +0 -0
  160. package/test-node-b/000087.ldb +0 -0
  161. package/test-node-b/000089.ldb +0 -0
  162. package/test-node-b/000092.ldb +0 -0
  163. package/test-node-b/000093.log +0 -0
  164. package/test-node-b/CURRENT +1 -1
  165. package/test-node-b/LOG +5 -14
  166. package/test-node-b/LOG.old +5 -5
  167. package/test-node-b/MANIFEST-000091 +0 -0
  168. package/test-verify-a/000026.ldb +0 -0
  169. package/test-verify-a/000029.ldb +0 -0
  170. package/test-verify-a/000031.ldb +0 -0
  171. package/test-verify-a/000033.ldb +0 -0
  172. package/{test-keys-a/000587.log → test-verify-a/000068.log} +0 -0
  173. package/test-verify-a/CURRENT +1 -1
  174. package/test-verify-a/LOG +3 -3
  175. package/test-verify-a/LOG.old +3 -3
  176. package/test-verify-a/MANIFEST-000067 +0 -0
  177. package/test-alice/000845.ldb +0 -0
  178. package/test-alice/000847.ldb +0 -0
  179. package/test-alice/000850.ldb +0 -0
  180. package/test-alice/000853.ldb +0 -0
  181. package/test-alice/000854.log +0 -0
  182. package/test-alice/MANIFEST-000852 +0 -0
  183. package/test-bob/000772.ldb +0 -0
  184. package/test-bob/000774.ldb +0 -0
  185. package/test-bob/000777.ldb +0 -0
  186. package/test-bob/000780.ldb +0 -0
  187. package/test-bob/000781.log +0 -0
  188. package/test-bob/MANIFEST-000779 +0 -0
  189. package/test-keys-a/CURRENT +0 -1
  190. package/test-keys-a/LOG +0 -3
  191. package/test-keys-a/LOG.old +0 -3
  192. package/test-keys-a/MANIFEST-000586 +0 -0
  193. package/test-keys-b/000587.log +0 -0
  194. package/test-keys-b/CURRENT +0 -1
  195. package/test-keys-b/LOCK +0 -0
  196. package/test-keys-b/LOG +0 -3
  197. package/test-keys-b/LOG.old +0 -3
  198. package/test-keys-b/MANIFEST-000586 +0 -0
  199. package/test-node-a/000870.log +0 -0
  200. package/test-node-a/000871.ldb +0 -0
  201. package/test-node-a/MANIFEST-000868 +0 -0
  202. package/test-node-b/000870.log +0 -0
  203. package/test-node-b/000871.ldb +0 -0
  204. package/test-node-b/MANIFEST-000868 +0 -0
  205. package/test-verify-a/000719.log +0 -0
  206. package/test-verify-a/MANIFEST-000718 +0 -0
@@ -1,5 +1,5 @@
1
- import { CrdtPutMessage, PutMessage, StakeMessage, TxMessage } from "..";
2
- export declare type BlockData = (PutMessage | CrdtPutMessage | StakeMessage | TxMessage)[];
1
+ import { TxJson } from "./Tx";
2
+ export declare type BlockData = TxJson[];
3
3
  export default class Block {
4
4
  private _timestamp;
5
5
  private _lastHash;
@@ -17,4 +17,5 @@ export default class Block {
17
17
  static hash(timestamp: number, lastHash: string, data: BlockData): string;
18
18
  static blockHash(block: Block): string;
19
19
  static createBlock(lastBlock: Block, data: BlockData): Block;
20
+ static verifyBlockData(block: Block): boolean;
20
21
  }
@@ -4,7 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var __1 = require("..");
7
+ var web3_1 = __importDefault(require("web3"));
7
8
  var getTimestamp_1 = __importDefault(require("../utils/getTimestamp"));
9
+ var web3 = new web3_1.default(web3_1.default.givenProvider);
8
10
  var Block = /** @class */ (function () {
9
11
  function Block(timestamp, lastHash, hash, data, validator, signature) {
10
12
  this._timestamp = (0, getTimestamp_1.default)();
@@ -51,10 +53,10 @@ var Block = /** @class */ (function () {
51
53
  return new this((0, getTimestamp_1.default)(), "0", "0", [], "0", "0");
52
54
  };
53
55
  Block.hash = function (timestamp, lastHash, data) {
56
+ // data should be a merkle root of all tx!
54
57
  return (0, __1.sha256)("" + timestamp + lastHash + JSON.stringify(data)).toString();
55
58
  };
56
59
  Block.blockHash = function (block) {
57
- //destructuring
58
60
  var timestamp = block.timestamp, lastHash = block.lastHash, data = block.data;
59
61
  return Block.hash(timestamp, lastHash, data);
60
62
  };
@@ -64,6 +66,15 @@ var Block = /** @class */ (function () {
64
66
  var hash = Block.hash(time, lastHash, data);
65
67
  return new this(time, lastHash, hash, data, "0", "0");
66
68
  };
69
+ Block.verifyBlockData = function (block) {
70
+ var isValid = true;
71
+ block.data.forEach(function (tx) {
72
+ var verify = web3.eth.accounts.recover(tx.txid, tx.sig);
73
+ if (verify !== tx.from)
74
+ isValid = false;
75
+ });
76
+ return isValid;
77
+ };
67
78
  return Block;
68
79
  }());
69
80
  exports.default = Block;
@@ -1 +1 @@
1
- {"version":3,"file":"Block.js","sourceRoot":"","sources":["../../src/chain/Block.ts"],"names":[],"mappings":";;;;;AAAA,wBAMY;AAEZ,uEAAiD;AASjD;IAaE,eACE,SAAiB,EACjB,QAAgB,EAChB,IAAY,EACZ,IAAe,EACf,SAAiB,EACjB,SAAiB;QAlBX,eAAU,GAAG,IAAA,sBAAY,GAAE,CAAC;QAM5B,UAAK,GAAc,EAAE,CAAC;QAc5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,wBAAQ,GAAR;QACE,OAAO,mCACW,IAAI,CAAC,UAAU,8BACf,IAAI,CAAC,SAAS,8BACd,IAAI,CAAC,KAAK,8BACV,IAAI,CAAC,KAAK,8BACV,IAAI,CAAC,UAAU,8BACf,IAAI,CAAC,UAAY,CAAC;IACtC,CAAC;IAED,sBAAI,uBAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;;;OAAA;IAED,sBAAI,2BAAQ;aAAZ;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;;;OAAA;IAED,sBAAI,4BAAS;aAAb;YACE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;;;OAAA;IAED,sBAAI,uBAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;;;OAAA;IAEM,aAAO,GAAd;QACE,OAAO,IAAI,IAAI,CAAC,IAAA,sBAAY,GAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IAEM,UAAI,GAAX,UAAY,SAAiB,EAAE,QAAgB,EAAE,IAAe;QAC9D,OAAO,IAAA,UAAM,EAAC,KAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7E,CAAC;IAEM,eAAS,GAAhB,UAAiB,KAAY;QAC3B,eAAe;QACP,IAAA,SAAS,GAAqB,KAAK,UAA1B,EAAE,QAAQ,GAAW,KAAK,SAAhB,EAAE,IAAI,GAAK,KAAK,KAAV,CAAW;QAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAEM,iBAAW,GAAlB,UAAmB,SAAgB,EAAE,IAAe;QAClD,IAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;QAChC,IAAM,IAAI,GAAG,IAAA,sBAAY,GAAE,CAAC;QAC5B,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IACH,YAAC;AAAD,CAAC,AA3ED,IA2EC"}
1
+ {"version":3,"file":"Block.js","sourceRoot":"","sources":["../../src/chain/Block.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
- import Block, { BlockData } from "./Block";
1
+ import Block from "./Block";
2
2
  export default class ToolChain {
3
3
  private _chain;
4
+ private _balancesState;
5
+ private _lastBlockCalculated;
4
6
  constructor();
5
- addBlock(data: BlockData): Block;
6
- pushBlock(block: Block): void;
7
+ calculateState(): Record<string, number>;
8
+ get balances(): Record<string, number>;
9
+ pushBlock(block: Block): false | Block;
7
10
  replaceChain(newChain: Block[]): void;
8
- addBlockToState(block: Block): void;
9
11
  isValidBlock(block: Block): boolean;
10
12
  }
@@ -5,19 +5,46 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var Block_1 = __importDefault(require("./Block"));
7
7
  var isValidChain_1 = __importDefault(require("./isValidChain"));
8
+ var Tx_1 = __importDefault(require("./Tx"));
8
9
  var ToolChain = /** @class */ (function () {
9
- // private _balances: Record<string, number>;
10
10
  function ToolChain() {
11
11
  this._chain = [];
12
+ this._balancesState = {};
13
+ this._lastBlockCalculated = 0;
12
14
  this._chain = [Block_1.default.genesis()];
13
15
  }
14
- ToolChain.prototype.addBlock = function (data) {
15
- var block = Block_1.default.createBlock(this._chain[this._chain.length - 1], data);
16
- this._chain.push(block);
17
- return block;
16
+ ToolChain.prototype.calculateState = function () {
17
+ var _this = this;
18
+ this._chain.slice(this._lastBlockCalculated).forEach(function (block) {
19
+ block.data.sort(Tx_1.default.sortTxJson).forEach(function (tx) {
20
+ if (_this._balancesState[tx.from]) {
21
+ _this._balancesState[tx.from] -= tx.amount;
22
+ }
23
+ if (_this._balancesState[tx.to]) {
24
+ _this._balancesState[tx.to] += tx.amount;
25
+ }
26
+ else {
27
+ _this._balancesState[tx.to] = tx.amount;
28
+ }
29
+ });
30
+ });
31
+ this._lastBlockCalculated = this._chain.length;
32
+ return this._balancesState;
18
33
  };
34
+ Object.defineProperty(ToolChain.prototype, "balances", {
35
+ get: function () {
36
+ return this._balancesState;
37
+ },
38
+ enumerable: false,
39
+ configurable: true
40
+ });
19
41
  ToolChain.prototype.pushBlock = function (block) {
20
- this._chain.push(block);
42
+ if (this.isValidBlock(block)) {
43
+ this._chain.push(block);
44
+ this.calculateState();
45
+ return block;
46
+ }
47
+ return false;
21
48
  };
22
49
  ToolChain.prototype.replaceChain = function (newChain) {
23
50
  if (newChain.length <= this._chain.length) {
@@ -34,9 +61,6 @@ var ToolChain = /** @class */ (function () {
34
61
  // getLeader() {
35
62
  // return this._stakes.getMax(this._validators.list);
36
63
  // }
37
- ToolChain.prototype.addBlockToState = function (block) {
38
- //
39
- };
40
64
  ToolChain.prototype.isValidBlock = function (block) {
41
65
  var lastBlock = this._chain[this._chain.length - 1];
42
66
  /**
@@ -46,12 +70,10 @@ var ToolChain = /** @class */ (function () {
46
70
  * check leader
47
71
  */
48
72
  if (block.lastHash === lastBlock.hash &&
49
- block.hash === Block_1.default.blockHash(block)
50
- // Block.verifyBlock(block) &&
73
+ block.hash === Block_1.default.blockHash(block) &&
74
+ Block_1.default.verifyBlockData(block)
51
75
  // Block.verifyLeader(block, this.getLeader())
52
76
  ) {
53
- console.log("block valid");
54
- this.pushBlock(block);
55
77
  return true;
56
78
  }
57
79
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"ToolChain.js","sourceRoot":"","sources":["../../src/chain/ToolChain.ts"],"names":[],"mappings":";;;;;AAAA,kDAA2C;AAC3C,gEAA0C;AAE1C;IAGE,6CAA6C;IAE7C;QAJQ,WAAM,GAAY,EAAE,CAAC;QAK3B,IAAI,CAAC,MAAM,GAAG,CAAC,eAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,4BAAQ,GAAR,UAAS,IAAe;QACtB,IAAM,KAAK,GAAG,eAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6BAAS,GAAT,UAAU,KAAY;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,gCAAY,GAAZ,UAAa,QAAiB;QAC5B,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACzC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACnE,OAAO;SACR;aAAM,IAAI,CAAC,IAAA,sBAAY,EAAC,QAAQ,CAAC,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,OAAO;SACR;QAED,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IACzB,CAAC;IAED,gBAAgB;IAChB,uDAAuD;IACvD,IAAI;IAEJ,mCAAe,GAAf,UAAgB,KAAY;QAC1B,EAAE;IACJ,CAAC;IAED,gCAAY,GAAZ,UAAa,KAAY;QACvB,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtD;;;;;WAKG;QACH,IACE,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI;YACjC,KAAK,CAAC,IAAI,KAAK,eAAK,CAAC,SAAS,CAAC,KAAK,CAAC;QACrC,8BAA8B;QAC9B,8CAA8C;UAC9C;YACA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;SACb;aAAM;YACL,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IACH,gBAAC;AAAD,CAAC,AA9DD,IA8DC"}
1
+ {"version":3,"file":"ToolChain.js","sourceRoot":"","sources":["../../src/chain/ToolChain.ts"],"names":[],"mappings":";;;;;AAAA,kDAA2C;AAC3C,gEAA0C;AAC1C,4CAAsB;AAEtB;IAME;QALQ,WAAM,GAAY,EAAE,CAAC;QAErB,mBAAc,GAA2B,EAAE,CAAC;QAC5C,yBAAoB,GAAW,CAAC,CAAC;QAGvC,IAAI,CAAC,MAAM,GAAG,CAAC,eAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,kCAAc,GAAd;QAAA,iBAiBC;QAhBC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,UAAC,KAAK;YACzD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,EAAE;gBACxC,IAAI,KAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;oBAChC,KAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;iBAC3C;gBACD,IAAI,KAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;oBAC9B,KAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;iBACzC;qBAAM;oBACL,KAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAE/C,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,sBAAI,+BAAQ;aAAZ;YACE,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;;;OAAA;IAED,6BAAS,GAAT,UAAU,KAAY;QACpB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gCAAY,GAAZ,UAAa,QAAiB;QAC5B,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACzC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACnE,OAAO;SACR;aAAM,IAAI,CAAC,IAAA,sBAAY,EAAC,QAAQ,CAAC,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,OAAO;SACR;QAED,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IACzB,CAAC;IAED,gBAAgB;IAChB,uDAAuD;IACvD,IAAI;IAEJ,gCAAY,GAAZ,UAAa,KAAY;QACvB,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtD;;;;;WAKG;QACH,IACE,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI;YACjC,KAAK,CAAC,IAAI,KAAK,eAAK,CAAC,SAAS,CAAC,KAAK,CAAC;YACrC,eAAK,CAAC,eAAe,CAAC,KAAK,CAAC;QAC5B,8CAA8C;UAC9C;YACA,OAAO,IAAI,CAAC;SACb;aAAM;YACL,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IACH,gBAAC;AAAD,CAAC,AA9ED,IA8EC"}
@@ -0,0 +1,34 @@
1
+ import { Account } from "web3-core";
2
+ export interface TxJson {
3
+ from: string;
4
+ to: string;
5
+ timestamp: number;
6
+ amount: number;
7
+ nonce: number;
8
+ datahash: string;
9
+ txid: string;
10
+ sig: string;
11
+ }
12
+ export default class Tx {
13
+ private _timestamp;
14
+ private _txid;
15
+ private _datahash;
16
+ private _nonce;
17
+ private _data;
18
+ private _signature;
19
+ private _sender;
20
+ private _receiver;
21
+ private _ammount;
22
+ constructor(from: Account, to: string, data: string, ammount: number);
23
+ get timestamp(): number;
24
+ get ammount(): number;
25
+ get data(): string;
26
+ get sender(): string;
27
+ get receiver(): string;
28
+ get verify(): string;
29
+ get txid(): string;
30
+ toJson(): TxJson;
31
+ static sortTx(a: Tx, b: Tx): 0 | 1 | -1;
32
+ static sortTxJson(a: TxJson, b: TxJson): 0 | 1 | -1;
33
+ static fn(): string;
34
+ }
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var __1 = require("..");
7
+ var getTimestamp_1 = __importDefault(require("../utils/getTimestamp"));
8
+ var Tx = /** @class */ (function () {
9
+ function Tx(from, to, data, ammount) {
10
+ this._timestamp = (0, getTimestamp_1.default)();
11
+ this._data = "";
12
+ this._timestamp = (0, getTimestamp_1.default)();
13
+ this._nonce = 1;
14
+ this._datahash = (0, __1.sha256)(data);
15
+ this._txid = (0, __1.sha256)("" + from + to + this._datahash + this._nonce);
16
+ this._sender = from.address;
17
+ this._receiver = to;
18
+ this._ammount = ammount;
19
+ this._data = data;
20
+ this._signature = from.sign(this._txid).signature;
21
+ }
22
+ Object.defineProperty(Tx.prototype, "timestamp", {
23
+ get: function () {
24
+ return this._timestamp;
25
+ },
26
+ enumerable: false,
27
+ configurable: true
28
+ });
29
+ Object.defineProperty(Tx.prototype, "ammount", {
30
+ get: function () {
31
+ return this._ammount;
32
+ },
33
+ enumerable: false,
34
+ configurable: true
35
+ });
36
+ Object.defineProperty(Tx.prototype, "data", {
37
+ get: function () {
38
+ return this._data;
39
+ },
40
+ enumerable: false,
41
+ configurable: true
42
+ });
43
+ Object.defineProperty(Tx.prototype, "sender", {
44
+ get: function () {
45
+ return this._sender;
46
+ },
47
+ enumerable: false,
48
+ configurable: true
49
+ });
50
+ Object.defineProperty(Tx.prototype, "receiver", {
51
+ get: function () {
52
+ return this._receiver;
53
+ },
54
+ enumerable: false,
55
+ configurable: true
56
+ });
57
+ Object.defineProperty(Tx.prototype, "verify", {
58
+ get: function () {
59
+ return this._receiver;
60
+ },
61
+ enumerable: false,
62
+ configurable: true
63
+ });
64
+ Object.defineProperty(Tx.prototype, "txid", {
65
+ get: function () {
66
+ return this._txid;
67
+ },
68
+ enumerable: false,
69
+ configurable: true
70
+ });
71
+ Tx.prototype.toJson = function () {
72
+ return {
73
+ from: this._sender,
74
+ to: this._receiver,
75
+ amount: this._ammount,
76
+ timestamp: this._timestamp,
77
+ nonce: this._nonce,
78
+ datahash: this._datahash,
79
+ txid: this._txid,
80
+ sig: this._signature,
81
+ };
82
+ };
83
+ Tx.sortTx = function (a, b) {
84
+ if (a.timestamp < b.timestamp)
85
+ return -1;
86
+ if (a.timestamp > b.timestamp)
87
+ return 1;
88
+ if (a.txid < b.txid)
89
+ return -1;
90
+ if (a.txid > b.txid)
91
+ return 1;
92
+ return 0;
93
+ };
94
+ Tx.sortTxJson = function (a, b) {
95
+ if (a.timestamp < b.timestamp)
96
+ return -1;
97
+ if (a.timestamp > b.timestamp)
98
+ return 1;
99
+ if (a.txid < b.txid)
100
+ return -1;
101
+ if (a.txid > b.txid)
102
+ return 1;
103
+ return 0;
104
+ };
105
+ Tx.fn = function () {
106
+ return "";
107
+ };
108
+ return Tx;
109
+ }());
110
+ exports.default = Tx;
111
+ //# sourceMappingURL=Tx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tx.js","sourceRoot":"","sources":["../../src/chain/Tx.ts"],"names":[],"mappings":";;;;;AAAA,wBAA4B;AAG5B,uEAAiD;AAajD;IAiBE,YAAY,IAAa,EAAE,EAAU,EAAE,IAAY,EAAE,OAAe;QAhB5D,eAAU,GAAG,IAAA,sBAAY,GAAE,CAAC;QAO5B,UAAK,GAAW,EAAE,CAAC;QAUzB,IAAI,CAAC,UAAU,GAAG,IAAA,sBAAY,GAAE,CAAC;QAEjC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhB,IAAI,CAAC,SAAS,GAAG,IAAA,UAAM,EAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAA,UAAM,EAAC,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC;IAED,sBAAI,yBAAS;aAAb;YACE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;;;OAAA;IAED,sBAAI,uBAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;;;OAAA;IAED,sBAAI,oBAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;;;OAAA;IAED,sBAAI,sBAAM;aAAV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;;;OAAA;IAED,sBAAI,wBAAQ;aAAZ;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;;;OAAA;IAED,sBAAI,sBAAM;aAAV;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;;;OAAA;IAED,sBAAI,oBAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;;;OAAA;IAED,mBAAM,GAAN;QACE,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,EAAE,EAAE,IAAI,CAAC,SAAS;YAClB,MAAM,EAAE,IAAI,CAAC,QAAQ;YACrB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,GAAG,EAAE,IAAI,CAAC,UAAU;SACrB,CAAC;IACJ,CAAC;IAEM,SAAM,GAAb,UAAc,CAAK,EAAE,CAAK;QACxB,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IAEM,aAAU,GAAjB,UAAkB,CAAS,EAAE,CAAS;QACpC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IAEM,KAAE,GAAT;QACE,OAAO,EAAE,CAAC;IACZ,CAAC;IACH,SAAC;AAAD,CAAC,AA9FD,IA8FC"}
package/dist/index.d.ts CHANGED
@@ -3,36 +3,31 @@ export * from "./types/message";
3
3
  export { default as proofOfWork } from "./utils/proofOfWork";
4
4
  export { default as sha1 } from "./utils/sha1";
5
5
  export { default as sha256 } from "./utils/sha256";
6
- export { default as signData } from "./utils/signData";
7
- export { default as arrayBufferToBase64 } from "./utils/arrayBufferToBase64";
8
- export { default as arrayBufferToString } from "./utils/arrayBufferToString";
9
- export { default as base64ToArrayBuffer } from "./utils/base64ToArrayBuffer";
10
- export { default as base64ToBinaryChange } from "./utils/base64ToBinaryChange";
11
- export { default as base64ToBinaryDocument } from "./utils/base64ToBinaryDocument";
12
- export { default as base64ToUint8 } from "./utils/base64ToUint8";
13
- export { default as fromBase64 } from "./utils/fromBase64";
14
6
  export { default as generateIv } from "./utils/generateIv";
15
7
  export { default as randomAnimal } from "./utils/randomAnimal";
16
- export { default as stringToArrayBuffer } from "./utils/stringToArrayBuffer";
17
8
  export { default as textRandom } from "./utils/textRandom";
18
- export { default as toBase64 } from "./utils/toBase64";
19
- export { default as uint8ToBase64 } from "./utils/uint8ToBase64";
9
+ export { default as stringToArrayBuffer } from "./utils/encoding/stringToArrayBuffer";
20
10
  export { default as verifyMessage } from "./utils/verifyMessage";
21
- export { default as decodeKeyString } from "./utils/crypto/decodeKeyString";
22
- export { default as decryptData } from "./utils/crypto/decryptData";
11
+ export { default as verifyPeer } from "./utils/verifyPeer";
12
+ export { default as arrayBufferToBase64 } from "./utils/encoding/arrayBufferToBase64";
13
+ export { default as arrayBufferToString } from "./utils/encoding/arrayBufferToString";
14
+ export { default as arrayBufferToHex } from "./utils/encoding/arrayBufferToHex";
15
+ export { default as base64ToArrayBuffer } from "./utils/encoding/base64ToArrayBuffer";
16
+ export { default as base64ToBinaryChange } from "./utils/encoding/base64ToBinaryChange";
17
+ export { default as base64ToBinaryDocument } from "./utils/encoding/base64ToBinaryDocument";
18
+ export { default as base64ToUint8 } from "./utils/encoding/base64ToUint8";
19
+ export { default as base64ToHex } from "./utils/encoding/base64ToHex";
20
+ export { default as hexToArrayBuffer } from "./utils/encoding/hexToArrayBuffer";
21
+ export { default as hexToBase64 } from "./utils/encoding/hexToBase64";
22
+ export { default as hexToString } from "./utils/encoding/hexToString";
23
+ export { default as hexToUint8 } from "./utils/encoding/hexToUint8";
24
+ export { default as fromBase64 } from "./utils/encoding/fromBase64";
25
+ export { default as uint8ToBase64 } from "./utils/encoding/uint8ToBase64";
26
+ export { default as uint8ArrayToHex } from "./utils/encoding/uint8ArrayToHex";
27
+ export { default as toBase64 } from "./utils/encoding/toBase64";
23
28
  export { default as decryptWithPass } from "./utils/crypto/decryptWithPass";
24
- export { default as deriveSecret } from "./utils/crypto/deriveSecret";
25
- export { default as encodeKeyString } from "./utils/crypto/encodeKeyString";
26
- export { default as encryptData } from "./utils/crypto/encryptData";
27
29
  export { default as encryptWithPass } from "./utils/crypto/encryptWithPass";
28
- export { default as exportKey } from "./utils/crypto/exportKey";
29
30
  export { default as generateKeyFromPassword } from "./utils/crypto/generateKeyFromPassword";
30
- export { default as generateKeyPair } from "./utils/crypto/generateKeyPair";
31
- export { default as generateKeysComb } from "./utils/crypto/generateKeysComb";
32
- export { default as importKey } from "./utils/crypto/importKey";
33
- export { default as loadKeysComb } from "./utils/crypto/loadKeysComb";
34
- export { default as saveKeysComb } from "./utils/crypto/saveKeysComb";
35
- export { default as verifyData } from "./utils/crypto/verifyData";
36
31
  export { default as toolDbNetwork } from "./toolDbNetwork";
37
32
  export { default as toolDbWebrtc } from "./toolDbWebrtc";
38
33
  export { default as handleCrdt } from "./messageHandlers/handleCrdt";
package/dist/index.js CHANGED
@@ -15,8 +15,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
15
15
  return (mod && mod.__esModule) ? mod : { "default": mod };
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.ToolDb = exports.handleSubscribe = exports.handleQuery = exports.handlePut = exports.handlePong = exports.handlePing = exports.handleGet = exports.handleCrdtPut = exports.handleCrdtGet = exports.handleCrdt = exports.toolDbWebrtc = exports.toolDbNetwork = exports.verifyData = exports.saveKeysComb = exports.loadKeysComb = exports.importKey = exports.generateKeysComb = exports.generateKeyPair = exports.generateKeyFromPassword = exports.exportKey = exports.encryptWithPass = exports.encryptData = exports.encodeKeyString = exports.deriveSecret = exports.decryptWithPass = exports.decryptData = exports.decodeKeyString = exports.verifyMessage = exports.uint8ToBase64 = exports.toBase64 = exports.textRandom = exports.stringToArrayBuffer = exports.randomAnimal = exports.generateIv = exports.fromBase64 = exports.base64ToUint8 = exports.base64ToBinaryDocument = exports.base64ToBinaryChange = exports.base64ToArrayBuffer = exports.arrayBufferToString = exports.arrayBufferToBase64 = exports.signData = exports.sha256 = exports.sha1 = exports.proofOfWork = void 0;
19
- var elliptic_1 = __importDefault(require("elliptic"));
18
+ exports.ToolDb = exports.handleSubscribe = exports.handleQuery = exports.handlePut = exports.handlePong = exports.handlePing = exports.handleGet = exports.handleCrdtPut = exports.handleCrdtGet = exports.handleCrdt = exports.toolDbWebrtc = exports.toolDbNetwork = exports.generateKeyFromPassword = exports.encryptWithPass = exports.decryptWithPass = exports.toBase64 = exports.uint8ArrayToHex = exports.uint8ToBase64 = exports.fromBase64 = exports.hexToUint8 = exports.hexToString = exports.hexToBase64 = exports.hexToArrayBuffer = exports.base64ToHex = exports.base64ToUint8 = exports.base64ToBinaryDocument = exports.base64ToBinaryChange = exports.base64ToArrayBuffer = exports.arrayBufferToHex = exports.arrayBufferToString = exports.arrayBufferToBase64 = exports.verifyPeer = exports.verifyMessage = exports.stringToArrayBuffer = exports.textRandom = exports.randomAnimal = exports.generateIv = exports.sha256 = exports.sha1 = exports.proofOfWork = void 0;
20
19
  __exportStar(require("./types/tooldb"), exports);
21
20
  __exportStar(require("./types/message"), exports);
22
21
  global.Buffer = global.Buffer || require("buffer").Buffer;
@@ -32,10 +31,6 @@ if (typeof atob === "undefined") {
32
31
  }
33
32
  if (typeof window === "undefined") {
34
33
  global.crypto = require("crypto").webcrypto;
35
- global.ecp256 = new elliptic_1.default.ec("p256");
36
- }
37
- else {
38
- window.ecp256 = new elliptic_1.default.ec("p256");
39
34
  }
40
35
  var proofOfWork_1 = require("./utils/proofOfWork");
41
36
  Object.defineProperty(exports, "proofOfWork", { enumerable: true, get: function () { return __importDefault(proofOfWork_1).default; } });
@@ -43,66 +38,56 @@ var sha1_1 = require("./utils/sha1");
43
38
  Object.defineProperty(exports, "sha1", { enumerable: true, get: function () { return __importDefault(sha1_1).default; } });
44
39
  var sha256_1 = require("./utils/sha256");
45
40
  Object.defineProperty(exports, "sha256", { enumerable: true, get: function () { return __importDefault(sha256_1).default; } });
46
- var signData_1 = require("./utils/signData");
47
- Object.defineProperty(exports, "signData", { enumerable: true, get: function () { return __importDefault(signData_1).default; } });
48
- var arrayBufferToBase64_1 = require("./utils/arrayBufferToBase64");
49
- Object.defineProperty(exports, "arrayBufferToBase64", { enumerable: true, get: function () { return __importDefault(arrayBufferToBase64_1).default; } });
50
- var arrayBufferToString_1 = require("./utils/arrayBufferToString");
51
- Object.defineProperty(exports, "arrayBufferToString", { enumerable: true, get: function () { return __importDefault(arrayBufferToString_1).default; } });
52
- var base64ToArrayBuffer_1 = require("./utils/base64ToArrayBuffer");
53
- Object.defineProperty(exports, "base64ToArrayBuffer", { enumerable: true, get: function () { return __importDefault(base64ToArrayBuffer_1).default; } });
54
- var base64ToBinaryChange_1 = require("./utils/base64ToBinaryChange");
55
- Object.defineProperty(exports, "base64ToBinaryChange", { enumerable: true, get: function () { return __importDefault(base64ToBinaryChange_1).default; } });
56
- var base64ToBinaryDocument_1 = require("./utils/base64ToBinaryDocument");
57
- Object.defineProperty(exports, "base64ToBinaryDocument", { enumerable: true, get: function () { return __importDefault(base64ToBinaryDocument_1).default; } });
58
- var base64ToUint8_1 = require("./utils/base64ToUint8");
59
- Object.defineProperty(exports, "base64ToUint8", { enumerable: true, get: function () { return __importDefault(base64ToUint8_1).default; } });
60
- var fromBase64_1 = require("./utils/fromBase64");
61
- Object.defineProperty(exports, "fromBase64", { enumerable: true, get: function () { return __importDefault(fromBase64_1).default; } });
62
41
  var generateIv_1 = require("./utils/generateIv");
63
42
  Object.defineProperty(exports, "generateIv", { enumerable: true, get: function () { return __importDefault(generateIv_1).default; } });
64
43
  var randomAnimal_1 = require("./utils/randomAnimal");
65
44
  Object.defineProperty(exports, "randomAnimal", { enumerable: true, get: function () { return __importDefault(randomAnimal_1).default; } });
66
- var stringToArrayBuffer_1 = require("./utils/stringToArrayBuffer");
67
- Object.defineProperty(exports, "stringToArrayBuffer", { enumerable: true, get: function () { return __importDefault(stringToArrayBuffer_1).default; } });
68
45
  var textRandom_1 = require("./utils/textRandom");
69
46
  Object.defineProperty(exports, "textRandom", { enumerable: true, get: function () { return __importDefault(textRandom_1).default; } });
70
- var toBase64_1 = require("./utils/toBase64");
71
- Object.defineProperty(exports, "toBase64", { enumerable: true, get: function () { return __importDefault(toBase64_1).default; } });
72
- var uint8ToBase64_1 = require("./utils/uint8ToBase64");
73
- Object.defineProperty(exports, "uint8ToBase64", { enumerable: true, get: function () { return __importDefault(uint8ToBase64_1).default; } });
47
+ var stringToArrayBuffer_1 = require("./utils/encoding/stringToArrayBuffer");
48
+ Object.defineProperty(exports, "stringToArrayBuffer", { enumerable: true, get: function () { return __importDefault(stringToArrayBuffer_1).default; } });
74
49
  var verifyMessage_1 = require("./utils/verifyMessage");
75
50
  Object.defineProperty(exports, "verifyMessage", { enumerable: true, get: function () { return __importDefault(verifyMessage_1).default; } });
76
- var decodeKeyString_1 = require("./utils/crypto/decodeKeyString");
77
- Object.defineProperty(exports, "decodeKeyString", { enumerable: true, get: function () { return __importDefault(decodeKeyString_1).default; } });
78
- var decryptData_1 = require("./utils/crypto/decryptData");
79
- Object.defineProperty(exports, "decryptData", { enumerable: true, get: function () { return __importDefault(decryptData_1).default; } });
51
+ var verifyPeer_1 = require("./utils/verifyPeer");
52
+ Object.defineProperty(exports, "verifyPeer", { enumerable: true, get: function () { return __importDefault(verifyPeer_1).default; } });
53
+ var arrayBufferToBase64_1 = require("./utils/encoding/arrayBufferToBase64");
54
+ Object.defineProperty(exports, "arrayBufferToBase64", { enumerable: true, get: function () { return __importDefault(arrayBufferToBase64_1).default; } });
55
+ var arrayBufferToString_1 = require("./utils/encoding/arrayBufferToString");
56
+ Object.defineProperty(exports, "arrayBufferToString", { enumerable: true, get: function () { return __importDefault(arrayBufferToString_1).default; } });
57
+ var arrayBufferToHex_1 = require("./utils/encoding/arrayBufferToHex");
58
+ Object.defineProperty(exports, "arrayBufferToHex", { enumerable: true, get: function () { return __importDefault(arrayBufferToHex_1).default; } });
59
+ var base64ToArrayBuffer_1 = require("./utils/encoding/base64ToArrayBuffer");
60
+ Object.defineProperty(exports, "base64ToArrayBuffer", { enumerable: true, get: function () { return __importDefault(base64ToArrayBuffer_1).default; } });
61
+ var base64ToBinaryChange_1 = require("./utils/encoding/base64ToBinaryChange");
62
+ Object.defineProperty(exports, "base64ToBinaryChange", { enumerable: true, get: function () { return __importDefault(base64ToBinaryChange_1).default; } });
63
+ var base64ToBinaryDocument_1 = require("./utils/encoding/base64ToBinaryDocument");
64
+ Object.defineProperty(exports, "base64ToBinaryDocument", { enumerable: true, get: function () { return __importDefault(base64ToBinaryDocument_1).default; } });
65
+ var base64ToUint8_1 = require("./utils/encoding/base64ToUint8");
66
+ Object.defineProperty(exports, "base64ToUint8", { enumerable: true, get: function () { return __importDefault(base64ToUint8_1).default; } });
67
+ var base64ToHex_1 = require("./utils/encoding/base64ToHex");
68
+ Object.defineProperty(exports, "base64ToHex", { enumerable: true, get: function () { return __importDefault(base64ToHex_1).default; } });
69
+ var hexToArrayBuffer_1 = require("./utils/encoding/hexToArrayBuffer");
70
+ Object.defineProperty(exports, "hexToArrayBuffer", { enumerable: true, get: function () { return __importDefault(hexToArrayBuffer_1).default; } });
71
+ var hexToBase64_1 = require("./utils/encoding/hexToBase64");
72
+ Object.defineProperty(exports, "hexToBase64", { enumerable: true, get: function () { return __importDefault(hexToBase64_1).default; } });
73
+ var hexToString_1 = require("./utils/encoding/hexToString");
74
+ Object.defineProperty(exports, "hexToString", { enumerable: true, get: function () { return __importDefault(hexToString_1).default; } });
75
+ var hexToUint8_1 = require("./utils/encoding/hexToUint8");
76
+ Object.defineProperty(exports, "hexToUint8", { enumerable: true, get: function () { return __importDefault(hexToUint8_1).default; } });
77
+ var fromBase64_1 = require("./utils/encoding/fromBase64");
78
+ Object.defineProperty(exports, "fromBase64", { enumerable: true, get: function () { return __importDefault(fromBase64_1).default; } });
79
+ var uint8ToBase64_1 = require("./utils/encoding/uint8ToBase64");
80
+ Object.defineProperty(exports, "uint8ToBase64", { enumerable: true, get: function () { return __importDefault(uint8ToBase64_1).default; } });
81
+ var uint8ArrayToHex_1 = require("./utils/encoding/uint8ArrayToHex");
82
+ Object.defineProperty(exports, "uint8ArrayToHex", { enumerable: true, get: function () { return __importDefault(uint8ArrayToHex_1).default; } });
83
+ var toBase64_1 = require("./utils/encoding/toBase64");
84
+ Object.defineProperty(exports, "toBase64", { enumerable: true, get: function () { return __importDefault(toBase64_1).default; } });
80
85
  var decryptWithPass_1 = require("./utils/crypto/decryptWithPass");
81
86
  Object.defineProperty(exports, "decryptWithPass", { enumerable: true, get: function () { return __importDefault(decryptWithPass_1).default; } });
82
- var deriveSecret_1 = require("./utils/crypto/deriveSecret");
83
- Object.defineProperty(exports, "deriveSecret", { enumerable: true, get: function () { return __importDefault(deriveSecret_1).default; } });
84
- var encodeKeyString_1 = require("./utils/crypto/encodeKeyString");
85
- Object.defineProperty(exports, "encodeKeyString", { enumerable: true, get: function () { return __importDefault(encodeKeyString_1).default; } });
86
- var encryptData_1 = require("./utils/crypto/encryptData");
87
- Object.defineProperty(exports, "encryptData", { enumerable: true, get: function () { return __importDefault(encryptData_1).default; } });
88
87
  var encryptWithPass_1 = require("./utils/crypto/encryptWithPass");
89
88
  Object.defineProperty(exports, "encryptWithPass", { enumerable: true, get: function () { return __importDefault(encryptWithPass_1).default; } });
90
- var exportKey_1 = require("./utils/crypto/exportKey");
91
- Object.defineProperty(exports, "exportKey", { enumerable: true, get: function () { return __importDefault(exportKey_1).default; } });
92
89
  var generateKeyFromPassword_1 = require("./utils/crypto/generateKeyFromPassword");
93
90
  Object.defineProperty(exports, "generateKeyFromPassword", { enumerable: true, get: function () { return __importDefault(generateKeyFromPassword_1).default; } });
94
- var generateKeyPair_1 = require("./utils/crypto/generateKeyPair");
95
- Object.defineProperty(exports, "generateKeyPair", { enumerable: true, get: function () { return __importDefault(generateKeyPair_1).default; } });
96
- var generateKeysComb_1 = require("./utils/crypto/generateKeysComb");
97
- Object.defineProperty(exports, "generateKeysComb", { enumerable: true, get: function () { return __importDefault(generateKeysComb_1).default; } });
98
- var importKey_1 = require("./utils/crypto/importKey");
99
- Object.defineProperty(exports, "importKey", { enumerable: true, get: function () { return __importDefault(importKey_1).default; } });
100
- var loadKeysComb_1 = require("./utils/crypto/loadKeysComb");
101
- Object.defineProperty(exports, "loadKeysComb", { enumerable: true, get: function () { return __importDefault(loadKeysComb_1).default; } });
102
- var saveKeysComb_1 = require("./utils/crypto/saveKeysComb");
103
- Object.defineProperty(exports, "saveKeysComb", { enumerable: true, get: function () { return __importDefault(saveKeysComb_1).default; } });
104
- var verifyData_1 = require("./utils/crypto/verifyData");
105
- Object.defineProperty(exports, "verifyData", { enumerable: true, get: function () { return __importDefault(verifyData_1).default; } });
106
91
  var toolDbNetwork_1 = require("./toolDbNetwork");
107
92
  Object.defineProperty(exports, "toolDbNetwork", { enumerable: true, get: function () { return __importDefault(toolDbNetwork_1).default; } });
108
93
  var toolDbWebrtc_1 = require("./toolDbWebrtc");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var automerge_1 = __importDefault(require("automerge"));
7
+ var hexToUint8_1 = __importDefault(require("./utils/encoding/hexToUint8"));
7
8
  function loadCrdtDocument(key, doDefault) {
8
9
  var _this = this;
9
10
  if (doDefault === void 0) { doDefault = true; }
@@ -14,18 +15,12 @@ function loadCrdtDocument(key, doDefault) {
14
15
  else {
15
16
  _this.store.get(key + ".crdt", function (err, data) {
16
17
  var currentDoc = null;
18
+ // console.warn(err, data);
17
19
  if (data) {
18
20
  // De-serealize stored crdt document
19
21
  // console.log("data", typeof data, data);
20
- var loaded_1 = data;
21
- if (typeof data === "string") {
22
- var split = data.split(",");
23
- loaded_1 = new Uint8Array(split.length);
24
- split.forEach(function (s, i) {
25
- loaded_1[i] = parseInt(s);
26
- });
27
- }
28
- currentDoc = automerge_1.default.load(loaded_1);
22
+ var loaded = (0, hexToUint8_1.default)(data);
23
+ currentDoc = automerge_1.default.load(loaded);
29
24
  // console.log("CRDT LOADED", key, currentDoc);
30
25
  }
31
26
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"loadCrdtDocument.js","sourceRoot":"","sources":["../src/loadCrdtDocument.ts"],"names":[],"mappings":";;;;;AACA,wDAAkC;AAElC,SAAwB,gBAAgB,CAEtC,GAAW,EACX,SAAgB;IAHlB,iBAoCC;IAjCC,0BAAA,EAAA,gBAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACvB,OAAO,CAAC,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;SAC9B;aAAM;YACL,KAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,UAAO,EAAE,UAAC,GAAG,EAAE,IAAa;gBAC/C,IAAI,UAAU,GAAG,IAAI,CAAC;gBACtB,IAAI,IAAI,EAAE;oBACR,oCAAoC;oBACpC,0CAA0C;oBAC1C,IAAI,QAAM,GAAG,IAAkB,CAAC;oBAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;wBAC5B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC9B,QAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBAEtC,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;4BACjB,QAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC1B,CAAC,CAAC,CAAC;qBACJ;oBACD,UAAU,GAAG,mBAAS,CAAC,IAAI,CAAC,QAAa,CAAC,CAAC;oBAC3C,+CAA+C;iBAChD;qBAAM;oBACL,0CAA0C;oBAC1C,IAAI,SAAS,EAAE;wBACb,UAAU,GAAG,mBAAS,CAAC,IAAI,EAAE,CAAC;qBAC/B;iBACF;gBAED,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AApCD,mCAoCC"}
1
+ {"version":3,"file":"loadCrdtDocument.js","sourceRoot":"","sources":["../src/loadCrdtDocument.ts"],"names":[],"mappings":";;;;;AACA,wDAAkC;AAClC,2EAAqD;AAErD,SAAwB,gBAAgB,CAEtC,GAAW,EACX,SAAgB;IAHlB,iBA8BC;IA3BC,0BAAA,EAAA,gBAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACvB,OAAO,CAAC,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;SAC9B;aAAM;YACL,KAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,UAAO,EAAE,UAAC,GAAG,EAAE,IAAI;gBACtC,IAAI,UAAU,GAAG,IAAI,CAAC;gBACtB,2BAA2B;gBAC3B,IAAI,IAAI,EAAE;oBACR,oCAAoC;oBACpC,0CAA0C;oBAC1C,IAAM,MAAM,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC;oBAEhC,UAAU,GAAG,mBAAS,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;oBAC3C,+CAA+C;iBAChD;qBAAM;oBACL,0CAA0C;oBAC1C,IAAI,SAAS,EAAE;wBACb,UAAU,GAAG,mBAAS,CAAC,IAAI,EAAE,CAAC;qBAC/B;iBACF;gBAED,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AA9BD,mCA8BC"}
@@ -1,2 +1,3 @@
1
- import { CrdtMessage, ToolDb } from "..";
1
+ import { ToolDb } from "..";
2
+ import { CrdtMessage } from "../types/message";
2
3
  export default function handleCrdt(this: ToolDb, message: CrdtMessage, remotePeerId: string): void;
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var __1 = require("..");
4
3
  function handleCrdt(message, remotePeerId) {
5
4
  var key = message.key;
6
5
  this.triggerKeyListener(key, message);
7
- // OOHH THE TYPECAST PAIN
8
- // This works but the hacking is awful, we need a better solution for storing the crdts
9
- var savedDoc = (0, __1.base64ToBinaryDocument)(message.doc);
10
- this.store.put(key + ".crdt", savedDoc, function (err, data) {
6
+ this.store.put(key + ".crdt", message.doc, function (err, data) {
11
7
  //
12
8
  });
13
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handleCrdt.js","sourceRoot":"","sources":["../../src/messageHandlers/handleCrdt.ts"],"names":[],"mappings":";;AAAA,wBAAiE;AAEjE,SAAwB,UAAU,CAEhC,OAAoB,EACpB,YAAoB;IAEpB,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEtC,yBAAyB;IACzB,uFAAuF;IACvF,IAAM,QAAQ,GAAG,IAAA,0BAAsB,EAAC,OAAO,CAAC,GAAG,CAAQ,CAAC;IAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,UAAO,EAAE,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;QAChD,EAAE;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAdD,6BAcC"}
1
+ {"version":3,"file":"handleCrdt.js","sourceRoot":"","sources":["../../src/messageHandlers/handleCrdt.ts"],"names":[],"mappings":";;AAGA,SAAwB,UAAU,CAEhC,OAAoB,EACpB,YAAoB;IAEpB,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,UAAO,EAAE,OAAO,CAAC,GAAG,EAAE,UAAC,GAAG,EAAE,IAAI;QACnD,EAAE;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAXD,6BAWC"}
@@ -1,2 +1,3 @@
1
- import { CrdtGetMessage, ToolDb } from "..";
1
+ import { ToolDb } from "..";
2
+ import { CrdtGetMessage } from "../types/message";
2
3
  export default function handleCrdtGet(this: ToolDb, message: CrdtGetMessage, remotePeerId: string): void;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var automerge_1 = __importDefault(require("automerge"));
7
- var __1 = require("..");
7
+ var uint8ArrayToHex_1 = __importDefault(require("../utils/encoding/uint8ArrayToHex"));
8
8
  function handleCrdtGet(message, remotePeerId) {
9
9
  var _this = this;
10
10
  this.loadCrdtDocument(message.key, false).then(function (currentDoc) {
@@ -15,7 +15,7 @@ function handleCrdtGet(message, remotePeerId) {
15
15
  id: message.id,
16
16
  key: message.key,
17
17
  to: [],
18
- doc: (0, __1.uint8ToBase64)(saved),
18
+ doc: (0, uint8ArrayToHex_1.default)(saved),
19
19
  });
20
20
  }
21
21
  else {