@leofcoin/chain 1.0.25 → 1.0.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.
- package/demo/151.browser.js +271 -0
- package/demo/205.browser.js +215 -0
- package/demo/427.browser.js +8092 -0
- package/demo/560.browser.js +3 -0
- package/demo/911.browser.js +11024 -0
- package/{dist → demo}/chain.browser.js +6765 -24141
- package/demo/index.html +4 -4
- package/demo/main.browser.js +8163 -0
- package/{dist → demo}/node.browser.js +3157 -2582
- package/{dist → demo}/pako.browser.js +0 -0
- package/demo/peernet-worker.browser.js +11330 -0
- package/demo/workers/machine-worker.js +12544 -0
- package/{dist → demo}/wrtc.browser.js +0 -0
- package/dist/chain.js +235 -138
- package/dist/module/chain.js +1189 -0
- package/dist/module/node.js +1 -0
- package/dist/module/workers/machine-worker.js +491 -0
- package/dist/node.js +1 -1
- package/package.json +11 -19
- package/rollup.config.js +87 -3
- package/src/chain.js +94 -61
- package/src/machine.js +96 -57
- package/src/node.js +2 -1
- package/src/workers/block-worker.js +71 -0
- package/src/workers/machine-worker.js +160 -0
- package/src/workers/pool-worker.js +37 -0
- package/src/workers/transaction-worker.js +26 -0
- package/test/chain.js +14 -14
- package/test/create-genesis.js +13 -5
- package/webpack.config.js +49 -6
- package/workers/block-worker.js +1 -0
- package/workers/machine-worker.js +1 -0
- package/workers/pool-worker.js +1 -0
- package/workers/transaction-worker.js +1 -0
- package/dist/protons.browser.js +0 -11429
- package/docs/@leofcoin/chain/1.0.22/chain.js.html +0 -891
- package/docs/@leofcoin/chain/1.0.22/contracts_factory.js.html +0 -182
- package/docs/@leofcoin/chain/1.0.22/contracts_nameService.js.html +0 -231
- package/docs/@leofcoin/chain/1.0.22/contracts_proxies_factoryProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.22/contracts_proxies_nameServiceProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.22/contracts_proxies_nativeTokenProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.22/contracts_proxies_validatorsProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.22/contracts_proxies_votingProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.22/contracts_validators.js.html +0 -242
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Bold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Italic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Light-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Regular-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Semibold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.22/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.22/global.html +0 -1805
- package/docs/@leofcoin/chain/1.0.22/icons/home.svg +0 -4
- package/docs/@leofcoin/chain/1.0.22/icons/search.svg +0 -4
- package/docs/@leofcoin/chain/1.0.22/index.html +0 -125
- package/docs/@leofcoin/chain/1.0.22/machine.js.html +0 -255
- package/docs/@leofcoin/chain/1.0.22/scripts/linenumber.js +0 -23
- package/docs/@leofcoin/chain/1.0.22/scripts/pagelocation.js +0 -89
- package/docs/@leofcoin/chain/1.0.22/standards_roles.js.html +0 -188
- package/docs/@leofcoin/chain/1.0.22/standards_token.js.html +0 -260
- package/docs/@leofcoin/chain/1.0.22/styles/collapse.css +0 -27
- package/docs/@leofcoin/chain/1.0.22/styles/jsdoc-default.css +0 -953
- package/docs/@leofcoin/chain/1.0.22/styles/prettify-jsdoc.css +0 -111
- package/docs/@leofcoin/chain/1.0.22/styles/prettify-tomorrow.css +0 -138
- package/docs/@leofcoin/chain/1.0.24/chain.js.html +0 -891
- package/docs/@leofcoin/chain/1.0.24/contracts_factory.js.html +0 -182
- package/docs/@leofcoin/chain/1.0.24/contracts_nameService.js.html +0 -231
- package/docs/@leofcoin/chain/1.0.24/contracts_proxies_factoryProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.24/contracts_proxies_nameServiceProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.24/contracts_proxies_nativeTokenProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.24/contracts_proxies_validatorsProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.24/contracts_proxies_votingProxy.js.html +0 -135
- package/docs/@leofcoin/chain/1.0.24/contracts_validators.js.html +0 -242
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Bold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Italic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Light-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Regular-webfont.svg +0 -1831
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Semibold-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/@leofcoin/chain/1.0.24/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/@leofcoin/chain/1.0.24/global.html +0 -1805
- package/docs/@leofcoin/chain/1.0.24/icons/home.svg +0 -4
- package/docs/@leofcoin/chain/1.0.24/icons/search.svg +0 -4
- package/docs/@leofcoin/chain/1.0.24/index.html +0 -125
- package/docs/@leofcoin/chain/1.0.24/machine.js.html +0 -255
- package/docs/@leofcoin/chain/1.0.24/scripts/linenumber.js +0 -23
- package/docs/@leofcoin/chain/1.0.24/scripts/pagelocation.js +0 -89
- package/docs/@leofcoin/chain/1.0.24/standards_roles.js.html +0 -188
- package/docs/@leofcoin/chain/1.0.24/standards_token.js.html +0 -260
- package/docs/@leofcoin/chain/1.0.24/styles/collapse.css +0 -27
- package/docs/@leofcoin/chain/1.0.24/styles/jsdoc-default.css +0 -953
- package/docs/@leofcoin/chain/1.0.24/styles/prettify-jsdoc.css +0 -111
- package/docs/@leofcoin/chain/1.0.24/styles/prettify-tomorrow.css +0 -138
package/dist/chain.js
CHANGED
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var utils = require('@leofcoin/utils');
|
|
4
|
-
require('vm');
|
|
5
4
|
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
5
|
+
var _BN = require('bn.js');
|
|
6
|
+
require('@ethersproject/bytes');
|
|
7
|
+
var logger = require('@ethersproject/logger');
|
|
6
8
|
require('@ethersproject/bignumber');
|
|
7
|
-
require('
|
|
8
|
-
var
|
|
9
|
-
|
|
9
|
+
var worker_threads = require('worker_threads');
|
|
10
|
+
var crypto = require('crypto');
|
|
11
|
+
require('path');
|
|
12
|
+
var child_process = require('child_process');
|
|
13
|
+
var e = require('express');
|
|
10
14
|
var MultiWallet = require('@leofcoin/multi-wallet');
|
|
11
15
|
var index = require('@leofcoin/codec-format-interface/dist/index');
|
|
12
16
|
var bs32 = require('@vandeurenglenn/base32');
|
|
13
17
|
|
|
14
18
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
15
19
|
|
|
20
|
+
var _BN__default = /*#__PURE__*/_interopDefaultLegacy(_BN);
|
|
21
|
+
var e__default = /*#__PURE__*/_interopDefaultLegacy(e);
|
|
16
22
|
var MultiWallet__default = /*#__PURE__*/_interopDefaultLegacy(MultiWallet);
|
|
17
23
|
var bs32__default = /*#__PURE__*/_interopDefaultLegacy(bs32);
|
|
18
24
|
|
|
@@ -152,17 +158,31 @@ class BWRequestMessage extends codecFormatInterface.FormatInterface {
|
|
|
152
158
|
}
|
|
153
159
|
}
|
|
154
160
|
|
|
155
|
-
var contractFactory$
|
|
156
|
-
var nativeToken$
|
|
157
|
-
var nameService$
|
|
158
|
-
var validators$
|
|
161
|
+
var contractFactory$2 = "ihny2gqhpxjlib2nann7q5ovaqs5uo7dufac3r4yomf36pt4d5yg6att6ew";
|
|
162
|
+
var nativeToken$2 = "ihny2gqhrx44niifti5zawfqclfklf7ewsf6z3rem2fmbxst6mxyyzahlm6";
|
|
163
|
+
var nameService$2 = "ihny2gqga2rfudkgb3xz7khj7p66p75ihciz6nyi55b42t26ihpszpwrora";
|
|
164
|
+
var validators$2 = "ihny2gqgy5jpkevwfoluwe2b2y7viqtcfrwgabipz3mkb7twnhjsqhdc2wt";
|
|
159
165
|
var addresses = {
|
|
160
|
-
contractFactory: contractFactory$
|
|
161
|
-
nativeToken: nativeToken$
|
|
162
|
-
nameService: nameService$
|
|
163
|
-
validators: validators$
|
|
166
|
+
contractFactory: contractFactory$2,
|
|
167
|
+
nativeToken: nativeToken$2,
|
|
168
|
+
nameService: nameService$2,
|
|
169
|
+
validators: validators$2
|
|
164
170
|
};
|
|
165
171
|
|
|
172
|
+
const contractFactory$1 = addresses.contractFactory;
|
|
173
|
+
const nameService$1 = addresses.nameService;
|
|
174
|
+
const nativeToken$1 = addresses.nativeToken;
|
|
175
|
+
const validators$1 = addresses.validators;
|
|
176
|
+
|
|
177
|
+
const version$1 = "bignumber/5.6.2";
|
|
178
|
+
|
|
179
|
+
_BN__default["default"].BN;
|
|
180
|
+
new logger.Logger(version$1);
|
|
181
|
+
|
|
182
|
+
const version = "units/5.6.1";
|
|
183
|
+
|
|
184
|
+
new logger.Logger(version);
|
|
185
|
+
|
|
166
186
|
const byteFormats = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
167
187
|
|
|
168
188
|
const formatBytes = (bytes, decimals = 2) => {
|
|
@@ -176,7 +196,7 @@ const formatBytes = (bytes, decimals = 2) => {
|
|
|
176
196
|
};
|
|
177
197
|
|
|
178
198
|
// import State from './state'
|
|
179
|
-
|
|
199
|
+
new worker_threads.MessageChannel();
|
|
180
200
|
class Machine {
|
|
181
201
|
#contracts = {}
|
|
182
202
|
#nonces = {}
|
|
@@ -192,47 +212,69 @@ class Machine {
|
|
|
192
212
|
}
|
|
193
213
|
}
|
|
194
214
|
|
|
215
|
+
async #onmessage(data) {
|
|
216
|
+
switch (data.type) {
|
|
217
|
+
case 'contractError':
|
|
218
|
+
console.warn(`removing contract ${await data.hash}`);
|
|
219
|
+
await contractStore.delete(await data.hash);
|
|
220
|
+
break
|
|
221
|
+
|
|
222
|
+
case 'executionError':
|
|
223
|
+
console.warn(`error executing transaction ${data.message}`);
|
|
224
|
+
pubsub.publish(e__default["default"].id, {error: e__default["default"].message});
|
|
225
|
+
break
|
|
226
|
+
|
|
227
|
+
case 'debug':
|
|
228
|
+
data.messages.forEach(message => debug(message));
|
|
229
|
+
break
|
|
230
|
+
case 'machine-ready':
|
|
231
|
+
pubsub.publish('machine.ready');
|
|
232
|
+
break
|
|
233
|
+
case 'response':
|
|
234
|
+
pubsub.publish(data.id, data.value);
|
|
235
|
+
break
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
}
|
|
239
|
+
|
|
195
240
|
async #init() {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
241
|
+
return new Promise(async (resolve) => {
|
|
242
|
+
// this.worker = new Worker('./workers/machine-worker.js')
|
|
243
|
+
// this.worker.onmessage = this.#onmessage.bind(this)
|
|
244
|
+
|
|
245
|
+
pubsub.subscribe('machine.ready', () => {
|
|
246
|
+
resolve(this);
|
|
247
|
+
});
|
|
248
|
+
this.worker = child_process.fork('./workers/machine-worker.js', {serialization: 'advanced'});
|
|
249
|
+
this.worker.on('message', this.#onmessage.bind(this));
|
|
250
|
+
const blocks = await blockStore.values();
|
|
251
|
+
const contracts = await Promise.all([
|
|
252
|
+
contractStore.get(contractFactory$1),
|
|
253
|
+
contractStore.get(nativeToken$1),
|
|
254
|
+
contractStore.get(validators$1),
|
|
255
|
+
contractStore.get(nameService$1)
|
|
256
|
+
]);
|
|
257
|
+
|
|
258
|
+
const message = {
|
|
259
|
+
type: 'init',
|
|
260
|
+
input: {
|
|
261
|
+
contracts,
|
|
262
|
+
blocks,
|
|
263
|
+
peerid: peernet.peerId
|
|
212
264
|
}
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
//
|
|
218
|
-
|
|
219
|
-
// const message = new TransactionMessage(transactions[key])
|
|
220
|
-
// console.log({message});
|
|
221
|
-
// const {from, to, method, params} = message.decoded
|
|
222
|
-
// globalThis.msg = this.#createMessage(from)
|
|
223
|
-
//
|
|
224
|
-
// console.log({from, to, method, params});
|
|
225
|
-
// await this.execute(to, method, params)
|
|
226
|
-
// }
|
|
227
|
-
return this
|
|
265
|
+
};
|
|
266
|
+
this.worker.send(message);
|
|
267
|
+
// this.worker.postMessage(message)
|
|
268
|
+
})
|
|
269
|
+
// return
|
|
270
|
+
|
|
228
271
|
}
|
|
229
272
|
|
|
230
273
|
async #runContract(contractMessage) {
|
|
231
|
-
console.log(contractMessage);
|
|
232
274
|
const params = contractMessage.decoded.constructorParameters;
|
|
233
275
|
try {
|
|
234
276
|
|
|
235
|
-
const func = new Function(
|
|
277
|
+
const func = new Function(contractMessage.decoded.contract);
|
|
236
278
|
const Contract = func();
|
|
237
279
|
|
|
238
280
|
globalThis.msg = this.#createMessage(contractMessage.decoded.creator);
|
|
@@ -242,8 +284,8 @@ console.log(e);
|
|
|
242
284
|
debug(`size: ${formatBytes(contractMessage.encoded.length)}`);
|
|
243
285
|
} catch (e) {
|
|
244
286
|
console.log(e);
|
|
245
|
-
console.warn(`removing contract ${contractMessage.hash}`);
|
|
246
|
-
await contractStore.delete(contractMessage.hash, contractMessage.encoded);
|
|
287
|
+
console.warn(`removing contract ${await contractMessage.hash}`);
|
|
288
|
+
await contractStore.delete(await contractMessage.hash, contractMessage.encoded);
|
|
247
289
|
}
|
|
248
290
|
}
|
|
249
291
|
/**
|
|
@@ -259,20 +301,24 @@ console.log(e);
|
|
|
259
301
|
}
|
|
260
302
|
|
|
261
303
|
async execute(contract, method, params) {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
304
|
+
return new Promise((resolve, reject) => {
|
|
305
|
+
const id = crypto.randomBytes(20).toString('hex');
|
|
306
|
+
const message = message => {
|
|
307
|
+
if (message?.error) reject(message.error);
|
|
308
|
+
else resolve(message);
|
|
309
|
+
};
|
|
310
|
+
pubsub.subscribe(id, message);
|
|
311
|
+
this.worker.send({
|
|
312
|
+
type: 'execute',
|
|
313
|
+
id,
|
|
314
|
+
input: {
|
|
315
|
+
contract,
|
|
316
|
+
method,
|
|
317
|
+
params
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
})
|
|
321
|
+
|
|
276
322
|
}
|
|
277
323
|
|
|
278
324
|
addJob(contract, method, params, from, nonce) {
|
|
@@ -284,13 +330,22 @@ console.log(e);
|
|
|
284
330
|
}
|
|
285
331
|
|
|
286
332
|
get(contract, method, params) {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
333
|
+
return new Promise((resolve, reject) => {
|
|
334
|
+
const id = crypto.randomBytes(20).toString();
|
|
335
|
+
const message = message => {
|
|
336
|
+
resolve(message);
|
|
337
|
+
};
|
|
338
|
+
pubsub.subscribe(id, message);
|
|
339
|
+
this.worker.send({
|
|
340
|
+
type: 'get',
|
|
341
|
+
id,
|
|
342
|
+
input: {
|
|
343
|
+
contract,
|
|
344
|
+
method,
|
|
345
|
+
params
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
})
|
|
294
349
|
}
|
|
295
350
|
|
|
296
351
|
async delete(hash) {
|
|
@@ -304,10 +359,10 @@ console.log(e);
|
|
|
304
359
|
}
|
|
305
360
|
}
|
|
306
361
|
|
|
307
|
-
var contractFactory = "237,198,
|
|
308
|
-
var nativeToken = "237,198,1,10,54,51,67,122,86,50,109,72,55,122,115,71,66,119,54,122,122,71,99,53,69,102,111,109,116,76,78,114,116,75,78,51,103,78,90,77,98,69,99,112,89,118,83,82,75,115,52,106,85,90,68,116,118,71,121,18,152,26,114,101,116,117,114,110,32,99,108,97,115,115,32,65,114,116,79,110,108,105,110,101,32,101,120,116,101,110,100,115,32,99,108,97,115,115,32,84,111,107,101,110,32,101,120,116,101,110,100,115,32,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,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,45,49,33,61,61,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,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,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,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,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,116,111,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,103,108,111,98,97,108,84,104,105,115,46,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,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,59,10";
|
|
309
|
-
var nameService = "237,198,
|
|
310
|
-
var validators = "237,198,
|
|
362
|
+
var contractFactory = "237,198,141,3,123,34,99,114,101,97,116,111,114,34,58,34,51,67,122,86,53,69,121,74,118,54,84,86,69,97,88,71,116,114,101,69,70,84,70,83,69,74,109,97,75,66,100,118,83,113,116,88,112,88,87,52,114,55,98,119,87,66,119,56,119,83,89,86,106,71,34,44,34,99,111,110,116,114,97,99,116,34,58,34,114,101,116,117,114,110,32,99,108,97,115,115,32,70,97,99,116,111,114,121,123,35,110,97,109,101,61,92,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,92,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,118,97,108,105,100,40,104,97,115,104,44,99,114,101,97,116,111,114,44,99,111,110,116,114,97,99,116,44,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,61,91,93,41,123,99,111,110,115,116,32,109,101,115,115,97,103,101,61,110,101,119,32,67,111,110,116,114,97,99,116,77,101,115,115,97,103,101,40,123,99,114,101,97,116,111,114,58,99,114,101,97,116,111,114,44,99,111,110,116,114,97,99,116,58,99,111,110,116,114,97,99,116,44,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,58,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,125,41,59,114,101,116,117,114,110,32,66,111,111,108,101,97,110,40,109,101,115,115,97,103,101,46,104,97,115,104,61,61,61,104,97,115,104,41,125,97,115,121,110,99,32,100,101,112,108,111,121,67,111,110,116,114,97,99,116,40,99,111,110,116,114,97,99,116,72,97,115,104,44,99,114,101,97,116,111,114,44,99,111,110,116,114,97,99,116,44,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,61,91,93,41,123,105,102,40,99,111,110,116,114,97,99,116,46,99,114,101,97,116,111,114,33,61,61,109,115,103,46,115,101,110,100,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,111,110,108,121,32,97,32,99,111,110,116,114,97,99,116,32,99,114,101,97,116,111,114,32,99,97,110,32,100,101,112,108,111,121,32,97,32,99,111,110,116,114,97,99,116,92,34,41,59,105,102,40,97,119,97,105,116,32,99,111,110,116,114,97,99,116,83,116,111,114,101,46,104,97,115,40,104,97,115,104,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,100,117,112,108,105,99,97,116,101,32,99,111,110,116,114,97,99,116,92,34,41,59,105,102,40,33,116,104,105,115,46,105,115,86,97,108,105,100,40,99,111,110,116,114,97,99,116,72,97,115,104,44,99,114,101,97,116,111,114,44,99,111,110,116,114,97,99,116,44,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,105,110,118,97,108,105,100,32,99,111,110,116,114,97,99,116,92,34,41,59,97,119,97,105,116,32,99,111,110,116,114,97,99,116,83,116,111,114,101,46,112,117,116,40,104,97,115,104,44,101,110,99,111,100,101,100,41,44,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,104,97,115,104,41,125,125,59,92,110,34,44,34,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,34,58,91,93,125";
|
|
363
|
+
var nativeToken = "237,198,141,3,123,34,99,114,101,97,116,111,114,34,58,34,51,67,122,86,53,69,121,74,118,54,84,86,69,97,88,71,116,114,101,69,70,84,70,83,69,74,109,97,75,66,100,118,83,113,116,88,112,88,87,52,114,55,98,119,87,66,119,56,119,83,89,86,106,71,34,44,34,99,111,110,116,114,97,99,116,34,58,34,114,101,116,117,114,110,32,99,108,97,115,115,32,65,114,116,79,110,108,105,110,101,32,101,120,116,101,110,100,115,32,99,108,97,115,115,32,84,111,107,101,110,32,101,120,116,101,110,100,115,32,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,69,114,114,111,114,40,92,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,92,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,92,34,79,87,78,69,82,92,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,45,49,33,61,61,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,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,92,34,79,87,78,69,82,92,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,92,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,92,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,92,34,79,87,78,69,82,92,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,78,111,116,32,97,108,108,111,119,101,100,92,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,92,34,79,87,78,69,82,92,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,78,111,116,32,97,108,108,111,119,101,100,92,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,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,92,34,110,97,109,101,32,117,110,100,101,102,105,110,101,100,92,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,92,34,115,121,109,98,111,108,32,117,110,100,101,102,105,110,101,100,92,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,92,34,77,73,78,84,92,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,110,111,116,32,97,108,108,111,119,101,100,92,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,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,92,34,66,85,82,78,92,34,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,110,111,116,32,97,108,108,111,119,101,100,92,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,116,111,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,92,34,97,109,111,117,110,116,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,92,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,92,34,48,120,48,48,92,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,92,34,48,120,48,48,92,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,92,34,48,120,48,48,92,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,103,108,111,98,97,108,84,104,105,115,46,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,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,92,34,65,114,116,79,110,108,105,110,101,92,34,44,92,34,65,82,84,92,34,44,49,56,44,115,116,97,116,101,41,125,125,59,92,110,34,44,34,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,34,58,91,93,125";
|
|
364
|
+
var nameService = "237,198,141,3,123,34,99,114,101,97,116,111,114,34,58,34,51,67,122,86,53,69,121,74,118,54,84,86,69,97,88,71,116,114,101,69,70,84,70,83,69,74,109,97,75,66,100,118,83,113,116,88,112,88,87,52,114,55,98,119,87,66,119,56,119,83,89,86,106,71,34,44,34,99,111,110,116,114,97,99,116,34,58,34,114,101,116,117,114,110,32,99,108,97,115,115,32,78,97,109,101,83,101,114,118,105,99,101,123,35,110,97,109,101,61,92,34,65,114,116,79,110,108,105,110,101,78,97,109,101,83,101,114,118,105,99,101,92,34,59,35,111,119,110,101,114,59,35,112,114,105,99,101,61,48,59,35,114,101,103,105,115,116,114,121,61,123,125,59,35,99,117,114,114,101,110,99,121,59,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,114,101,103,105,115,116,114,121,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,114,101,103,105,115,116,114,121,125,125,103,101,116,32,115,116,97,116,101,40,41,123,125,99,111,110,115,116,114,117,99,116,111,114,40,102,97,99,116,111,114,121,65,100,100,114,101,115,115,44,99,117,114,114,101,110,99,121,44,118,97,108,105,100,97,116,111,114,65,100,100,114,101,115,115,44,112,114,105,99,101,44,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,111,119,110,101,114,61,115,116,97,116,101,46,111,119,110,101,114,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,61,115,116,97,116,101,46,114,101,103,105,115,116,114,121,44,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,115,116,97,116,101,46,99,117,114,114,101,110,99,121,44,116,104,105,115,46,35,112,114,105,99,101,61,115,116,97,116,101,46,112,114,105,99,101,41,58,40,116,104,105,115,46,35,111,119,110,101,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,112,114,105,99,101,61,112,114,105,99,101,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,65,114,116,79,110,108,105,110,101,67,111,110,116,114,97,99,116,70,97,99,116,111,114,121,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,102,97,99,116,111,114,121,65,100,100,114,101,115,115,125,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,65,114,116,79,110,108,105,110,101,84,111,107,101,110,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,99,117,114,114,101,110,99,121,125,44,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,65,114,116,79,110,108,105,110,101,86,97,108,105,100,97,116,111,114,115,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,118,97,108,105,100,97,116,111,114,65,100,100,114,101,115,115,125,44,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,99,117,114,114,101,110,99,121,41,125,99,104,97,110,103,101,79,119,110,101,114,40,111,119,110,101,114,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,110,111,32,111,119,110,101,114,92,34,41,59,116,104,105,115,46,35,111,119,110,101,114,61,111,119,110,101,114,125,99,104,97,110,103,101,80,114,105,99,101,40,112,114,105,99,101,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,110,111,32,111,119,110,101,114,92,34,41,59,116,104,105,115,46,35,112,114,105,99,101,61,112,114,105,99,101,125,99,104,97,110,103,101,67,117,114,114,101,110,99,121,40,99,117,114,114,101,110,99,121,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,110,111,32,111,119,110,101,114,92,34,41,59,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,99,117,114,114,101,110,99,121,125,97,115,121,110,99,32,112,117,114,99,104,97,115,101,78,97,109,101,40,110,97,109,101,44,97,100,100,114,101,115,115,41,123,105,102,40,97,119,97,105,116,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,99,117,114,114,101,110,99,121,44,92,34,98,97,108,97,110,99,101,79,102,92,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,60,116,104,105,115,46,35,112,114,105,99,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,112,114,105,99,101,32,101,120,99,101,101,100,115,32,98,97,108,97,110,99,101,92,34,41,59,116,114,121,123,97,119,97,105,116,32,109,115,103,46,99,97,108,108,40,116,104,105,115,46,35,99,117,114,114,101,110,99,121,44,92,34,116,114,97,110,115,102,101,114,92,34,44,91,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,111,119,110,101,114,44,116,104,105,115,46,35,112,114,105,99,101,93,41,125,99,97,116,99,104,40,101,41,123,116,104,114,111,119,32,101,125,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,61,123,111,119,110,101,114,58,109,115,103,46,115,101,110,100,101,114,44,97,100,100,114,101,115,115,58,97,100,100,114,101,115,115,125,125,108,111,111,107,117,112,40,110,97,109,101,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,125,116,114,97,110,115,102,101,114,79,119,110,101,114,115,104,105,112,40,110,97,109,101,44,116,111,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,110,111,116,32,97,32,111,119,110,101,114,92,34,41,59,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,111,119,110,101,114,61,116,111,125,99,104,97,110,103,101,65,100,100,114,101,115,115,40,110,97,109,101,44,97,100,100,114,101,115,115,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,114,101,103,105,115,116,114,121,46,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,110,111,116,32,97,32,111,119,110,101,114,92,34,41,59,116,104,105,115,46,35,114,101,103,105,115,116,114,121,91,110,97,109,101,93,46,97,100,100,114,101,115,115,61,97,100,100,114,101,115,115,125,125,59,92,110,34,44,34,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,34,58,91,34,105,104,110,121,50,103,113,104,112,120,106,108,105,98,50,110,97,110,110,55,113,53,111,118,97,113,115,53,117,111,55,100,117,102,97,99,51,114,52,121,111,109,102,51,54,112,116,52,100,53,121,103,54,97,116,116,54,101,119,34,44,34,105,104,110,121,50,103,113,104,114,120,52,52,110,105,105,102,116,105,53,122,97,119,102,113,99,108,102,107,108,102,55,101,119,115,102,54,122,51,114,101,109,50,102,109,98,120,115,116,54,109,120,121,121,122,97,104,108,109,54,34,44,34,105,104,110,121,50,103,113,103,121,53,106,112,107,101,118,119,102,111,108,117,119,101,50,98,50,121,55,118,105,113,116,99,102,114,119,103,97,98,105,112,122,51,109,107,98,55,116,119,110,104,106,115,113,104,100,99,50,119,116,34,44,34,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,34,93,125";
|
|
365
|
+
var validators = "237,198,141,3,123,34,99,114,101,97,116,111,114,34,58,34,51,67,122,86,53,69,121,74,118,54,84,86,69,97,88,71,116,114,101,69,70,84,70,83,69,74,109,97,75,66,100,118,83,113,116,88,112,88,87,52,114,55,98,119,87,66,119,56,119,83,89,86,106,71,34,44,34,99,111,110,116,114,97,99,116,34,58,34,114,101,116,117,114,110,32,99,108,97,115,115,32,86,97,108,105,100,97,116,111,114,115,123,35,110,97,109,101,61,92,34,65,114,116,79,110,108,105,110,101,86,97,108,105,100,97,116,111,114,115,92,34,59,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,61,48,59,35,118,97,108,105,100,97,116,111,114,115,61,123,125,59,35,111,119,110,101,114,59,35,99,117,114,114,101,110,99,121,59,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,59,103,101,116,32,115,116,97,116,101,40,41,123,114,101,116,117,114,110,123,111,119,110,101,114,58,116,104,105,115,46,35,111,119,110,101,114,44,109,105,110,105,109,117,109,66,97,108,97,110,99,101,58,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,44,99,117,114,114,101,110,99,121,58,116,104,105,115,46,35,99,117,114,114,101,110,99,121,44,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,58,116,104,105,115,46,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,44,118,97,108,105,100,97,116,111,114,115,58,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,125,125,99,111,110,115,116,114,117,99,116,111,114,40,116,111,107,101,110,65,100,100,114,101,115,115,44,115,116,97,116,101,41,123,115,116,97,116,101,63,40,116,104,105,115,46,35,111,119,110,101,114,61,115,116,97,116,101,46,111,119,110,101,114,44,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,61,115,116,97,116,101,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,44,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,115,116,97,116,101,46,99,117,114,114,101,110,99,121,44,116,104,105,115,46,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,61,115,116,97,116,101,46,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,61,115,116,97,116,101,46,118,97,108,105,100,97,116,111,114,115,41,58,40,116,104,105,115,46,35,111,119,110,101,114,61,109,115,103,46,115,101,110,100,101,114,44,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,61,53,101,52,44,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,116,111,107,101,110,65,100,100,114,101,115,115,44,116,104,105,115,46,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,43,61,49,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,109,115,103,46,115,101,110,100,101,114,93,61,123,102,105,114,115,116,83,101,101,110,58,40,110,101,119,32,68,97,116,101,41,46,103,101,116,84,105,109,101,40,41,44,97,99,116,105,118,101,58,33,48,125,41,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,111,119,110,101,114,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,111,119,110,101,114,125,103,101,116,32,99,117,114,114,101,110,99,121,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,99,117,114,114,101,110,99,121,125,103,101,116,32,118,97,108,105,100,97,116,111,114,115,40,41,123,114,101,116,117,114,110,123,46,46,46,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,125,125,103,101,116,32,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,125,103,101,116,32,109,105,110,105,109,117,109,66,97,108,97,110,99,101,40,41,123,114,101,116,117,114,110,32,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,99,104,97,110,103,101,79,119,110,101,114,40,111,119,110,101,114,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,110,111,116,32,97,110,32,111,119,110,101,114,92,34,41,125,99,104,97,110,103,101,67,117,114,114,101,110,99,121,40,99,117,114,114,101,110,99,121,41,123,105,102,40,109,115,103,46,115,101,110,100,101,114,33,61,61,116,104,105,115,46,35,111,119,110,101,114,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,110,111,116,32,97,110,32,111,119,110,101,114,92,34,41,59,116,104,105,115,46,35,99,117,114,114,101,110,99,121,61,99,117,114,114,101,110,99,121,125,104,97,115,40,118,97,108,105,100,97,116,111,114,41,123,114,101,116,117,114,110,32,66,111,111,108,101,97,110,40,118,111,105,100,32,48,33,61,61,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,118,97,108,105,100,97,116,111,114,93,41,125,97,115,121,110,99,32,97,100,100,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,41,123,105,102,40,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,97,108,114,101,97,100,121,32,97,32,118,97,108,105,100,97,116,111,114,92,34,41,59,99,111,110,115,116,32,98,97,108,97,110,99,101,61,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,92,34,98,97,108,97,110,99,101,79,102,92,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,59,105,102,40,98,97,108,97,110,99,101,60,116,104,105,115,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,98,97,108,97,110,99,101,32,116,111,32,108,111,119,33,32,103,111,116,58,32,36,123,98,97,108,97,110,99,101,125,32,110,101,101,100,58,32,36,123,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,96,41,59,116,104,105,115,46,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,43,61,49,44,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,118,97,108,105,100,97,116,111,114,93,61,123,102,105,114,115,116,83,101,101,110,58,40,110,101,119,32,68,97,116,101,41,46,103,101,116,84,105,109,101,40,41,44,97,99,116,105,118,101,58,33,48,125,125,114,101,109,111,118,101,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,41,123,105,102,40,33,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,118,97,108,105,100,97,116,111,114,32,110,111,116,32,102,111,117,110,100,92,34,41,59,116,104,105,115,46,35,116,111,116,97,108,86,97,108,105,100,97,116,111,114,115,45,61,49,44,100,101,108,101,116,101,32,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,118,97,108,105,100,97,116,111,114,93,125,97,115,121,110,99,32,117,112,100,97,116,101,86,97,108,105,100,97,116,111,114,40,118,97,108,105,100,97,116,111,114,44,97,99,116,105,118,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,40,118,97,108,105,100,97,116,111,114,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,118,97,108,105,100,97,116,111,114,32,110,111,116,32,102,111,117,110,100,92,34,41,59,99,111,110,115,116,32,98,97,108,97,110,99,101,61,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,116,104,105,115,46,99,117,114,114,101,110,99,121,44,92,34,98,97,108,97,110,99,101,79,102,92,34,44,91,109,115,103,46,115,101,110,100,101,114,93,41,59,105,102,40,98,97,108,97,110,99,101,60,116,104,105,115,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,38,38,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,118,97,108,105,100,97,116,111,114,93,46,97,99,116,105,118,101,38,38,40,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,118,97,108,105,100,97,116,111,114,93,46,97,99,116,105,118,101,61,33,49,41,44,98,97,108,97,110,99,101,60,116,104,105,115,46,109,105,110,105,109,117,109,66,97,108,97,110,99,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,98,97,108,97,110,99,101,32,116,111,32,108,111,119,33,32,103,111,116,58,32,36,123,98,97,108,97,110,99,101,125,32,110,101,101,100,58,32,36,123,116,104,105,115,46,35,109,105,110,105,109,117,109,66,97,108,97,110,99,101,125,96,41,59,116,104,105,115,46,35,118,97,108,105,100,97,116,111,114,115,91,118,97,108,105,100,97,116,111,114,93,46,97,99,116,105,118,101,61,97,99,116,105,118,101,125,125,59,92,110,34,44,34,99,111,110,115,116,114,117,99,116,111,114,80,97,114,97,109,101,116,101,114,115,34,58,91,34,105,104,110,121,50,103,113,104,114,120,52,52,110,105,105,102,116,105,53,122,97,119,102,113,99,108,102,107,108,102,55,101,119,115,102,54,122,51,114,101,109,50,102,109,98,120,115,116,54,109,120,121,121,122,97,104,108,109,54,34,93,125";
|
|
311
366
|
var bytecodes = {
|
|
312
367
|
contractFactory: contractFactory,
|
|
313
368
|
nativeToken: nativeToken,
|
|
@@ -315,17 +370,25 @@ var bytecodes = {
|
|
|
315
370
|
validators: validators
|
|
316
371
|
};
|
|
317
372
|
|
|
318
|
-
const contractFactoryMessage =
|
|
319
|
-
const nativeTokenMessage =
|
|
373
|
+
const contractFactoryMessage = bytecodes.contractFactory;
|
|
374
|
+
const nativeTokenMessage = bytecodes.nativeToken;
|
|
375
|
+
|
|
376
|
+
const nameServiceMessage = bytecodes.nameService;
|
|
377
|
+
const validatorsMessage = bytecodes.validators;
|
|
320
378
|
|
|
321
|
-
const
|
|
322
|
-
|
|
379
|
+
const createContractMessage = async (creator, contract, constructorParameters = []) => {
|
|
380
|
+
return new ContractMessage({
|
|
381
|
+
creator,
|
|
382
|
+
contract,
|
|
383
|
+
constructorParameters
|
|
384
|
+
})
|
|
385
|
+
};
|
|
323
386
|
|
|
324
387
|
const calculateFee = async transaction => {
|
|
325
388
|
// excluded from fees
|
|
326
|
-
if (transaction.to ===
|
|
389
|
+
if (transaction.to === validators$1) return 0
|
|
327
390
|
// fee per gb
|
|
328
|
-
transaction = await new
|
|
391
|
+
transaction = await new TransactionMessage(transaction);
|
|
329
392
|
let fee = transaction.encoded.length;
|
|
330
393
|
fee = fee / 1024;
|
|
331
394
|
fee = fee / 1000000;
|
|
@@ -385,6 +448,7 @@ class Chain {
|
|
|
385
448
|
this.#runningEpoch = true;
|
|
386
449
|
console.log('epoch');
|
|
387
450
|
const validators = await this.staticCall(addresses.validators, 'validators');
|
|
451
|
+
console.log(validators);
|
|
388
452
|
if (!validators[peernet.id]?.active) return
|
|
389
453
|
console.log('active');
|
|
390
454
|
|
|
@@ -405,10 +469,25 @@ class Chain {
|
|
|
405
469
|
}
|
|
406
470
|
|
|
407
471
|
async #setup() {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
472
|
+
|
|
473
|
+
const contracts = [{
|
|
474
|
+
address: addresses.contractFactory,
|
|
475
|
+
message: contractFactoryMessage
|
|
476
|
+
}, {
|
|
477
|
+
address: addresses.nativeToken,
|
|
478
|
+
message: nativeTokenMessage
|
|
479
|
+
}, {
|
|
480
|
+
address: addresses.validators,
|
|
481
|
+
message: validatorsMessage
|
|
482
|
+
}, {
|
|
483
|
+
address: addresses.nameService,
|
|
484
|
+
message: nameServiceMessage
|
|
485
|
+
}];
|
|
486
|
+
|
|
487
|
+
await Promise.all(contracts.map(async ({address, message}) => {
|
|
488
|
+
message = await new ContractMessage(message);
|
|
489
|
+
await contractStore.put(address, message.encoded);
|
|
490
|
+
}));
|
|
412
491
|
console.log('handle native contracts');
|
|
413
492
|
// handle native contracts
|
|
414
493
|
}
|
|
@@ -434,6 +513,14 @@ class Chain {
|
|
|
434
513
|
return set
|
|
435
514
|
}, {index: 0, hash: '0x0'});
|
|
436
515
|
// get lastblock
|
|
516
|
+
console.log(promises.hash);
|
|
517
|
+
if (promises.hash && promises.hash !== '0x0') {
|
|
518
|
+
console.log('get');
|
|
519
|
+
let localBlock = await peernet.get(promises.hash);
|
|
520
|
+
console.log({localBlock});
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
|
|
437
524
|
}
|
|
438
525
|
|
|
439
526
|
async #init() {
|
|
@@ -446,17 +533,6 @@ class Chain {
|
|
|
446
533
|
this.#machine = await new Machine();
|
|
447
534
|
this.utils = { BigNumber: utils.BigNumber, formatUnits: utils.formatUnits, parseUnits: utils.parseUnits };
|
|
448
535
|
|
|
449
|
-
try {
|
|
450
|
-
let localBlock = await chainStore.get('lastBlock');
|
|
451
|
-
localBlock = await peernet.get(new TextDecoder().decode(localBlock));
|
|
452
|
-
localBlock = await await new BlockMessage(localBlock);
|
|
453
|
-
this.#lastBlock = {...localBlock.decoded, hash: await localBlock.hash};
|
|
454
|
-
// console.log(this.lastBlock.decoded.transactions);
|
|
455
|
-
} catch (e) {
|
|
456
|
-
await this.#sync();
|
|
457
|
-
// this.#setup()
|
|
458
|
-
}
|
|
459
|
-
|
|
460
536
|
await peernet.addRequestHandler('bw-request-message', () => {
|
|
461
537
|
|
|
462
538
|
return new BWMessage(peernet.client.bw) || { up: 0, down: 0 }
|
|
@@ -470,19 +546,37 @@ class Chain {
|
|
|
470
546
|
|
|
471
547
|
pubsub.subscribe('peer:connected', this.#peerConnected.bind(this));
|
|
472
548
|
|
|
549
|
+
try {
|
|
550
|
+
let localBlock = await chainStore.get('lastBlock');
|
|
551
|
+
localBlock = new TextDecoder().decode(localBlock);
|
|
552
|
+
if (localBlock && localBlock !== '0x0') {
|
|
553
|
+
localBlock = await peernet.get(localBlock);
|
|
554
|
+
localBlock = await new BlockMessage(localBlock);
|
|
555
|
+
this.#lastBlock = {...localBlock.decoded, hash: await localBlock.hash};
|
|
556
|
+
} else {
|
|
557
|
+
await this.#sync();
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
// console.log(this.lastBlock.decoded.transactions);
|
|
561
|
+
} catch (e) {
|
|
562
|
+
console.log({e});
|
|
563
|
+
await chainStore.put('lastBlock', '0x0');
|
|
564
|
+
await this.#sync();
|
|
565
|
+
// this.#setup()
|
|
566
|
+
}
|
|
473
567
|
// load local blocks
|
|
474
|
-
await this.resolveBlocks();
|
|
568
|
+
if (peernet.connections?.length > 1) await this.resolveBlocks();
|
|
475
569
|
return this
|
|
476
570
|
}
|
|
477
571
|
|
|
478
572
|
async #peerConnected(peer) {
|
|
479
|
-
let node = new peernet.protos['peernet-request']({request: 'lastBlock'});
|
|
480
|
-
|
|
573
|
+
let node = await new peernet.protos['peernet-request']({request: 'lastBlock'});
|
|
574
|
+
console.log(node);
|
|
575
|
+
node = await peernet.prepareMessage(node);
|
|
481
576
|
let response = await peer.request(node.encoded);
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
let lastBlock = JSON.parse(new TextDecoder().decode(response.decoded.response));
|
|
577
|
+
console.log({response});
|
|
578
|
+
response = await new globalThis.peernet.protos['peernet-response'](response);
|
|
579
|
+
let lastBlock = response.decoded.response;
|
|
486
580
|
|
|
487
581
|
if (!this.lastBlock || this.lastBlock.index < lastBlock.index) {
|
|
488
582
|
// TODO: check if valid
|
|
@@ -490,8 +584,6 @@ class Chain {
|
|
|
490
584
|
const index = lastBlock.index;
|
|
491
585
|
await this.resolveBlock(lastBlock.hash);
|
|
492
586
|
this.#lastBlock = this.#blocks[this.#blocks.length - 1];
|
|
493
|
-
console.log({lastBlock: this.#lastBlock});
|
|
494
|
-
console.log(this.#blocks);
|
|
495
587
|
let blocksSynced = localIndex > 0 ? localIndex - index : index;
|
|
496
588
|
blocksSynced += 1;
|
|
497
589
|
debug(`synced ${blocksSynced} ${blocksSynced > 1 ? 'blocks' : 'block'}`);
|
|
@@ -501,7 +593,7 @@ class Chain {
|
|
|
501
593
|
await this.#loadBlocks(this.#blocks);
|
|
502
594
|
const message = await new BlockMessage(this.lastBlock);
|
|
503
595
|
await blockStore.put(await message.hash, message.encoded);
|
|
504
|
-
await chainStore.put('lastBlock',
|
|
596
|
+
await chainStore.put('lastBlock', this.lastBlock.hash);
|
|
505
597
|
}
|
|
506
598
|
}
|
|
507
599
|
|
|
@@ -519,10 +611,11 @@ class Chain {
|
|
|
519
611
|
}
|
|
520
612
|
|
|
521
613
|
async #lastBlockHandler() {
|
|
522
|
-
return new peernet.protos['peernet-response']({response:
|
|
614
|
+
return new peernet.protos['peernet-response']({response: { hash: this.lastBlock?.hash, index: this.lastBlock?.index }})
|
|
523
615
|
}
|
|
524
616
|
|
|
525
617
|
async resolveBlock(hash) {
|
|
618
|
+
if (!hash) throw new Error(`expected hash, got: ${hash}`)
|
|
526
619
|
let block = await peernet.get(hash, 'block');
|
|
527
620
|
if (!await peernet.has(hash, 'block')) await peernet.put(hash, block, 'block');
|
|
528
621
|
block = await new BlockMessage(block);
|
|
@@ -540,8 +633,8 @@ async resolveBlock(hash) {
|
|
|
540
633
|
|
|
541
634
|
const localBlock = await chainStore.get('lastBlock');
|
|
542
635
|
const hash = new TextDecoder().decode(localBlock);
|
|
543
|
-
if (hash !== '0x0')
|
|
544
|
-
await this.resolveBlock(
|
|
636
|
+
if (hash && hash !== '0x0')
|
|
637
|
+
await this.resolveBlock(localBlock);
|
|
545
638
|
this.#lastBlock = this.#blocks[this.#blocks.length - 1];
|
|
546
639
|
await this.#loadBlocks(this.#blocks);
|
|
547
640
|
} catch (e) {
|
|
@@ -592,6 +685,7 @@ async resolveBlock(hash) {
|
|
|
592
685
|
pubsub.publish(`transaction.completed.${hash}`, {status: 'fulfilled', hash});
|
|
593
686
|
return result ? result : 'no state change'
|
|
594
687
|
} catch (e) {
|
|
688
|
+
console.log({e});
|
|
595
689
|
pubsub.publish(`transaction.completed.${hash}`, {status: 'fail', hash, error: e});
|
|
596
690
|
throw e
|
|
597
691
|
}
|
|
@@ -620,7 +714,7 @@ async resolveBlock(hash) {
|
|
|
620
714
|
// transactions = await Promise.all(transactions)
|
|
621
715
|
this.#lastBlock = { hash, ...blockMessage.decoded };
|
|
622
716
|
await blockStore.put(hash, blockMessage.encoded);
|
|
623
|
-
await chainStore.put('lastBlock',
|
|
717
|
+
await chainStore.put('lastBlock', hash);
|
|
624
718
|
debug(`added block: ${hash}`);
|
|
625
719
|
let promises = [];
|
|
626
720
|
let contracts = [];
|
|
@@ -633,7 +727,7 @@ async resolveBlock(hash) {
|
|
|
633
727
|
try {
|
|
634
728
|
promises = await Promise.allSettled(promises);
|
|
635
729
|
for (let transaction of blockMessage.decoded.transactions) {
|
|
636
|
-
await accountsStore.put(transaction.from,
|
|
730
|
+
await accountsStore.put(transaction.from, String(transaction.nonce));
|
|
637
731
|
}
|
|
638
732
|
|
|
639
733
|
// todo finish state
|
|
@@ -644,7 +738,7 @@ async resolveBlock(hash) {
|
|
|
644
738
|
// }
|
|
645
739
|
pubsub.publish('block-processed', blockMessage.decoded);
|
|
646
740
|
} catch (e) {
|
|
647
|
-
console.log(e);
|
|
741
|
+
console.log({e});
|
|
648
742
|
}
|
|
649
743
|
|
|
650
744
|
}
|
|
@@ -684,24 +778,30 @@ async resolveBlock(hash) {
|
|
|
684
778
|
return new Promise(async (resolve, reject) => {
|
|
685
779
|
let size = 0;
|
|
686
780
|
const _transactions = [];
|
|
687
|
-
|
|
688
|
-
|
|
781
|
+
|
|
782
|
+
|
|
783
|
+
await Promise.all(transactions
|
|
784
|
+
.map(async tx => {
|
|
785
|
+
tx = await new TransactionMessage(tx);
|
|
786
|
+
size += tx.encoded.length;
|
|
787
|
+
if (!formatBytes(size).includes('MB') || formatBytes(size).includes('MB') && Number(formatBytes(size).split(' MB')[0]) <= 0.75) _transactions.push({...tx.decoded, hash: await tx.hash});
|
|
788
|
+
else resolve(_transactions);
|
|
789
|
+
}));
|
|
689
790
|
|
|
690
|
-
for (let transaction of promises) {
|
|
691
|
-
size += transaction.encoded.length;
|
|
692
|
-
if ((size / 1024) / 1024 <= 1.15 ) _transactions.push({...transaction.decoded, hash: await transaction.hash });
|
|
693
|
-
else return resolve(_transactions)
|
|
694
|
-
|
|
695
|
-
}
|
|
696
791
|
return resolve(_transactions)
|
|
697
792
|
})
|
|
698
793
|
|
|
699
|
-
}
|
|
700
|
-
async #createBlock() {
|
|
701
|
-
let transactions = await transactionPoolStore.get();
|
|
794
|
+
}
|
|
702
795
|
|
|
703
|
-
|
|
796
|
+
// todo filter tx that need to wait on prev nonce
|
|
797
|
+
async #createBlock(limit = 1800) {
|
|
798
|
+
// vote for transactions
|
|
799
|
+
if (await transactionPoolStore.size() === 0) return;
|
|
800
|
+
|
|
801
|
+
let transactions = await transactionPoolStore.values(limit);
|
|
704
802
|
|
|
803
|
+
if (Object.keys(transactions)?.length === 0 ) return
|
|
804
|
+
|
|
705
805
|
let block = {
|
|
706
806
|
transactions: [],
|
|
707
807
|
validators: [],
|
|
@@ -709,7 +809,7 @@ async resolveBlock(hash) {
|
|
|
709
809
|
};
|
|
710
810
|
|
|
711
811
|
// exclude failing tx
|
|
712
|
-
transactions = await this.getTransactions(transactions);
|
|
812
|
+
transactions = await this.getTransactions(transactions.slice(0, transactions.length < 1800 ? transactions.length : 1800));
|
|
713
813
|
|
|
714
814
|
transactions = transactions.sort((a, b) => a.nonce - b.nonce);
|
|
715
815
|
for (let transaction of transactions) {
|
|
@@ -719,10 +819,9 @@ async resolveBlock(hash) {
|
|
|
719
819
|
block.fees += Number(calculateFee(transaction));
|
|
720
820
|
await accountsStore.put(transaction.from, new TextEncoder().encode(String(transaction.nonce)));
|
|
721
821
|
} catch (e) {
|
|
722
|
-
console.
|
|
822
|
+
console.log({e});
|
|
723
823
|
transaction = await new TransactionMessage(transaction);
|
|
724
824
|
await transactionPoolStore.delete(await transaction.hash);
|
|
725
|
-
console.log(e);
|
|
726
825
|
}
|
|
727
826
|
}
|
|
728
827
|
// don't add empty block
|
|
@@ -807,7 +906,7 @@ console.log(e);
|
|
|
807
906
|
|
|
808
907
|
this.#lastBlock = { hash, ...blockMessage.decoded };
|
|
809
908
|
await blockStore.put(hash, blockMessage.encoded);
|
|
810
|
-
await chainStore.put('lastBlock',
|
|
909
|
+
await chainStore.put('lastBlock', hash);
|
|
811
910
|
debug(`created block: ${hash}`);
|
|
812
911
|
|
|
813
912
|
peernet.publish('add-block', blockMessage.encoded);
|
|
@@ -834,12 +933,13 @@ console.log(e);
|
|
|
834
933
|
}
|
|
835
934
|
|
|
836
935
|
async #getNonceFallback(address) {
|
|
837
|
-
let transactions = await transactionPoolStore.
|
|
838
|
-
transactions = await this.promiseTransactions(
|
|
936
|
+
let transactions = await transactionPoolStore.values();
|
|
937
|
+
transactions = await this.promiseTransactions(transactions);
|
|
839
938
|
transactions = transactions.filter(tx => tx.decoded.from === address);
|
|
840
939
|
transactions = await this.promiseTransactionsContent(transactions);
|
|
841
940
|
|
|
842
|
-
if (this.lastBlock && transactions.length === 0) {
|
|
941
|
+
if (this.lastBlock?.hash && transactions.length === 0 && this.lastBlock.hash !== '0x0') {
|
|
942
|
+
|
|
843
943
|
let block = await peernet.get(this.lastBlock.hash);
|
|
844
944
|
block = await new BlockMessage(block);
|
|
845
945
|
|
|
@@ -848,7 +948,7 @@ console.log(e);
|
|
|
848
948
|
// transactions.push(new TransactionMessage(tx))
|
|
849
949
|
// }
|
|
850
950
|
transactions = transactions.filter(tx => tx.from === address);
|
|
851
|
-
while (transactions.length === 0 && block.decoded.index !== 0) {
|
|
951
|
+
while (transactions.length === 0 && block.decoded.index !== 0 && block.decoded.previousHash !== '0x0') {
|
|
852
952
|
block = await blockStore.get(block.decoded.previousHash);
|
|
853
953
|
block = await new BlockMessage(block);
|
|
854
954
|
transactions = block.decoded.transactions.filter(tx => tx.from === address);
|
|
@@ -917,8 +1017,8 @@ async #signTransaction (transaction, wallet) {
|
|
|
917
1017
|
identity = JSON.parse(new TextDecoder().decode(identity));
|
|
918
1018
|
const wallet = new MultiWallet__default["default"](peernet.network);
|
|
919
1019
|
wallet.recover(identity.mnemonic);
|
|
920
|
-
wallet.account(0).external(0);
|
|
921
|
-
transaction.signature = await this.#signTransaction(transaction,
|
|
1020
|
+
const account = wallet.account(0).external(0);
|
|
1021
|
+
transaction.signature = await this.#signTransaction(transaction, account);
|
|
922
1022
|
transaction.signature = bs32__default["default"].encode(transaction.signature);
|
|
923
1023
|
return transaction
|
|
924
1024
|
}
|
|
@@ -993,6 +1093,7 @@ async #signTransaction (transaction, wallet) {
|
|
|
993
1093
|
this.#addTransaction(message.encoded);
|
|
994
1094
|
return {hash: await message.hash, data, fee: await calculateFee(message.decoded), wait}
|
|
995
1095
|
} catch (e) {
|
|
1096
|
+
console.log(e);
|
|
996
1097
|
console.log(e);
|
|
997
1098
|
throw e
|
|
998
1099
|
}
|
|
@@ -1000,11 +1101,7 @@ async #signTransaction (transaction, wallet) {
|
|
|
1000
1101
|
}
|
|
1001
1102
|
|
|
1002
1103
|
async createContractMessage(creator, contract, constructorParameters = []) {
|
|
1003
|
-
return
|
|
1004
|
-
creator,
|
|
1005
|
-
contract,
|
|
1006
|
-
constructorParameters
|
|
1007
|
-
})
|
|
1104
|
+
return createContractMessage(creator, contract, constructorParameters = [])
|
|
1008
1105
|
}
|
|
1009
1106
|
|
|
1010
1107
|
async createContractAddress(creator, contract, constructorParameters = []) {
|
|
@@ -1020,7 +1117,7 @@ async #signTransaction (transaction, wallet) {
|
|
|
1020
1117
|
globalThis.msg = {sender: peernet.id, call: this.call};
|
|
1021
1118
|
|
|
1022
1119
|
const hash = await this.createContractAddress(creator, contract, params);
|
|
1023
|
-
|
|
1120
|
+
console.log(hash);
|
|
1024
1121
|
try {
|
|
1025
1122
|
const tx = await this.createTransactionFrom(peernet.id, addresses.contractFactory, 'deployContract', [hash, creator, contract, constructorParameters]);
|
|
1026
1123
|
} catch (e) {
|