@leofcoin/chain 1.5.24 → 1.5.26

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.
@@ -1,5 +1,5 @@
1
- import Protocol from "./protocol.js";
2
- import { TransactionMessage } from "@leofcoin/messages";
1
+ import Protocol from './protocol.js';
2
+ import { TransactionMessage } from '@leofcoin/messages';
3
3
  export default class Transaction extends Protocol {
4
4
  #private;
5
5
  constructor();
@@ -1,4 +1,4 @@
1
- import State from "./state.js";
1
+ import State from './state.js';
2
2
  export declare class VersionControl extends State {
3
3
  constructor();
4
4
  init(): Promise<void>;
@@ -1,29 +1,33 @@
1
- import { E as EasyWorker, B as BigNumber, a as BlockMessage, f as formatBytes } from './worker-156dda16.js';
1
+ import { E as EasyWorker, B as BigNumber, a as BlockMessage, f as formatBytes } from './worker-5b02efbe.js';
2
2
 
3
- const worker = new EasyWorker();
4
-
5
- globalThis.BigNumber = BigNumber;
6
- globalThis.contracts = {};
7
-
8
- const run = async (blocks) => {
9
- blocks = await Promise.all(blocks.map(block => new BlockMessage(block)));
10
- blocks = blocks.sort((a, b) => a.decoded.timestamp - b.decoded.timestamp);
11
-
12
- blocks = await Promise.all(blocks.map(block => new Promise(async (resolve, reject) => {
13
- // todo: tx worker or nah?
14
- await block.encode();
15
- const size = block.encoded.length || block.encoded.byteLength;
16
- console.log(`loaded block: ${await block.hash()} @${block.decoded.index} ${formatBytes(size)}`);
17
- // todo we don't want this, need shared state
18
- resolve(block.decoded);
19
- })));
20
- return blocks
21
- };
22
-
23
- const tasks = async blocks => {
24
- blocks = await run(blocks);
25
- worker.postMessage(blocks);
26
- };
27
-
28
-
29
- worker.onmessage(data => tasks(data));
3
+ const worker = new EasyWorker();
4
+
5
+ globalThis.BigNumber = BigNumber;
6
+ globalThis.contracts = {};
7
+
8
+ const run = async (blocks) => {
9
+ blocks = await Promise.all(blocks.map((block) => new BlockMessage(block)));
10
+ blocks = blocks.sort((a, b) => a.decoded.timestamp - b.decoded.timestamp);
11
+
12
+ blocks = await Promise.all(
13
+ blocks.map(
14
+ (block) =>
15
+ new Promise(async (resolve, reject) => {
16
+ // todo: tx worker or nah?
17
+ await block.encode();
18
+ const size = block.encoded.length || block.encoded.byteLength;
19
+ console.log(`loaded block: ${await block.hash()} @${block.decoded.index} ${formatBytes(size)}`);
20
+ // todo we don't want this, need shared state
21
+ resolve(block.decoded);
22
+ })
23
+ )
24
+ );
25
+ return blocks
26
+ };
27
+
28
+ const tasks = async (blocks) => {
29
+ blocks = await run(blocks);
30
+ worker.postMessage(blocks);
31
+ };
32
+
33
+ worker.onmessage((data) => tasks(data));
@@ -1,4 +1,4 @@
1
- import { E as EasyWorker, B as BigNumber, f as formatBytes, C as ContractMessage, a as BlockMessage } from './worker-156dda16.js';
1
+ import { E as EasyWorker, B as BigNumber, f as formatBytes, C as ContractMessage, a as BlockMessage } from './worker-5b02efbe.js';
2
2
 
3
3
  var contractFactory = "237,198,141,3,53,89,84,113,119,88,110,55,76,101,103,89,119,65,109,100,117,75,88,119,116,83,52,118,52,100,97,114,113,66,84,81,82,76,90,106,50,57,117,106,112,114,98,104,52,119,121,76,106,112,56,50,87,106,173,5,99,108,97,115,115,32,70,97,99,116,111,114,121,123,35,110,97,109,101,61,34,65,114,116,79,110,108,105,110,101,67,111,110,116,114,97,99,116,70,97,99,116,111,114,121,34,59,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,61,48,59,35,99,111,110,116,114,97,99,116,115,61,91,93,59,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,116,97,116,101,38,38,40,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,61,115,116,97,116,101,46,99,111,110,116,114,97,99,116,115,44,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,61,115,116,97,116,101,46,116,111,116,97,108,67,111,110,116,114,97,99,116,115,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,116,111,116,97,108,67,111,110,116,114,97,99,116,115,58,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,44,99,111,110,116,114,97,99,116,115,58,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,125,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,99,111,110,116,114,97,99,116,115,40,41,123,114,101,116,117,114,110,91,46,46,46,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,93,125,103,101,116,32,116,111,116,97,108,67,111,110,116,114,97,99,116,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,125,105,115,82,101,103,105,115,116,101,114,101,100,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,97,115,121,110,99,32,114,101,103,105,115,116,101,114,67,111,110,116,114,97,99,116,40,97,100,100,114,101,115,115,41,123,105,102,40,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,97,100,100,114,101,115,115,44,34,104,97,115,82,111,108,101,34,44,91,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,93,41,44,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,108,114,101,97,100,121,32,114,101,103,105,115,116,101,114,101,100,34,41,59,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,43,61,49,44,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,125,114,101,116,117,114,110,32,70,97,99,116,111,114,121,59,2,91,93";
4
4
  var nativeToken = "237,198,141,3,53,89,84,113,119,88,110,55,76,101,103,89,119,65,109,100,117,75,88,119,116,83,52,118,52,100,97,114,113,66,84,81,82,76,90,106,50,57,117,106,112,114,98,104,52,119,121,76,106,112,56,50,87,106,163,26,99,108,97,115,115,32,82,111,108,101,115,123,35,114,111,108,101,115,61,123,79,87,78,69,82,58,91,93,44,77,73,78,84,58,91,93,44,66,85,82,78,58,91,93,125,59,99,111,110,115,116,114,117,99,116,111,114,40,114,111,108,101,115,41,123,105,102,40,114,111,108,101,115,41,123,105,102,40,33,40,114,111,108,101,115,32,105,110,115,116,97,110,99,101,111,102,32,79,98,106,101,99,116,41,41,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,101,120,112,101,99,116,101,100,32,114,111,108,101,115,32,116,111,32,98,101,32,97,110,32,111,98,106,101,99,116,34,41,59,116,104,105,115,46,35,114,111,108,101,115,61,123,46,46,46,114,111,108,101,115,44,46,46,46,116,104,105,115,46,35,114,111,108,101,115,125,125,101,108,115,101,32,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,79,87,78,69,82,34,41,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,114,111,108,101,115,58,116,104,105,115,46,114,111,108,101,115,125,125,103,101,116,32,114,111,108,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,111,108,101,115,125,125,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,114,101,116,117,114,110,33,33,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,38,38,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,103,114,97,110,116,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,114,101,118,111,107,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,105,102,40,34,79,87,78,69,82,34,61,61,61,114,111,108,101,38,38,49,61,61,61,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,108,101,110,103,116,104,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,116,108,101,97,115,116,32,111,110,101,32,111,119,110,101,114,32,105,115,32,110,101,101,100,101,100,33,34,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,115,112,108,105,99,101,40,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,100,101,120,79,102,40,97,100,100,114,101,115,115,41,41,125,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,34,79,87,78,69,82,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,78,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,125,125,99,108,97,115,115,32,84,111,107,101,110,32,101,120,116,101,110,100,115,32,82,111,108,101,115,123,35,110,97,109,101,59,35,115,121,109,98,111,108,59,35,104,111,108,100,101,114,115,61,48,59,35,98,97,108,97,110,99,101,115,61,123,125,59,35,97,112,112,114,111,118,97,108,115,61,123,125,59,35,100,101,99,105,109,97,108,115,61,49,56,59,35,116,111,116,97,108,83,117,112,112,108,121,61,66,105,103,78,117,109,98,101,114,46,102,114,111,109,40,48,41,59,99,111,110,115,116,114,117,99,116,111,114,40,110,97,109,101,44,115,121,109,98,111,108,44,100,101,99,105,109,97,108,115,61,49,56,44,115,116,97,116,101,41,123,105,102,40,33,110,97,109,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,97,109,101,32,117,110,100,101,102,105,110,101,100,34,41,59,105,102,40,33,115,121,109,98,111,108,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,115,121,109,98,111,108,32,117,110,100,101,102,105,110,101,100,34,41,59,115,117,112,101,114,40,115,116,97,116,101,63,46,114,111,108,101,115,41,44,116,104,105,115,46,35,110,97,109,101,61,110,97,109,101,44,116,104,105,115,46,35,115,121,109,98,111,108,61,115,121,109,98,111,108,44,116,104,105,115,46,35,100,101,99,105,109,97,108,115,61,100,101,99,105,109,97,108,115,125,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,46,46,46,115,117,112,101,114,46,115,116,97,116,101,44,104,111,108,100,101,114,115,58,116,104,105,115,46,104,111,108,100,101,114,115,44,98,97,108,97,110,99,101,115,58,116,104,105,115,46,98,97,108,97,110,99,101,115,44,97,112,112,114,111,118,97,108,115,58,123,46,46,46,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,125,44,116,111,116,97,108,83,117,112,112,108,121,58,116,104,105,115,46,116,111,116,97,108,83,117,112,112,108,121,125,125,103,101,116,32,116,111,116,97,108,83,117,112,112,108,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,125,103,101,116,32,110,97,109,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,110,97,109,101,125,103,101,116,32,115,121,109,98,111,108,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,115,121,109,98,111,108,125,103,101,116,32,104,111,108,100,101,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,104,111,108,100,101,114,115,125,103,101,116,32,98,97,108,97,110,99,101,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,98,97,108,97,110,99,101,115,125,125,109,105,110,116,40,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,77,73,78,84,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,46,97,100,100,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,98,117,114,110,40,102,114,111,109,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,34,66,85,82,78,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,110,111,116,32,97,108,108,111,119,101,100,34,41,59,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,61,116,104,105,115,46,35,116,111,116,97,108,83,117,112,112,108,121,46,115,117,98,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,102,114,111,109,44,97,109,111,117,110,116,41,125,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,124,124,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,34,41,125,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,123,34,48,120,48,48,34,61,61,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,46,116,111,72,101,120,83,116,114,105,110,103,40,41,63,116,104,105,115,46,35,104,111,108,100,101,114,115,45,61,49,58,34,48,120,48,48,34,33,61,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,46,116,111,72,101,120,83,116,114,105,110,103,40,41,38,38,34,48,120,48,48,34,61,61,61,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,46,116,111,72,101,120,83,116,114,105,110,103,40,41,38,38,40,116,104,105,115,46,35,104,111,108,100,101,114,115,43,61,49,41,125,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,97,100,100,114,101,115,115,44,97,109,111,117,110,116,41,123,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,124,124,40,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,66,105,103,78,117,109,98,101,114,46,102,114,111,109,40,48,41,41,59,99,111,110,115,116,32,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,59,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,46,97,100,100,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,125,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,97,100,100,114,101,115,115,44,97,109,111,117,110,116,41,123,99,111,110,115,116,32,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,59,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,61,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,46,115,117,98,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,117,112,100,97,116,101,72,111,108,100,101,114,115,40,97,100,100,114,101,115,115,44,112,114,101,118,105,111,117,115,66,97,108,97,110,99,101,41,125,98,97,108,97,110,99,101,79,102,40,97,100,100,114,101,115,115,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,97,100,100,114,101,115,115,93,125,115,101,116,65,112,112,114,111,118,97,108,40,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,99,111,110,115,116,32,111,119,110,101,114,61,109,115,103,46,115,101,110,100,101,114,59,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,124,124,40,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,61,123,125,41,44,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,61,97,109,111,117,110,116,125,97,112,112,114,111,118,101,100,40,111,119,110,101,114,44,111,112,101,114,97,116,111,114,44,97,109,111,117,110,116,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,97,112,112,114,111,118,97,108,115,91,111,119,110,101,114,93,91,111,112,101,114,97,116,111,114,93,61,61,61,97,109,111,117,110,116,125,116,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,97,109,111,117,110,116,61,66,105,103,78,117,109,98,101,114,46,102,114,111,109,40,97,109,111,117,110,116,41,44,116,104,105,115,46,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,100,101,99,114,101,97,115,101,66,97,108,97,110,99,101,40,102,114,111,109,44,97,109,111,117,110,116,41,44,116,104,105,115,46,35,105,110,99,114,101,97,115,101,66,97,108,97,110,99,101,40,116,111,44,97,109,111,117,110,116,41,125,125,99,108,97,115,115,32,65,114,116,79,110,108,105,110,101,32,101,120,116,101,110,100,115,32,84,111,107,101,110,123,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,117,112,101,114,40,34,65,114,116,79,110,108,105,110,101,34,44,34,65,82,84,34,44,49,56,44,115,116,97,116,101,41,125,125,114,101,116,117,114,110,32,65,114,116,79,110,108,105,110,101,59,2,91,93";
@@ -11,235 +11,224 @@ var bytecodes = {
11
11
  validators: validators
12
12
  };
13
13
 
14
- const worker = new EasyWorker();
15
-
16
- const contractFactoryMessage = bytecodes.contractFactory;
17
- const nativeTokenMessage = bytecodes.nativeToken;
18
- const nameServiceMessage = bytecodes.nameService;
19
- const validatorsMessage = bytecodes.validators;
20
-
21
- globalThis.BigNumber = BigNumber;
22
- globalThis.contracts = {};
23
-
24
- const has = address => {
25
- return contracts[address] ? true : false
26
- };
27
-
28
- const get = (contract, method, params) => {
29
- let result;
30
- if (params?.length > 0) {
31
- result = contracts[contract][method](...params);
32
- } else {
33
- result = contracts[contract][method];
34
- }
35
- return result
36
- };
37
-
38
- const runContract = async ({decoded, hash, encoded}) => {
39
- const params = decoded.constructorParameters;
40
- try {
41
-
42
- const func = new Function(new TextDecoder().decode(decoded.contract));
43
- const Contract = func();
44
-
45
- globalThis.msg = createMessage(decoded.creator);
46
- contracts[hash] = await new Contract(...params);
47
- worker.postMessage({
48
- type: 'debug',
49
- messages: [
50
- `loaded contract: ${hash}`,
51
- `size: ${formatBytes(encoded.length)}`
52
- ]
53
- });
54
- } catch (e) {
55
- console.log(e);
56
- worker.postMessage({
57
- type: 'contractError',
58
- hash: await contractMessage.hash()
59
- });
60
- }
61
- };
62
-
63
- const execute = async (contract, method, params) => {
64
- try {
65
- let result;
66
- // don't execute the method on a proxy
67
- if (contracts[contract].fallback) {
68
- result = await contracts[contract].fallback(method, params);
69
- } else {
70
- result = await contracts[contract][method](...params);
71
- }
72
- // state.put(result)
73
- return result
74
- } catch (e) {
75
- throw new Error(
76
- `error: ${e.message}
77
- contract: ${contract}
78
- method: ${method}
79
- params: ${JSON.stringify(params, null, '\t')}
80
- `
81
- )
82
- }
83
- };
84
-
85
-
86
- const createMessage = (sender = globalThis.peerid) => {
87
- return {
88
- sender,
89
- call: execute,
90
- staticCall: get
91
- }
92
- };
93
-
94
- const _init = async ({ contracts, blocks, peerid })=> {
95
-
96
- globalThis.peerid = peerid;
97
- contracts = [
98
- contractFactoryMessage,
99
- nativeTokenMessage,
100
- nameServiceMessage,
101
- validatorsMessage
102
- ];
103
-
104
- contracts = await Promise.all(contracts.map(async contract => {
105
- contract = await new ContractMessage(new Uint8Array(contract.split(',')));
106
- await runContract({decoded: contract.decoded, encoded: contract.encoded, hash: await contract.hash()});
107
- return contract
108
- }));
109
-
110
- let lastBlock = {hash: '0x0'};
111
-
112
- if (blocks?.length > 0) {
113
- let pre;
114
-
115
- try {
116
- const importee = await import('url');
117
- const url = importee.default;
118
- if (url) pre = url.fileURLToPath(new URL('.', import.meta.url));
119
- } catch {
120
- // browser env
121
- pre = './';
122
- }
123
-
124
- const _worker = await new EasyWorker(pre + 'block-worker.js', {serialization: 'advanced', type: 'module' });
125
- blocks = await _worker.once([blocks[blocks.length - 1]]);
126
-
127
- // blocks = unique(globalThis.blocks ? globalThis : [], blocks)
128
- // for (let i = 0; i < blocks.length; i++) {
129
-
130
- // }
131
- // for (const block of blocks) {
132
- // await Promise.all(block.decoded.transactions.map(async message => {
133
- // if (!block.loaded) {
134
- // const {from, to, method, params} = message;
135
- // globalThis.msg = createMessage(from);
136
-
137
- // await execute(to, method, params);
138
- // block.loaded = true
139
- // }
140
- // }));
141
- // }
142
-
143
- if (blocks.length > 0) {
144
- lastBlock = blocks[blocks.length - 1];
145
- // todo blocks already loaded as blockmessage so use it!
146
- lastBlock = await new BlockMessage(lastBlock);
147
-
148
- lastBlock = {
149
- ...lastBlock.decoded,
150
- hash: await lastBlock.hash()
151
- };
152
- }
153
- globalThis.blocks = blocks;
154
- }
155
-
156
-
157
-
158
-
159
- worker.postMessage({type: 'machine-ready', lastBlock});
160
-
161
- // worker.postMessage({blocks});
162
- };
163
-
164
- const tasks = async (e) => {
165
- const id = e.id;
166
- if (e.type === 'init') {
167
- try {
168
- await _init(e.input);
169
- } catch (e) {
170
- worker.postMessage({
171
- type: 'initError',
172
- message: e.message,
173
- id
174
- });
175
- }
176
- }
177
- if (e.type === 'has') {
178
- try {
179
- const value = await has(e.input.address);
180
- worker.postMessage({
181
- type: 'response',
182
- id,
183
- value
184
- });
185
- } catch (error) {
186
- worker.postMessage({
187
- type: 'hasError',
188
- message: error.message,
189
- id
190
- });
191
- }
192
- }
193
- if (e.type === 'run') {
194
- try {
195
- const value = await runContract(e.input);
196
- worker.postMessage({
197
- type: 'response',
198
- id,
199
- value
200
- });
201
- } catch (e) {
202
- worker.postMessage({
203
- type: 'runError',
204
- message: e.message,
205
- id
206
- });
207
- }
208
- }
209
- if (e.type === 'get') {
210
- try {
211
- const value = await get(e.input.contract, e.input.method, e.input.params);
212
- worker.postMessage({
213
- type: 'response',
214
- id,
215
- value
216
- });
217
- } catch (e) {
218
- worker.postMessage({
219
- type: 'fetchError',
220
- message: e.message,
221
- id
222
- });
223
- }
224
-
225
- }
226
- if (e.type === 'execute') {
227
- try {
228
- const value = await execute(e.input.contract, e.input.method, e.input.params);
229
- worker.postMessage({
230
- type: 'response',
231
- id,
232
- value
233
- });
234
- } catch(e) {
235
- worker.postMessage({
236
- type: 'executionError',
237
- message: e.message,
238
- id
239
-
240
- });
241
- }
242
- }
243
- };
244
-
245
- worker.onmessage(data => tasks(data));
14
+ const worker = new EasyWorker();
15
+
16
+ const contractFactoryMessage = bytecodes.contractFactory;
17
+ const nativeTokenMessage = bytecodes.nativeToken;
18
+ const nameServiceMessage = bytecodes.nameService;
19
+ const validatorsMessage = bytecodes.validators;
20
+
21
+ globalThis.BigNumber = BigNumber;
22
+ globalThis.contracts = {};
23
+
24
+ const has = (address) => {
25
+ return contracts[address] ? true : false
26
+ };
27
+
28
+ const get = (contract, method, params) => {
29
+ let result;
30
+ if (params?.length > 0) {
31
+ result = contracts[contract][method](...params);
32
+ } else {
33
+ result = contracts[contract][method];
34
+ }
35
+ return result
36
+ };
37
+
38
+ const runContract = async ({ decoded, hash, encoded }) => {
39
+ const params = decoded.constructorParameters;
40
+ try {
41
+ const func = new Function(new TextDecoder().decode(decoded.contract));
42
+ const Contract = func();
43
+
44
+ globalThis.msg = createMessage(decoded.creator);
45
+ contracts[hash] = await new Contract(...params);
46
+ worker.postMessage({
47
+ type: 'debug',
48
+ messages: [`loaded contract: ${hash}`, `size: ${formatBytes(encoded.length)}`]
49
+ });
50
+ } catch (e) {
51
+ console.log(e);
52
+ worker.postMessage({
53
+ type: 'contractError',
54
+ hash: await contractMessage.hash()
55
+ });
56
+ }
57
+ };
58
+
59
+ const execute = async (contract, method, params) => {
60
+ try {
61
+ let result;
62
+ // don't execute the method on a proxy
63
+ if (contracts[contract].fallback) {
64
+ result = await contracts[contract].fallback(method, params);
65
+ } else {
66
+ result = await contracts[contract][method](...params);
67
+ }
68
+ // state.put(result)
69
+ return result
70
+ } catch (e) {
71
+ throw new Error(
72
+ `error: ${e.message}
73
+ contract: ${contract}
74
+ method: ${method}
75
+ params: ${JSON.stringify(params, null, '\t')}
76
+ `
77
+ )
78
+ }
79
+ };
80
+
81
+ const createMessage = (sender = globalThis.peerid) => {
82
+ return {
83
+ sender,
84
+ call: execute,
85
+ staticCall: get
86
+ }
87
+ };
88
+
89
+ const _init = async ({ contracts, blocks, peerid }) => {
90
+ globalThis.peerid = peerid;
91
+ contracts = [contractFactoryMessage, nativeTokenMessage, nameServiceMessage, validatorsMessage];
92
+
93
+ contracts = await Promise.all(
94
+ contracts.map(async (contract) => {
95
+ contract = await new ContractMessage(new Uint8Array(contract.split(',')));
96
+ await runContract({ decoded: contract.decoded, encoded: contract.encoded, hash: await contract.hash() });
97
+ return contract
98
+ })
99
+ );
100
+
101
+ let lastBlock = { hash: '0x0' };
102
+
103
+ if (blocks?.length > 0) {
104
+ let pre;
105
+
106
+ try {
107
+ const importee = await import('url');
108
+ const url = importee.default;
109
+ if (url) pre = url.fileURLToPath(new URL('.', import.meta.url));
110
+ } catch {
111
+ // browser env
112
+ pre = './';
113
+ }
114
+
115
+ const _worker = await new EasyWorker(pre + 'block-worker.js', {
116
+ serialization: 'advanced',
117
+ type: 'module'
118
+ });
119
+ blocks = await _worker.once([blocks[blocks.length - 1]]);
120
+
121
+ // blocks = unique(globalThis.blocks ? globalThis : [], blocks)
122
+ // for (let i = 0; i < blocks.length; i++) {
123
+
124
+ // }
125
+ // for (const block of blocks) {
126
+ // await Promise.all(block.decoded.transactions.map(async message => {
127
+ // if (!block.loaded) {
128
+ // const {from, to, method, params} = message;
129
+ // globalThis.msg = createMessage(from);
130
+
131
+ // await execute(to, method, params);
132
+ // block.loaded = true
133
+ // }
134
+ // }));
135
+ // }
136
+
137
+ if (blocks.length > 0) {
138
+ lastBlock = blocks[blocks.length - 1];
139
+ // todo blocks already loaded as blockmessage so use it!
140
+ lastBlock = await new BlockMessage(lastBlock);
141
+
142
+ lastBlock = {
143
+ ...lastBlock.decoded,
144
+ hash: await lastBlock.hash()
145
+ };
146
+ }
147
+ globalThis.blocks = blocks;
148
+ }
149
+
150
+ worker.postMessage({ type: 'machine-ready', lastBlock });
151
+
152
+ // worker.postMessage({blocks});
153
+ };
154
+
155
+ const tasks = async (e) => {
156
+ const id = e.id;
157
+ if (e.type === 'init') {
158
+ try {
159
+ await _init(e.input);
160
+ } catch (e) {
161
+ worker.postMessage({
162
+ type: 'initError',
163
+ message: e.message,
164
+ id
165
+ });
166
+ }
167
+ }
168
+ if (e.type === 'has') {
169
+ try {
170
+ const value = await has(e.input.address);
171
+ worker.postMessage({
172
+ type: 'response',
173
+ id,
174
+ value
175
+ });
176
+ } catch (error) {
177
+ worker.postMessage({
178
+ type: 'hasError',
179
+ message: error.message,
180
+ id
181
+ });
182
+ }
183
+ }
184
+ if (e.type === 'run') {
185
+ try {
186
+ const value = await runContract(e.input);
187
+ worker.postMessage({
188
+ type: 'response',
189
+ id,
190
+ value
191
+ });
192
+ } catch (e) {
193
+ worker.postMessage({
194
+ type: 'runError',
195
+ message: e.message,
196
+ id
197
+ });
198
+ }
199
+ }
200
+ if (e.type === 'get') {
201
+ try {
202
+ const value = await get(e.input.contract, e.input.method, e.input.params);
203
+ worker.postMessage({
204
+ type: 'response',
205
+ id,
206
+ value
207
+ });
208
+ } catch (e) {
209
+ worker.postMessage({
210
+ type: 'fetchError',
211
+ message: e.message,
212
+ id
213
+ });
214
+ }
215
+ }
216
+ if (e.type === 'execute') {
217
+ try {
218
+ const value = await execute(e.input.contract, e.input.method, e.input.params);
219
+ worker.postMessage({
220
+ type: 'response',
221
+ id,
222
+ value
223
+ });
224
+ } catch (e) {
225
+ worker.postMessage({
226
+ type: 'executionError',
227
+ message: e.message,
228
+ id
229
+ });
230
+ }
231
+ }
232
+ };
233
+
234
+ worker.onmessage((data) => tasks(data));
@@ -5500,6 +5500,8 @@ class TransactionMessage extends FormatInterface {
5500
5500
  return 'TransactionMessage';
5501
5501
  }
5502
5502
  constructor(buffer) {
5503
+ if (buffer instanceof TransactionMessage)
5504
+ return buffer;
5503
5505
  const name = 'transaction-message';
5504
5506
  super(buffer, proto$3, { name });
5505
5507
  }
@@ -5515,6 +5517,8 @@ class ValidatorMessage extends FormatInterface {
5515
5517
  return 'ValidatorMessage';
5516
5518
  }
5517
5519
  constructor(buffer) {
5520
+ if (buffer instanceof ValidatorMessage)
5521
+ return buffer;
5518
5522
  const name = 'validator-message';
5519
5523
  super(buffer, proto$2, { name });
5520
5524
  }
@@ -5535,6 +5539,8 @@ class BlockMessage extends FormatInterface {
5535
5539
  return 'BlockMessage';
5536
5540
  }
5537
5541
  constructor(buffer) {
5542
+ if (buffer instanceof BlockMessage)
5543
+ return buffer;
5538
5544
  const name = 'block-message';
5539
5545
  super(buffer, proto$1, { name });
5540
5546
  }
@@ -5564,9 +5570,9 @@ class BlockMessage extends FormatInterface {
5564
5570
  encoded = encoded || this.encoded;
5565
5571
  super.decode(encoded);
5566
5572
  // @ts-ignore
5567
- this.decoded.transactions = index$4(this.decoded.transactions).map(transaction => new TransactionMessage(transaction).decoded);
5573
+ this.decoded.transactions = index$4(this.decoded.transactions).map((transaction) => new TransactionMessage(transaction).decoded);
5568
5574
  // @ts-ignore
5569
- this.decoded.validators = index$4(this.decoded.validators).map(validator => new ValidatorMessage(validator).decoded);
5575
+ this.decoded.validators = index$4(this.decoded.validators).map((validator) => new ValidatorMessage(validator).decoded);
5570
5576
  return this.decoded;
5571
5577
  }
5572
5578
  }
@@ -5582,6 +5588,8 @@ class ContractMessage extends FormatInterface {
5582
5588
  return 'ContractMessage';
5583
5589
  }
5584
5590
  constructor(buffer) {
5591
+ if (buffer instanceof ContractMessage)
5592
+ return buffer;
5585
5593
  super(buffer, proto, { name: 'contract-message' });
5586
5594
  }
5587
5595
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leofcoin/chain",
3
- "version": "1.5.24",
3
+ "version": "1.5.26",
4
4
  "description": "Official javascript implementation",
5
5
  "exports": {
6
6
  "./node": {
@@ -30,6 +30,7 @@
30
30
  "np": "np",
31
31
  "watch": "rollup -c -w",
32
32
  "lint": "eslint src --fix",
33
+ "prettier": "prettier src --config ./../../.prettierrc --write",
33
34
  "w": "rollup -c -w",
34
35
  "docs": "sh ./node_modules/.bin/esdoc src/chain.js",
35
36
  "workers": "cp ./../workers/src/** ./workers",