@leofcoin/chain 1.4.20 → 1.4.22

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 (76) hide show
  1. package/CHANGELOG.md +14 -14
  2. package/LICENSE +88 -88
  3. package/README.md +4 -4
  4. package/demo/index.html +25 -25
  5. package/examples/contracts/token.js +7 -7
  6. package/package.json +71 -71
  7. package/plugins/bundle.js +18 -18
  8. package/src/chain.js +716 -716
  9. package/src/config/config.js +14 -14
  10. package/src/config/main.js +4 -4
  11. package/src/config/protocol.js +5 -5
  12. package/src/contract.js +51 -51
  13. package/src/fee/config.js +3 -3
  14. package/src/machine.js +215 -215
  15. package/src/node.js +24 -24
  16. package/src/protocol.js +3 -3
  17. package/src/state.js +31 -31
  18. package/src/transaction.js +233 -233
  19. package/src/type.index.d.ts +20 -20
  20. package/src/typer.js +19 -19
  21. package/test/chain.js +120 -109
  22. package/test/contracts/token.js +40 -40
  23. package/test/create-genesis.js +66 -66
  24. package/tsconfig.js +14 -14
  25. package/workers/block-worker.js +40 -40
  26. package/workers/machine-worker.js +218 -218
  27. package/workers/pool-worker.js +28 -28
  28. package/workers/transaction-worker.js +19 -19
  29. package/workers/workers.js +8 -8
  30. package/block-worker.js +0 -1
  31. package/demo/865.browser.js +0 -10
  32. package/demo/chain.browser.js +0 -66842
  33. package/demo/generate-account.browser.js +0 -50
  34. package/demo/messages.browser.js +0 -328
  35. package/demo/multi-wallet.browser.js +0 -15
  36. package/demo/node.browser.js +0 -9858
  37. package/demo/pako.browser.js +0 -6900
  38. package/demo/peernet-swarm.browser.js +0 -839
  39. package/demo/storage.browser.js +0 -3724
  40. package/demo/workers/865.js +0 -10
  41. package/demo/workers/block-worker.js +0 -13175
  42. package/demo/workers/machine-worker.js +0 -13385
  43. package/demo/workers/pool-worker.js +0 -8503
  44. package/demo/workers/transaction-worker.js +0 -8495
  45. package/demo/wrtc.browser.js +0 -28
  46. package/dist/browser/workers/865.js +0 -10
  47. package/dist/browser/workers/block-worker.js +0 -9460
  48. package/dist/browser/workers/machine-worker.js +0 -9670
  49. package/dist/browser/workers/pool-worker.js +0 -4608
  50. package/dist/browser/workers/transaction-worker.js +0 -4600
  51. package/dist/chain.js +0 -10128
  52. package/dist/client-80bc8156.js +0 -491
  53. package/dist/commonjs-7fe3c381.js +0 -270
  54. package/dist/contracts/factory.js +0 -1
  55. package/dist/contracts/name-service.js +0 -1
  56. package/dist/contracts/native-token.js +0 -1
  57. package/dist/contracts/validators.js +0 -1
  58. package/dist/generate-account-445db122.js +0 -46
  59. package/dist/index-57f93805.js +0 -718
  60. package/dist/messages-bce1b91d-81af3b00.js +0 -315
  61. package/dist/module/chain.js +0 -10091
  62. package/dist/module/client-8031ec88.js +0 -489
  63. package/dist/module/commonjs-9005d5c0.js +0 -268
  64. package/dist/module/generate-account-489552b6.js +0 -44
  65. package/dist/module/index-ac2285c4.js +0 -688
  66. package/dist/module/messages-bce1b91d-eaf75d83.js +0 -302
  67. package/dist/module/node.js +0 -7049
  68. package/dist/module/workers/block-worker.js +0 -94
  69. package/dist/module/workers/machine-worker.js +0 -304
  70. package/dist/module/workers/pool-worker.js +0 -55
  71. package/dist/module/workers/transaction-worker.js +0 -47
  72. package/dist/node.js +0 -7061
  73. package/dist/standards/token.js +0 -1
  74. package/dist/workers/machine-worker.js +0 -1
  75. package/dist/workers/pool-worker.js +0 -1
  76. package/dist/workers/transaction-worker.js +0 -1
package/test/chain.js CHANGED
@@ -1,109 +1,120 @@
1
-
2
-
3
- globalThis.DEBUG = true
4
- const Chain = await import('./../src/chain.js');
5
- const Node = await import('./../src/node.js');
6
- let imp = await import('../../networks/networks.js')
7
- const networks = imp.default
8
- console.log(networks.leofcoin.peach);
9
- const node = await new Node.default({
10
- network: 'leofcoin:peach',
11
- networkName: 'leofcoin:peach',
12
- networkVersion: 'peach',
13
- stars: networks.leofcoin.peach.stars
14
- })
15
- const chain = await new Chain.default()
16
- let start
17
- await chain.participate(peernet.selectedAccount)
18
- console.log(peernet.selectedAccount);
19
- const job = async () => {
20
-
21
- let nonce = await chain.getNonce(peernet.selectedAccount)
22
- // // setTimeout(async () => {
23
- let tx
24
- // try {
25
- // tx = await chain.createTransaction(chain.nativeToken, 'grantRole', [peernet.selectedAccount, 'MINT'])
26
- // console.log({tx});
27
- // await tx.wait
28
-
29
- // } catch (e) {
30
- // console.log({e});
31
- // }
32
-
33
- // try {
34
- // tx = await chain.createTransaction(chain.nativeToken, 'mint', [peernet.selectedAccount, chain.utils.parseUnits('100000000000000').toString()])
35
-
36
- // await tx.wait
37
- // } catch (e) {
38
- // console.log({e});
39
- // }
40
- return
41
- console.log({nonce});
42
- let balances = await chain.balances
43
- console.log({balances});
44
- // return
45
- // console.log(`balance for ${Object.keys(balances)[0]}:${chain.utils.formatUnits(balances[Object.keys(balances)[0]]).toString()}`);
46
- // console.log(`balance for ${Object.keys(balances)[1]}:${chain.utils.formatUnits(balances[Object.keys(balances)[1]]).toString()}`);
47
- // return
48
- let promises = []
49
- // nonce += 1
50
- for (let i = 0; i < 10; i++) {
51
- // contract , method, from, to, amount, (optional) nonce
52
- nonce += 1
53
- promises.push(chain.createTransaction(chain.nativeToken, 'transfer', [peernet.selectedAccount, '6zqut21djrRNJAniaTByovGhnBGs5h9wfkP35mzjZkEBZwnQVo', chain.utils.parseUnits('100').toString()], nonce))
54
- }
55
- promises = await Promise.allSettled(promises)
56
- promises = await Promise.allSettled(promises.map(({value}) => value.wait))
57
-
58
- console.log(`${(new Date().getTime() - start) / 1000} s`);
59
-
60
- balances = await chain.balances
61
- console.log(`balance for ${Object.keys(balances)[0]}:${chain.utils.formatUnits(balances[Object.keys(balances)[0]]).toString()}`);
62
- console.log(`balance for ${Object.keys(balances)[1]}:${chain.utils.formatUnits(balances[Object.keys(balances)[1]]).toString()}`);
63
- // return
64
- // // setTimeout(async () => {
65
- promises = []
66
-
67
- // nonce += 1
68
- for (let i = 0; i < 100; i++) {
69
- // contract , method, from, to, amount, (optional) nonce
70
-
71
- nonce += 1
72
- promises.push(chain.createTransaction(chain.nativeToken, 'transfer', [peernet.selectedAccount, '6zqut21djrRNJAniaTByovGhnBGs5h9wfkP35mzjZkEBZwnQVo', chain.utils.parseUnits('100').toString()], nonce))
73
- }
74
- promises = await Promise.allSettled(promises)
75
- promises = await Promise.allSettled(promises.map(({value}) => value.wait))
76
- balances = await chain.balances
77
- console.log(`balance for ${Object.keys(balances)[0]}:${chain.utils.formatUnits(balances[Object.keys(balances)[0]]).toString()}`);
78
- console.log(`balance for ${Object.keys(balances)[1]}:${chain.utils.formatUnits(balances[Object.keys(balances)[1]]).toString()}`);
79
-
80
- promises = []
81
-
82
- // nonce += 1
83
- for (let i = 0; i < 1000; i++) {
84
- // contract , method, from, to, amount, (optional) nonce
85
-
86
- nonce += 1
87
- promises.push(chain.createTransaction(chain.nativeToken, 'transfer', [peernet.selectedAccount, '6zqut21djrRNJAniaTByovGhnBGs5h9wfkP35mzjZkEBZwnQVo', chain.utils.parseUnits('100').toString()], nonce))
88
- }
89
- promises = await Promise.allSettled(promises)
90
- promises = await Promise.allSettled(promises.map(({value}) => value.wait))
91
- balances = await chain.balances
92
- console.log(`balance for ${Object.keys(balances)[0]}:${chain.utils.formatUnits(balances[Object.keys(balances)[0]]).toString()}`);
93
- console.log(`balance for ${Object.keys(balances)[1]}:${chain.utils.formatUnits(balances[Object.keys(balances)[1]]).toString()}`);
94
- // }, 10000);
95
-
96
- // job()
97
- // }, 5000);
98
- }
99
-
100
- // setTimeout(function () {
101
- // start = new Date().getTime()
102
- // console.log(peernet.connections);
103
- // }, 10000);
104
- try {
105
- job()
106
- } catch (e) {
107
- console.warn(e);
108
- }
109
-
1
+
2
+ (async () => {
3
+ globalThis.DEBUG = true
4
+ const Chain = await import('./../src/chain.js');
5
+ const Node = await import('./../src/node.js');
6
+ let imp = await import('../../networks/networks.js')
7
+ const networks = imp.default
8
+ console.log(networks.leofcoin.peach);
9
+ const node = await new Node.default({
10
+ network: 'leofcoin:peach',
11
+ networkName: 'leofcoin:peach',
12
+ networkVersion: 'peach',
13
+ stars: networks.leofcoin.peach.stars
14
+ })
15
+ const chain = await new Chain.default()
16
+ let start
17
+ //
18
+ // await chain.deleteAll()
19
+ // return
20
+ // try {
21
+ // const contract = await chain.utils.read('./dist/native.js')
22
+ // const address = await chain.deployContract(peernet.Buffer.from(`return ${contract.toString().replace(/export{([A-Z])\w+ as default}/g, '')}`))
23
+ // console.log(address);
24
+ // } catch (e) {
25
+ // console.log(e);
26
+ // } finally {
27
+ //
28
+ // }
29
+ // '5xdacigaguxg3yjllehp65htk32ha3sztlexxrrhmviobgibz6dt6hkxfu'
30
+ console.log(peernet.selectedAccount);
31
+ await chain.participate(peernet.selectedAccount)
32
+ console.log(peernet.selectedAccount);
33
+ const job = async () => {
34
+ // setTimeout(async () => {
35
+ let tx
36
+ // try {
37
+ // tx = await chain.createTransaction(chain.nativeToken, 'grantRole', [peernet.selectedAccount, 'MINT'])
38
+ // await tx.wait()
39
+
40
+ // } catch (e) {
41
+ // console.log({e});
42
+ // }
43
+
44
+ // try {
45
+ // tx = await chain.createTransaction(chain.nativeToken, 'mint', [peernet.selectedAccount, chain.utils.parseUnits('100000000000000').toString()])
46
+
47
+ // await tx.wait()
48
+ // } catch (e) {
49
+ // console.log({e});
50
+ // }
51
+ // return
52
+ let nonce = await chain.getNonce(peernet.selectedAccount)
53
+ console.log({nonce});
54
+ let balances = await chain.balances
55
+ console.log(`balance for ${Object.keys(balances)[0]}:${chain.utils.formatUnits(balances[Object.keys(balances)[0]]).toString()}`);
56
+ console.log(`balance for ${Object.keys(balances)[1]}:${chain.utils.formatUnits(balances[Object.keys(balances)[1]]).toString()}`);
57
+ // return
58
+ let promises = []
59
+ // nonce += 1
60
+ for (let i = 0; i < 10; i++) {
61
+ // contract , method, from, to, amount, (optional) nonce
62
+ nonce += 1
63
+ promises.push(chain.createTransaction(chain.nativeToken, 'transfer', [peernet.selectedAccount, '6zqut21djrRNJAniaTByovGhnBGs5h9wfkP35mzjZkEBZwnQVo', chain.utils.parseUnits('100').toString()], nonce))
64
+ }
65
+ promises = await Promise.allSettled(promises)
66
+ promises = await Promise.allSettled(promises.map(({value}) => value.wait))
67
+
68
+ console.log(`${(new Date().getTime() - start) / 1000} s`);
69
+
70
+ balances = await chain.balances
71
+ console.log(`balance for ${Object.keys(balances)[0]}:${chain.utils.formatUnits(balances[Object.keys(balances)[0]]).toString()}`);
72
+ console.log(`balance for ${Object.keys(balances)[1]}:${chain.utils.formatUnits(balances[Object.keys(balances)[1]]).toString()}`);
73
+ // return
74
+ // // setTimeout(async () => {
75
+ promises = []
76
+
77
+ // nonce += 1
78
+ for (let i = 0; i < 100; i++) {
79
+ // contract , method, from, to, amount, (optional) nonce
80
+
81
+ nonce += 1
82
+ promises.push(chain.createTransaction(chain.nativeToken, 'transfer', [peernet.selectedAccount, '6zqut21djrRNJAniaTByovGhnBGs5h9wfkP35mzjZkEBZwnQVo', chain.utils.parseUnits('100').toString()], nonce))
83
+ }
84
+ promises = await Promise.allSettled(promises)
85
+ promises = await Promise.allSettled(promises.map(({value}) => value.wait))
86
+ balances = await chain.balances
87
+ console.log(`balance for ${Object.keys(balances)[0]}:${chain.utils.formatUnits(balances[Object.keys(balances)[0]]).toString()}`);
88
+ console.log(`balance for ${Object.keys(balances)[1]}:${chain.utils.formatUnits(balances[Object.keys(balances)[1]]).toString()}`);
89
+
90
+ promises = []
91
+
92
+ // nonce += 1
93
+ for (let i = 0; i < 1000; i++) {
94
+ // contract , method, from, to, amount, (optional) nonce
95
+
96
+ nonce += 1
97
+ promises.push(chain.createTransaction(chain.nativeToken, 'transfer', [peernet.selectedAccount, '6zqut21djrRNJAniaTByovGhnBGs5h9wfkP35mzjZkEBZwnQVo', chain.utils.parseUnits('100').toString()], nonce))
98
+ }
99
+ promises = await Promise.allSettled(promises)
100
+ promises = await Promise.allSettled(promises.map(({value}) => value.wait))
101
+ balances = await chain.balances
102
+ console.log(`balance for ${Object.keys(balances)[0]}:${chain.utils.formatUnits(balances[Object.keys(balances)[0]]).toString()}`);
103
+ console.log(`balance for ${Object.keys(balances)[1]}:${chain.utils.formatUnits(balances[Object.keys(balances)[1]]).toString()}`);
104
+ // }, 10000);
105
+
106
+ // job()
107
+ // }, 5000);
108
+ }
109
+
110
+ // setTimeout(function () {
111
+ // start = new Date().getTime()
112
+ // console.log(peernet.connections);
113
+ // }, 10000);
114
+ try {
115
+ job()
116
+ } catch (e) {
117
+ console.warn(e);
118
+ }
119
+ return peernet
120
+ })()
@@ -1,40 +1,40 @@
1
- const test = require('tape')
2
-
3
- const Token = require('./../../dist/token');
4
-
5
- class TestToken extends Token {
6
- constructor() {
7
- super('token', 'TKN')
8
- }
9
- }
10
-
11
-
12
- // const token = new TestToken()
13
-
14
- test("can't access private", tape => {
15
- tape.plan(3)
16
- token.holders = 5
17
- token.balances[0] = 100
18
- token.symbol = 'TTT'
19
- console.log(token.symbol);
20
- tape.ok(token.symbol === 'TKN', 'symbol')
21
- tape.ok(Object.keys(token.balances).length === 0, 'balances')
22
- tape.ok(token.holders === 0, 'holders')
23
- })
24
-
25
- // test("transfer", tape => {
26
- // tape.plan(1)
27
- // console.log(token.balances);
28
- // try {
29
- // token.transfer('0', '1', 100)
30
- // } catch (e) {
31
- // console.log(e);
32
- // } finally {
33
- //
34
- // }
35
- // console.log(token.balances);
36
- //
37
- // tape.ok(token.balances[1] === 100)
38
- // })
39
-
40
- // console.log(new NativeToken());
1
+ const test = require('tape')
2
+
3
+ const Token = require('./../../dist/token');
4
+
5
+ class TestToken extends Token {
6
+ constructor() {
7
+ super('token', 'TKN')
8
+ }
9
+ }
10
+
11
+
12
+ // const token = new TestToken()
13
+
14
+ test("can't access private", tape => {
15
+ tape.plan(3)
16
+ token.holders = 5
17
+ token.balances[0] = 100
18
+ token.symbol = 'TTT'
19
+ console.log(token.symbol);
20
+ tape.ok(token.symbol === 'TKN', 'symbol')
21
+ tape.ok(Object.keys(token.balances).length === 0, 'balances')
22
+ tape.ok(token.holders === 0, 'holders')
23
+ })
24
+
25
+ // test("transfer", tape => {
26
+ // tape.plan(1)
27
+ // console.log(token.balances);
28
+ // try {
29
+ // token.transfer('0', '1', 100)
30
+ // } catch (e) {
31
+ // console.log(e);
32
+ // } finally {
33
+ //
34
+ // }
35
+ // console.log(token.balances);
36
+ //
37
+ // tape.ok(token.balances[1] === 100)
38
+ // })
39
+
40
+ // console.log(new NativeToken());
@@ -1,66 +1,66 @@
1
-
2
- console.log('run');
3
-
4
- (async () => {
5
- console.log('run');
6
- const {promisify} = require('util')
7
- const read = promisify(require('fs').readFile)
8
- const write = promisify(require('fs').writeFile)
9
- const {join} = require('path')
10
- console.log('t');
11
- const Chain = require('./../dist/chain');
12
- console.log(Chain);
13
- const Node = require('./../dist/node');
14
- console.log(Node);
15
- console.log(Chain);
16
- const node = await new Node()
17
- console.log(node);
18
- const chain = await new Chain()
19
- console.log(chain);
20
- const createMessage = async (src, params = []) => {
21
- const contract = await read(src)
22
- return chain.createContractMessage(peernet.id, `return ${contract.toString().replace(/export{([A-Z])\w+ as default}/g, '')}`, params)
23
- }
24
- const factory = await createMessage('./dist/contracts/factory.js')
25
- console.log(factory);
26
- if (!await contractStore.has(factory.hash)) {
27
- await contractStore.put(factory.hash, factory.encoded)
28
- }
29
-
30
- const nativeToken = await createMessage('./dist/contracts/nativeToken.js')
31
- if (!await contractStore.has(nativeToken.hash)) {
32
- await contractStore.put(nativeToken.hash, nativeToken.encoded)
33
- }
34
-
35
-
36
- const validators = await createMessage('./dist/contracts/validators.js', [nativeToken.hash])
37
-
38
- if (!await contractStore.has(validators.hash)) {
39
- await contractStore.put(validators.hash, validators.encoded)
40
- }
41
-
42
-
43
- const nameService = await createMessage('./dist/contracts/nameService.js', [factory.hash, nativeToken.hash, validators.hash, BigNumber.from('1000')])
44
-
45
- if (!await contractStore.has(nameService.hash)) {
46
- await contractStore.put(nameService.hash, nameService.encoded)
47
- }
48
- const addresses = {
49
- contractFactory: factory.hash,
50
- nativeToken: nativeToken.hash,
51
- nameService: nameService.hash,
52
- validators: validators.hash
53
- }
54
-
55
-
56
-
57
- const bytecodes = {
58
- contractFactory: await factory.toString(),
59
- nativeToken: await nativeToken.toString(),
60
- nameService: await nameService.toString(),
61
- validators: await validators.toString()
62
- }
63
-
64
- await write(join(process.cwd(), 'src/addresses.json'), JSON.stringify(addresses, null, '\t'))
65
- await write(join(process.cwd(), 'src/bytecodes.json'), JSON.stringify(bytecodes, null, '\t'))
66
- })()
1
+
2
+ console.log('run');
3
+
4
+ (async () => {
5
+ console.log('run');
6
+ const {promisify} = require('util')
7
+ const read = promisify(require('fs').readFile)
8
+ const write = promisify(require('fs').writeFile)
9
+ const {join} = require('path')
10
+ console.log('t');
11
+ const Chain = require('./../dist/chain');
12
+ console.log(Chain);
13
+ const Node = require('./../dist/node');
14
+ console.log(Node);
15
+ console.log(Chain);
16
+ const node = await new Node()
17
+ console.log(node);
18
+ const chain = await new Chain()
19
+ console.log(chain);
20
+ const createMessage = async (src, params = []) => {
21
+ const contract = await read(src)
22
+ return chain.createContractMessage(peernet.id, `return ${contract.toString().replace(/export{([A-Z])\w+ as default}/g, '')}`, params)
23
+ }
24
+ const factory = await createMessage('./dist/contracts/factory.js')
25
+ console.log(factory);
26
+ if (!await contractStore.has(factory.hash)) {
27
+ await contractStore.put(factory.hash, factory.encoded)
28
+ }
29
+
30
+ const nativeToken = await createMessage('./dist/contracts/nativeToken.js')
31
+ if (!await contractStore.has(nativeToken.hash)) {
32
+ await contractStore.put(nativeToken.hash, nativeToken.encoded)
33
+ }
34
+
35
+
36
+ const validators = await createMessage('./dist/contracts/validators.js', [nativeToken.hash])
37
+
38
+ if (!await contractStore.has(validators.hash)) {
39
+ await contractStore.put(validators.hash, validators.encoded)
40
+ }
41
+
42
+
43
+ const nameService = await createMessage('./dist/contracts/nameService.js', [factory.hash, nativeToken.hash, validators.hash, BigNumber.from('1000')])
44
+
45
+ if (!await contractStore.has(nameService.hash)) {
46
+ await contractStore.put(nameService.hash, nameService.encoded)
47
+ }
48
+ const addresses = {
49
+ contractFactory: factory.hash,
50
+ nativeToken: nativeToken.hash,
51
+ nameService: nameService.hash,
52
+ validators: validators.hash
53
+ }
54
+
55
+
56
+
57
+ const bytecodes = {
58
+ contractFactory: await factory.toString(),
59
+ nativeToken: await nativeToken.toString(),
60
+ nameService: await nameService.toString(),
61
+ validators: await validators.toString()
62
+ }
63
+
64
+ await write(join(process.cwd(), 'src/addresses.json'), JSON.stringify(addresses, null, '\t'))
65
+ await write(join(process.cwd(), 'src/bytecodes.json'), JSON.stringify(bytecodes, null, '\t'))
66
+ })()
package/tsconfig.js CHANGED
@@ -1,15 +1,15 @@
1
- export default {
2
-
3
- "esModuleInterop": true,
4
- 'allowSyntheticDefaultImports': true,
5
- "compilerOptions": {
6
- "outDir": "./dist",
7
- "esModuleInterop": true,
8
- 'allowSyntheticDefaultImports': true,
9
- "allowJs": true,
10
- "target": "es11"
11
- },
12
- "include": [
13
- "./src/**/*"
14
- ]
1
+ export default {
2
+
3
+ "esModuleInterop": true,
4
+ 'allowSyntheticDefaultImports': true,
5
+ "compilerOptions": {
6
+ "outDir": "./dist",
7
+ "esModuleInterop": true,
8
+ 'allowSyntheticDefaultImports': true,
9
+ "allowJs": true,
10
+ "target": "es11"
11
+ },
12
+ "include": [
13
+ "./src/**/*"
14
+ ]
15
15
  }
@@ -1,40 +1,40 @@
1
- import { BlockMessage } from './../../messages/src/messages.js'
2
- import { formatBytes, BigNumber } from './../../utils/src/utils.js'
3
-
4
- import EasyWorker from '@vandeurenglenn/easy-worker'
5
-
6
- const worker = new EasyWorker()
7
-
8
- globalThis.BigNumber = BigNumber
9
-
10
- globalThis.peernet = globalThis.peernet || {}
11
- globalThis.contracts = {}
12
-
13
- const run = async (blocks) => {
14
- blocks = await Promise.all(blocks.map(block => new BlockMessage(block)))
15
- blocks = blocks.sort((a, b) => a.decoded.timestamp - b.decoded.timestamp)
16
-
17
- blocks = await Promise.all(blocks.map(block => new Promise(async (resolve, reject) => {
18
- // todo: tx worker or nah?
19
- const size = block.encoded.length || block.encoded.byteLength
20
- console.log(`loaded block: ${await block.hash} @${block.decoded.index} ${formatBytes(size)}`);
21
- resolve(block)
22
- })))
23
- return blocks
24
- }
25
-
26
- const tasks = async blocks => {
27
- globalThis.peernet.codecs = {
28
- 'block-message': {
29
- codec: parseInt('626d', 16),
30
- hashAlg: 'keccak-256'
31
- }
32
- }
33
-
34
- blocks = await run(blocks)
35
- worker.postMessage(blocks)
36
- }
37
-
38
-
39
- worker.onmessage(data => tasks(data))
40
-
1
+ import { BlockMessage } from './../../messages/src/messages.js'
2
+ import { formatBytes, BigNumber } from './../../utils/src/utils.js'
3
+
4
+ import EasyWorker from '@vandeurenglenn/easy-worker'
5
+
6
+ const worker = new EasyWorker()
7
+
8
+ globalThis.BigNumber = BigNumber
9
+
10
+ globalThis.peernet = globalThis.peernet || {}
11
+ globalThis.contracts = {}
12
+
13
+ const run = async (blocks) => {
14
+ blocks = await Promise.all(blocks.map(block => new BlockMessage(block)))
15
+ blocks = blocks.sort((a, b) => a.decoded.timestamp - b.decoded.timestamp)
16
+
17
+ blocks = await Promise.all(blocks.map(block => new Promise(async (resolve, reject) => {
18
+ // todo: tx worker or nah?
19
+ const size = block.encoded.length || block.encoded.byteLength
20
+ console.log(`loaded block: ${await block.hash} @${block.decoded.index} ${formatBytes(size)}`);
21
+ resolve(block)
22
+ })))
23
+ return blocks
24
+ }
25
+
26
+ const tasks = async blocks => {
27
+ globalThis.peernet.codecs = {
28
+ 'block-message': {
29
+ codec: parseInt('626d', 16),
30
+ hashAlg: 'keccak-256'
31
+ }
32
+ }
33
+
34
+ blocks = await run(blocks)
35
+ worker.postMessage(blocks)
36
+ }
37
+
38
+
39
+ worker.onmessage(data => tasks(data))
40
+