@xyo-network/boundwitness-builder 2.62.2 → 2.63.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.
@@ -8,6 +8,7 @@ const boundwitness_model_1 = require("@xyo-network/boundwitness-model");
8
8
  const boundwitness_wrapper_1 = require("@xyo-network/boundwitness-wrapper");
9
9
  const core_1 = require("@xyo-network/core");
10
10
  const payload_1 = require("@xyo-network/payload");
11
+ const async_mutex_1 = require("async-mutex");
11
12
  class BoundWitnessBuilder {
12
13
  constructor(config = { inlinePayloads: false }, logger) {
13
14
  this.config = config;
@@ -23,25 +24,29 @@ class BoundWitnessBuilder {
23
24
  }));
24
25
  }
25
26
  build(meta = false) {
26
- var _a;
27
27
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
28
- const hashableFields = yield this.hashableFields();
29
- const _hash = yield boundwitness_wrapper_1.BoundWitnessWrapper.hashAsync(hashableFields);
30
- const ret = Object.assign(Object.assign({}, hashableFields), { _signatures: yield this.signatures(_hash) });
31
- if (meta !== null && meta !== void 0 ? meta : (_a = this.config) === null || _a === void 0 ? void 0 : _a.meta) {
32
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
- const bwWithMeta = ret;
34
- bwWithMeta._client = 'js';
35
- bwWithMeta._hash = _hash;
36
- bwWithMeta._timestamp = this._timestamp;
37
- }
38
- if (this.config.inlinePayloads) {
39
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
- const anyRet = ret;
41
- //leaving this in here to prevent breaking code (for now)
42
- anyRet._payloads = this.inlinePayloads();
43
- }
44
- return [ret, this._payloads];
28
+ return yield BoundWitnessBuilder._buildMutex.runExclusive(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
29
+ var _a;
30
+ const hashableFields = yield this.hashableFields();
31
+ const _hash = yield boundwitness_wrapper_1.BoundWitnessWrapper.hashAsync(hashableFields);
32
+ /* get all the previousHashes to verify atomic signing */
33
+ const previousHashes = this._accounts.map((account) => { var _a; return (_a = account.previousHash) === null || _a === void 0 ? void 0 : _a.hex; });
34
+ const ret = Object.assign(Object.assign({}, hashableFields), { _signatures: yield this.signatures(_hash, previousHashes) });
35
+ if (meta !== null && meta !== void 0 ? meta : (_a = this.config) === null || _a === void 0 ? void 0 : _a.meta) {
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ const bwWithMeta = ret;
38
+ bwWithMeta._client = 'js';
39
+ bwWithMeta._hash = _hash;
40
+ bwWithMeta._timestamp = this._timestamp;
41
+ }
42
+ if (this.config.inlinePayloads) {
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ const anyRet = ret;
45
+ //leaving this in here to prevent breaking code (for now)
46
+ anyRet._payloads = this.inlinePayloads();
47
+ }
48
+ return [ret, this._payloads];
49
+ }));
45
50
  });
46
51
  }
47
52
  hashableFields() {
@@ -99,10 +104,10 @@ class BoundWitnessBuilder {
99
104
  (_a = this._accounts) === null || _a === void 0 ? void 0 : _a.push(...accounts);
100
105
  return this;
101
106
  }
102
- signatures(_hash) {
107
+ signatures(_hash, previousHashes) {
103
108
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
104
109
  const hash = buffer_1.Buffer.from(_hash, 'hex');
105
- return yield Promise.all(this._accounts.map((account) => tslib_1.__awaiter(this, void 0, void 0, function* () { return buffer_1.Buffer.from(yield account.sign(hash)).toString('hex'); })));
110
+ return yield Promise.all(this._accounts.map((account, index) => tslib_1.__awaiter(this, void 0, void 0, function* () { return buffer_1.Buffer.from(yield account.sign(hash, previousHashes[index])).toString('hex'); })));
106
111
  });
107
112
  }
108
113
  getPayloadHashes() {
@@ -121,4 +126,5 @@ class BoundWitnessBuilder {
121
126
  }
122
127
  }
123
128
  exports.BoundWitnessBuilder = BoundWitnessBuilder;
129
+ BoundWitnessBuilder._buildMutex = new async_mutex_1.Mutex();
124
130
  //# sourceMappingURL=Builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}