@leofcoin/chain 1.3.7 → 1.3.9

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.
@@ -48,6 +48,142 @@ const formatBytes = (bytes, decimals = 2) => {
48
48
  return `${parseFloat((bytes / Math.pow(k, i)).toFixed(decimals))} ${byteFormats[i]}`
49
49
  };
50
50
 
51
+ var proto$4 = `
52
+ message ContractMessage {
53
+ required string creator = 1;
54
+ required bytes contract = 2;
55
+ repeated string constructorParameters = 3;
56
+ }
57
+ `;
58
+
59
+ class ContractMessage extends FormatInterface {
60
+ get keys() {
61
+ return ['creator', 'contract', 'constructorParameters']
62
+ }
63
+
64
+ get messageName() {
65
+ return 'ContractMessage'
66
+ }
67
+
68
+ constructor(buffer) {
69
+ super(buffer, proto$4, {name: 'contract-message'});
70
+ }
71
+ }
72
+
73
+ var proto$3 = `
74
+
75
+ message TransactionMessage {
76
+ required uint64 timestamp = 1;
77
+ required string from = 2;
78
+ required string to = 3;
79
+ required uint64 nonce = 4;
80
+ required string method = 5;
81
+ repeated string params = 6;
82
+ required string signature = 7;
83
+ }
84
+ `;
85
+
86
+ class TransactionMessage extends FormatInterface {
87
+ get keys() {
88
+ return ['timestamp', 'from', 'to', 'nonce', 'method', 'params', 'signature']
89
+ }
90
+
91
+ get messageName() {
92
+ return 'TransactionMessage'
93
+ }
94
+
95
+ constructor(buffer) {
96
+ const name = 'transaction-message';
97
+ super(buffer, proto$3, {name});
98
+ }
99
+ }
100
+
101
+ var proto$2 = `
102
+ message ValidatorMessage {
103
+ required string address = 1;
104
+ required string reward = 2;
105
+ }
106
+
107
+ message Transaction {
108
+ required string hash = 1;
109
+ required uint64 timestamp = 2;
110
+ required string from = 3;
111
+ required string to = 4;
112
+ required uint64 nonce = 5;
113
+ required string method = 6;
114
+ repeated string params = 7;
115
+ }
116
+
117
+ message BlockMessage {
118
+ required uint64 index = 1;
119
+ required string previousHash = 3;
120
+ required uint64 timestamp = 4;
121
+ required uint64 reward = 5;
122
+ required string fees = 6;
123
+ repeated Transaction transactions = 7;
124
+ repeated ValidatorMessage validators = 8;
125
+ }
126
+ `;
127
+
128
+ class BlockMessage extends FormatInterface {
129
+ get keys() {
130
+ return ['index', 'previousHash', 'timestamp', 'reward', 'fees', 'transactions', 'validators']
131
+ }
132
+
133
+ get messageName() {
134
+ return 'BlockMessage'
135
+ }
136
+
137
+ constructor(buffer) {
138
+ const name = 'block-message';
139
+ super(buffer, proto$2, {name});
140
+ }
141
+ }
142
+
143
+ var proto$1 = `
144
+
145
+ message BWMessage {
146
+ required uint64 up = 1;
147
+ required uint64 down = 2;
148
+ }
149
+ `;
150
+
151
+ class BWMessage extends FormatInterface {
152
+ get keys() {
153
+ return ['up', 'down']
154
+ }
155
+
156
+ get messageName() {
157
+ return 'BWMessage'
158
+ }
159
+
160
+ constructor(buffer) {
161
+ const name = 'bw-message';
162
+ super(buffer, proto$1, {name});
163
+ }
164
+ }
165
+
166
+ var proto = `
167
+
168
+ message BWRequestMessage {
169
+ }
170
+ `;
171
+
172
+ class BWRequestMessage extends FormatInterface {
173
+ get keys() {
174
+ return []
175
+ }
176
+
177
+ get messageName() {
178
+ return 'BWRequestMessage'
179
+ }
180
+
181
+ constructor(buffer) {
182
+ const name = 'bw-request-message';
183
+ super(buffer, proto, {name});
184
+ }
185
+ }
186
+
51
187
  // import State from './state'
52
188
 
53
189
  class Machine {
@@ -131,35 +267,49 @@ class Machine {
131
267
  }
132
268
 
133
269
  async #runContract(contractMessage) {
134
- const parameters = contractMessage.decoded.constructorParameters;
135
- try {
136
-
137
- const function_ = new Function(contractMessage.decoded.contract);
138
- const Contract = function_();
139
-
140
- globalThis.msg = this.#createMessage(contractMessage.decoded.creator);
141
- // globalThis.msg = {sender: contractMessage.decoded.creator}
142
- this.#contracts[await contractMessage.hash] = await new Contract(...parameters);
143
- debug(`loaded contract: ${await contractMessage.hash}`);
144
- debug(`size: ${formatBytes(contractMessage.encoded.length)}`);
145
- } catch (error) {
146
- console.log(error);
147
- console.warn(`removing contract ${await contractMessage.hash}`);
148
- await contractStore.delete(await contractMessage.hash, contractMessage.encoded);
149
- }
150
- }
151
- /**
152
- * @params {ContractMessage} - contractMessage
153
- */
154
- async addContract(contractMessage) {
155
- if (await contractStore.has(await contractMessage.hash)) throw new Error('duplicate contract')
156
-
157
- await contractStore.put(await contractMessage.hash, contractMessage.encoded);
158
- await this.#runContract(contractMessage);
159
- return contractMessage.hash
270
+ const hash = await contractMessage.hash;
271
+ return new Promise((resolve, reject) => {
272
+ const id = randomBytes(20).toString('hex');
273
+ const onmessage = message => {
274
+ pubsub.unsubscribe(id, onmessage);
275
+ if (message?.error) reject(message.error);
276
+ else resolve(message);
277
+ };
278
+ pubsub.subscribe(id, onmessage);
279
+ this.worker.postMessage({
280
+ type: 'run',
281
+ id,
282
+ input: {
283
+ decoded: contractMessage.decoded,
284
+ encoded: contractMessage.encoded,
285
+ hash
286
+ }
287
+ });
288
+ })
289
+
160
290
  }
161
291
 
162
292
  async execute(contract, method, parameters) {
293
+ /** */
294
+ try {
295
+ if (contract === contractFactory$1 && method === 'registerContract') {
296
+ if (this.#contracts[parameters[0]]) throw new Error(`duplicate contract @${parameters[0]}`)
297
+ let message;
298
+ if (!contractStore.has(parameters[0])) {
299
+ message = await peernet.get(parameters[0], 'contract');
300
+ message = new ContractMessage(message);
301
+ await contractStore.put(await message.hash, message.encoded);
302
+ }
303
+ if (!message) {
304
+ message = await contractStore.get(parameters[0]);
305
+ message = new ContractMessage(message);
306
+ }
307
+
308
+ if (!this.#contracts[await message.hash]) await this.#runContract(message);
309
+ }
310
+ } catch (error) {
311
+ throw new Error(`contract deployment failed for ${parameters[0]}\n${error.message}`)
312
+ }
163
313
  return new Promise((resolve, reject) => {
164
314
  const id = randomBytes(20).toString('hex');
165
315
  const onmessage = message => {
@@ -224,142 +374,6 @@ class Machine {
224
374
  }
225
375
  }
226
376
 
227
- var proto$4 = `
228
- message ContractMessage {
229
- required string creator = 1;
230
- required bytes contract = 2;
231
- repeated string constructorParameters = 3;
232
- }
233
- `;
234
-
235
- class ContractMessage extends FormatInterface {
236
- get keys() {
237
- return ['creator', 'contract', 'constructorParameters']
238
- }
239
-
240
- get messageName() {
241
- return 'ContractMessage'
242
- }
243
-
244
- constructor(buffer) {
245
- super(buffer, proto$4, {name: 'contract-message'});
246
- }
247
- }
248
-
249
- var proto$3 = `
250
-
251
- message TransactionMessage {
252
- required uint64 timestamp = 1;
253
- required string from = 2;
254
- required string to = 3;
255
- required uint64 nonce = 4;
256
- required string method = 5;
257
- repeated string params = 6;
258
- required string signature = 7;
259
- }
260
- `;
261
-
262
- class TransactionMessage extends FormatInterface {
263
- get keys() {
264
- return ['timestamp', 'from', 'to', 'nonce', 'method', 'params', 'signature']
265
- }
266
-
267
- get messageName() {
268
- return 'TransactionMessage'
269
- }
270
-
271
- constructor(buffer) {
272
- const name = 'transaction-message';
273
- super(buffer, proto$3, {name});
274
- }
275
- }
276
-
277
- var proto$2 = `
278
- message ValidatorMessage {
279
- required string address = 1;
280
- required string reward = 2;
281
- }
282
-
283
- message Transaction {
284
- required string hash = 1;
285
- required uint64 timestamp = 2;
286
- required string from = 3;
287
- required string to = 4;
288
- required uint64 nonce = 5;
289
- required string method = 6;
290
- repeated string params = 7;
291
- }
292
-
293
- message BlockMessage {
294
- required uint64 index = 1;
295
- required string previousHash = 3;
296
- required uint64 timestamp = 4;
297
- required uint64 reward = 5;
298
- required string fees = 6;
299
- repeated Transaction transactions = 7;
300
- repeated ValidatorMessage validators = 8;
301
- }
302
- `;
303
-
304
- class BlockMessage extends FormatInterface {
305
- get keys() {
306
- return ['index', 'previousHash', 'timestamp', 'reward', 'fees', 'transactions', 'validators']
307
- }
308
-
309
- get messageName() {
310
- return 'BlockMessage'
311
- }
312
-
313
- constructor(buffer) {
314
- const name = 'block-message';
315
- super(buffer, proto$2, {name});
316
- }
317
- }
318
-
319
- var proto$1 = `
320
-
321
- message BWMessage {
322
- required uint64 up = 1;
323
- required uint64 down = 2;
324
- }
325
- `;
326
-
327
- class BWMessage extends FormatInterface {
328
- get keys() {
329
- return ['up', 'down']
330
- }
331
-
332
- get messageName() {
333
- return 'BWMessage'
334
- }
335
-
336
- constructor(buffer) {
337
- const name = 'bw-message';
338
- super(buffer, proto$1, {name});
339
- }
340
- }
341
-
342
- var proto = `
343
-
344
- message BWRequestMessage {
345
- }
346
- `;
347
-
348
- class BWRequestMessage extends FormatInterface {
349
- get keys() {
350
- return []
351
- }
352
-
353
- get messageName() {
354
- return 'BWRequestMessage'
355
- }
356
-
357
- constructor(buffer) {
358
- const name = 'bw-request-message';
359
- super(buffer, proto, {name});
360
- }
361
- }
362
-
363
377
  var contractFactory = "237,198,141,3,123,34,99,114,101,97,116,111,114,34,58,34,56,71,85,107,103,52,120,87,113,109,110,83,56,75,101,122,56,107,54,68,115,82,120,90,66,68,97,54,114,71,74,109,104,107,122,67,75,113,78,75,102,85,110,103,90,122,109,54,97,81,34,44,34,99,111,110,116,114,97,99,116,34,58,34,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,97,115,121,110,99,32,114,101,103,105,115,116,101,114,67,111,110,116,114,97,99,116,40,97,100,100,114,101,115,115,41,123,105,102,40,97,119,97,105,116,32,109,115,103,46,115,116,97,116,105,99,67,97,108,108,40,97,100,100,114,101,115,115,44,92,34,104,97,115,82,111,108,101,92,34,44,91,109,115,103,46,115,101,110,100,101,114,44,92,34,79,87,78,69,82,92,34,93,41,44,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,92,34,97,108,114,101,97,100,121,32,114,101,103,105,115,116,101,114,101,100,92,34,41,59,116,104,105,115,46,35,116,111,116,97,108,67,111,110,116,114,97,99,116,115,43,61,49,44,116,104,105,115,46,35,99,111,110,116,114,97,99,116,115,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,125,114,101,116,117,114,110,32,70,97,99,116,111,114,121,59,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
378
  var nativeToken = "237,198,141,3,123,34,99,114,101,97,116,111,114,34,58,34,56,71,85,107,103,52,120,87,113,109,110,83,56,75,101,122,56,107,54,68,115,82,120,90,66,68,97,54,114,71,74,109,104,107,122,67,75,113,78,75,102,85,110,103,90,122,109,54,97,81,34,44,34,99,111,110,116,114,97,99,116,34,58,34,99,108,97,115,115,32,82,111,108,101,115,123,35,114,111,108,101,115,61,123,79,87,78,69,82,58,91,93,44,77,73,78,84,58,91,93,44,66,85,82,78,58,91,93,125,59,99,111,110,115,116,114,117,99,116,111,114,40,114,111,108,101,115,41,123,105,102,40,114,111,108,101,115,41,123,105,102,40,33,40,114,111,108,101,115,32,105,110,115,116,97,110,99,101,111,102,32,79,98,106,101,99,116,41,41,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,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,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,105,110,99,108,117,100,101,115,40,97,100,100,114,101,115,115,41,125,35,103,114,97,110,116,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,103,114,97,110,116,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,116,104,105,115,46,35,114,111,108,101,115,91,114,111,108,101,93,46,112,117,115,104,40,97,100,100,114,101,115,115,41,125,35,114,101,118,111,107,101,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,97,100,100,114,101,115,115,44,114,111,108,101,41,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,36,123,114,111,108,101,125,32,114,111,108,101,32,97,108,114,101,97,100,121,32,114,101,118,111,107,101,100,32,102,111,114,32,36,123,97,100,100,114,101,115,115,125,96,41,59,105,102,40,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,99,108,97,115,115,32,84,111,107,101,110,32,101,120,116,101,110,100,115,32,82,111,108,101,115,123,35,110,97,109,101,59,35,115,121,109,98,111,108,59,35,104,111,108,100,101,114,115,61,48,59,35,98,97,108,97,110,99,101,115,61,123,125,59,35,97,112,112,114,111,118,97,108,115,61,123,125,59,35,100,101,99,105,109,97,108,115,61,49,56,59,35,116,111,116,97,108,83,117,112,112,108,121,61,66,105,103,78,117,109,98,101,114,46,102,114,111,109,40,48,41,59,99,111,110,115,116,114,117,99,116,111,114,40,110,97,109,101,44,115,121,109,98,111,108,44,100,101,99,105,109,97,108,115,61,49,56,44,115,116,97,116,101,41,123,105,102,40,33,110,97,109,101,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,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,102,114,111,109,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,104,97,115,82,111,108,101,40,109,115,103,46,115,101,110,100,101,114,44,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,102,114,111,109,44,97,109,111,117,110,116,41,125,35,98,101,102,111,114,101,84,114,97,110,115,102,101,114,40,102,114,111,109,44,116,111,44,97,109,111,117,110,116,41,123,105,102,40,33,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,124,124,116,104,105,115,46,35,98,97,108,97,110,99,101,115,91,102,114,111,109,93,60,97,109,111,117,110,116,41,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,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,99,108,97,115,115,32,65,114,116,79,110,108,105,110,101,32,101,120,116,101,110,100,115,32,84,111,107,101,110,123,99,111,110,115,116,114,117,99,116,111,114,40,115,116,97,116,101,41,123,115,117,112,101,114,40,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,114,101,116,117,114,110,32,65,114,116,79,110,108,105,110,101,59,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";
365
379
  var nameService = "237,198,141,3,123,34,99,114,101,97,116,111,114,34,58,34,56,71,85,107,103,52,120,87,113,109,110,83,56,75,101,122,56,107,54,68,115,82,120,90,66,68,97,54,114,71,74,109,104,107,122,67,75,113,78,75,102,85,110,103,90,122,109,54,97,81,34,44,34,99,111,110,116,114,97,99,116,34,58,34,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,114,114,111,114,41,123,116,104,114,111,119,32,101,114,114,111,114,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,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,114,101,116,117,114,110,32,78,97,109,101,83,101,114,118,105,99,101,59,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,103,54,99,54,109,119,121,53,109,104,98,114,115,53,117,108,107,107,111,122,115,103,119,116,107,53,118,117,122,53,107,114,106,105,100,111,117,121,52,109,98,119,102,100,98,106,110,98,109,107,122,122,34,44,34,105,104,110,121,50,103,113,104,111,111,99,107,121,103,55,121,103,52,110,53,98,112,120,117,108,100,97,104,102,97,118,112,113,110,109,112,111,101,50,98,110,52,105,118,110,120,109,107,55,114,101,100,99,50,108,116,119,107,98,34,44,34,105,104,110,121,50,103,113,104,52,101,50,112,114,52,112,98,116,112,107,97,109,104,106,51,104,116,115,118,117,111,121,100,121,51,119,111,116,97,117,100,111,101,97,107,116,103,99,100,119,109,111,105,106,54,54,112,101,99,112,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";
@@ -1148,7 +1162,7 @@ async #signTransaction (transaction, wallet) {
1148
1162
  }
1149
1163
 
1150
1164
  async createContractMessage(creator, contract, constructorParameters = []) {
1151
- return createContractMessage(creator, contract, constructorParameters = [])
1165
+ return createContractMessage(creator, contract, constructorParameters)
1152
1166
  }
1153
1167
 
1154
1168
  async createContractAddress(creator, contract, constructorParameters = []) {
@@ -1162,10 +1176,10 @@ async #signTransaction (transaction, wallet) {
1162
1176
  * @param {Array} parameters
1163
1177
  * @returns
1164
1178
  */
1165
- async deployContract(contract, parameters = []) {
1166
- const message = await createContractMessage(peernet.selectedAccount, contract, parameters);
1179
+ async deployContract(contract, constructorParameters = []) {
1180
+ const message = await createContractMessage(peernet.selectedAccount, contract, constructorParameters);
1167
1181
  try {
1168
- await this.#machine.addContract(message);
1182
+ await contractStore.put(await message.hash, message.encoded);
1169
1183
  } catch (error) {
1170
1184
  throw error
1171
1185
  }
@@ -3,7 +3,6 @@ import _BN from 'bn.js';
3
3
  import { isBytes, hexlify, isHexString } from '@ethersproject/bytes';
4
4
  import { Logger } from '@ethersproject/logger';
5
5
  import '@ethersproject/bignumber';
6
- import 'path';
7
6
  import EasyWorker from '@vandeurenglenn/easy-worker';
8
7
 
9
8
  var proto$1 = `
@@ -398,21 +397,20 @@ const get = (contract, method, params) => {
398
397
  return result
399
398
  };
400
399
 
401
- const runContract = async (contractMessage) => {
402
- const params = contractMessage.decoded.constructorParameters;
400
+ const runContract = async ({decoded, hash, encoded}) => {
401
+ const params = decoded.constructorParameters;
403
402
  try {
404
403
 
405
- const func = new Function(contractMessage.decoded.contract);
404
+ const func = new Function(decoded.contract);
406
405
  const Contract = func();
407
406
 
408
- globalThis.msg = createMessage(contractMessage.decoded.creator);
409
- // globalThis.msg = {sender: contractMessage.decoded.creator}
410
- contracts[await contractMessage.hash] = await new Contract(...params);
407
+ globalThis.msg = createMessage(decoded.creator);
408
+ contracts[hash] = await new Contract(...params);
411
409
  worker.postMessage({
412
410
  type: 'debug',
413
411
  messages: [
414
- `loaded contract: ${await contractMessage.hash}`,
415
- `size: ${formatBytes(contractMessage.encoded.length)}`
412
+ `loaded contract: ${hash}`,
413
+ `size: ${formatBytes(encoded.length)}`
416
414
  ]
417
415
  });
418
416
  } catch (e) {
@@ -476,7 +474,7 @@ const _init = async ({ contracts, blocks, peerid })=> {
476
474
 
477
475
  contracts = await Promise.all(contracts.map(async contract => {
478
476
  contract = await new ContractMessage(new Uint8Array(contract.split(',')));
479
- await runContract(contract);
477
+ await runContract({decoded: contract.decoded, encoded: contract.encoded, hash: await contract.hash});
480
478
  return contract
481
479
  }));
482
480
 
@@ -535,6 +533,22 @@ const tasks = async (e) => {
535
533
  });
536
534
  }
537
535
  }
536
+ if (e.type === 'run') {
537
+ try {
538
+ const value = await runContract(e.input);
539
+ worker.postMessage({
540
+ type: 'response',
541
+ id,
542
+ value
543
+ });
544
+ } catch (e) {
545
+ worker.postMessage({
546
+ type: 'fetchError',
547
+ message: e.message,
548
+ id
549
+ });
550
+ }
551
+ }
538
552
  if (e.type === 'get') {
539
553
  try {
540
554
  const value = await get(e.input.contract, e.input.method, e.input.params);