@mainsail/crypto-block 0.0.1-evm.3 → 0.0.1-evm.31

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 (34) hide show
  1. package/distribution/block.d.ts.map +1 -1
  2. package/distribution/block.js +1 -1
  3. package/distribution/block.js.map +1 -1
  4. package/distribution/deserializer.d.ts +4 -3
  5. package/distribution/deserializer.d.ts.map +1 -1
  6. package/distribution/deserializer.js +121 -98
  7. package/distribution/deserializer.js.map +1 -1
  8. package/distribution/factory.d.ts +1 -2
  9. package/distribution/factory.d.ts.map +1 -1
  10. package/distribution/factory.js +46 -54
  11. package/distribution/factory.js.map +1 -1
  12. package/distribution/{id.factory.d.ts → hash.factory.d.ts} +2 -2
  13. package/distribution/hash.factory.d.ts.map +1 -0
  14. package/distribution/{id.factory.js → hash.factory.js} +9 -7
  15. package/distribution/hash.factory.js.map +1 -0
  16. package/distribution/index.d.ts +1 -2
  17. package/distribution/index.d.ts.map +1 -1
  18. package/distribution/index.js +34 -8
  19. package/distribution/index.js.map +1 -1
  20. package/distribution/schemas.d.ts +1 -1
  21. package/distribution/schemas.d.ts.map +1 -1
  22. package/distribution/schemas.js +52 -26
  23. package/distribution/schemas.js.map +1 -1
  24. package/distribution/serializer.d.ts +1 -4
  25. package/distribution/serializer.d.ts.map +1 -1
  26. package/distribution/serializer.js +31 -50
  27. package/distribution/serializer.js.map +1 -1
  28. package/package.json +27 -24
  29. package/distribution/id.factory.d.ts.map +0 -1
  30. package/distribution/id.factory.js.map +0 -1
  31. package/distribution/verifier.d.ts +0 -8
  32. package/distribution/verifier.d.ts.map +0 -1
  33. package/distribution/verifier.js +0 -116
  34. package/distribution/verifier.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../source/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,UAAU,cAAc;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;CAC7C;AAED,eAAO,MAAM,SAAS,uCAAwC,cAAc,KAAG,UAAU,MAAM,CAAC,KAS7F,CAAC"}
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../source/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,UAAU,cAAc;IACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;CAC7C;AAED,eAAO,MAAM,SAAS,GAAI,oCAAoC,cAAc,KAAG,SAAS,CAAC,MAAM,CAAC,KAS7F,CAAC"}
@@ -3,7 +3,7 @@ export const sealBlock = ({ data, serialized, transactions }) => Object.seal({
3
3
  header: data,
4
4
  serialized,
5
5
  transactions: transactions.map((transaction, index) => {
6
- transaction.data.sequence = index;
6
+ transaction.data.transactionIndex = index;
7
7
  return transaction;
8
8
  }),
9
9
  });
@@ -1 +1 @@
1
- {"version":3,"file":"block.js","sourceRoot":"","sources":["../source/block.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAkB,EAA0B,EAAE,CACvG,MAAM,CAAC,IAAI,CAAC;IACX,IAAI;IACJ,MAAM,EAAE,IAAI;IACZ,UAAU;IACV,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;QACrD,WAAW,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAClC,OAAO,WAAW,CAAC;IACpB,CAAC,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../source/block.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAkB,EAA0B,EAAE,CACvG,MAAM,CAAC,IAAI,CAAC;IACX,IAAI;IACJ,MAAM,EAAE,IAAI;IACZ,UAAU;IACV,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;QACrD,WAAW,CAAC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC1C,OAAO,WAAW,CAAC;IACpB,CAAC,CAAC;CACF,CAAC,CAAC"}
@@ -1,11 +1,12 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  import { Contracts } from "@mainsail/contracts";
3
2
  export declare class Deserializer implements Contracts.Crypto.BlockDeserializer {
4
3
  #private;
5
- private readonly idFactory;
4
+ private readonly hashFactory;
6
5
  private readonly transactionFactory;
6
+ private readonly transactionDeserializer;
7
7
  private readonly serializer;
8
- private readonly blockSerializer;
8
+ private readonly headerSize;
9
+ private readonly workerPool;
9
10
  deserializeHeader(serialized: Buffer): Promise<Contracts.Crypto.BlockHeader>;
10
11
  deserializeWithTransactions(serialized: Buffer): Promise<Contracts.Crypto.BlockWithTransactions>;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../source/deserializer.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AAOpE,qBACa,YAAa,YAAW,SAAS,CAAC,MAAM,CAAC,iBAAiB;;IAEtE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IAGvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;IAGzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAG9D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IAEvD,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;IAU5E,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC;CAyG7G"}
1
+ {"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../source/deserializer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAkC,MAAM,qBAAqB,CAAC;AAMhF,qBACa,YAAa,YAAW,SAAS,CAAC,MAAM,CAAC,iBAAiB;;IAEtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAG3C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;IAGzD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA4C;IAGpF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAG9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAI3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;IAExD,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;IAU5E,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC;CAmI7G"}
@@ -7,134 +7,157 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
11
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
12
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
13
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
14
- };
15
- var _Deserializer_instances, _Deserializer_deserializeBufferHeader, _Deserializer_deserializeTransactions;
16
10
  /* eslint-disable sort-keys-fix/sort-keys-fix */
17
- import { inject, injectable } from "@mainsail/container";
18
- import { Contracts, Identifiers } from "@mainsail/contracts";
11
+ import { inject, injectable, optional } from "@mainsail/container";
12
+ import { Contracts, Exceptions, Identifiers } from "@mainsail/contracts";
19
13
  import { TransactionFactory } from "@mainsail/crypto-transaction";
20
- import { Utils as AppUtils } from "@mainsail/kernel";
21
- import { ByteBuffer } from "@mainsail/utils";
22
- import { IDFactory } from "./id.factory.js";
14
+ import { ByteBuffer, sleep } from "@mainsail/utils";
15
+ import { HashFactory } from "./hash.factory.js";
23
16
  let Deserializer = class Deserializer {
24
- constructor() {
25
- _Deserializer_instances.add(this);
26
- }
17
+ hashFactory;
18
+ transactionFactory;
19
+ transactionDeserializer;
20
+ serializer;
21
+ headerSize;
22
+ workerPool;
27
23
  async deserializeHeader(serialized) {
28
24
  const buffer = ByteBuffer.fromBuffer(serialized);
29
- const header = await __classPrivateFieldGet(this, _Deserializer_instances, "m", _Deserializer_deserializeBufferHeader).call(this, buffer);
30
- header.id = await this.idFactory.make(header);
25
+ const header = await this.#deserializeBufferHeader(buffer);
26
+ header.hash = await this.hashFactory.make(header);
31
27
  return header;
32
28
  }
33
29
  async deserializeWithTransactions(serialized) {
34
30
  const buffer = ByteBuffer.fromBuffer(serialized);
35
- const block = await __classPrivateFieldGet(this, _Deserializer_instances, "m", _Deserializer_deserializeBufferHeader).call(this, buffer);
31
+ const block = await this.#deserializeBufferHeader(buffer);
36
32
  let transactions = [];
37
33
  if (buffer.getRemainderLength() > 0) {
38
- transactions = await __classPrivateFieldGet(this, _Deserializer_instances, "m", _Deserializer_deserializeTransactions).call(this, block, buffer);
34
+ transactions = await this.#deserializeTransactions(block, buffer);
39
35
  }
40
- block.id = await this.idFactory.make(block);
36
+ block.hash = await this.hashFactory.make(block);
41
37
  return { data: block, transactions };
42
38
  }
43
- };
44
- _Deserializer_instances = new WeakSet();
45
- _Deserializer_deserializeBufferHeader = async function _Deserializer_deserializeBufferHeader(buffer) {
46
- const block = {};
47
- await this.serializer.deserialize(buffer, block, {
48
- length: this.blockSerializer.headerSize(),
49
- schema: {
50
- version: {
51
- type: "uint8",
52
- },
53
- timestamp: {
54
- type: "uint48",
55
- },
56
- height: {
57
- type: "uint32",
58
- },
59
- round: {
60
- type: "uint32",
61
- },
62
- previousBlock: {
63
- type: "hash",
64
- },
65
- stateHash: {
66
- type: "hash",
67
- },
68
- numberOfTransactions: {
69
- type: "uint16",
70
- },
71
- totalGasUsed: {
72
- type: "uint32",
73
- },
74
- totalAmount: {
75
- type: "uint256",
39
+ async #deserializeBufferHeader(buffer) {
40
+ const block = {};
41
+ await this.serializer.deserialize(buffer, block, {
42
+ length: this.headerSize(),
43
+ schema: {
44
+ version: {
45
+ type: "uint8",
46
+ },
47
+ timestamp: {
48
+ type: "uint48",
49
+ },
50
+ number: {
51
+ type: "uint32",
52
+ },
53
+ round: {
54
+ type: "uint32",
55
+ },
56
+ parentHash: {
57
+ type: "hash",
58
+ },
59
+ stateRoot: {
60
+ type: "hash",
61
+ },
62
+ logsBloom: {
63
+ type: "hash",
64
+ size: 256,
65
+ },
66
+ transactionsCount: {
67
+ type: "uint16",
68
+ },
69
+ gasUsed: {
70
+ type: "uint32",
71
+ },
72
+ fee: {
73
+ type: "uint256",
74
+ },
75
+ reward: {
76
+ type: "uint256",
77
+ },
78
+ payloadSize: {
79
+ type: "uint32",
80
+ },
81
+ transactionsRoot: {
82
+ type: "hash",
83
+ },
84
+ proposer: {
85
+ type: "address",
86
+ },
76
87
  },
77
- totalFee: {
78
- type: "uint256",
79
- },
80
- reward: {
81
- type: "uint256",
82
- },
83
- payloadLength: {
84
- type: "uint32",
85
- },
86
- payloadHash: {
87
- type: "hash",
88
- },
89
- generatorAddress: {
90
- type: "address",
91
- },
92
- },
93
- });
94
- return block;
95
- };
96
- _Deserializer_deserializeTransactions = async function _Deserializer_deserializeTransactions(block, buf) {
97
- await this.serializer.deserialize(buf, block, {
98
- length: block.payloadLength,
99
- schema: {
100
- transactions: {
101
- type: "transactions",
88
+ });
89
+ return block;
90
+ }
91
+ async #deserializeTransactions(block, buf) {
92
+ await this.serializer.deserialize(buf, block, {
93
+ length: block.payloadSize,
94
+ schema: {
95
+ transactions: {
96
+ type: "transactions",
97
+ },
102
98
  },
103
- },
104
- });
105
- /**
106
- * After unpacking we need to turn the transactions into DTOs!
107
- *
108
- * We keep this behaviour out of the (de)serialiser because it
109
- * is very specific to this bit of code in this specific class.
110
- */
111
- const transactions = [];
112
- for (let index = 0; index < block.transactions.length; index++) {
113
- if (index % 20 === 0) {
114
- await AppUtils.sleep(0);
99
+ });
100
+ /**
101
+ * After unpacking we need to turn the transactions into DTOs!
102
+ *
103
+ * We keep this behaviour out of the (de)serialiser because it
104
+ * is very specific to this bit of code in this specific class.
105
+ */
106
+ const transactions = new Array(block.transactionsCount);
107
+ await Promise.all(block.transactions.map(async (serialized, index) => {
108
+ const transaction = await this.transactionDeserializer.deserialize(serialized);
109
+ if (index % 20 === 0) {
110
+ await sleep(0);
111
+ }
112
+ const computed = await this.#computeCryptoData(transaction.data);
113
+ if (computed.schemaError) {
114
+ throw new Exceptions.TransactionSchemaError(computed.schemaError);
115
+ }
116
+ transaction.data.data = transaction.data.data.startsWith("0x")
117
+ ? transaction.data.data.slice(2)
118
+ : transaction.data.data;
119
+ transaction.data.hash = computed.hash;
120
+ transaction.data.from = computed.address;
121
+ transaction.data.senderPublicKey = computed.publicKey;
122
+ transaction.data.senderLegacyAddress = computed.legacyAddress;
123
+ transactions[index] = transaction;
124
+ block.transactions[index] = transaction.data;
125
+ }));
126
+ return transactions;
127
+ }
128
+ async #computeCryptoData(transaction) {
129
+ if (this.workerPool) {
130
+ const worker = await this.workerPool.getWorker();
131
+ return worker.transactionFactory("computeCryptoData", transaction);
115
132
  }
116
- const transaction = await this.transactionFactory.fromBytes(block.transactions[index]);
117
- transactions.push(transaction);
118
- block.transactions[index] = transaction.data;
133
+ return this.transactionFactory.computeCryptoData(transaction);
119
134
  }
120
- return transactions;
121
135
  };
122
136
  __decorate([
123
- inject(Identifiers.Cryptography.Block.IDFactory),
124
- __metadata("design:type", IDFactory)
125
- ], Deserializer.prototype, "idFactory", void 0);
137
+ inject(Identifiers.Cryptography.Block.HashFactory),
138
+ __metadata("design:type", HashFactory)
139
+ ], Deserializer.prototype, "hashFactory", void 0);
126
140
  __decorate([
127
141
  inject(Identifiers.Cryptography.Transaction.Factory),
128
142
  __metadata("design:type", TransactionFactory)
129
143
  ], Deserializer.prototype, "transactionFactory", void 0);
144
+ __decorate([
145
+ inject(Identifiers.Cryptography.Transaction.Deserializer),
146
+ __metadata("design:type", Object)
147
+ ], Deserializer.prototype, "transactionDeserializer", void 0);
130
148
  __decorate([
131
149
  inject(Identifiers.Cryptography.Serializer),
132
150
  __metadata("design:type", Object)
133
151
  ], Deserializer.prototype, "serializer", void 0);
134
152
  __decorate([
135
- inject(Identifiers.Cryptography.Block.Serializer),
153
+ inject(Identifiers.Cryptography.Block.HeaderSize),
154
+ __metadata("design:type", Function)
155
+ ], Deserializer.prototype, "headerSize", void 0);
156
+ __decorate([
157
+ inject(Identifiers.CryptoWorker.WorkerPool),
158
+ optional(),
136
159
  __metadata("design:type", Object)
137
- ], Deserializer.prototype, "blockSerializer", void 0);
160
+ ], Deserializer.prototype, "workerPool", void 0);
138
161
  Deserializer = __decorate([
139
162
  injectable()
140
163
  ], Deserializer);
@@ -1 +1 @@
1
- {"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../source/deserializer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAgD;AAChD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAS,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGrC,IAAM,YAAY,GAAlB,MAAM,YAAY;IAAlB;;IAgIP,CAAC;IAnHO,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QAChD,MAAM,MAAM,GAAe,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE7D,MAAM,MAAM,GAA8C,MAAM,uBAAA,IAAI,sEAAyB,MAA7B,IAAI,EAA0B,MAAM,CAAC,CAAC;QAEtG,MAAM,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9C,OAAO,MAAM,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,2BAA2B,CAAC,UAAkB;QAC1D,MAAM,MAAM,GAAe,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE7D,MAAM,KAAK,GAA8C,MAAM,uBAAA,IAAI,sEAAyB,MAA7B,IAAI,EAA0B,MAAM,CAAC,CAAC;QAErG,IAAI,YAAY,GAAmC,EAAE,CAAC;QAEtD,IAAI,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAAE,CAAC;YACrC,YAAY,GAAG,MAAM,uBAAA,IAAI,sEAAyB,MAA7B,IAAI,EAA0B,KAAK,EAAE,MAAM,CAAC,CAAC;QACnE,CAAC;QAED,KAAK,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACtC,CAAC;CA2FD,CAAA;;wCAzFA,KAAK,gDAA0B,MAAkB;IAChD,MAAM,KAAK,GAAG,EAAkC,CAAC;IAEjD,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAA6B,MAAM,EAAE,KAAK,EAAE;QAC5E,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;QACzC,MAAM,EAAE;YACP,OAAO,EAAE;gBACR,IAAI,EAAE,OAAO;aACb;YACD,SAAS,EAAE;gBACV,IAAI,EAAE,QAAQ;aACd;YACD,MAAM,EAAE;gBACP,IAAI,EAAE,QAAQ;aACd;YACD,KAAK,EAAE;gBACN,IAAI,EAAE,QAAQ;aACd;YACD,aAAa,EAAE;gBACd,IAAI,EAAE,MAAM;aACZ;YACD,SAAS,EAAE;gBACV,IAAI,EAAE,MAAM;aACZ;YACD,oBAAoB,EAAE;gBACrB,IAAI,EAAE,QAAQ;aACd;YACD,YAAY,EAAE;gBACb,IAAI,EAAE,QAAQ;aACd;YACD,WAAW,EAAE;gBACZ,IAAI,EAAE,SAAS;aACf;YACD,QAAQ,EAAE;gBACT,IAAI,EAAE,SAAS;aACf;YACD,MAAM,EAAE;gBACP,IAAI,EAAE,SAAS;aACf;YACD,aAAa,EAAE;gBACd,IAAI,EAAE,QAAQ;aACd;YACD,WAAW,EAAE;gBACZ,IAAI,EAAE,MAAM;aACZ;YACD,gBAAgB,EAAE;gBACjB,IAAI,EAAE,SAAS;aACf;SACD;KACD,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACd,CAAC;wCAED,KAAK,gDACJ,KAAiC,EACjC,GAAe;IAEf,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAA6B,GAAG,EAAE,KAAK,EAAE;QACzE,MAAM,EAAE,KAAK,CAAC,aAAa;QAC3B,MAAM,EAAE;YACP,YAAY,EAAE;gBACb,IAAI,EAAE,cAAc;aACpB;SACD;KACD,CAAC,CAAC;IAEH;;;;;OAKG;IACH,MAAM,YAAY,GAAmC,EAAE,CAAC;IAExD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAChE,IAAI,KAAK,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAQ,CAAC,CAAC;QAE9F,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE/B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC;AA7HgB;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;8BACpB,SAAS;+CAAC;AAGtB;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;8BACf,kBAAkB;wDAAC;AAGxC;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC;;gDACkB;AAG7C;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;;qDACkB;AAXxD,YAAY;IADxB,UAAU,EAAE;GACA,YAAY,CAgIxB"}
1
+ {"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../source/deserializer.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  import { Contracts, Utils } from "@mainsail/contracts";
3
2
  export declare class BlockFactory implements Contracts.Crypto.BlockFactory {
4
3
  #private;
5
4
  private readonly serializer;
6
5
  private readonly deserializer;
7
- private readonly idFactory;
6
+ private readonly hashFactory;
8
7
  private readonly validator;
9
8
  make(data: Utils.Mutable<Contracts.Crypto.BlockDataSerializable>, transactions: Contracts.Crypto.Transaction[]): Promise<Contracts.Crypto.Block>;
10
9
  fromHex(hex: string): Promise<Contracts.Crypto.Block>;
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../source/factory.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAA2B,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAMhF,qBACa,YAAa,YAAW,SAAS,CAAC,MAAM,CAAC,YAAY;;IAEjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAG/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IAGnE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IAGvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAE3C,IAAI,CAChB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAC3D,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,GAC1C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;IAYrB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;IAIrD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;IAIxD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;IAkB3E,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;CA8DxF"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../source/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA2B,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAMhF,qBACa,YAAa,YAAW,SAAS,CAAC,MAAM,CAAC,YAAY;;IAEjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAG/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IAGnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAG3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAE3C,IAAI,CAChB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAC3D,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,GAC1C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;IAYrB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;IAIrD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;IAIxD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;IAgB3E,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;CA6DxF"}
@@ -7,23 +7,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
11
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
12
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
13
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
14
- };
15
- var _BlockFactory_instances, _BlockFactory_fromSerialized, _BlockFactory_applySchema;
16
10
  import { inject, injectable } from "@mainsail/container";
17
11
  import { Contracts, Exceptions, Identifiers } from "@mainsail/contracts";
18
12
  import { BigNumber } from "@mainsail/utils";
19
13
  import { sealBlock } from "./block.js";
20
- import { IDFactory } from "./id.factory.js";
14
+ import { HashFactory } from "./hash.factory.js";
21
15
  let BlockFactory = class BlockFactory {
22
- constructor() {
23
- _BlockFactory_instances.add(this);
24
- }
16
+ serializer;
17
+ deserializer;
18
+ hashFactory;
19
+ validator;
25
20
  async make(data, transactions) {
26
- const block = { ...data, id: await this.idFactory.make(data) };
21
+ const block = { ...data, hash: await this.hashFactory.make(data) };
27
22
  const serialized = await this.serializer.serializeWithTransactions(data);
28
23
  return sealBlock({
29
24
  data: block,
@@ -32,73 +27,70 @@ let BlockFactory = class BlockFactory {
32
27
  });
33
28
  }
34
29
  async fromHex(hex) {
35
- return __classPrivateFieldGet(this, _BlockFactory_instances, "m", _BlockFactory_fromSerialized).call(this, Buffer.from(hex, "hex"));
30
+ return this.#fromSerialized(Buffer.from(hex, "hex"));
36
31
  }
37
32
  async fromBytes(buff) {
38
- return __classPrivateFieldGet(this, _BlockFactory_instances, "m", _BlockFactory_fromSerialized).call(this, buff);
33
+ return this.#fromSerialized(buff);
39
34
  }
40
35
  async fromJson(json) {
41
36
  // @ts-ignore
42
37
  const data = { ...json };
43
- data.totalAmount = BigNumber.make(data.totalAmount);
44
- data.totalFee = BigNumber.make(data.totalFee);
38
+ data.fee = BigNumber.make(data.fee);
45
39
  data.reward = BigNumber.make(data.reward);
46
40
  if (data.transactions) {
47
41
  for (const transaction of data.transactions) {
48
- transaction.amount = BigNumber.make(transaction.amount);
49
- transaction.fee = BigNumber.make(transaction.fee);
42
+ transaction.value = BigNumber.make(transaction.value);
50
43
  transaction.nonce = BigNumber.make(transaction.nonce);
51
44
  }
52
45
  }
53
46
  return this.fromData(data);
54
47
  }
55
48
  async fromData(data) {
56
- await __classPrivateFieldGet(this, _BlockFactory_instances, "m", _BlockFactory_applySchema).call(this, data);
49
+ await this.#applySchema(data);
57
50
  const serialized = await this.serializer.serializeWithTransactions(data);
58
51
  return sealBlock({
59
52
  ...(await this.deserializer.deserializeWithTransactions(serialized)),
60
53
  serialized: serialized.toString("hex"),
61
54
  });
62
55
  }
63
- };
64
- _BlockFactory_instances = new WeakSet();
65
- _BlockFactory_fromSerialized = async function _BlockFactory_fromSerialized(serialized) {
66
- const deserialized = await this.deserializer.deserializeWithTransactions(serialized);
67
- const validated = await __classPrivateFieldGet(this, _BlockFactory_instances, "m", _BlockFactory_applySchema).call(this, deserialized.data);
68
- if (validated) {
69
- deserialized.data = validated;
70
- }
71
- return sealBlock({
72
- ...deserialized,
73
- serialized: serialized.toString("hex"),
74
- });
75
- };
76
- _BlockFactory_applySchema = async function _BlockFactory_applySchema(data) {
77
- const result = this.validator.validate("block", data);
78
- if (!result.error) {
79
- return result.value;
56
+ async #fromSerialized(serialized) {
57
+ const deserialized = await this.deserializer.deserializeWithTransactions(serialized);
58
+ const validated = await this.#applySchema(deserialized.data);
59
+ if (validated) {
60
+ deserialized.data = validated;
61
+ }
62
+ return sealBlock({
63
+ ...deserialized,
64
+ serialized: serialized.toString("hex"),
65
+ });
80
66
  }
81
- for (const error of result.errors ?? []) {
82
- let fatal = false;
83
- const match = error.instancePath.match(/\.transactions\[(\d+)]/);
84
- if (match === null) {
85
- fatal = true;
67
+ async #applySchema(data) {
68
+ const result = this.validator.validate("block", data);
69
+ if (!result.error) {
70
+ return result.value;
86
71
  }
87
- else {
88
- const txIndex = match[1];
89
- if (data.transactions) {
90
- const tx = data.transactions[txIndex];
91
- if (tx.id === undefined) {
92
- fatal = true;
72
+ for (const error of result.errors ?? []) {
73
+ let fatal = false;
74
+ const match = error.instancePath.match(/\.transactions\[(\d+)]/);
75
+ if (match === null) {
76
+ fatal = true;
77
+ }
78
+ else {
79
+ if (data.transactions) {
80
+ const txIndex = Number(match[1]);
81
+ const tx = data.transactions[txIndex];
82
+ if (tx.hash === undefined) {
83
+ fatal = true;
84
+ }
93
85
  }
94
86
  }
87
+ if (fatal) {
88
+ throw new Exceptions.BlockSchemaError(data.number, `Invalid data${error.instancePath ? " at " + error.instancePath : ""}: ` +
89
+ `${error.message}: ${JSON.stringify(error.data)}`);
90
+ }
95
91
  }
96
- if (fatal) {
97
- throw new Exceptions.BlockSchemaError(data.height, `Invalid data${error.instancePath ? " at " + error.instancePath : ""}: ` +
98
- `${error.message}: ${JSON.stringify(error.data)}`);
99
- }
92
+ return result.value;
100
93
  }
101
- return result.value;
102
94
  };
103
95
  __decorate([
104
96
  inject(Identifiers.Cryptography.Block.Serializer),
@@ -109,9 +101,9 @@ __decorate([
109
101
  __metadata("design:type", Object)
110
102
  ], BlockFactory.prototype, "deserializer", void 0);
111
103
  __decorate([
112
- inject(Identifiers.Cryptography.Block.IDFactory),
113
- __metadata("design:type", IDFactory)
114
- ], BlockFactory.prototype, "idFactory", void 0);
104
+ inject(Identifiers.Cryptography.Block.HashFactory),
105
+ __metadata("design:type", HashFactory)
106
+ ], BlockFactory.prototype, "hashFactory", void 0);
115
107
  __decorate([
116
108
  inject(Identifiers.Cryptography.Validator),
117
109
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../source/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../source/factory.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Contracts } from "@mainsail/contracts";
2
- export declare class IDFactory {
2
+ export declare class HashFactory {
3
3
  private readonly hashFactory;
4
4
  private readonly serializer;
5
5
  make(data: Contracts.Crypto.BlockDataSerializable): Promise<string>;
6
6
  }
7
- //# sourceMappingURL=id.factory.d.ts.map
7
+ //# sourceMappingURL=hash.factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.factory.d.ts","sourceRoot":"","sources":["../source/hash.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAE7D,qBACa,WAAW;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;IAG5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAElD,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;CAGhF"}
@@ -9,7 +9,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { inject, injectable } from "@mainsail/container";
11
11
  import { Contracts, Identifiers } from "@mainsail/contracts";
12
- let IDFactory = class IDFactory {
12
+ let HashFactory = class HashFactory {
13
+ hashFactory;
14
+ serializer;
13
15
  async make(data) {
14
16
  return (await this.hashFactory.sha256(await this.serializer.serializeHeader(data))).toString("hex");
15
17
  }
@@ -17,13 +19,13 @@ let IDFactory = class IDFactory {
17
19
  __decorate([
18
20
  inject(Identifiers.Cryptography.Hash.Factory),
19
21
  __metadata("design:type", Object)
20
- ], IDFactory.prototype, "hashFactory", void 0);
22
+ ], HashFactory.prototype, "hashFactory", void 0);
21
23
  __decorate([
22
24
  inject(Identifiers.Cryptography.Block.Serializer),
23
25
  __metadata("design:type", Object)
24
- ], IDFactory.prototype, "serializer", void 0);
25
- IDFactory = __decorate([
26
+ ], HashFactory.prototype, "serializer", void 0);
27
+ HashFactory = __decorate([
26
28
  injectable()
27
- ], IDFactory);
28
- export { IDFactory };
29
- //# sourceMappingURL=id.factory.js.map
29
+ ], HashFactory);
30
+ export { HashFactory };
31
+ //# sourceMappingURL=hash.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.factory.js","sourceRoot":"","sources":["../source/hash.factory.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGtD,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEN,WAAW,CAAgC;IAG3C,UAAU,CAAoC;IAExD,KAAK,CAAC,IAAI,CAAC,IAA4C;QAC7D,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrG,CAAC;CACD,CAAA;AARiB;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;;gDACc;AAG3C;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;;+CACa;AALnD,WAAW;IADvB,UAAU,EAAE;GACA,WAAW,CAUvB"}
@@ -1,10 +1,9 @@
1
1
  import { Providers } from "@mainsail/kernel";
2
2
  export * from "./deserializer.js";
3
3
  export * from "./factory.js";
4
- export * from "./id.factory.js";
4
+ export * from "./hash.factory.js";
5
5
  export * from "./schemas.js";
6
6
  export * from "./serializer.js";
7
- export * from "./verifier.js";
8
7
  export declare class ServiceProvider extends Providers.ServiceProvider {
9
8
  register(): Promise<void>;
10
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAS7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAE9B,qBAAa,eAAgB,SAAQ,SAAS,CAAC,eAAe;IAChD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAWtC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQ7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAEhC,qBACa,eAAgB,SAAQ,SAAS,CAAC,eAAe;IAChD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAgCtC"}