@kynesyslabs/demosdk 1.4.7 → 1.4.9

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.
package/README.md CHANGED
@@ -1,5 +1,3 @@
1
- # @kynesyslabs/demosdk
2
-
3
1
  Demos SDKs metapackage
4
2
 
5
3
  ### Multichain SDKs Usage
@@ -50,7 +50,7 @@ class DemosWork {
50
50
  script.operationOrder = [...script.operationOrder];
51
51
  // remove all step outputs
52
52
  for (const stepUID in script.steps) {
53
- delete script.steps[stepUID].output;
53
+ console.log("stepUID", script.steps[stepUID]);
54
54
  delete script.steps[stepUID].id;
55
55
  }
56
56
  // remove all operation uids
@@ -1 +1 @@
1
- {"version":3,"file":"work.js","sourceRoot":"","sources":["../../../src/demoswork/work.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"work.js","sourceRoot":"","sources":["../../../src/demoswork/work.ts"],"names":[],"mappings":"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"}
@@ -1,78 +1,30 @@
1
1
  import { IWeb2Request, XMScript } from "../types";
2
2
  import { INativePayload } from "../types/native";
3
- import { DataTypes } from "../types/demoswork/datatypes";
4
3
  import { StepOutputKey, WorkStepInput } from "../types/demoswork/steps";
5
4
  export declare class WorkStep {
6
5
  id: string;
7
6
  context: string;
8
7
  content: WorkStepInput;
9
- output: {
10
- [key: string]: StepOutputKey;
11
- };
12
8
  description: string;
13
9
  timestamp: number;
14
10
  critical: boolean;
15
11
  depends_on: string[];
16
12
  constructor(payload: WorkStepInput);
17
- /**
18
- * Sign a work step using a private key
19
- *
20
- * @param privateKey The private key
21
- * @returns The signature
22
- */
23
- execute(): void;
13
+ get output(): {
14
+ [key: string]: StepOutputKey;
15
+ };
16
+ get base_output(): StepOutputKey;
24
17
  }
25
18
  export declare class Web2WorkStep extends WorkStep {
26
19
  context: string;
27
- output: {
28
- statusCode: {
29
- type: DataTypes.work;
30
- src: {
31
- self: Web2WorkStep;
32
- key: string;
33
- };
34
- };
35
- payload: {
36
- type: DataTypes.work;
37
- src: {
38
- key: string;
39
- self: Web2WorkStep;
40
- };
41
- };
42
- };
43
20
  constructor(payload: IWeb2Request);
44
21
  }
45
22
  export declare class XmWorkStep extends WorkStep {
46
23
  context: string;
47
- output: {
48
- result: {
49
- type: DataTypes.work;
50
- src: {
51
- self: XmWorkStep;
52
- key: string;
53
- };
54
- };
55
- hash: {
56
- type: DataTypes.work;
57
- src: {
58
- self: XmWorkStep;
59
- key: string;
60
- };
61
- };
62
- };
63
24
  constructor(payload: XMScript);
64
25
  }
65
26
  export declare class NativeWorkStep extends WorkStep {
66
27
  context: string;
67
- output: {
68
- result: {
69
- type: DataTypes.work;
70
- src: {
71
- self: NativeWorkStep;
72
- key: string;
73
- };
74
- };
75
- };
76
28
  constructor(payload: INativePayload);
77
29
  }
78
30
  export declare function prepareXMStep(xm_payload: XMScript): XmWorkStep;
@@ -15,30 +15,27 @@ class WorkStep {
15
15
  this.content = payload;
16
16
  this.id = "step_" + (0, utils_1.getNewUID)();
17
17
  }
18
- // signature: forge.pki.ed25519.BinaryBuffer
19
- // get hash() {
20
- // // REVIEW: What fields should be hashed?
21
- // return Hashing.sha256(JSON.stringify(this))
22
- // }
23
- /**
24
- * Sign a work step using a private key
25
- *
26
- * @param privateKey The private key
27
- * @returns The signature
28
- */
29
- // sign(privateKey: forge.pki.ed25519.BinaryBuffer | any) {
30
- // if (privateKey.type == "string") {
31
- // privateKey = HexToForge(privateKey)
32
- // }
33
- // this.signature = forge.pki.ed25519.sign({
34
- // message: this.hash,
35
- // encoding: "utf8",
36
- // privateKey,
37
- // })
38
- // return this.signature
39
- // }
40
- execute() {
41
- // INFO: Send payload or execute web2 request here
18
+ get output() {
19
+ return new Proxy({
20
+ type: datatypes_1.DataTypes.work,
21
+ src: {
22
+ self: this,
23
+ key: "output",
24
+ },
25
+ }, {
26
+ get: (target, prop) => {
27
+ return {
28
+ type: datatypes_1.DataTypes.work,
29
+ src: {
30
+ self: this,
31
+ key: `output.${String(prop)}`,
32
+ },
33
+ };
34
+ },
35
+ });
36
+ }
37
+ get base_output() {
38
+ return this.output;
42
39
  }
43
40
  }
44
41
  exports.WorkStep = WorkStep;
@@ -46,22 +43,6 @@ class Web2WorkStep extends WorkStep {
46
43
  constructor(payload) {
47
44
  super(payload);
48
45
  this.context = "web2";
49
- this.output = {
50
- statusCode: {
51
- type: datatypes_1.DataTypes.work,
52
- src: {
53
- self: this,
54
- key: "output.statusCode",
55
- },
56
- },
57
- payload: {
58
- type: datatypes_1.DataTypes.work,
59
- src: {
60
- key: "output.payload",
61
- self: this,
62
- },
63
- },
64
- };
65
46
  }
66
47
  }
67
48
  exports.Web2WorkStep = Web2WorkStep;
@@ -69,23 +50,6 @@ class XmWorkStep extends WorkStep {
69
50
  constructor(payload) {
70
51
  super(payload);
71
52
  this.context = "xm";
72
- this.output = {
73
- // REVIEW: What result fields do developers need?
74
- result: {
75
- type: datatypes_1.DataTypes.work,
76
- src: {
77
- self: this,
78
- key: "output.result",
79
- },
80
- },
81
- hash: {
82
- type: datatypes_1.DataTypes.work,
83
- src: {
84
- self: this,
85
- key: "output.hash",
86
- },
87
- },
88
- };
89
53
  }
90
54
  }
91
55
  exports.XmWorkStep = XmWorkStep;
@@ -93,15 +57,6 @@ class NativeWorkStep extends WorkStep {
93
57
  constructor(payload) {
94
58
  super(payload);
95
59
  this.context = "native";
96
- this.output = {
97
- result: {
98
- type: datatypes_1.DataTypes.work,
99
- src: {
100
- self: this,
101
- key: "output.result",
102
- },
103
- },
104
- };
105
60
  }
106
61
  }
107
62
  exports.NativeWorkStep = NativeWorkStep;
@@ -1 +1 @@
1
- {"version":3,"file":"workstep.js","sourceRoot":"","sources":["../../../src/demoswork/workstep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workstep.js","sourceRoot":"","sources":["../../../src/demoswork/workstep.ts"],"names":[],"mappings":";;;AA8EA,sCAEC;AAED,0CAqBC;AAED,8CAEC;AAvGD,mCAAmC;AAEnC,qCAAoC;AAGpC,2DAAuD;AAGvD,MAAa,QAAQ;IASjB,YAAY,OAAsB;QAJlC,cAAS,GAAW,IAAI,CAAC,GAAG,EAAE,CAAA;QAC9B,aAAQ,GAAY,KAAK,CAAA;QACzB,eAAU,GAAa,EAAE,CAAA;QAGrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,EAAE,GAAG,OAAO,GAAG,IAAA,iBAAS,GAAE,CAAA;IACnC,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,KAAK,CACZ;YACI,IAAI,EAAE,qBAAS,CAAC,IAAI;YACpB,GAAG,EAAE;gBACD,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,QAAQ;aAChB;SACG,EACR;YACI,GAAG,EAAE,CAAC,MAAM,EAAE,IAAqB,EAAE,EAAE;gBACnC,OAAO;oBACH,IAAI,EAAE,qBAAS,CAAC,IAAI;oBACpB,GAAG,EAAE;wBACD,IAAI,EAAE,IAAI;wBACV,GAAG,EAAE,UAAU,MAAM,CAAC,IAAI,CAAC,EAAE;qBAChC;iBACJ,CAAA;YACL,CAAC;SACJ,CACJ,CAAA;IACL,CAAC;IACD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,MAAkC,CAAA;IAClD,CAAC;CACJ;AAvCD,4BAuCC;AAED,MAAa,YAAa,SAAQ,QAAQ;IAGtC,YAAY,OAAqB;QAC7B,KAAK,CAAC,OAAO,CAAC,CAAA;QAHT,YAAO,GAAG,MAAM,CAAA;IAIzB,CAAC;CACJ;AAND,oCAMC;AAED,MAAa,UAAW,SAAQ,QAAQ;IAGpC,YAAY,OAAiB;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QAHT,YAAO,GAAG,IAAI,CAAA;IAIvB,CAAC;CACJ;AAND,gCAMC;AAED,MAAa,cAAe,SAAQ,QAAQ;IAGxC,YAAY,OAAuB;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAA;QAHT,YAAO,GAAG,QAAQ,CAAA;IAI3B,CAAC;CACJ;AAND,wCAMC;AAED,6BAA6B;AAC7B,SAAgB,aAAa,CAAC,UAAoB;IAC9C,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,CAAA;AACrC,CAAC;AAED,SAAgB,eAAe,CAAC,EAC5B,MAAM,GAAG,KAAK,EACd,GAAG,GAAG,uBAAuB,EAC7B,UAAU,GAAG,EAAE,EACf,mBAAmB,GAAG,IAAI,EAC1B,OAAO,GAAG,IAAI,EACd,eAAe,GAAG,CAAC,GACtB;IACG,6CAA6C;IAC7C,MAAM,YAAY,GAAiB,eAAe,CAAC,kBAAS,CAAC,YAAY,CAAC,CAAA;IAC1E,YAAY,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAA;IAChC,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IAC1B,YAAY,CAAC,GAAG,CAAC,UAAU,GAAG,UAAU,CAAA;IACxC,YAAY,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAA;IAClC,YAAY,CAAC,GAAG,CAAC,eAAe,GAAG,eAAe,CAAA;IAClD,uCAAuC;IACvC,YAAY,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAA;IACrC,YAAY,CAAC,IAAI,GAAG,EAAE,CAAA;IACtB,YAAY,CAAC,SAAS,GAAG,EAAE,CAAA;IAC3B,YAAY,CAAC,MAAM,GAAG,EAAE,CAAA;IACxB,OAAO,IAAI,YAAY,CAAC,YAAY,CAAC,CAAA;AACzC,CAAC;AAED,SAAgB,iBAAiB,CAAC,cAA8B;IAC5D,OAAO,IAAI,cAAc,CAAC,cAAc,CAAC,CAAA;AAC7C,CAAC"}
@@ -6,8 +6,10 @@ export default class L2PS {
6
6
  uid: forge.pki.rsa.PublicKey;
7
7
  pam: string;
8
8
  decryptionKey: forge.pki.rsa.PrivateKey;
9
+ partecipatingNodes: Map<string, string>;
9
10
  encryptedTransactions: Map<string, EncryptedTransaction>;
10
11
  constructor();
12
+ getPartecipatingNodes(): Promise<Map<string, string>>;
11
13
  getEncryptedTransactions(blockNumber: number): Promise<EncryptedTransaction[]>;
12
14
  getEncryptedTransaction(eHash: string): Promise<EncryptedTransaction>;
13
15
  private encryptTx;
@@ -28,8 +28,9 @@ const forge = __importStar(require("node-forge"));
28
28
  const encryption_1 = require("../encryption");
29
29
  const websdk_1 = require("../websdk");
30
30
  class L2PS {
31
- // TODO Add encryptedTransactions to the Block class and edit the db consequently
32
31
  constructor() {
32
+ // This will be retrieved from the db (blocks)
33
+ this.partecipatingNodes = new Map(); // ? Map<publicKey, connectionstring (as in Peer)>
33
34
  // Transactions that belong to the L2PS (hash -> transaction)
34
35
  this.encryptedTransactions = new Map();
35
36
  let rsaKeyPair = forge.pki.rsa.generateKeyPair({ bits: 2048, e: 0x10001 });
@@ -38,6 +39,18 @@ class L2PS {
38
39
  this.pam = forge.pki.publicKeyToRSAPublicKeyPem(this.uid);
39
40
  this.decryptionKey = rsaKeyPair.privateKey;
40
41
  }
42
+ // SECTION L2PS methods
43
+ async getPartecipatingNodes() {
44
+ var lastBlockResponse = await websdk_1.demos.nodeCall("getLastBlock", {});
45
+ var lastBlock = lastBlockResponse.response;
46
+ // REVIEW Is toString() the correct way to convert the public key to string?
47
+ this.partecipatingNodes = lastBlock.content.l2ps_partecipating_nodes[this.uid.toString()];
48
+ return this.partecipatingNodes;
49
+ }
50
+ // ! TODO Add a method to set the partecipating nodes
51
+ // The above method should be authorized through an encrypted message: if decryption succeeds, then the node is authorized to enter in the partecipating nodes
52
+ // ? The above method does not take into account the public key of the node, it should be added (bans and so on)
53
+ // ! TODO Add a method to create a new L2PS with a new set of partecipating nodes
41
54
  // SECTION Control methods
42
55
  // REVIEW See if it works based on the below // ?
43
56
  async getEncryptedTransactions(blockNumber) {
@@ -1 +1 @@
1
- {"version":3,"file":"L2PS.js","sourceRoot":"","sources":["../../../src/l2ps/L2PS.ts"],"names":[],"mappings":";AAAA,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;AAEtC,kDAAmC;AAInC,6CAAuC;AACvC,qCAAiC;AAEjC,MAAqB,IAAI;IAQrB,iFAAiF;IAGjF;QALA,6DAA6D;QAC7D,0BAAqB,GAAsC,IAAI,GAAG,EAAE,CAAA;QAKhE,IAAI,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QAC1E,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,SAAS,CAAA;QACzC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,SAAS,CAAA;QAC/B,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACzD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,UAAU,CAAA;IAC9C,CAAC;IAED,0BAA0B;IAE1B,iDAAiD;IACjD,KAAK,CAAC,wBAAwB,CAAC,WAAmB;QAC9C,IAAI,qBAAqB,GAA2B,MAAM,cAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QACvG,OAAO,qBAAqB,CAAA;IAEhC,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,KAAa;QACvC,IAAI,oBAAoB,GAAyB,MAAM,cAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC3F,OAAO,oBAAoB,CAAA;IAC/B,CAAC;IAED,6BAA6B;IAE7B,yCAAyC;IACjC,SAAS,CAAC,EAAe;QAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;QACxD,IAAI,KAAK,GAAG,oBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;QAC/C,IAAI,WAAW,GAAG,EAAE,CAAC,WAAW,CAAA;QAChC,IAAI,WAAW,GAAyB;YACpC,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,aAAa,EAAE,KAAK;YACpB,oBAAoB,EAAE,GAAG;YACzB,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,IAAI,CAAC,GAAG;SACjB,CAAA;QACD,OAAO,WAAW,CAAA;IACtB,CAAC;IAED,kCAAkC;IAC1B,SAAS,CAAC,GAAyB;QACvC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAC7D,IAAI,GAAG,GAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACrC,OAAO,GAAG,CAAA;IACd,CAAC;IAED,4BAA4B;IAE5B,uCAAuC;IACvC,KAAK,CAAC,KAAa;QACf,IAAI,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC5B,OAAO,EAAE,CAAA;IACb,CAAC;IAED,+BAA+B;IAE/B,qCAAqC;IACrC,UAAU,CAAC,EAAe;QACtB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC5B,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;IAC1D,CAAC;CAEJ;AA1ED,uBA0EC"}
1
+ {"version":3,"file":"L2PS.js","sourceRoot":"","sources":["../../../src/l2ps/L2PS.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,17 @@ import { EncryptedTransaction } from "./encryptedTransaction";
3
3
  import { IPeer } from "../peers/Peer";
4
4
  export interface BlockContent {
5
5
  ordered_transactions: string[];
6
- encrypted_transactions: EncryptedTransaction[];
7
6
  per_address_transactions: Map<string, string[]>;
8
7
  web2data: {};
9
8
  previousHash: string;
10
9
  timestamp: number;
11
10
  peerlist: IPeer[];
11
+ l2ps_partecipating_nodes: Map<string, Map<string, string>>;
12
+ l2ps_banned_nodes: Map<string, string>;
13
+ encrypted_transactions_hashes: Map<string, string>;
14
+ }
15
+ export interface L2PSBlockExtension extends BlockContent {
16
+ l2ps_transactions: EncryptedTransaction[];
12
17
  }
13
18
  export interface Block {
14
19
  number: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kynesyslabs/demosdk",
3
- "version": "1.4.7",
3
+ "version": "1.4.9",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "author": "Kynesys Labs",