@leofcoin/chain 1.1.11 → 1.1.13
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/{dist/workers/block-worker.js → block-worker.js} +0 -0
- package/demo/chain.browser.js +50 -51
- package/demo/node.browser.js +6 -13
- package/demo/pako.browser.js +670 -501
- package/demo/peernet-swarm.browser.js +8 -12
- package/demo/workers/block-worker.js +1 -2
- package/demo/workers/machine-worker.js +2 -4
- package/demo/workers/pool-worker.js +1 -2
- package/demo/workers/transaction-worker.js +1 -2
- package/dist/browser/workers/block-worker.js +1 -2
- package/dist/browser/workers/machine-worker.js +2 -4
- package/dist/browser/workers/pool-worker.js +1 -2
- package/dist/browser/workers/transaction-worker.js +1 -2
- package/dist/chain.browser.js +50 -51
- package/dist/chain.js +49 -49
- package/dist/module/chain.js +49 -49
- package/dist/module/workers/machine-worker.js +2 -2
- package/dist/node.browser.js +6 -13
- package/dist/pako.browser.js +670 -501
- package/dist/peernet-swarm.browser.js +8 -12
- package/dist/workers/machine-worker.js +1 -1
- package/package.json +4 -2
- package/rollup.config.js +1 -1
- package/src/chain.js +42 -46
- package/src/machine.js +6 -2
- package/test/chain.js +33 -18
- package/demo/865.machine-worker.js +0 -10
- package/demo/chain.js +0 -1209
- package/demo/machine-worker.js +0 -17624
- package/demo/node.js +0 -1
- package/demo/workers/workers/865.js +0 -10
- package/demo/workers/workers/block-worker.js +0 -13200
- package/demo/workers/workers/machine-worker.js +0 -13904
- package/demo/workers/workers/pool-worker.js +0 -8504
- package/demo/workers/workers/transaction-worker.js +0 -8496
|
@@ -436,6 +436,7 @@ class Peer {
|
|
|
436
436
|
this.#connection.ondatachannel = (message) => {
|
|
437
437
|
message.channel.onopen = () => {
|
|
438
438
|
this.#connected = true
|
|
439
|
+
debug(`peer:connected ${this}`)
|
|
439
440
|
pubsub.publish('peer:connected', this)
|
|
440
441
|
}
|
|
441
442
|
message.channel.onclose = () => this.close.bind(this)
|
|
@@ -505,27 +506,22 @@ class Peer {
|
|
|
505
506
|
}})
|
|
506
507
|
}
|
|
507
508
|
|
|
508
|
-
isNotReallyStable(signalinState) {
|
|
509
|
-
if (signalinState !== 'stable') return true
|
|
510
|
-
// remoteDescription & localDescription are null when the connection is just made
|
|
511
|
-
if (this.#connection.remoteDescription === null && this.#connection.localDescription === null) return true
|
|
512
|
-
return false
|
|
513
|
-
}
|
|
514
|
-
|
|
515
509
|
async _in(message, data) {
|
|
516
510
|
// message = JSON.parse(message);
|
|
517
|
-
if (message.to !== this.id) return
|
|
511
|
+
if (!this.#connection || message.to !== this.id || message.from !== this.#peerId) return
|
|
518
512
|
// if (data.videocall) return this._startStream(true, false); // start video and audio stream
|
|
519
513
|
// if (data.call) return this._startStream(true, true); // start audio stream
|
|
514
|
+
if (this.#connection?.signalinState === 'stable' && this.#connection?.remoteDescription !== null && this.#connection?.localDescription !== null) return
|
|
515
|
+
|
|
516
|
+
|
|
520
517
|
if (message.candidate) {
|
|
521
518
|
debug(`incoming candidate ${this.#channelName}`)
|
|
522
|
-
debug(message.candidate.candidate)
|
|
519
|
+
// debug(message.candidate.candidate)
|
|
523
520
|
this.remoteAddress = message.candidate.address
|
|
524
521
|
this.remotePort = message.candidate.port
|
|
525
522
|
this.remoteProtocol = message.candidate.protocol
|
|
526
|
-
this.remoteIpFamily = this.remoteAddress?.includes('::') ? 'ipv6': 'ipv4'
|
|
527
|
-
|
|
528
|
-
if (signalinState !== 'closed' && this.isNotReallyStable(signalinState)) return this.#connection.addIceCandidate(new wrtc.RTCIceCandidate(message.candidate));
|
|
523
|
+
this.remoteIpFamily = this.remoteAddress?.includes('::') ? 'ipv6': 'ipv4'
|
|
524
|
+
return this.#connection.addIceCandidate(new wrtc.RTCIceCandidate(message.candidate));
|
|
529
525
|
}
|
|
530
526
|
try {
|
|
531
527
|
if (message.sdp) {
|
|
@@ -11056,8 +11056,7 @@ module.exports = function (value) {
|
|
|
11056
11056
|
/******/ script.parentNode && script.parentNode.removeChild(script);
|
|
11057
11057
|
/******/ doneFns && doneFns.forEach(function(fn) { return fn(event); });
|
|
11058
11058
|
/******/ if(prev) return prev(event);
|
|
11059
|
-
/******/ }
|
|
11060
|
-
/******/ ;
|
|
11059
|
+
/******/ };
|
|
11061
11060
|
/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
|
|
11062
11061
|
/******/ script.onerror = onScriptComplete.bind(null, script.onerror);
|
|
11063
11062
|
/******/ script.onload = onScriptComplete.bind(null, script.onload);
|
|
@@ -11593,8 +11593,7 @@ module.exports = function (value) {
|
|
|
11593
11593
|
/******/ script.parentNode && script.parentNode.removeChild(script);
|
|
11594
11594
|
/******/ doneFns && doneFns.forEach(function(fn) { return fn(event); });
|
|
11595
11595
|
/******/ if(prev) return prev(event);
|
|
11596
|
-
/******/ }
|
|
11597
|
-
/******/ ;
|
|
11596
|
+
/******/ };
|
|
11598
11597
|
/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
|
|
11599
11598
|
/******/ script.onerror = onScriptComplete.bind(null, script.onerror);
|
|
11600
11599
|
/******/ script.onload = onScriptComplete.bind(null, script.onload);
|
|
@@ -13642,7 +13641,6 @@ class EasyWorker {
|
|
|
13642
13641
|
}
|
|
13643
13642
|
}
|
|
13644
13643
|
;// CONCATENATED MODULE: ./dist/module/workers/machine-worker.js
|
|
13645
|
-
var machine_worker_dirname = "/";
|
|
13646
13644
|
|
|
13647
13645
|
|
|
13648
13646
|
|
|
@@ -13844,7 +13842,7 @@ const _init = async ({ contracts, blocks, peerid })=> {
|
|
|
13844
13842
|
let lastBlock = {hash: '0x0'};
|
|
13845
13843
|
|
|
13846
13844
|
if (blocks?.length > 0) {
|
|
13847
|
-
const _worker = await new EasyWorker(
|
|
13845
|
+
const _worker = await new EasyWorker('./block-worker.js', {serialization: 'advanced', type: 'module' });
|
|
13848
13846
|
blocks = await _worker.once(blocks);
|
|
13849
13847
|
|
|
13850
13848
|
for (const block of blocks) {
|
|
@@ -7491,8 +7491,7 @@ module.exports = function (value) {
|
|
|
7491
7491
|
/******/ script.parentNode && script.parentNode.removeChild(script);
|
|
7492
7492
|
/******/ doneFns && doneFns.forEach(function(fn) { return fn(event); });
|
|
7493
7493
|
/******/ if(prev) return prev(event);
|
|
7494
|
-
/******/ }
|
|
7495
|
-
/******/ ;
|
|
7494
|
+
/******/ };
|
|
7496
7495
|
/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
|
|
7497
7496
|
/******/ script.onerror = onScriptComplete.bind(null, script.onerror);
|
|
7498
7497
|
/******/ script.onload = onScriptComplete.bind(null, script.onload);
|
|
@@ -7491,8 +7491,7 @@ module.exports = function (value) {
|
|
|
7491
7491
|
/******/ script.parentNode && script.parentNode.removeChild(script);
|
|
7492
7492
|
/******/ doneFns && doneFns.forEach(function(fn) { return fn(event); });
|
|
7493
7493
|
/******/ if(prev) return prev(event);
|
|
7494
|
-
/******/ }
|
|
7495
|
-
/******/ ;
|
|
7494
|
+
/******/ };
|
|
7496
7495
|
/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
|
|
7497
7496
|
/******/ script.onerror = onScriptComplete.bind(null, script.onerror);
|
|
7498
7497
|
/******/ script.onload = onScriptComplete.bind(null, script.onload);
|
|
@@ -11056,8 +11056,7 @@ module.exports = function (value) {
|
|
|
11056
11056
|
/******/ script.parentNode && script.parentNode.removeChild(script);
|
|
11057
11057
|
/******/ doneFns && doneFns.forEach(function(fn) { return fn(event); });
|
|
11058
11058
|
/******/ if(prev) return prev(event);
|
|
11059
|
-
/******/ }
|
|
11060
|
-
/******/ ;
|
|
11059
|
+
/******/ };
|
|
11061
11060
|
/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
|
|
11062
11061
|
/******/ script.onerror = onScriptComplete.bind(null, script.onerror);
|
|
11063
11062
|
/******/ script.onload = onScriptComplete.bind(null, script.onload);
|
|
@@ -11593,8 +11593,7 @@ module.exports = function (value) {
|
|
|
11593
11593
|
/******/ script.parentNode && script.parentNode.removeChild(script);
|
|
11594
11594
|
/******/ doneFns && doneFns.forEach(function(fn) { return fn(event); });
|
|
11595
11595
|
/******/ if(prev) return prev(event);
|
|
11596
|
-
/******/ }
|
|
11597
|
-
/******/ ;
|
|
11596
|
+
/******/ };
|
|
11598
11597
|
/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
|
|
11599
11598
|
/******/ script.onerror = onScriptComplete.bind(null, script.onerror);
|
|
11600
11599
|
/******/ script.onload = onScriptComplete.bind(null, script.onload);
|
|
@@ -13642,7 +13641,6 @@ class EasyWorker {
|
|
|
13642
13641
|
}
|
|
13643
13642
|
}
|
|
13644
13643
|
;// CONCATENATED MODULE: ./dist/module/workers/machine-worker.js
|
|
13645
|
-
var machine_worker_dirname = "/";
|
|
13646
13644
|
|
|
13647
13645
|
|
|
13648
13646
|
|
|
@@ -13844,7 +13842,7 @@ const _init = async ({ contracts, blocks, peerid })=> {
|
|
|
13844
13842
|
let lastBlock = {hash: '0x0'};
|
|
13845
13843
|
|
|
13846
13844
|
if (blocks?.length > 0) {
|
|
13847
|
-
const _worker = await new EasyWorker(
|
|
13845
|
+
const _worker = await new EasyWorker('./block-worker.js', {serialization: 'advanced', type: 'module' });
|
|
13848
13846
|
blocks = await _worker.once(blocks);
|
|
13849
13847
|
|
|
13850
13848
|
for (const block of blocks) {
|
|
@@ -7491,8 +7491,7 @@ module.exports = function (value) {
|
|
|
7491
7491
|
/******/ script.parentNode && script.parentNode.removeChild(script);
|
|
7492
7492
|
/******/ doneFns && doneFns.forEach(function(fn) { return fn(event); });
|
|
7493
7493
|
/******/ if(prev) return prev(event);
|
|
7494
|
-
/******/ }
|
|
7495
|
-
/******/ ;
|
|
7494
|
+
/******/ };
|
|
7496
7495
|
/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
|
|
7497
7496
|
/******/ script.onerror = onScriptComplete.bind(null, script.onerror);
|
|
7498
7497
|
/******/ script.onload = onScriptComplete.bind(null, script.onload);
|
|
@@ -7491,8 +7491,7 @@ module.exports = function (value) {
|
|
|
7491
7491
|
/******/ script.parentNode && script.parentNode.removeChild(script);
|
|
7492
7492
|
/******/ doneFns && doneFns.forEach(function(fn) { return fn(event); });
|
|
7493
7493
|
/******/ if(prev) return prev(event);
|
|
7494
|
-
/******/ }
|
|
7495
|
-
/******/ ;
|
|
7494
|
+
/******/ };
|
|
7496
7495
|
/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
|
|
7497
7496
|
/******/ script.onerror = onScriptComplete.bind(null, script.onerror);
|
|
7498
7497
|
/******/ script.onload = onScriptComplete.bind(null, script.onload);
|
package/dist/chain.browser.js
CHANGED
|
@@ -56165,8 +56165,7 @@ module.exports = JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1
|
|
|
56165
56165
|
/******/ script.parentNode && script.parentNode.removeChild(script);
|
|
56166
56166
|
/******/ doneFns && doneFns.forEach(function(fn) { return fn(event); });
|
|
56167
56167
|
/******/ if(prev) return prev(event);
|
|
56168
|
-
/******/ }
|
|
56169
|
-
/******/ ;
|
|
56168
|
+
/******/ };
|
|
56170
56169
|
/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
|
|
56171
56170
|
/******/ script.onerror = onScriptComplete.bind(null, script.onerror);
|
|
56172
56171
|
/******/ script.onload = onScriptComplete.bind(null, script.onload);
|
|
@@ -58570,7 +58569,7 @@ class Machine {
|
|
|
58570
58569
|
return this.#init()
|
|
58571
58570
|
}
|
|
58572
58571
|
|
|
58573
|
-
#createMessage(sender = peernet.
|
|
58572
|
+
#createMessage(sender = peernet.selectedAccount) {
|
|
58574
58573
|
return {
|
|
58575
58574
|
sender,
|
|
58576
58575
|
call: this.execute,
|
|
@@ -58595,7 +58594,7 @@ class Machine {
|
|
|
58595
58594
|
break
|
|
58596
58595
|
case 'machine-ready':
|
|
58597
58596
|
this.lastBlock = data.lastBlock;
|
|
58598
|
-
pubsub.publish('machine.ready');
|
|
58597
|
+
pubsub.publish('machine.ready', true);
|
|
58599
58598
|
break
|
|
58600
58599
|
case 'response':
|
|
58601
58600
|
pubsub.publish(data.id, data.value);
|
|
@@ -58716,6 +58715,10 @@ class Machine {
|
|
|
58716
58715
|
return contractStore.delete(hash)
|
|
58717
58716
|
}
|
|
58718
58717
|
|
|
58718
|
+
/**
|
|
58719
|
+
*
|
|
58720
|
+
* @returns Promise
|
|
58721
|
+
*/
|
|
58719
58722
|
async deleteAll() {
|
|
58720
58723
|
let hashes = await contractStore.get();
|
|
58721
58724
|
hashes = Object.keys(hashes).map(hash => this.delete(hash));
|
|
@@ -58950,7 +58953,7 @@ class Chain {
|
|
|
58950
58953
|
console.log('epoch');
|
|
58951
58954
|
const validators = await this.staticCall(addresses.validators, 'validators');
|
|
58952
58955
|
console.log(validators);
|
|
58953
|
-
if (!validators[peernet.
|
|
58956
|
+
if (!validators[peernet.selectedAccount]?.active) return
|
|
58954
58957
|
|
|
58955
58958
|
const start = new Date().getTime();
|
|
58956
58959
|
try {
|
|
@@ -59036,8 +59039,7 @@ class Chain {
|
|
|
59036
59039
|
}, {index: 0, hash: '0x0'});
|
|
59037
59040
|
// get lastblock
|
|
59038
59041
|
if (promises.hash && promises.hash !== '0x0') {
|
|
59039
|
-
|
|
59040
|
-
console.log({localBlock});
|
|
59042
|
+
await peernet.get(promises.hash);
|
|
59041
59043
|
}
|
|
59042
59044
|
|
|
59043
59045
|
|
|
@@ -59052,22 +59054,7 @@ class Chain {
|
|
|
59052
59054
|
|
|
59053
59055
|
this.#machine = await new Machine();
|
|
59054
59056
|
this.utils = { BigNumber: BigNumber, formatUnits: formatUnits, parseUnits: parseUnits };
|
|
59055
|
-
|
|
59056
|
-
await peernet.addRequestHandler('bw-request-message', () => {
|
|
59057
|
-
|
|
59058
|
-
return new BWMessage(peernet.client.bw) || { up: 0, down: 0 }
|
|
59059
|
-
});
|
|
59060
|
-
|
|
59061
|
-
await peernet.addRequestHandler('lastBlock', this.#lastBlockHandler.bind(this));
|
|
59062
|
-
|
|
59063
|
-
peernet.subscribe('add-block', this.#addBlock.bind(this));
|
|
59064
|
-
|
|
59065
|
-
peernet.subscribe('add-transaction', this.#addTransaction.bind(this));
|
|
59066
|
-
|
|
59067
|
-
peernet.subscribe('validator:timeout', this.#validatorTimeout.bind(this));
|
|
59068
|
-
|
|
59069
|
-
pubsub.subscribe('peer:connected', this.#peerConnected.bind(this));
|
|
59070
|
-
|
|
59057
|
+
|
|
59071
59058
|
try {
|
|
59072
59059
|
let localBlock;
|
|
59073
59060
|
try {
|
|
@@ -59077,17 +59064,11 @@ class Chain {
|
|
|
59077
59064
|
localBlock = await chainStore.get('lastBlock');
|
|
59078
59065
|
}
|
|
59079
59066
|
localBlock = new TextDecoder().decode(localBlock);
|
|
59080
|
-
|
|
59081
59067
|
if (localBlock && localBlock !== '0x0') {
|
|
59082
|
-
localBlock = await peernet.get(localBlock);
|
|
59068
|
+
localBlock = await peernet.get(localBlock, 'block');
|
|
59083
59069
|
localBlock = await new BlockMessage(localBlock);
|
|
59084
59070
|
this.#lastBlock = {...localBlock.decoded, hash: await localBlock.hash};
|
|
59085
|
-
} else
|
|
59086
|
-
// todo remove when network is running
|
|
59087
|
-
// recovering chain (not needed if multiple peers are online)
|
|
59088
|
-
this.#lastBlock = this.#machine.lastBlock;
|
|
59089
|
-
await chainStore.put('lastBlock', this.#lastBlock.hash);
|
|
59090
|
-
} else {
|
|
59071
|
+
} else {
|
|
59091
59072
|
await this.#sync();
|
|
59092
59073
|
}
|
|
59093
59074
|
} catch (e) {
|
|
@@ -59096,8 +59077,25 @@ class Chain {
|
|
|
59096
59077
|
|
|
59097
59078
|
// this.#setup()
|
|
59098
59079
|
}
|
|
59080
|
+
|
|
59081
|
+
await peernet.addRequestHandler('bw-request-message', () => {
|
|
59082
|
+
|
|
59083
|
+
return new BWMessage(peernet.client.bw) || { up: 0, down: 0 }
|
|
59084
|
+
});
|
|
59085
|
+
|
|
59086
|
+
await peernet.addRequestHandler('lastBlock', this.#lastBlockHandler.bind(this));
|
|
59087
|
+
|
|
59088
|
+
peernet.subscribe('add-block', this.#addBlock.bind(this));
|
|
59089
|
+
|
|
59090
|
+
peernet.subscribe('add-transaction', this.#addTransaction.bind(this));
|
|
59091
|
+
|
|
59092
|
+
peernet.subscribe('validator:timeout', this.#validatorTimeout.bind(this));
|
|
59093
|
+
|
|
59094
|
+
pubsub.subscribe('peer:connected', this.#peerConnected.bind(this));
|
|
59095
|
+
|
|
59096
|
+
|
|
59099
59097
|
// load local blocks
|
|
59100
|
-
|
|
59098
|
+
await this.resolveBlocks();
|
|
59101
59099
|
return this
|
|
59102
59100
|
}
|
|
59103
59101
|
|
|
@@ -59115,7 +59113,7 @@ class Chain {
|
|
|
59115
59113
|
response = await new globalThis.peernet.protos['peernet-response'](response);
|
|
59116
59114
|
let lastBlock = response.decoded.response;
|
|
59117
59115
|
|
|
59118
|
-
if (!this.lastBlock || this.lastBlock.index < lastBlock.index) {
|
|
59116
|
+
if (!this.lastBlock || Number(this.lastBlock.index) < Number(lastBlock.index)) {
|
|
59119
59117
|
// TODO: check if valid
|
|
59120
59118
|
const localIndex = this.lastBlock ? this.lastBlock.index : 0;
|
|
59121
59119
|
const index = lastBlock.index;
|
|
@@ -59157,7 +59155,8 @@ async resolveBlock(hash) {
|
|
|
59157
59155
|
if (!await peernet.has(hash, 'block')) await peernet.put(hash, block.encoded, 'block');
|
|
59158
59156
|
const size = block.encoded.length || block.encoded.byteLength;
|
|
59159
59157
|
block = {...block.decoded, hash};
|
|
59160
|
-
this.#blocks[block.index
|
|
59158
|
+
if (this.#blocks[block.index]) throw `invalid block ${hash} @${block.index}`
|
|
59159
|
+
this.#blocks[block.index] = block;
|
|
59161
59160
|
console.log(`loaded block: ${hash} @${block.index} ${formatBytes(size)}`);
|
|
59162
59161
|
if (block.previousHash !== '0x0') {
|
|
59163
59162
|
return this.resolveBlock(block.previousHash)
|
|
@@ -59166,11 +59165,11 @@ async resolveBlock(hash) {
|
|
|
59166
59165
|
|
|
59167
59166
|
async resolveBlocks() {
|
|
59168
59167
|
try {
|
|
59169
|
-
|
|
59170
59168
|
const localBlock = await chainStore.get('lastBlock');
|
|
59171
59169
|
const hash = new TextDecoder().decode(localBlock);
|
|
59170
|
+
|
|
59172
59171
|
if (hash && hash !== '0x0')
|
|
59173
|
-
await this.resolveBlock(
|
|
59172
|
+
await this.resolveBlock(hash);
|
|
59174
59173
|
this.#lastBlock = this.#blocks[this.#blocks.length - 1];
|
|
59175
59174
|
await this.#loadBlocks(this.#blocks);
|
|
59176
59175
|
} catch (e) {
|
|
@@ -59227,7 +59226,7 @@ async resolveBlock(hash) {
|
|
|
59227
59226
|
}
|
|
59228
59227
|
|
|
59229
59228
|
async #addBlock(block) {
|
|
59230
|
-
console.log(block);
|
|
59229
|
+
// console.log(block);
|
|
59231
59230
|
const blockMessage = await new BlockMessage(new Uint8Array(Object.values(block)));
|
|
59232
59231
|
// if (!Buffer.isBuffer(block)) block = Buffer.from(block, 'hex')
|
|
59233
59232
|
// const transactionJob = async transaction => {
|
|
@@ -59253,7 +59252,7 @@ async resolveBlock(hash) {
|
|
|
59253
59252
|
|
|
59254
59253
|
await blockStore.put(hash, blockMessage.encoded);
|
|
59255
59254
|
|
|
59256
|
-
if (this.lastBlock.index < blockMessage.decoded.index) this.#updateState(blockMessage);
|
|
59255
|
+
if (this.lastBlock.index < blockMessage.decoded.index) await this.#updateState(blockMessage);
|
|
59257
59256
|
debug(`added block: ${hash}`);
|
|
59258
59257
|
let promises = [];
|
|
59259
59258
|
let contracts = [];
|
|
@@ -59292,7 +59291,7 @@ async resolveBlock(hash) {
|
|
|
59292
59291
|
|
|
59293
59292
|
|
|
59294
59293
|
|
|
59295
|
-
async participate() {
|
|
59294
|
+
async participate(address) {
|
|
59296
59295
|
// TODO: validate participant
|
|
59297
59296
|
// hold min amount of 50k ART for 7 days
|
|
59298
59297
|
// lock the 50k
|
|
@@ -59300,7 +59299,7 @@ async resolveBlock(hash) {
|
|
|
59300
59299
|
// peerReputation(peerId)
|
|
59301
59300
|
// {bandwith: {up, down}, uptime}
|
|
59302
59301
|
this.participating = true;
|
|
59303
|
-
if (!await this.staticCall(addresses.validators, 'has', [
|
|
59302
|
+
if (!await this.staticCall(addresses.validators, 'has', [address])) await this.createTransactionFrom(address, addresses.validators, 'addValidator', [address]);
|
|
59304
59303
|
if (await this.hasTransactionToHandle() && !this.#runningEpoch) await this.#runEpoch();
|
|
59305
59304
|
|
|
59306
59305
|
// const runEpoch = () => setTimeout(async () => {
|
|
@@ -59389,7 +59388,7 @@ async resolveBlock(hash) {
|
|
|
59389
59388
|
const node = await peernet.prepareMessage(validator, data.encoded);
|
|
59390
59389
|
try {
|
|
59391
59390
|
const bw = await peer.request(node.encoded);
|
|
59392
|
-
console.log(bw);
|
|
59391
|
+
console.log({bw});
|
|
59393
59392
|
block.validators.push({
|
|
59394
59393
|
address: validator,
|
|
59395
59394
|
bw: bw.up + bw.down
|
|
@@ -59398,9 +59397,9 @@ async resolveBlock(hash) {
|
|
|
59398
59397
|
|
|
59399
59398
|
}
|
|
59400
59399
|
|
|
59401
|
-
} else if (peernet.
|
|
59400
|
+
} else if (peernet.selectedAccount === validator) {
|
|
59402
59401
|
block.validators.push({
|
|
59403
|
-
address: peernet.
|
|
59402
|
+
address: peernet.selectedAccount,
|
|
59404
59403
|
bw: peernet.bw.up + peernet.bw.down
|
|
59405
59404
|
});
|
|
59406
59405
|
|
|
@@ -59449,8 +59448,8 @@ async resolveBlock(hash) {
|
|
|
59449
59448
|
const hash = await blockMessage.hash;
|
|
59450
59449
|
|
|
59451
59450
|
|
|
59452
|
-
await
|
|
59453
|
-
this.#updateState(blockMessage);
|
|
59451
|
+
await peernet.put(hash, blockMessage.encoded, 'block');
|
|
59452
|
+
await this.#updateState(blockMessage);
|
|
59454
59453
|
debug(`created block: ${hash}`);
|
|
59455
59454
|
|
|
59456
59455
|
peernet.publish('add-block', blockMessage.encoded);
|
|
@@ -59526,7 +59525,7 @@ async resolveBlock(hash) {
|
|
|
59526
59525
|
* @param {Number} nonce - total transaction count [optional]
|
|
59527
59526
|
*/
|
|
59528
59527
|
async createTransaction(to, method, params, nonce, signature) {
|
|
59529
|
-
return this.createTransactionFrom(peernet.
|
|
59528
|
+
return this.createTransactionFrom(peernet.selectedAccount, to, method, params, nonce)
|
|
59530
59529
|
}
|
|
59531
59530
|
|
|
59532
59531
|
|
|
@@ -59578,7 +59577,7 @@ async #signTransaction (transaction, wallet) {
|
|
|
59578
59577
|
* @returns {Object} transaction
|
|
59579
59578
|
*/
|
|
59580
59579
|
async createRawTransaction(transaction) {
|
|
59581
|
-
if (!transaction.from) transaction.from = peernet.
|
|
59580
|
+
if (!transaction.from) transaction.from = peernet.selectedAccount;
|
|
59582
59581
|
transaction.timestamp = Date.now();
|
|
59583
59582
|
|
|
59584
59583
|
if (transaction.nonce === undefined) {
|
|
@@ -59654,21 +59653,21 @@ async #signTransaction (transaction, wallet) {
|
|
|
59654
59653
|
* @param {String} contract - a contract string (see plugins/deployContract)
|
|
59655
59654
|
*/
|
|
59656
59655
|
async deployContract(contract, params = []) {
|
|
59657
|
-
globalThis.msg = {sender: peernet.
|
|
59656
|
+
globalThis.msg = {sender: peernet.selectedAccount, call: this.call};
|
|
59658
59657
|
|
|
59659
59658
|
const hash = await this.createContractAddress(creator, contract, params);
|
|
59660
59659
|
console.log(hash);
|
|
59661
59660
|
try {
|
|
59662
|
-
const tx = await this.createTransactionFrom(peernet.
|
|
59661
|
+
const tx = await this.createTransactionFrom(peernet.selectedAccount, addresses.contractFactory, 'deployContract', [hash, creator, contract, constructorParameters]);
|
|
59663
59662
|
} catch (e) {
|
|
59664
59663
|
throw e
|
|
59665
59664
|
}
|
|
59666
59665
|
return this.#machine.addContract(message)
|
|
59667
59666
|
}
|
|
59668
59667
|
|
|
59669
|
-
#createMessage(sender = peernet.
|
|
59668
|
+
#createMessage(sender = peernet.selectedAccount) {
|
|
59670
59669
|
return {
|
|
59671
|
-
sender
|
|
59670
|
+
sender,
|
|
59672
59671
|
call: this.call,
|
|
59673
59672
|
staticCall: this.staticCall,
|
|
59674
59673
|
delegate: this.delegate,
|