@activeledger/activeprotocol 2.15.7 → 4.3.3

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 (49) hide show
  1. package/es/protocol/interfaces/vm.interface.d.ts +6 -4
  2. package/es/protocol/interfaces/vm.interface.d.ts.map +1 -1
  3. package/es/protocol/permissionsChecker.d.ts +5 -3
  4. package/es/protocol/permissionsChecker.d.ts.map +1 -1
  5. package/es/protocol/permissionsChecker.js +149 -120
  6. package/es/protocol/permissionsChecker.js.map +1 -1
  7. package/es/protocol/process.d.ts +10 -9
  8. package/es/protocol/process.d.ts.map +1 -1
  9. package/es/protocol/process.js +276 -214
  10. package/es/protocol/process.js.map +1 -1
  11. package/es/protocol/shared.d.ts +6 -2
  12. package/es/protocol/shared.d.ts.map +1 -1
  13. package/es/protocol/shared.js +41 -29
  14. package/es/protocol/shared.js.map +1 -1
  15. package/es/protocol/streamUpdater.d.ts +1 -6
  16. package/es/protocol/streamUpdater.d.ts.map +1 -1
  17. package/es/protocol/streamUpdater.js +80 -109
  18. package/es/protocol/streamUpdater.js.map +1 -1
  19. package/es/protocol/vm.d.ts +12 -5
  20. package/es/protocol/vm.d.ts.map +1 -1
  21. package/es/protocol/vm.js +212 -137
  22. package/es/protocol/vm.js.map +1 -1
  23. package/es/protocol/vmscript.js +23 -10
  24. package/es/protocol/vmscript.js.map +1 -1
  25. package/lib/protocol/interfaces/vm.interface.d.ts +6 -4
  26. package/lib/protocol/interfaces/vm.interface.d.ts.map +1 -1
  27. package/lib/protocol/permissionsChecker.d.ts +5 -3
  28. package/lib/protocol/permissionsChecker.d.ts.map +1 -1
  29. package/lib/protocol/permissionsChecker.js +149 -120
  30. package/lib/protocol/permissionsChecker.js.map +1 -1
  31. package/lib/protocol/process.d.ts +10 -9
  32. package/lib/protocol/process.d.ts.map +1 -1
  33. package/lib/protocol/process.js +276 -240
  34. package/lib/protocol/process.js.map +1 -1
  35. package/lib/protocol/shared.d.ts +6 -2
  36. package/lib/protocol/shared.d.ts.map +1 -1
  37. package/lib/protocol/shared.js +41 -29
  38. package/lib/protocol/shared.js.map +1 -1
  39. package/lib/protocol/streamUpdater.d.ts +1 -6
  40. package/lib/protocol/streamUpdater.d.ts.map +1 -1
  41. package/lib/protocol/streamUpdater.js +80 -109
  42. package/lib/protocol/streamUpdater.js.map +1 -1
  43. package/lib/protocol/vm.d.ts +12 -5
  44. package/lib/protocol/vm.d.ts.map +1 -1
  45. package/lib/protocol/vm.js +211 -136
  46. package/lib/protocol/vm.js.map +1 -1
  47. package/lib/protocol/vmscript.js +23 -9
  48. package/lib/protocol/vmscript.js.map +1 -1
  49. package/package.json +9 -9
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { ActiveDefinitions } from "@activeledger/activedefinitions";
3
- import { Standard, PostProcessQueryEvent, Activity } from "@activeledger/activecontracts";
3
+ import { Standard, Activity, PostProcessEvent } from "@activeledger/activecontracts";
4
4
  import { EventEngine } from "@activeledger/activequery";
5
5
  import { EventEmitter } from "events";
6
6
  export interface IVMObject {
@@ -32,10 +32,10 @@ export interface IVMDataPayload {
32
32
  outputs: ActiveDefinitions.LedgerStream[];
33
33
  readonly: ActiveDefinitions.LedgerIORputs;
34
34
  key: number;
35
- contractData?: ActiveDefinitions.IContractData;
35
+ contractData?: ActiveDefinitions.IContractData | undefined | null;
36
36
  }
37
37
  export interface IVMInternalCache {
38
- [umid: string]: PostProcessQueryEvent | Standard;
38
+ [umid: string]: PostProcessEvent | Standard;
39
39
  }
40
40
  export interface IContractKeyHolder {
41
41
  [umid: string]: number;
@@ -56,10 +56,12 @@ export interface IVMContractHolder {
56
56
  export interface IVirtualMachine {
57
57
  initialiseVirtualMachine(extraBuiltins?: string[], extraExternals?: string[], extraMocks?: string[]): void;
58
58
  getActivityStreamsFromVM(umid: string): ActiveDefinitions.LedgerStream[];
59
+ getNewContractData(umid: string): boolean;
59
60
  getInternodeCommsFromVM(umid: string): any;
60
61
  clearingInternodeCommsFromVM(umid: string): boolean;
61
62
  getReturnContractData(umid: string): unknown;
62
63
  getThrowsFromVM(umid: string): string[];
64
+ getEvents(umid: string): any[];
63
65
  destroy(umid: string): void;
64
66
  getInputs(umid: string): ActiveDefinitions.LedgerStream[];
65
67
  initialise(payload: IVMDataPayload, contractName: string): Promise<void>;
@@ -70,7 +72,7 @@ export interface IVirtualMachine {
70
72
  }>;
71
73
  commit(nodes: ActiveDefinitions.INodes, possibleTerritoriality: boolean, umid: string): Promise<boolean>;
72
74
  postProcess(territoriality: boolean, who: string, umid: string): Promise<any>;
73
- reconcile(nodes: ActiveDefinitions.INodes, umid: string): Promise<boolean>;
75
+ reconcile(nodes: ActiveDefinitions.INodes, umid: string): Promise<any>;
74
76
  }
75
77
  export {};
76
78
  //# sourceMappingURL=vm.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vm.interface.d.ts","sourceRoot":"","sources":["../../../src/protocol/interfaces/vm.interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vm.interface.d.ts","sourceRoot":"","sources":["../../../src/protocol/interfaces/vm.interface.ts"],"names":[],"mappings":"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"}
@@ -5,15 +5,17 @@ import { Shared } from "./shared";
5
5
  export declare class PermissionsChecker {
6
6
  private entry;
7
7
  private db;
8
- private checkRevs;
9
8
  private securityCache;
10
9
  private shared;
11
10
  private inputs;
12
11
  private data;
13
- constructor(entry: ActiveDefinitions.LedgerEntry, db: ActiveDSConnect, checkRevs: boolean, securityCache: ISecurityCache, shared: Shared);
14
- process(data: string[], inputs?: boolean): Promise<ActiveDefinitions.LedgerStream[]>;
12
+ constructor(entry: ActiveDefinitions.LedgerEntry, db: ActiveDSConnect, securityCache: ISecurityCache, shared: Shared);
13
+ process(data: string[], inputs?: boolean, retry?: number): Promise<ActiveDefinitions.LedgerStream[]>;
14
+ private sleep;
15
15
  private buildPromises;
16
16
  private processStreams;
17
17
  private signatureCheck;
18
+ private checkMultiSignature;
19
+ private checkSingleSignature;
18
20
  }
19
21
  //# sourceMappingURL=permissionsChecker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissionsChecker.d.ts","sourceRoot":"","sources":["../../src/protocol/permissionsChecker.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC,qBAAa,kBAAkB;IAkB3B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IAfhB,OAAO,CAAC,MAAM,CAAU;IAQxB,OAAO,CAAC,IAAI,CAAW;gBAGb,KAAK,EAAE,iBAAiB,CAAC,WAAW,EACpC,EAAE,EAAE,eAAe,EACnB,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,cAAc,EAC7B,MAAM,EAAE,MAAM;IAUX,OAAO,CAClB,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,GAAE,OAAc,GACrB,OAAO,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;YAsB9B,aAAa;IAsI3B,OAAO,CAAC,cAAc;IA8GtB,OAAO,CAAC,cAAc;CAuHvB"}
1
+ {"version":3,"file":"permissionsChecker.d.ts","sourceRoot":"","sources":["../../src/protocol/permissionsChecker.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AASlC,qBAAa,kBAAkB;IAkB3B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,EAAE;IAEV,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IAfhB,OAAO,CAAC,MAAM,CAAU;IAQxB,OAAO,CAAC,IAAI,CAAW;gBAGb,KAAK,EAAE,iBAAiB,CAAC,WAAW,EACpC,EAAE,EAAE,eAAe,EAEnB,aAAa,EAAE,cAAc,EAC7B,MAAM,EAAE,MAAM;IAUX,OAAO,CAClB,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,GAAE,OAAc,EACtB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;IA2C5C,OAAO,CAAC,KAAK;YAUC,aAAa;IA0J3B,OAAO,CAAC,cAAc;IAkItB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,oBAAoB;CAkC7B"}
@@ -1,13 +1,19 @@
1
1
  import { ActiveDefinitions } from "@activeledger/activedefinitions";
2
+ import { ActiveLogger } from "@activeledger/activelogger";
2
3
  export class PermissionsChecker {
3
- constructor(entry, db, checkRevs, securityCache, shared) {
4
+ entry;
5
+ db;
6
+ securityCache;
7
+ shared;
8
+ inputs;
9
+ data;
10
+ constructor(entry, db, securityCache, shared) {
4
11
  this.entry = entry;
5
12
  this.db = db;
6
- this.checkRevs = checkRevs;
7
13
  this.securityCache = securityCache;
8
14
  this.shared = shared;
9
15
  }
10
- async process(data, inputs = true) {
16
+ async process(data, inputs = true, retry = 0) {
11
17
  this.inputs = inputs;
12
18
  this.data = data;
13
19
  try {
@@ -15,69 +21,90 @@ export class PermissionsChecker {
15
21
  return this.processStreams(streams);
16
22
  }
17
23
  catch (error) {
18
- return Promise.reject(error);
24
+ const allowedRetries = 6;
25
+ const waitTime = 250;
26
+ if (retry >= allowedRetries) {
27
+ ActiveLogger.info(this.data, `Error Fetching Streams after ${allowedRetries} retries, giving up`);
28
+ return Promise.reject(error);
29
+ }
30
+ else {
31
+ ActiveLogger.info(this.data, `Error Fetching Streams retry ${retry} of ${allowedRetries} with ${waitTime}ms wait - ${this.entry.$umid}`);
32
+ await this.sleep(waitTime);
33
+ ActiveLogger.info(error, `Retrying PermissionsChecker due to - ${this.entry.$umid}`);
34
+ return await this.process(data, inputs, ++retry);
35
+ }
19
36
  }
20
37
  }
38
+ sleep(time) {
39
+ return new Promise((resolve) => setTimeout(resolve, time));
40
+ }
21
41
  async buildPromises() {
22
- const keys = [];
42
+ const keys = new Set();
23
43
  let contractDataIncluded = false;
24
- for (let i = this.data.length; i--;) {
25
- const filteredPrefix = this.shared.filterPrefix(this.data[i], true);
26
- const suffix = this.data[i].split(":")[1];
44
+ for (const streamId of this.data) {
45
+ const filteredPrefix = this.shared.filterPrefix(streamId, true);
46
+ const suffix = streamId.split(":")[1];
27
47
  contractDataIncluded = suffix === "data";
28
- if (keys.indexOf(filteredPrefix) === -1) {
29
- keys.push(filteredPrefix + ":stream");
30
- keys.push(filteredPrefix);
48
+ if (suffix !== "data") {
49
+ keys.add(filteredPrefix + ":stream");
50
+ }
51
+ if (!this.shared.sigOnly[filteredPrefix]) {
52
+ keys.add(filteredPrefix);
31
53
  }
32
54
  }
55
+ const keyArray = Array.from(keys);
33
56
  try {
34
- const docs = await this.db.allDocs({
35
- keys,
36
- include_docs: true,
37
- });
38
57
  const reorder = {};
39
58
  const results = [];
40
- for (let i = docs.rows.length; i--;) {
41
- const baseDoc = docs.rows[i].doc._id.replace(":stream", "");
42
- let iMeta = null;
43
- let iState = null;
44
- if (baseDoc === docs.rows[i].doc._id) {
45
- iState = docs.rows[i].doc;
46
- }
47
- else {
48
- iMeta = docs.rows[i].doc;
49
- if (iMeta.contractlock &&
50
- iMeta.contractlock.length &&
51
- iMeta.contractlock.indexOf(this.entry.$tx.$contract) === -1) {
52
- throw {
53
- code: 1700,
54
- reason: "Stream contract locked",
55
- };
56
- }
57
- if (iMeta.namespaceLock &&
58
- iMeta.namespaceLock.length &&
59
- iMeta.namespaceLock.indexOf(this.entry.$tx.$namespace) === -1) {
60
- throw {
61
- code: 1710,
62
- reason: "Stream namespace locked",
63
- };
64
- }
65
- }
66
- if (!reorder[baseDoc]) {
67
- reorder[baseDoc] = results.push({
68
- state: iState,
69
- meta: iMeta,
70
- });
71
- }
72
- else {
73
- const result = results[reorder[baseDoc] - 1];
74
- if (result.state) {
75
- if (iMeta)
76
- result.meta = iMeta;
77
- }
78
- else {
79
- if (iState)
80
- result.state = iState;
59
+ if (keyArray.length) {
60
+ const docs = await this.db.allDocs({
61
+ keys: keyArray,
62
+ include_docs: true,
63
+ });
64
+ if (docs?.rows) {
65
+ for (let i = docs.rows.length; i--;) {
66
+ const baseDoc = docs.rows[i].doc._id.replace(":stream", "");
67
+ let iMeta = null;
68
+ let iState = null;
69
+ if (baseDoc === docs.rows[i].doc._id) {
70
+ iState = docs.rows[i].doc;
71
+ }
72
+ else {
73
+ iMeta = docs.rows[i].doc;
74
+ if (iMeta.contractlock &&
75
+ iMeta.contractlock.length &&
76
+ iMeta.contractlock.indexOf(this.entry.$tx.$contract) === -1) {
77
+ throw {
78
+ code: 1700,
79
+ reason: "Stream contract locked",
80
+ };
81
+ }
82
+ if (iMeta.namespaceLock &&
83
+ iMeta.namespaceLock.length &&
84
+ iMeta.namespaceLock.indexOf(this.entry.$tx.$namespace) === -1) {
85
+ throw {
86
+ code: 1710,
87
+ reason: "Stream namespace locked",
88
+ };
89
+ }
90
+ }
91
+ if (!reorder[baseDoc]) {
92
+ reorder[baseDoc] = results.push({
93
+ state: iState,
94
+ meta: iMeta,
95
+ });
96
+ }
97
+ else {
98
+ const result = results[reorder[baseDoc] - 1];
99
+ if (result.state) {
100
+ if (iMeta)
101
+ result.meta = iMeta;
102
+ }
103
+ else {
104
+ if (iState)
105
+ result.state = iState;
106
+ }
107
+ }
81
108
  }
82
109
  }
83
110
  }
@@ -88,13 +115,15 @@ export class PermissionsChecker {
88
115
  let cRes = results[i];
89
116
  cRes.meta = {
90
117
  _id: `${cRes.state._id}:meta`,
91
- _rev: "0-context"
118
+ _rev: "0-context",
92
119
  };
93
120
  results[i] = cRes;
121
+ keyArray.push(`${cRes.state._id}:meta`);
94
122
  }
95
123
  }
96
124
  }
97
- if (results.length === (keys.length / 2)) {
125
+ const sigOnlyAdjustment = this.data.filter(id => this.shared.sigOnly[this.shared.filterPrefix(id, true)]).length;
126
+ if (results.length * 2 === (keyArray.length + sigOnlyAdjustment)) {
98
127
  return results;
99
128
  }
100
129
  else {
@@ -105,8 +134,11 @@ export class PermissionsChecker {
105
134
  }
106
135
  }
107
136
  catch (error) {
108
- error.code = 950;
109
- error.reason = "Stream(s) not found";
137
+ ActiveLogger.error(error, "Error fetching streams for permissions check - " + this.entry.$umid);
138
+ if (!error.code) {
139
+ error.code = 950;
140
+ error.reason = "Stream(s) not found";
141
+ }
110
142
  throw error;
111
143
  }
112
144
  }
@@ -115,14 +147,15 @@ export class PermissionsChecker {
115
147
  let i = stream.length;
116
148
  while (i--) {
117
149
  let streamId = stream[i].state._id;
150
+ const filteredStreamId = this.shared.filterPrefix(streamId);
118
151
  const revType = this.inputs ? this.entry.$revs.$i : this.entry.$revs.$o;
119
152
  const currentRevision = stream[i].meta._rev + ":" + stream[i].state._rev;
120
153
  if (revType && revType[streamId]) {
121
- if (revType[streamId] !== currentRevision) {
154
+ if ((revType[streamId] !== currentRevision) && !this.shared.sigOnly[filteredStreamId]) {
122
155
  return reject({
123
156
  code: 1200,
124
157
  reason: (this.inputs ? "Input" : "Output") +
125
- " Stream Position Incorrect",
158
+ ` Stream Position Incorrect (${revType[streamId]} !== ${currentRevision} - Local)`,
126
159
  });
127
160
  }
128
161
  }
@@ -147,11 +180,11 @@ export class PermissionsChecker {
147
180
  }
148
181
  }
149
182
  if (stream[i].meta.authorities) {
150
- this.signatureCheck(streamId, stream[i], nhpkCheck, nhpkCheckIO, reject);
183
+ this.signatureCheck(streamId, filteredStreamId, stream[i], nhpkCheck, nhpkCheckIO, reject);
151
184
  }
152
185
  else {
153
186
  const type = stream[i].meta.type ? stream[i].meta.type : "rsa";
154
- const sigCheck = this.shared.signatureCheck(stream[i].meta.public, this.entry.$sigs[this.shared.filterPrefix(streamId)], type);
187
+ const sigCheck = this.shared.signatureCheck(stream[i].meta.public, this.entry.$sigs[filteredStreamId], type);
155
188
  if (!sigCheck) {
156
189
  return reject({
157
190
  code: 1220,
@@ -159,77 +192,73 @@ export class PermissionsChecker {
159
192
  });
160
193
  }
161
194
  }
195
+ if (this.shared.sigOnly[streamId]) {
196
+ stream.splice(i, 1);
197
+ }
162
198
  }
163
199
  }
164
200
  resolve(stream);
165
201
  });
166
202
  }
167
- signatureCheck(streamId, stream, nhpkCheck, nhpkCheckIO, reject) {
168
- const sigCheck = (authority) => this.shared.signatureCheck(authority.public, this.entry.$sigs[this.shared.filterPrefix(streamId)], authority.type);
169
- const isLedgerAuthSignatures = ActiveDefinitions.LedgerTypeChecks.isLedgerAuthSignatures(this.entry.$sigs[this.shared.filterPrefix(streamId)]);
170
- if (isLedgerAuthSignatures) {
171
- const sigStreamKeys = Object.keys(this.entry.$sigs[this.shared.filterPrefix(streamId)]);
172
- const authorities = stream.meta.authorities.length;
173
- if (sigStreamKeys.length > authorities) {
174
- return reject({
175
- code: 1225,
176
- reason: (this.inputs ? "Input" : "Output") +
177
- " Incorrect Signature List Length",
178
- });
179
- }
180
- const sigCheck = sigStreamKeys.every((sigStream) => {
181
- if (nhpkCheck) {
182
- const nhpk = false;
183
- if (!nhpk) {
184
- return reject({
185
- code: 1230,
186
- reason: (this.inputs ? "Input" : "Output") +
187
- " Security Hardened Key Transactions Only",
188
- });
189
- }
190
- }
191
- else {
192
- const signature = this.entry.$sigs[this.shared.filterPrefix(streamId)][sigStream];
193
- const authCheck = stream.meta.authorities.some((authority) => {
194
- if (authority.hash === sigStream) {
195
- return this.shared.signatureCheck(authority.public, signature, authority.type);
196
- }
197
- else {
198
- return false;
199
- }
200
- });
201
- return authCheck;
202
- }
203
+ signatureCheck(streamId, filteredStreamId, stream, nhpkCheck, nhpkCheckIO, reject) {
204
+ const sigCheck = (authority) => this.shared.signatureCheck(authority.public, this.entry.$sigs[filteredStreamId], authority.type);
205
+ const signatureContainer = this.entry.$sigs[filteredStreamId];
206
+ if (ActiveDefinitions.LedgerTypeChecks.isLedgerAuthSignatures(signatureContainer)) {
207
+ this.checkMultiSignature(streamId, stream, signatureContainer, nhpkCheck, reject);
208
+ }
209
+ else {
210
+ this.checkSingleSignature(streamId, filteredStreamId, stream, signatureContainer, nhpkCheck, nhpkCheckIO, reject);
211
+ }
212
+ }
213
+ checkMultiSignature(streamId, stream, signatureContainer, nhpkCheck, reject) {
214
+ const sigStreamKeys = Object.keys(signatureContainer);
215
+ if (sigStreamKeys.length > stream.meta.authorities.length) {
216
+ return reject({
217
+ code: 1225,
218
+ reason: `${this.inputs ? "Input" : "Output"} Incorrect Signature List Length`,
203
219
  });
204
- if (!sigCheck) {
220
+ }
221
+ const allSignaturesValid = sigStreamKeys.every((sigStream) => {
222
+ if (nhpkCheck) {
223
+ return false;
205
224
  }
225
+ const signature = signatureContainer[sigStream];
226
+ return stream.meta.authorities.some((authority) => authority.hash === sigStream && this.shared.signatureCheck(authority.public, signature, authority.type));
227
+ });
228
+ if (!allSignaturesValid) {
229
+ return reject({
230
+ code: 1220,
231
+ reason: `${this.inputs ? "Input" : "Output"} Signature Incorrect`,
232
+ });
206
233
  }
207
- else {
208
- const authorityCheck = stream.meta.authorities.some((authority) => {
234
+ }
235
+ checkSingleSignature(streamId, filteredStreamId, stream, signature, nhpkCheck, nhpkCheckIO, reject) {
236
+ const authorityCheck = stream.meta.authorities.some((authority) => {
237
+ if (nhpkCheck) {
209
238
  const nhpk = nhpkCheckIO[this.shared.getLabelIOMap(this.inputs, streamId)].$nhpk;
210
- if (nhpkCheck && !nhpk) {
211
- return reject({
239
+ if (!nhpk) {
240
+ reject({
212
241
  code: 1230,
213
- reason: (this.inputs ? "Input" : "Output") +
214
- " Security Hardened Key Transactions Only",
242
+ reason: `${this.inputs ? "Input" : "Output"} Security Hardened Key Transactions Only`,
215
243
  });
244
+ return false;
216
245
  }
217
- if (authority.hash && sigCheck(authority)) {
218
- this.entry.$sigs[this.shared.filterPrefix(streamId)] = {
219
- [authority.hash]: this.entry.$sigs[this.shared.filterPrefix(streamId)],
246
+ }
247
+ if (this.shared.signatureCheck(authority.public, signature, authority.type)) {
248
+ if (authority.hash) {
249
+ this.entry.$sigs[filteredStreamId] = {
250
+ [authority.hash]: signature,
220
251
  };
221
- return true;
222
252
  }
223
- else {
224
- return false;
225
- }
226
- });
227
- if (!authorityCheck) {
228
- return reject({
229
- code: 1220,
230
- reason: (this.inputs ? "Input" : "Output") + " Signature Incorrect",
231
- });
253
+ return true;
232
254
  }
255
+ return false;
256
+ });
257
+ if (!authorityCheck) {
258
+ reject({
259
+ code: 1220,
260
+ reason: `${this.inputs ? "Input" : "Output"} Signature Incorrect`,
261
+ });
233
262
  }
234
263
  }
235
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"permissionsChecker.js","sourceRoot":"","sources":["../../src/protocol/permissionsChecker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissionsChecker.js","sourceRoot":"","sources":["../../src/protocol/permissionsChecker.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { EventEmitter } from "events";
3
3
  import { ActiveDSConnect } from "@activeledger/activeoptions";
4
4
  import { ActiveCrypto } from "@activeledger/activecrypto";
5
5
  import { ActiveDefinitions } from "@activeledger/activedefinitions";
6
+ import { LedgerEntry } from "@activeledger/activedefinitions/lib/definitions";
6
7
  export declare class Process extends EventEmitter {
7
8
  private entry;
8
9
  private selfHost;
@@ -12,14 +13,11 @@ export declare class Process extends EventEmitter {
12
13
  private dbe;
13
14
  private dbev;
14
15
  private secured;
16
+ private static networkNodeLength;
15
17
  private static generalContractVM;
16
- private static defaultContractsVM;
17
- private static singleContractVMHolder;
18
18
  private isDefault;
19
- private contractRef;
20
19
  private inputs;
21
20
  private outputs;
22
- private checkRevs;
23
21
  private nodeResponse;
24
22
  private contractLocation;
25
23
  private contractId;
@@ -28,7 +26,7 @@ export declare class Process extends EventEmitter {
28
26
  private storeSingleError;
29
27
  private errorOut;
30
28
  private broadcastTimeout;
31
- private currentVotes;
29
+ private currentTrueVotes;
32
30
  private securityCache;
33
31
  private shared;
34
32
  private permissionChecker;
@@ -37,19 +35,22 @@ export declare class Process extends EventEmitter {
37
35
  constructor(entry: ActiveDefinitions.LedgerEntry, selfHost: string, reference: string, right: ActiveDefinitions.INeighbourBase, db: ActiveDSConnect, dbe: ActiveDSConnect, dbev: ActiveDSConnect, secured: ActiveCrypto.Secured);
38
36
  destroy(umid: string): void;
39
37
  private sortVersions;
40
- start(contractVersion?: string): Promise<void>;
38
+ private static contractPathCache;
39
+ static clearContractPathCache(contractId?: string): void;
40
+ start(contractVersion?: string, contractData?: ActiveDefinitions.IContractData | undefined | null): Promise<void>;
41
41
  updatedFromBroadcast(node?: any): void;
42
42
  isCommiting(): boolean;
43
- private processDefaultContracts;
44
- private processUnsafeContracts;
43
+ private getContractDate;
45
44
  private handleVM;
46
45
  private process;
47
46
  private postVote;
48
47
  emitFailed(data?: {
49
48
  status: number;
50
49
  error: string | Error;
51
- }): void;
50
+ entry?: LedgerEntry;
51
+ }, noWait?: boolean): void;
52
52
  private hasOutstandingVotes;
53
+ private countOutstandingVotes;
53
54
  private initRightKnock;
54
55
  private sleep;
55
56
  private canCommit;
@@ -1 +1 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/protocol/process.ts"],"names":[],"mappings":";AAwBA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAiB,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAqBpE,qBAAa,OAAQ,SAAQ,YAAY;IAuMrC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IArMjB,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAiB;IASjD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAiB;IAUlD,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAyB;IAQ9D,OAAO,CAAC,SAAS,CAAkB;IAQnC,OAAO,CAAC,WAAW,CAAS;IAQ5B,OAAO,CAAC,MAAM,CAAW;IAQzB,OAAO,CAAC,OAAO,CAAW;IAQ1B,OAAO,CAAC,SAAS,CAAiB;IAQlC,OAAO,CAAC,YAAY,CAAkC;IAQtD,OAAO,CAAC,gBAAgB,CAAS;IASjC,OAAO,CAAC,UAAU,CAAS;IAO3B,OAAO,CAAC,SAAS,CAAS;IAO1B,OAAO,CAAC,MAAM,CAAQ;IAQtB,OAAO,CAAC,gBAAgB,CAAS;IAOjC,OAAO,CAAC,QAAQ,CAId;IAQF,OAAO,CAAC,gBAAgB,CAAiB;IAQzC,OAAO,CAAC,YAAY,CAAS;IAQ7B,OAAO,CAAC,aAAa,CAAwB;IAQ7C,OAAO,CAAC,MAAM,CAAS;IAQvB,OAAO,CAAC,iBAAiB,CAAqB;IAQ9C,OAAO,CAAC,QAAQ,CAAiB;IAQjC,OAAO,CAAC,YAAY,CAAwD;gBAiBlE,KAAK,EAAE,iBAAiB,CAAC,WAAW,EACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,iBAAiB,CAAC,cAAc,EACvC,EAAE,EAAE,eAAe,EACnB,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,YAAY,CAAC,OAAO;IA4ChC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IA8ClC,OAAO,CAAC,YAAY;IAiBP,KAAK,CAAC,eAAe,CAAC,EAAE,MAAM;IAqSpC,oBAAoB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IA6CtC,WAAW,IAAI,OAAO;IAW7B,OAAO,CAAC,uBAAuB;IAqC/B,OAAO,CAAC,sBAAsB;YA6ChB,QAAQ;YAiJR,OAAO;IAkIrB,OAAO,CAAC,QAAQ;IA8GT,UAAU,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE;IA8BlE,OAAO,CAAC,mBAAmB;YAmBb,cAAc;IA2B5B,OAAO,CAAC,KAAK;IAWb,OAAO,CAAC,SAAS;YAkCH,MAAM;IAiSpB,OAAO,CAAC,kBAAkB;IA6D1B,OAAO,CAAC,UAAU;CAiBnB"}
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/protocol/process.ts"],"names":[],"mappings":";AAwBA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAiB,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAMpE,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAe9E,qBAAa,OAAQ,SAAQ,YAAY;IAgNrC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IA7MjB,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAK;IAQrC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAiB;IA2BjD,OAAO,CAAC,SAAS,CAAkB;IAgBnC,OAAO,CAAC,MAAM,CAAW;IAQzB,OAAO,CAAC,OAAO,CAAW;IAgB1B,OAAO,CAAC,YAAY,CAAkC;IAQtD,OAAO,CAAC,gBAAgB,CAAS;IASjC,OAAO,CAAC,UAAU,CAAS;IAO3B,OAAO,CAAC,SAAS,CAAS;IAO1B,OAAO,CAAC,MAAM,CAAQ;IAQtB,OAAO,CAAC,gBAAgB,CAAS;IAOjC,OAAO,CAAC,QAAQ,CAId;IAQF,OAAO,CAAC,gBAAgB,CAAiB;IAQzC,OAAO,CAAC,gBAAgB,CAAS;IAQjC,OAAO,CAAC,aAAa,CAAwB;IAQ7C,OAAO,CAAC,MAAM,CAAS;IAQvB,OAAO,CAAC,iBAAiB,CAAqB;IAQ9C,OAAO,CAAC,QAAQ,CAAiB;IAQjC,OAAO,CAAC,YAAY,CAAwD;gBAiBlE,KAAK,EAAE,iBAAiB,CAAC,WAAW,EACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,iBAAiB,CAAC,cAAc,EACvC,EAAE,EAAE,eAAe,EACnB,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,YAAY,CAAC,OAAO;IAiDhC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAwDlC,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAEzB;WAKO,sBAAsB,CAAC,UAAU,CAAC,EAAE,MAAM;IAgB3C,KAAK,CAChB,eAAe,CAAC,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,iBAAiB,CAAC,aAAa,GAAG,SAAS,GAAG,IAAI;IAqU5D,oBAAoB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IA2EtC,WAAW,IAAI,OAAO;YAWf,eAAe;YAkFf,QAAQ;YA8IR,OAAO;IAyErB,OAAO,CAAC,QAAQ;IA8HT,UAAU,CACf,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAC,KAAK,CAAC,EAAE,WAAW,CAAA;KAAE,EACrE,MAAM,CAAC,EAAE,OAAO;IA+BlB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,qBAAqB;YAsBf,cAAc;IA2B5B,OAAO,CAAC,KAAK;IAWb,OAAO,CAAC,SAAS;YAwCH,MAAM;IA+RpB,OAAO,CAAC,kBAAkB;IA6D1B,OAAO,CAAC,UAAU;CAsBnB"}