wao 0.4.1 → 0.4.2

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/cjs/aoconnect.js CHANGED
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.connect = void 0;
8
8
  var _warpArbundles = require("warp-arbundles");
9
+ var _crypto = _interopRequireDefault(require("crypto"));
9
10
  var _base64url = _interopRequireDefault(require("base64url"));
10
11
  var _utils = require("./utils.js");
11
12
  var _armem = _interopRequireDefault(require("./armem.js"));
@@ -185,7 +186,7 @@ var connect = exports.connect = function connect(mem) {
185
186
  }();
186
187
  var spawn = /*#__PURE__*/function () {
187
188
  var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
188
- var _opt$module, _opt$tags;
189
+ var _opt$module, _opt$tags, _opt$tags2;
189
190
  var opt,
190
191
  mod,
191
192
  __dirname,
@@ -264,9 +265,18 @@ var connect = exports.connect = function connect(mem) {
264
265
  }
265
266
  throw Error("module not found");
266
267
  case 17:
268
+ opt.tags = (0, _utils.buildTags)(null, (0, _ramda.mergeLeft)((0, _utils.tags)((_opt$tags = opt.tags) !== null && _opt$tags !== void 0 ? _opt$tags : []), {
269
+ "Data-Protocol": "ao",
270
+ Variant: "ao.TN.1",
271
+ Type: "Process",
272
+ SDK: "aoconnect",
273
+ Module: opt.module,
274
+ Scheduler: opt.scheduler,
275
+ "Content-Type": "text/plain"
276
+ }));
267
277
  _module = mem.modmap[mod];
268
278
  ex = false;
269
- (_opt$tags = opt.tags) !== null && _opt$tags !== void 0 ? _opt$tags : opt.tags = [];
279
+ (_opt$tags2 = opt.tags) !== null && _opt$tags2 !== void 0 ? _opt$tags2 : opt.tags = [];
270
280
  _iterator = _createForOfIteratorHelper(opt.tags);
271
281
  try {
272
282
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -282,27 +292,29 @@ var connect = exports.connect = function connect(mem) {
282
292
  name: "Type",
283
293
  value: "Process"
284
294
  });
285
- _context2.next = 25;
295
+ _context2.next = 26;
286
296
  return ar.dataitem({
287
297
  data: opt.data,
288
298
  signer: opt.signer,
289
299
  tags: (0, _utils.tags)(opt.tags)
290
300
  });
291
- case 25:
301
+ case 26:
292
302
  _yield$ar$dataitem2 = _context2.sent;
293
303
  id = _yield$ar$dataitem2.id;
294
304
  owner = _yield$ar$dataitem2.owner;
295
305
  item = _yield$ar$dataitem2.item;
296
- _context2.next = 31;
306
+ _context2.next = 32;
297
307
  return ar.postItem(item, _test.su.jwk);
298
- case 31:
308
+ case 32:
299
309
  _tags = (0, _utils.tags)(opt.tags);
300
310
  res = null;
301
311
  memory = null;
302
312
  p = {
303
313
  id: id,
314
+ epochs: [],
304
315
  handle: _module.handle,
305
316
  module: _module.id,
317
+ hash: id,
306
318
  memory: memory,
307
319
  owner: owner,
308
320
  height: 0,
@@ -312,7 +324,7 @@ var connect = exports.connect = function connect(mem) {
312
324
  opt: opt
313
325
  };
314
326
  if (!_tags["On-Boot"]) {
315
- _context2.next = 49;
327
+ _context2.next = 50;
316
328
  break;
317
329
  }
318
330
  data = "";
@@ -325,51 +337,51 @@ var connect = exports.connect = function connect(mem) {
325
337
  auth: _test.mu.addr
326
338
  });
327
339
  _t = (0, _utils.tags)(msg.Tags);
328
- _context2.next = 43;
340
+ _context2.next = 44;
329
341
  return _module.handle(null, msg, _env);
330
- case 43:
342
+ case 44:
331
343
  res = _context2.sent;
332
344
  p.memory = res.Memory;
333
345
  delete res.Memory;
334
346
  p.res[id] = res;
335
- _context2.next = 50;
347
+ _context2.next = 51;
336
348
  break;
337
- case 49:
338
- p.height += 1;
339
349
  case 50:
350
+ p.height += 1;
351
+ case 51:
340
352
  mem.msgs[id] = opt;
341
353
  mem.env[id] = p;
342
354
  if (!_tags["Cron-Interval"]) {
343
- _context2.next = 76;
355
+ _context2.next = 77;
344
356
  break;
345
357
  }
346
358
  _tags$CronInterval$s = _tags["Cron-Interval"].split("-"), _tags$CronInterval$s2 = _slicedToArray(_tags$CronInterval$s, 2), num = _tags$CronInterval$s2[0], unit = _tags$CronInterval$s2[1];
347
359
  _int = 0;
348
360
  _context2.t0 = unit.replace(/s$/, "");
349
- _context2.next = _context2.t0 === "millisecond" ? 58 : _context2.t0 === "second" ? 60 : _context2.t0 === "minute" ? 62 : _context2.t0 === "hour" ? 64 : _context2.t0 === "day" ? 66 : _context2.t0 === "month" ? 68 : _context2.t0 === "year" ? 70 : 72;
361
+ _context2.next = _context2.t0 === "millisecond" ? 59 : _context2.t0 === "second" ? 61 : _context2.t0 === "minute" ? 63 : _context2.t0 === "hour" ? 65 : _context2.t0 === "day" ? 67 : _context2.t0 === "month" ? 69 : _context2.t0 === "year" ? 71 : 73;
350
362
  break;
351
- case 58:
363
+ case 59:
352
364
  _int = num;
353
- return _context2.abrupt("break", 72);
354
- case 60:
365
+ return _context2.abrupt("break", 73);
366
+ case 61:
355
367
  _int = num * 1000;
356
- return _context2.abrupt("break", 72);
357
- case 62:
368
+ return _context2.abrupt("break", 73);
369
+ case 63:
358
370
  _int = num * 1000 * 60;
359
- return _context2.abrupt("break", 72);
360
- case 64:
371
+ return _context2.abrupt("break", 73);
372
+ case 65:
361
373
  _int = num * 1000 * 60 * 60;
362
- return _context2.abrupt("break", 72);
363
- case 66:
374
+ return _context2.abrupt("break", 73);
375
+ case 67:
364
376
  _int = num * 1000 * 60 * 60 * 24;
365
- return _context2.abrupt("break", 72);
366
- case 68:
377
+ return _context2.abrupt("break", 73);
378
+ case 69:
367
379
  _int = num * 1000 * 60 * 60 * 24 * 30;
368
- return _context2.abrupt("break", 72);
369
- case 70:
380
+ return _context2.abrupt("break", 73);
381
+ case 71:
370
382
  _int = num * 1000 * 60 * 60 * 24 * 365;
371
- return _context2.abrupt("break", 72);
372
- case 72:
383
+ return _context2.abrupt("break", 73);
384
+ case 73:
373
385
  cronTags = [];
374
386
  for (k in _tags) {
375
387
  if (/^Cron-Tag-/.test(k)) {
@@ -381,9 +393,9 @@ var connect = exports.connect = function connect(mem) {
381
393
  }
382
394
  mem.env[id].cronTags = cronTags;
383
395
  mem.env[id].span = _int;
384
- case 76:
385
- return _context2.abrupt("return", id);
386
396
  case 77:
397
+ return _context2.abrupt("return", id);
398
+ case 78:
387
399
  case "end":
388
400
  return _context2.stop();
389
401
  }
@@ -393,125 +405,242 @@ var connect = exports.connect = function connect(mem) {
393
405
  return _ref6.apply(this, arguments);
394
406
  };
395
407
  }();
396
- var assign = /*#__PURE__*/function () {
408
+ function genHashChain(previousHash) {
409
+ var previousMessageId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
410
+ var hasher = _crypto["default"].createHash("sha256");
411
+ hasher.update(Buffer.from(previousHash, "base64url"));
412
+ if (previousMessageId) {
413
+ hasher.update(Buffer.from(previousMessageId, "base64url"));
414
+ }
415
+ return (0, _base64url["default"])(hasher.digest());
416
+ }
417
+ var _assign = /*#__PURE__*/function () {
397
418
  var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(opt) {
398
- var p, _opt, _yield$ar$dataitem3, id, owner, item, _opt$data2, _opt$from, _res$Messages, msg, _env, res, _iterator2, _step2, v;
419
+ var _opt$tags3;
420
+ var p, _opt, hash, _yield$ar$dataitem3, id, owner, item, _opt$data2, _ref8, _opt$from, _res$Messages, _res$Spawns, _res$Assignments, msg, _env, res, _iterator2, _step2, v, _iterator3, _step3, _v, _tags, _iterator4, _step4, _v2, _iterator5, _step5, v2;
399
421
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
400
422
  while (1) switch (_context3.prev = _context3.next) {
401
423
  case 0:
402
424
  p = mem.env[opt.process];
403
- _opt = (0, _ramda.clone)(mem.msgs[opt.message]);
404
- _context3.next = 4;
425
+ _opt = mem.msgs[opt.message];
426
+ hash = genHashChain(p.hash, opt.message);
427
+ p.hash = hash;
428
+ opt.tags = (0, _utils.buildTags)(null, (0, _ramda.mergeLeft)((0, _utils.tags)((_opt$tags3 = opt.tags) !== null && _opt$tags3 !== void 0 ? _opt$tags3 : []), {
429
+ Timestamp: Date.now(),
430
+ Epoch: p.epochs.length,
431
+ Nonce: "0",
432
+ "Data-Protocol": "ao",
433
+ Variant: "ao.TN.1",
434
+ SDK: "aoconnect",
435
+ Type: "Assignment",
436
+ "Block-Height": mem.height,
437
+ Process: opt.process,
438
+ Message: opt.message,
439
+ "Hash-Chain": hash
440
+ }));
441
+ p.epochs.push([opt.id]);
442
+ _context3.next = 8;
405
443
  return ar.dataitem({
406
- data: _opt.data,
407
- signer: _opt.signer,
408
- tags: (0, _utils.tags)(_opt.tags),
444
+ data: opt.data,
445
+ signer: opt.signer,
446
+ tags: (0, _utils.tags)(opt.tags),
409
447
  target: opt.process
410
448
  });
411
- case 4:
449
+ case 8:
412
450
  _yield$ar$dataitem3 = _context3.sent;
413
451
  id = _yield$ar$dataitem3.id;
414
452
  owner = _yield$ar$dataitem3.owner;
415
453
  item = _yield$ar$dataitem3.item;
416
- _context3.next = 10;
454
+ _context3.next = 14;
417
455
  return ar.postItem(item, _test.su.jwk);
418
- case 10:
419
- _context3.prev = 10;
420
- msg = genMsg(p, (_opt$data2 = _opt.data) !== null && _opt$data2 !== void 0 ? _opt$data2 : "", _opt.tags, (_opt$from = _opt.from) !== null && _opt$from !== void 0 ? _opt$from : owner, _test.mu.addr);
456
+ case 14:
457
+ _context3.prev = 14;
458
+ msg = genMsg(p, (_opt$data2 = _opt.data) !== null && _opt$data2 !== void 0 ? _opt$data2 : "", _opt.tags, (_ref8 = (_opt$from = _opt.from) !== null && _opt$from !== void 0 ? _opt$from : opt.from) !== null && _ref8 !== void 0 ? _ref8 : owner, _test.mu.addr);
421
459
  _env = genEnv({
422
460
  pid: p.id,
423
461
  owner: p.owner,
424
462
  module: p.module,
425
463
  auth: _test.mu.addr
426
464
  });
427
- _context3.next = 15;
465
+ _context3.next = 19;
428
466
  return p.handle(p.memory, msg, _env);
429
- case 15:
467
+ case 19:
430
468
  res = _context3.sent;
431
469
  p.memory = res.Memory;
432
470
  delete res.Memory;
433
- p.res[id] = res;
434
- p.results.push(id);
471
+ p.res[opt.message] = res;
472
+ p.results.push(opt.message);
435
473
  p.txs.unshift(_objectSpread({
436
- id: id
437
- }, _opt));
438
- mem.msgs[id] = _opt;
474
+ id: opt.message
475
+ }, opt));
476
+ mem.msgs[opt.message] = _opt;
439
477
  _iterator2 = _createForOfIteratorHelper((_res$Messages = res.Messages) !== null && _res$Messages !== void 0 ? _res$Messages : []);
440
- _context3.prev = 23;
478
+ _context3.prev = 27;
441
479
  _iterator2.s();
442
- case 25:
480
+ case 29:
443
481
  if ((_step2 = _iterator2.n()).done) {
444
- _context3.next = 32;
482
+ _context3.next = 36;
445
483
  break;
446
484
  }
447
485
  v = _step2.value;
448
486
  if (!mem.env[v.Target]) {
449
- _context3.next = 30;
487
+ _context3.next = 34;
450
488
  break;
451
489
  }
452
- _context3.next = 30;
453
- return _message({
490
+ _context3.next = 34;
491
+ return message({
454
492
  process: v.Target,
455
493
  tags: v.Tags,
456
494
  data: v.Data,
457
495
  signer: _test.mu.signer,
458
496
  from: opt.process
459
497
  });
460
- case 30:
461
- _context3.next = 25;
498
+ case 34:
499
+ _context3.next = 29;
462
500
  break;
463
- case 32:
464
- _context3.next = 37;
501
+ case 36:
502
+ _context3.next = 41;
465
503
  break;
466
- case 34:
467
- _context3.prev = 34;
468
- _context3.t0 = _context3["catch"](23);
504
+ case 38:
505
+ _context3.prev = 38;
506
+ _context3.t0 = _context3["catch"](27);
469
507
  _iterator2.e(_context3.t0);
470
- case 37:
471
- _context3.prev = 37;
508
+ case 41:
509
+ _context3.prev = 41;
472
510
  _iterator2.f();
473
- return _context3.finish(37);
474
- case 40:
511
+ return _context3.finish(41);
512
+ case 44:
513
+ _iterator3 = _createForOfIteratorHelper((_res$Spawns = res.Spawns) !== null && _res$Spawns !== void 0 ? _res$Spawns : []);
514
+ _context3.prev = 45;
515
+ _iterator3.s();
516
+ case 47:
517
+ if ((_step3 = _iterator3.n()).done) {
518
+ _context3.next = 54;
519
+ break;
520
+ }
521
+ _v = _step3.value;
522
+ _tags = (0, _utils.tags)(_v.Tags);
523
+ _context3.next = 52;
524
+ return spawn({
525
+ module: _tags.Module,
526
+ scheduler: _test.scheduler,
527
+ tags: _v.Tags,
528
+ data: _v.Data,
529
+ from: _tags["From-Process"],
530
+ signer: _test.mu.signer
531
+ });
532
+ case 52:
533
+ _context3.next = 47;
534
+ break;
535
+ case 54:
536
+ _context3.next = 59;
537
+ break;
538
+ case 56:
539
+ _context3.prev = 56;
540
+ _context3.t1 = _context3["catch"](45);
541
+ _iterator3.e(_context3.t1);
542
+ case 59:
543
+ _context3.prev = 59;
544
+ _iterator3.f();
545
+ return _context3.finish(59);
546
+ case 62:
547
+ _iterator4 = _createForOfIteratorHelper((_res$Assignments = res.Assignments) !== null && _res$Assignments !== void 0 ? _res$Assignments : []);
548
+ _context3.prev = 63;
549
+ _iterator4.s();
550
+ case 65:
551
+ if ((_step4 = _iterator4.n()).done) {
552
+ _context3.next = 86;
553
+ break;
554
+ }
555
+ _v2 = _step4.value;
556
+ _iterator5 = _createForOfIteratorHelper(_v2.Processes);
557
+ _context3.prev = 68;
558
+ _iterator5.s();
559
+ case 70:
560
+ if ((_step5 = _iterator5.n()).done) {
561
+ _context3.next = 76;
562
+ break;
563
+ }
564
+ v2 = _step5.value;
565
+ _context3.next = 74;
566
+ return _assign({
567
+ message: _v2.Message,
568
+ process: v2,
569
+ from: opt.process,
570
+ signer: _test.mu.signer
571
+ });
572
+ case 74:
573
+ _context3.next = 70;
574
+ break;
575
+ case 76:
576
+ _context3.next = 81;
577
+ break;
578
+ case 78:
579
+ _context3.prev = 78;
580
+ _context3.t2 = _context3["catch"](68);
581
+ _iterator5.e(_context3.t2);
582
+ case 81:
583
+ _context3.prev = 81;
584
+ _iterator5.f();
585
+ return _context3.finish(81);
586
+ case 84:
587
+ _context3.next = 65;
588
+ break;
589
+ case 86:
590
+ _context3.next = 91;
591
+ break;
592
+ case 88:
593
+ _context3.prev = 88;
594
+ _context3.t3 = _context3["catch"](63);
595
+ _iterator4.e(_context3.t3);
596
+ case 91:
597
+ _context3.prev = 91;
598
+ _iterator4.f();
599
+ return _context3.finish(91);
600
+ case 94:
475
601
  return _context3.abrupt("return", id);
476
- case 43:
477
- _context3.prev = 43;
478
- _context3.t1 = _context3["catch"](10);
479
- console.log(_context3.t1);
480
- case 46:
602
+ case 97:
603
+ _context3.prev = 97;
604
+ _context3.t4 = _context3["catch"](14);
605
+ console.log(_context3.t4);
606
+ case 100:
481
607
  return _context3.abrupt("return", null);
482
- case 47:
608
+ case 101:
483
609
  case "end":
484
610
  return _context3.stop();
485
611
  }
486
- }, _callee3, null, [[10, 43], [23, 34, 37, 40]]);
612
+ }, _callee3, null, [[14, 97], [27, 38, 41, 44], [45, 56, 59, 62], [63, 88, 91, 94], [68, 78, 81, 84]]);
487
613
  }));
488
614
  return function assign(_x2) {
489
615
  return _ref7.apply(this, arguments);
490
616
  };
491
617
  }();
492
- var _message = /*#__PURE__*/function () {
493
- var _ref8 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(opt) {
494
- var p, ex, _iterator3, _step3, _v3, _yield$ar$dataitem4, item, id, owner, _opt$data3, _opt$from2, _res$Messages2, _res$Spawns, _res$Assignments, msg, _env, res, _iterator4, _step4, v, _iterator5, _step5, _v, _tags, _iterator6, _step6, _v2, _iterator7, _step7, v2;
618
+ var message = /*#__PURE__*/function () {
619
+ var _ref9 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(opt) {
620
+ var _opt$tags4;
621
+ var p, ex, _iterator6, _step6, v, _yield$ar$dataitem4, item, id, owner;
495
622
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
496
623
  while (1) switch (_context4.prev = _context4.next) {
497
624
  case 0:
498
625
  p = mem.env[opt.process];
499
626
  ex = false;
500
- _iterator3 = _createForOfIteratorHelper(opt.tags);
627
+ _iterator6 = _createForOfIteratorHelper(opt.tags);
501
628
  try {
502
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
503
- _v3 = _step3.value;
504
- if (_v3.name === "Type") ex = true;
629
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
630
+ v = _step6.value;
631
+ if (v.name === "Type") ex = true;
505
632
  }
506
633
  } catch (err) {
507
- _iterator3.e(err);
634
+ _iterator6.e(err);
508
635
  } finally {
509
- _iterator3.f();
636
+ _iterator6.f();
510
637
  }
511
- if (!ex) opt.tags.push({
512
- name: "Type",
513
- value: "Message"
514
- });
638
+ opt.tags = (0, _utils.buildTags)(null, (0, _ramda.mergeLeft)((0, _utils.tags)((_opt$tags4 = opt.tags) !== null && _opt$tags4 !== void 0 ? _opt$tags4 : []), {
639
+ "Data-Protocol": "ao",
640
+ Variant: "ao.TN.1",
641
+ Type: "Message",
642
+ SDK: "aoconnect"
643
+ }));
515
644
  _context4.next = 7;
516
645
  return ar.dataitem({
517
646
  data: opt.data,
@@ -527,169 +656,28 @@ var connect = exports.connect = function connect(mem) {
527
656
  _context4.next = 13;
528
657
  return ar.postItem(item, _test.su.jwk);
529
658
  case 13:
530
- _context4.prev = 13;
531
- msg = genMsg(p, (_opt$data3 = opt.data) !== null && _opt$data3 !== void 0 ? _opt$data3 : "", opt.tags, (_opt$from2 = opt.from) !== null && _opt$from2 !== void 0 ? _opt$from2 : owner, _test.mu.addr);
532
- _env = genEnv({
533
- pid: p.id,
534
- owner: p.owner,
535
- module: p.module,
536
- auth: _test.mu.addr
537
- });
538
- _context4.next = 18;
539
- return p.handle(p.memory, msg, _env);
540
- case 18:
541
- res = _context4.sent;
542
- p.memory = res.Memory;
543
- delete res.Memory;
544
- p.res[id] = res;
545
- p.results.push(id);
546
- p.txs.unshift(_objectSpread({
547
- id: id
548
- }, opt));
549
659
  mem.msgs[id] = opt;
550
- _iterator4 = _createForOfIteratorHelper((_res$Messages2 = res.Messages) !== null && _res$Messages2 !== void 0 ? _res$Messages2 : []);
551
- _context4.prev = 26;
552
- _iterator4.s();
553
- case 28:
554
- if ((_step4 = _iterator4.n()).done) {
555
- _context4.next = 35;
556
- break;
557
- }
558
- v = _step4.value;
559
- if (!mem.env[v.Target]) {
560
- _context4.next = 33;
561
- break;
562
- }
563
- _context4.next = 33;
564
- return _message({
565
- process: v.Target,
566
- tags: v.Tags,
567
- data: v.Data,
568
- signer: _test.mu.signer,
569
- from: opt.process
570
- });
571
- case 33:
572
- _context4.next = 28;
573
- break;
574
- case 35:
575
- _context4.next = 40;
576
- break;
577
- case 37:
578
- _context4.prev = 37;
579
- _context4.t0 = _context4["catch"](26);
580
- _iterator4.e(_context4.t0);
581
- case 40:
582
- _context4.prev = 40;
583
- _iterator4.f();
584
- return _context4.finish(40);
585
- case 43:
586
- _iterator5 = _createForOfIteratorHelper((_res$Spawns = res.Spawns) !== null && _res$Spawns !== void 0 ? _res$Spawns : []);
587
- _context4.prev = 44;
588
- _iterator5.s();
589
- case 46:
590
- if ((_step5 = _iterator5.n()).done) {
591
- _context4.next = 53;
592
- break;
593
- }
594
- _v = _step5.value;
595
- _tags = (0, _utils.tags)(_v.Tags);
596
- _context4.next = 51;
597
- return spawn({
598
- module: _tags.Module,
599
- scheduler: _test.scheduler,
600
- tags: _v.Tags,
601
- data: _v.Data,
602
- from: _tags["From-Process"],
660
+ _context4.next = 16;
661
+ return _assign({
662
+ message: id,
663
+ process: opt.process,
664
+ from: owner,
603
665
  signer: _test.mu.signer
604
666
  });
605
- case 51:
606
- _context4.next = 46;
607
- break;
608
- case 53:
609
- _context4.next = 58;
610
- break;
611
- case 55:
612
- _context4.prev = 55;
613
- _context4.t1 = _context4["catch"](44);
614
- _iterator5.e(_context4.t1);
615
- case 58:
616
- _context4.prev = 58;
617
- _iterator5.f();
618
- return _context4.finish(58);
619
- case 61:
620
- _iterator6 = _createForOfIteratorHelper((_res$Assignments = res.Assignments) !== null && _res$Assignments !== void 0 ? _res$Assignments : []);
621
- _context4.prev = 62;
622
- _iterator6.s();
623
- case 64:
624
- if ((_step6 = _iterator6.n()).done) {
625
- _context4.next = 85;
626
- break;
627
- }
628
- _v2 = _step6.value;
629
- _iterator7 = _createForOfIteratorHelper(_v2.Processes);
630
- _context4.prev = 67;
631
- _iterator7.s();
632
- case 69:
633
- if ((_step7 = _iterator7.n()).done) {
634
- _context4.next = 75;
635
- break;
636
- }
637
- v2 = _step7.value;
638
- _context4.next = 73;
639
- return assign({
640
- message: _v2.Message,
641
- process: v2,
642
- from: opt.process,
643
- signer: _test.mu.signer
644
- });
645
- case 73:
646
- _context4.next = 69;
647
- break;
648
- case 75:
649
- _context4.next = 80;
650
- break;
651
- case 77:
652
- _context4.prev = 77;
653
- _context4.t2 = _context4["catch"](67);
654
- _iterator7.e(_context4.t2);
655
- case 80:
656
- _context4.prev = 80;
657
- _iterator7.f();
658
- return _context4.finish(80);
659
- case 83:
660
- _context4.next = 64;
661
- break;
662
- case 85:
663
- _context4.next = 90;
664
- break;
665
- case 87:
666
- _context4.prev = 87;
667
- _context4.t3 = _context4["catch"](62);
668
- _iterator6.e(_context4.t3);
669
- case 90:
670
- _context4.prev = 90;
671
- _iterator6.f();
672
- return _context4.finish(90);
673
- case 93:
667
+ case 16:
674
668
  return _context4.abrupt("return", id);
675
- case 96:
676
- _context4.prev = 96;
677
- _context4.t4 = _context4["catch"](13);
678
- console.log(_context4.t4);
679
- case 99:
680
- return _context4.abrupt("return", null);
681
- case 100:
669
+ case 17:
682
670
  case "end":
683
671
  return _context4.stop();
684
672
  }
685
- }, _callee4, null, [[13, 96], [26, 37, 40, 43], [44, 55, 58, 61], [62, 87, 90, 93], [67, 77, 80, 83]]);
673
+ }, _callee4);
686
674
  }));
687
675
  return function message(_x3) {
688
- return _ref8.apply(this, arguments);
676
+ return _ref9.apply(this, arguments);
689
677
  };
690
678
  }();
691
679
  return {
692
- message: _message,
680
+ message: message,
693
681
  unmonitor: function () {
694
682
  var _unmonitor = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(opt) {
695
683
  var p;
@@ -725,7 +713,7 @@ var connect = exports.connect = function connect(mem) {
725
713
  while (1) switch (_context6.prev = _context6.next) {
726
714
  case 0:
727
715
  _context6.next = 2;
728
- return _message({
716
+ return message({
729
717
  tags: p.cronTags,
730
718
  process: opt.process,
731
719
  signer: _test.mu.signer,
@@ -750,7 +738,7 @@ var connect = exports.connect = function connect(mem) {
750
738
  return monitor;
751
739
  }(),
752
740
  spawn: spawn,
753
- assign: assign,
741
+ assign: _assign,
754
742
  result: function () {
755
743
  var _result = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(opt) {
756
744
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
@@ -840,7 +828,7 @@ var connect = exports.connect = function connect(mem) {
840
828
  }(),
841
829
  dryrun: function () {
842
830
  var _dryrun = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(opt) {
843
- var p, _yield$ar$dataitem5, id, owner, _opt$data4, msg, _env, res;
831
+ var p, _yield$ar$dataitem5, id, owner, _opt$data3, msg, _env, res;
844
832
  return _regeneratorRuntime().wrap(function _callee10$(_context10) {
845
833
  while (1) switch (_context10.prev = _context10.next) {
846
834
  case 0:
@@ -854,7 +842,7 @@ var connect = exports.connect = function connect(mem) {
854
842
  id = _yield$ar$dataitem5.id;
855
843
  owner = _yield$ar$dataitem5.owner;
856
844
  _context10.prev = 6;
857
- msg = genMsg(p, (_opt$data4 = opt.data) !== null && _opt$data4 !== void 0 ? _opt$data4 : "", opt.tags, owner, _test.mu.addr, true);
845
+ msg = genMsg(p, (_opt$data3 = opt.data) !== null && _opt$data3 !== void 0 ? _opt$data3 : "", opt.tags, owner, _test.mu.addr, true);
858
846
  _env = genEnv({
859
847
  pid: p.id,
860
848
  owner: p.owner,
package/cjs/armem.js CHANGED
@@ -24,6 +24,7 @@ var ArMem = exports["default"] = /*#__PURE__*/_createClass(function ArMem() {
24
24
  this.arweave.transactions.getPrice = function () {
25
25
  return 0;
26
26
  };
27
+ this.addrmap = {};
27
28
  this.txs = {};
28
29
  this.jwks = {};
29
30
  this.height = 0;
package/cjs/tar.js CHANGED
@@ -99,7 +99,7 @@ var AR = /*#__PURE__*/function (_MAR) {
99
99
  key: "post",
100
100
  value: function () {
101
101
  var _post = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2) {
102
- var _ref2$data, data, _ref2$tags, tags, jwk, tx, _tags, _iterator, _step, v;
102
+ var _ref2$data, data, _ref2$tags, tags, jwk, tx, _tags, _iterator, _step, v, owner;
103
103
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
104
104
  while (1) switch (_context2.prev = _context2.next) {
105
105
  case 0:
@@ -122,26 +122,21 @@ var AR = /*#__PURE__*/function (_MAR) {
122
122
  } finally {
123
123
  _iterator.f();
124
124
  }
125
- _context2.t0 = this;
126
- _context2.t1 = tx;
127
- _context2.t2 = jwk;
128
- _context2.t3 = _tags;
129
- _context2.t4 = data;
130
- _context2.next = 14;
125
+ _context2.next = 9;
131
126
  return this.arweave.wallets.jwkToAddress(jwk);
132
- case 14:
133
- _context2.t5 = _context2.sent;
134
- _context2.t6 = {
127
+ case 9:
128
+ owner = _context2.sent;
129
+ this.mem.addrmap[owner] = jwk.n;
130
+ _context2.next = 13;
131
+ return this.postTx(tx, jwk, {
135
132
  recipient: "",
136
- tags: _context2.t3,
137
- data: _context2.t4,
138
- owner: _context2.t5
139
- };
140
- _context2.next = 18;
141
- return _context2.t0.postTx.call(_context2.t0, _context2.t1, _context2.t2, _context2.t6);
142
- case 18:
133
+ tags: _tags,
134
+ data: data,
135
+ owner: owner
136
+ });
137
+ case 13:
143
138
  return _context2.abrupt("return", _context2.sent);
144
- case 19:
139
+ case 14:
145
140
  case "end":
146
141
  return _context2.stop();
147
142
  }
@@ -156,7 +151,7 @@ var AR = /*#__PURE__*/function (_MAR) {
156
151
  key: "postItem",
157
152
  value: function () {
158
153
  var _postItem = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(item, jwk) {
159
- var tx, di, rowner, hashBuffer, owner, data, _item;
154
+ var tx, di, data_size, data_type, _iterator2, _step2, t, rowner, hashBuffer, owner, data, _item;
160
155
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
161
156
  while (1) switch (_context3.prev = _context3.next) {
162
157
  case 0:
@@ -169,19 +164,39 @@ var AR = /*#__PURE__*/function (_MAR) {
169
164
  tx.addTag("Bundle-Format", "binary");
170
165
  tx.addTag("Bundle-Version", "2.0.0");
171
166
  di = new _warpArbundles.DataItem(item.raw);
167
+ data_size = Buffer.byteLength(di.rawData).toString();
168
+ data_type = "";
169
+ _iterator2 = _createForOfIteratorHelper(di.tags);
170
+ try {
171
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
172
+ t = _step2.value;
173
+ if (t.name === "Content-Type") data_type = t.value;
174
+ }
175
+ } catch (err) {
176
+ _iterator2.e(err);
177
+ } finally {
178
+ _iterator2.f();
179
+ }
172
180
  rowner = di.rawOwner;
173
181
  _context3.t0 = Buffer;
174
- _context3.next = 10;
182
+ _context3.next = 14;
175
183
  return crypto.subtle.digest("SHA-256", rowner);
176
- case 10:
184
+ case 14:
177
185
  _context3.t1 = _context3.sent;
178
186
  hashBuffer = _context3.t0.from.call(_context3.t0, _context3.t1);
179
187
  owner = _base64url["default"].encode(hashBuffer);
188
+ this.mem.addrmap[owner] = di.owner;
180
189
  data = di.data;
181
190
  try {
182
191
  data = _base64url["default"].decode(di.data);
183
192
  } catch (e) {}
184
193
  _item = {
194
+ _data: {
195
+ size: data_size,
196
+ type: data_type
197
+ },
198
+ anchor: di.anchor,
199
+ signature: di.signature,
185
200
  recipient: di.target,
186
201
  id: item.id,
187
202
  item: di,
@@ -190,11 +205,11 @@ var AR = /*#__PURE__*/function (_MAR) {
190
205
  data: data
191
206
  };
192
207
  this.mem.txs[item.id] = _item;
193
- _context3.next = 19;
208
+ _context3.next = 24;
194
209
  return this.postTx(tx, jwk, _item);
195
- case 19:
210
+ case 24:
196
211
  return _context3.abrupt("return", _context3.sent);
197
- case 20:
212
+ case 25:
198
213
  case "end":
199
214
  return _context3.stop();
200
215
  }
@@ -209,7 +224,7 @@ var AR = /*#__PURE__*/function (_MAR) {
209
224
  key: "postTx",
210
225
  value: function () {
211
226
  var _postTx = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(tx, jwk, item) {
212
- var res, err, _last, block;
227
+ var res, err, _last, block, data_type, _iterator3, _step3, v, owner;
213
228
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
214
229
  while (1) switch (_context4.prev = _context4.next) {
215
230
  case 0:
@@ -228,19 +243,40 @@ var AR = /*#__PURE__*/function (_MAR) {
228
243
  if (!item.id) {
229
244
  item.id = tx.id;
230
245
  this.mem.txs[item.id] = item;
231
- this.mem.txs[item.id].parent = {
232
- id: block.id
246
+ this.mem.txs[item.id].parent = null;
247
+ this.mem.txs[item.id].signature = tx.signature;
248
+ this.mem.txs[item.id].anchor = tx.last_tx;
249
+ data_type = "";
250
+ _iterator3 = _createForOfIteratorHelper(tx.tags);
251
+ try {
252
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
253
+ v = _step3.value;
254
+ if (v.get("name", {
255
+ decode: true,
256
+ string: true
257
+ }) === "Content-Type") {
258
+ data_type = v.get("value", {
259
+ decode: true,
260
+ string: true
261
+ });
262
+ }
263
+ }
264
+ } catch (err) {
265
+ _iterator3.e(err);
266
+ } finally {
267
+ _iterator3.f();
268
+ }
269
+ this.mem.txs[item.id]._data = {
270
+ size: tx.data_size,
271
+ type: data_type
233
272
  };
234
273
  } else {
235
274
  this.mem.txs[item.id].parent = {
236
- id: ""
275
+ id: block.id
237
276
  };
238
277
  }
239
278
  block.txs = [item.id];
240
279
  this.mem.txs[item.id].block = block.id;
241
- this.mem.txs[item.id].parent = {
242
- id: block.id
243
- };
244
280
  this.mem.blocks.push(block.id);
245
281
  this.mem.blockmap[block.id] = block;
246
282
  }
@@ -249,12 +285,17 @@ var AR = /*#__PURE__*/function (_MAR) {
249
285
  status: 200,
250
286
  statusText: "200"
251
287
  };
288
+ _context4.next = 7;
289
+ return this.arweave.wallets.jwkToAddress(jwk);
290
+ case 7:
291
+ owner = _context4.sent;
292
+ this.mem.addrmap[owner] = jwk.n;
252
293
  return _context4.abrupt("return", {
253
294
  res: res,
254
295
  err: err,
255
296
  id: tx.id
256
297
  });
257
- case 6:
298
+ case 10:
258
299
  case "end":
259
300
  return _context4.stop();
260
301
  }
package/cjs/tgql.js CHANGED
@@ -348,27 +348,27 @@ var GQL = exports["default"] = /*#__PURE__*/function () {
348
348
  case 91:
349
349
  _tx = _objectSpread(_objectSpread({
350
350
  cursor: tx.id
351
- }, tx), {}, {
351
+ }, tx), {}, _defineProperty({
352
+ data: tx._data,
352
353
  block: (0, _ramda.pick)(["id", "timestamp", "height", "previous"], block),
353
354
  anchor: (_tx$anchor = tx.anchor) !== null && _tx$anchor !== void 0 ? _tx$anchor : "",
354
355
  signature: (_tx$signature = tx.signature) !== null && _tx$signature !== void 0 ? _tx$signature : "",
355
356
  owner: {
356
357
  address: tx.owner,
357
- key: ""
358
+ key: this.mem.addrmap[tx.owner]
358
359
  },
359
360
  fee: {
360
- ar: 0,
361
- winston: 0
361
+ ar: "0",
362
+ winston: "0"
362
363
  },
363
364
  quantity: {
364
- ar: 0,
365
- winston: 0
366
- },
367
- data: {
368
- size: 0,
369
- type: ""
365
+ ar: "0",
366
+ winston: "0"
370
367
  }
371
- });
368
+ }, "data", {
369
+ size: "0",
370
+ type: ""
371
+ }));
372
372
  if (!(0, _ramda.isNil)(opt.fields)) {
373
373
  _tx2 = {
374
374
  cursor: tx.id
@@ -1 +1 @@
1
- {"ar":{"port":4000},"jwk":{"kty":"RSA","n":"vAiSYEBIogdeHhE1c-WoZOrrpsqing6sDQffTJYI7v2Hik7WkjhtxoXH3xlWk-dfUUXdntGEoaU9cBIdBz4EczxIkvBZ0e2bJQgDrZfbuQgy7RMdcvvCDQYXhQqF_DkmCbxDjpnP_W_Z3wL_7Sil5Ru5Jj_M_c6cyODuOiv8WZUZRi1KCoSuUVZr6dgiqGmzU_tBtZgoEtStKb29RHtT0PgpktWTYTk1nHWpOrA0mJMivrDdLmLfexFe_bPpZp-cW9MxOzbdj_jG3VpZE6iT6z-g2H2sQC2xROCvYMrhu2JrV447gOT81PKPw4sUw1aPE17GKg45p58aaa1c28-c0o_VF4CsgKh7SCURWpY0BUvWfw4tJX1l0CCu7OxdDT0pLzagy5mGke0vz-eQH_NEUeAyjqTzV_42WoTEisyGvR1wD9iEd_JKjJBWVII5fbZH3cMB3FDvgNaZRfCMNKQPMdF7evBUEXW0RwVF3Il5TfbIGmLQN01QV_U6L2XdZT69BESRHehUT0W5JM5Og1m9-Kn8ZKN1yL5XifpiGsZlGP5rNw1uKKMLopCAuYzngwjQq-nM-TrGXxlFFuX-L3tc3I8MdNXpTkdXT8xpUetVZrZ2W2oUfSpl8Bp4DvSkqIYssjbxQjMO7KNRO5HvTrWj9iMtuQLST5ooVvEdVmgTDOs","e":"AQAB","d":"U1MxGnoiNbsyF_zkRRG2h9Iaz3Toj0ZNNBETAStTliS_lajOKUncS6cpJVJjLXPQp4FgbmrGbaN-EFXWi0kOS8qhFoxwITk8ETL1_k1XTy20854O5M9v9LmIXqqFKXphwtqszVqX8uVIFS2NIBltOpQIfkyzmJ2gmNwkdZ7cWw5ZfuG-995IKT803xGqehstHsAvJDvjNkUM33x3jQth3y65rZn7j4_8k_MIJTvEcwBw2zQhL9cc1bqi76Z0fcepUH_MR0NO9-f0qE7LPozrz8oIiydV17Ln5W_0B96gHZvFma0r7TiMWgmLb8oIT2_iQ2EyS5y2K_OzjrUGe1oLUfdj-M_gNgFCEsVDsJU7R3JdZp-oR5_D-wYs6uCs4NzkvgiF96zmx0Dnvw6p_eH_vgtZJeD7gBbtzfbKwqwG1IGA8f7qywcdmYSF5igGcyoYhwAUcXDIZSh_So6YdNxN5CVzknTHiPZaPHMSxjK4LZ3YiQj-ajuTefRZgviKFcArOBSkjL2VacleKBOH9PZci_1jaTQklaYVwHJD1K9aWEuF2Jc3_G7dVET2SANHeg2RPjPHAnsk4vt7ratL4ao7N1SsudoumFrJ429Hd6Hu01GDE2gq0RYmBXhAZwXJ7WtGv1kizEHR__ASLpbi21zk2vBnnAiQfrni3xu1wLq5K5E","p":"_gUpJCExeTkLcnp7spqLyMxAk_Rrbgeyec0ra19zGWLFbkIm-tmA1g0mRM18DrLHsO6LTz2_cVjolAs4KQW_3RNMXd2VxS4gWbdtA5kcJIemydayduwVeIf3HHhVzzCAbaJ2144Bnmqsgq3QC3aV36hH9QlBCR95OTzn50FCvR3ryH-A1YZKjADu5dQfsvXFie4vY3qvLSBiivYyXqqTYRExHjtSImaluFTzWa78-HHjLUCVeRbS4AfFxlG6XQEFTKZLuAnO0mth2_IcAHCVbKlXGSt377fQHEYmZ7xKuOw5eyt6abx7CTk_DRJRfgwonbFITfBQwLU2s7SAwBJd1w","q":"vX-_7SauLYNBRP_bRFEiXyf-gf0BAFVCP-hbkqhd6z2CybooIRibL6ZAJ26GPWhWxFlaCUXQhUSABWoroo5mlef9QK297jPz49ZKZcfuem32eo60ZGPNGSrBfhtHmQc8tIqDFHjdLKPBJIvxk4P1gwQwRonYyik9lVUQMJ_sL-rLjNQ7i4x-oKaV-YsUhuBv9zaBD7H00jihWBPSYBX809N0hAXeJXLNwMoLZnmDLl1OJg0VccIuYLTaczT0j_BSULI6VTVifyUHppJntX1WkL0x6bjT25N9bXlwMPFvXi8DRKpaosgJHEUYRrlAbG1VoPdDGN-aqCSlzAIRSwrfDQ","dp":"hkqGKIKf3B1rTtcwBAkuMzbAQTfrf5z0Hu53sOkiOV59T8ALSXypXwBOpfsYRdEAPyqtXXQgfLTrKDESPKW8fAzSx6D4p-it06BkMo3EUg-g_n3RlYtUAoem_Vckzkcu7kcAmw6JDo4Iq4FmRlkn_LjDaei9iCwqczcexqQ6uy5RU4sMulWnnYJ0ye4t3_eMulHAnc_jQnEnh52GnYOCLMPg-sGTt3oazGukx1n6hQH4fxjwrLaDP0r8pM7aPobmnVIhH6eXvqhkcNn7McRTSsHvuO_BFWtQy1HOxfLGciL4dIRU0AeD6ClqiuePS5rz8gIiXonYtzhWNgUMN_69uw","dq":"aN5FrEv3oCA_ApxFD62Gw_oyEmWdJD4Kh6ti4epi70f_FPv8MTSYzOnIHwo_J8SSH98CwJbuKpIZ9uUmeLMtelAECsMblLMTiUaRrXnTM9WezXwjwFqqqf7LTapzGPC0W4U7vRyV6ZpFzJ_VdLlWKMcsoByw6E-iUP3eE8qsvmfFdY4N1dBOU0FdRdf96BZUYA69pZ3pylykjUWK6rnATMl8dYN5yGecDdDCNleQjRv9n3kmIOpBGCt9qLvpi66HHzlCpt0AQTSQ41GqKvnN6hOJh7pNI_qfMvI9cBhsdUa3HEzaE7N3tzlVke37BQYMmSO88grsX5jIV_nc8BZ4EQ","qi":"8XcLLnE-6jPJURB3K-BNPBylUxXwQwEeMs4MX7tFXqxnnh2A23tVhOXESEb6PDkKe2Gql78B6_WrbtiTozV_-c6M0VjqGHRor62dBCvef9mUpiPUxkbflwlmcbqGTuiCNZyoZxR-8Pf0E2al2WxEkKeQjkplNHWt433A6hbx3rx8HsWAdM4RhY3LMsddGpFMc5gjm5PmTKo33uC15X16SmpC00SeVDnKaoiWWI3005RmMP2Wfago9XCTEwBsWeozQC7R2zI3CuW7jX3W6UeUYPoEeS3Qa0suCP4CqCbfNwstl-SQhWtm2IVBpbOZTDQ6e0cYUyyMGVh1AMCoehHMrw"},"module_sqlite":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs","ao":{"module":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs","scheduler":"9uDpdXg7JjC8xonD61nylkcjA2QYIti7jqSKgxOuLWs","aoconnect":{"MU_URL":"http://localhost:4002","CU_URL":"http://localhost:4004","GATEWAY_URL":"http://localhost:4000"},"ar":{"port":4000},"authority":"XztbUZU7D8lAcWlbg0avCD0s2lMBbFGgTC4YzLcOR90"},"ao2":{"module":"KCRP66Aq-4uQ7R556SgaNtzDNSnRJW4DA1m5sgxirDk","scheduler":"9uDpdXg7JjC8xonD61nylkcjA2QYIti7jqSKgxOuLWs","aoconnect":{"MU_URL":"http://localhost:4002","CU_URL":"http://localhost:4004","GATEWAY_URL":"http://localhost:4000"},"ar":{"port":4000},"authority":"XztbUZU7D8lAcWlbg0avCD0s2lMBbFGgTC4YzLcOR90"},"profile":{"module":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs","registry_src":"maJGJ2tAa6zVtW1rGhngNlhEZDUqbCwO3r5mYxDBCsQ","registry":"yRmn7BZDk_c916ZNy8JBY-H52vYMrP8SBp-npeOgAbU","profile_src":"LNTKw-wvmybqSrxvtMYtdplOADLAey1c8FpNXoMa638","ao":{"module":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs","scheduler":"9uDpdXg7JjC8xonD61nylkcjA2QYIti7jqSKgxOuLWs","aoconnect":{"MU_URL":"http://localhost:4002","CU_URL":"http://localhost:4004","GATEWAY_URL":"http://localhost:4000"},"ar":{"port":4000},"authority":"XztbUZU7D8lAcWlbg0avCD0s2lMBbFGgTC4YzLcOR90"}},"note":{"proxy":"0uUOLKRlt-4zume2JnSeIYFlSK6-5mH51kdj6o3Q4jw","note_src":"XmteOz1FGAFKGLRtVQo65-ggchiQJ1bJ7OrHueZDK8I","profile":{"module":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs","registry_src":"maJGJ2tAa6zVtW1rGhngNlhEZDUqbCwO3r5mYxDBCsQ","registry":"yRmn7BZDk_c916ZNy8JBY-H52vYMrP8SBp-npeOgAbU","profile_src":"LNTKw-wvmybqSrxvtMYtdplOADLAey1c8FpNXoMa638","ao":{"module":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs","scheduler":"9uDpdXg7JjC8xonD61nylkcjA2QYIti7jqSKgxOuLWs","aoconnect":{"MU_URL":"http://localhost:4002","CU_URL":"http://localhost:4004","GATEWAY_URL":"http://localhost:4000"},"ar":{"port":4000},"authority":"XztbUZU7D8lAcWlbg0avCD0s2lMBbFGgTC4YzLcOR90"}}},"notebook":{"notebook_src":"cAa0NBOgYfQPRH6DEcKxrLBm4QExws4FCKAyP-LHufg","registry":"EGVoxgKS9V4z6w21RJ9HiM3Q6TcwgwdwX8INSUTUuKE","registry_src":"6EX6wZ8RfUHbSfUvhU5Aby7q52czm0T-RckiOrIG4Wc","profile":{"module":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs","registry_src":"maJGJ2tAa6zVtW1rGhngNlhEZDUqbCwO3r5mYxDBCsQ","registry":"yRmn7BZDk_c916ZNy8JBY-H52vYMrP8SBp-npeOgAbU","profile_src":"LNTKw-wvmybqSrxvtMYtdplOADLAey1c8FpNXoMa638","ao":{"module":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs","scheduler":"9uDpdXg7JjC8xonD61nylkcjA2QYIti7jqSKgxOuLWs","aoconnect":{"MU_URL":"http://localhost:4002","CU_URL":"http://localhost:4004","GATEWAY_URL":"http://localhost:4000"},"ar":{"port":4000},"authority":"XztbUZU7D8lAcWlbg0avCD0s2lMBbFGgTC4YzLcOR90"}}},"asset":{"asset_src":"sZe0uqoLAlzFtFcATqERh_Jg3yvyJ-P1Fp7MstYUr8E","profile":{"module":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs","registry_src":"maJGJ2tAa6zVtW1rGhngNlhEZDUqbCwO3r5mYxDBCsQ","registry":"yRmn7BZDk_c916ZNy8JBY-H52vYMrP8SBp-npeOgAbU","profile_src":"LNTKw-wvmybqSrxvtMYtdplOADLAey1c8FpNXoMa638","ao":{"module":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs","scheduler":"9uDpdXg7JjC8xonD61nylkcjA2QYIti7jqSKgxOuLWs","aoconnect":{"MU_URL":"http://localhost:4002","CU_URL":"http://localhost:4004","GATEWAY_URL":"http://localhost:4000"},"ar":{"port":4000},"authority":"XztbUZU7D8lAcWlbg0avCD0s2lMBbFGgTC4YzLcOR90"}}},"collection":{"collection_src":"5MGgg1uHqI04MS7ZZNJSDYld2CqxyC9Aws08k4VZey0","registry":"EGVoxgKS9V4z6w21RJ9HiM3Q6TcwgwdwX8INSUTUuKE","registry_src":"6EX6wZ8RfUHbSfUvhU5Aby7q52czm0T-RckiOrIG4Wc","profile":{"module":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs","registry_src":"maJGJ2tAa6zVtW1rGhngNlhEZDUqbCwO3r5mYxDBCsQ","registry":"yRmn7BZDk_c916ZNy8JBY-H52vYMrP8SBp-npeOgAbU","profile_src":"LNTKw-wvmybqSrxvtMYtdplOADLAey1c8FpNXoMa638","ao":{"module":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs","scheduler":"9uDpdXg7JjC8xonD61nylkcjA2QYIti7jqSKgxOuLWs","aoconnect":{"MU_URL":"http://localhost:4002","CU_URL":"http://localhost:4004","GATEWAY_URL":"http://localhost:4000"},"ar":{"port":4000},"authority":"XztbUZU7D8lAcWlbg0avCD0s2lMBbFGgTC4YzLcOR90"}}},"modules":{"aos2":"KCRP66Aq-4uQ7R556SgaNtzDNSnRJW4DA1m5sgxirDk","aos1":"WpmAgOtIAWrtwyrMpWQv8bsINlFo9N8qu8lXng-Hjv0","sqlite":"I2E4Uu9bVmxCmXmfSfwQ3hOosbGRIKpF5qebATBylzs"}}
1
+ {"ar":{"port":4000},"jwk":{"kty":"RSA","n":"tBba3N1KKiDvu4TnAd_lhYDBXs0QrLH4Hgd6mHTeovFvZDLZHlNukT9SXeHx1_58hQWtcIPvS6F9tASdpMREKMVkG9hb6nMXtUCkTJE7PURvqeJf5VGJt9rUBtYaaJ_8eVJ3w98_RqUR0k0rYsYcJqiFFYaSFG2mIbyP7lBSUifF0dsOI1j1IRlvhZ02BOD7LJpwycX-fsXq7DAbpC6ywkuQ0EU830f3DefhfCQRRreZiKKNHRVvKhe9Z8LTjtMWHcAotg5-lLWLVUT1fO5tUnVwcJ_fGGFtLC1RGjryGg2ZOykktpDuALvZrZd3psIGQPnpuF75QYTVSbiadCK_JOelt8xcwIUphYAeWJQ6BNBmA8afPvVhS6rma0zp30ChXLQJEgtRWm9FpI-DQaM9PPcDlupsDFmmBtZGj0fLSTcpf00i0gpoDVJWcBVrd5aBiks0rRNUWRgWHadWBfBskUCrA1DG99seZOKKL9qLIknK3c6cTO068JegbwAW51eEH-etaoAvZ5mmyIB7LHKEomOQjeobek5_7OChwA66cS882gbFc3CfX0QdQRWWrNJ84hm3_xgHG6VjQOWNTh751WrVe4PnlLPvqKt8u2It4ZIlBxri7JklRxLL4Y1xkuV1a3gKllLVWizULPFN8Dms_7hjGSk1N3UUV3Bv_oxlRTk","e":"AQAB","d":"BQo4tAKraMdrZIhhI9yXIoFw2ybXbYXWuq-dGJ3FfbKB2nOD2QUe7Iixobf8Wf4HKeMRSggfNWYlGIy8HrILC3sOt936IIytBq3ZWBBrPUxoTzOEv7jkjXuRAH0tPjojL8zR79ThHMIeeamFA9DyIiQINj4blRL5s140E8hpE8Ye-dls3JD73aIsTIVF6Qs-bEg8Mzr-_TkSJh8CJW07JBRHG4g8hMeRgr2d28JxcbtOQpRaz6Woat_am9Th5J1ETeI-IW40nUcBY1cFNpEm1RTW6Af8j3gDVqYQ0koBBlKhtBXZyOEAdo7-fHNNoW7_pTTfrudVh9ktIOpXxDuutR0tL57GPvq-GQHJM_wUyYJKPNI3LUzm0HK9W6UFjvCPmHqofw_PT8lgGswwY1isB9TLkuMOv_rcc7a2y2TtjxlHOuIkQXeNdhvcEX_aBUCzvhmWwKR3_MgFaUDCT5ax1leBtnC7ZdWroJSnvF-jGNn8yZqIs8i5llarkc4Ll-3TBwt7bTb4bFcYpWNhTWrIInw1fxQ2fbATGWgWGU-VH8urk8AxPCT4k3Oa3COacQcS_87BaEA8itddp3-rBYSXFVKR2J91_O5lzX65T-y646-oZmcJtSNax5l9_9ceakzTt861zNm9990kUcJ5YJI2w3hVmls-hQh-8lRX9U9RQns","p":"2af2yCQkk8zUNyAHxsnbfhRW2FIPB9poJsqQaxeqza05vyBqbQTnwOUdbFC4fkmMp-9YPAFMP9qcZEIenAcww3hMES9MKJiU3LvFlJ6Fm14HccigfcD9Tt8HED-8fxG-UqGj31N2BWkXbhX6V81SFDAc3DstlKc19Q2ls1RRkY-gn4kMBSQAQd-lsyMPfSIbQj5_iyXIWvkj7tnGoGKRXAzb_d3U00YVpQ4dxXZxEVO5FZnq3pUiYwZP08A5eAdQRsOI0wXWQikNRu2vplm98PToayfmvoWvPrLTJD8E2LpldD-m4eUL4GABjgeOII4t3WRiSmZSAK7aq4rvLxYoxw","q":"09CrtV1BO5CfYSq7w2gKEr-s5UHSxscr4TTbCdoG0XwiwPYX5N963LtswhS-rZaIrdoSPDyvNdTTrY9nHuV-KD8LbjU1CY7rzcA33Wv3QP-HEvoJmCdVB3tjKrW0ypx9hBNKTgjxq0u3-CS6sya1MHLZft0ijXBy5dzguA3OphhxXVHtgbJ2jd3DgjJbj7yocPrye2HMVhkputetYKjjcNg5BlMW6oTDUnFzVpO-bN2qPmOkzqCKPN1Cu8a-6_RcWUuqH5RgfxnL6ApM5ZMQztT3jrR64afZOYeDhz2po24uVcB48o_pl3qzlsKWW3whP2lBaKw23kwNf7i8jmch_w","dp":"b0VPBEJ18JlmZEgbsaTAcVQ0kaJhzMH7PNmRuy3-Q-eq_eq0fcdkM1juEdGyf91Z6wCROxvuvzYjfZ3PyDRk2YlGWgK0DIz0jWPxPmlMJIGNjL3kTmW7GfcqxUPQOaX4hoXcIO-qBloTgFP8B6cPrwJpvq0CQFy7WOwBKgyRJrkmhGirnHUrLIIJU-s4n-Avz03kJl7KbrevhwwOXzAE3-ozDTW698d8iUUOM0S5yQHkPQbS67eSPM2dQcOjnZkfkQ2lhTwWrPwPrZMVmRWH5QdPSni7ner6DDOffYg6EhI4i5V-2z0dNTffk5yJLFuDVwtatG5avb6mS8xbOtc5QQ","dq":"Q8Foa-ecylUE5qwoy-Un879kqyFXL0be_ndN6eTYcYJoC5mtIwVp49oAfETuidCxgAtV8fbnhSzDWa2ZqwR2SqGAIozanmgdff-S3z1-JkiXCLb7ArTyOiZ6HltprbZJYEpbZoLt64GZI8N8BXrIUusqL67FMsFZv7XcHIQuKmt_N_7RHr_btJ3PwIIjT-Nlbl6X2mf6WUBLXP1I9LaRqrM_6ooBtpspb-Hipzszmtd9cd-mBILONZIBmteEky3jrJzLmrZ397BkzaEd4AIfSkpNtlR9SlnK3uA-brCG50SDheK_zbfDXTVe5UbxmeonKIWe6sDL_GgPmV-a0WKkOQ","qi":"ri8WWvi1zib1qNyqXjFvsqi3AdgmH-QFt_cnx4F8vyeEd-4VPP9Ne6I-cr6-BtYJbfZSkpuBY9G7RLnRHnyY9nlbBPyP9mdJiBgs8f5-__2_pKhO5pvzRPCU-N-YLQH0NAKIYlSfWarObe84SW5Ds0OUb46WuoRGDqrLIokt2HxFi6uA_ZzuEvdmxZk9HWRRaPiKCif3uJfZtJ3_4WxpFvw-IYY3p8m3nt9qdU8EPhiZBEKdYdyAkHN6bIN9GbpUpUbEwYJXTCtqOgG4nuiWl8HWijk7QgcEO1gRG-pt4HzzFTa01BBIxdbelBii35uUoUVzco3dntUghotXOMGeCg"},"ao":{"module":"nrwqdbTzLYTALBkzLv9HwmF97b0eoGvlT3YwfJnyOjY","scheduler":"FKtGpY1kBbr8hBIocph3nMvadgBSQtQBTYnlAJetrDU","aoconnect":{"MU_URL":"http://localhost:4002","CU_URL":"http://localhost:4004","GATEWAY_URL":"http://localhost:4000"},"ar":{"port":4000},"authority":"7WspynohDWhx3_Q37pzHmDGStf2T_p8ghdk_XTSUm8s"},"ao2":{"module":"9Xx6YzV2-giIaD8b9HTewr0FxRjugwm5FCuaQU-kJvI","scheduler":"FKtGpY1kBbr8hBIocph3nMvadgBSQtQBTYnlAJetrDU","aoconnect":{"MU_URL":"http://localhost:4002","CU_URL":"http://localhost:4004","GATEWAY_URL":"http://localhost:4000"},"ar":{"port":4000},"authority":"7WspynohDWhx3_Q37pzHmDGStf2T_p8ghdk_XTSUm8s"},"authority":"7WspynohDWhx3_Q37pzHmDGStf2T_p8ghdk_XTSUm8s","targets":{"profile":false,"note":false,"asset":false},"modules":{"aos2":"9Xx6YzV2-giIaD8b9HTewr0FxRjugwm5FCuaQU-kJvI","aos1":"MSCReWoRQ3w3JmPvbsTvPFnJrdzPym0F61cdBGEsBgs","sqlite":"nrwqdbTzLYTALBkzLv9HwmF97b0eoGvlT3YwfJnyOjY"}}
package/esm/aoconnect.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { DataItem } from "warp-arbundles"
2
+ import crypto from "crypto"
2
3
  import base64url from "base64url"
4
+
3
5
  import {
4
6
  tags,
5
7
  action,
@@ -121,6 +123,18 @@ export const connect = mem => {
121
123
  mem.modmap[mod] = { handle, id: mod }
122
124
  }
123
125
  if (!mod) throw Error("module not found")
126
+ opt.tags = buildTags(
127
+ null,
128
+ mergeLeft(tags(opt.tags ?? []), {
129
+ "Data-Protocol": "ao",
130
+ Variant: "ao.TN.1",
131
+ Type: "Process",
132
+ SDK: "aoconnect",
133
+ Module: opt.module,
134
+ Scheduler: opt.scheduler,
135
+ "Content-Type": "text/plain",
136
+ }),
137
+ )
124
138
  const _module = mem.modmap[mod]
125
139
  let ex = false
126
140
  opt.tags ??= []
@@ -137,8 +151,10 @@ export const connect = mem => {
137
151
  let memory = null
138
152
  let p = {
139
153
  id: id,
154
+ epochs: [],
140
155
  handle: _module.handle,
141
156
  module: _module.id,
157
+ hash: id,
142
158
  memory,
143
159
  owner,
144
160
  height: 0,
@@ -207,62 +223,38 @@ export const connect = mem => {
207
223
  return id
208
224
  }
209
225
 
210
- const assign = async opt => {
211
- const p = mem.env[opt.process]
212
- let _opt = clone(mem.msgs[opt.message])
213
- const { id, owner, item } = await ar.dataitem({
214
- data: _opt.data,
215
- signer: _opt.signer,
216
- tags: tags(_opt.tags),
217
- target: opt.process,
218
- })
219
- await ar.postItem(item, su.jwk)
220
- try {
221
- const msg = genMsg(
222
- p,
223
- _opt.data ?? "",
224
- _opt.tags,
225
- _opt.from ?? owner,
226
- mu.addr,
227
- )
228
- const _env = genEnv({
229
- pid: p.id,
230
- owner: p.owner,
231
- module: p.module,
232
- auth: mu.addr,
233
- })
234
- const res = await p.handle(p.memory, msg, _env)
235
- p.memory = res.Memory
236
- delete res.Memory
237
- p.res[id] = res
238
- p.results.push(id)
239
- p.txs.unshift({ id: id, ..._opt })
240
- mem.msgs[id] = _opt
241
- for (const v of res.Messages ?? []) {
242
- if (mem.env[v.Target]) {
243
- await message({
244
- process: v.Target,
245
- tags: v.Tags,
246
- data: v.Data,
247
- signer: mu.signer,
248
- from: opt.process,
249
- })
250
- }
251
- }
252
- return id
253
- } catch (e) {
254
- console.log(e)
226
+ function genHashChain(previousHash, previousMessageId = null) {
227
+ const hasher = crypto.createHash("sha256")
228
+ hasher.update(Buffer.from(previousHash, "base64url"))
229
+ if (previousMessageId) {
230
+ hasher.update(Buffer.from(previousMessageId, "base64url"))
255
231
  }
256
- return null
232
+ return base64url(hasher.digest())
257
233
  }
258
234
 
259
- const message = async opt => {
235
+ const assign = async opt => {
260
236
  const p = mem.env[opt.process]
261
- let ex = false
262
- for (let v of opt.tags) if (v.name === "Type") ex = true
263
-
264
- if (!ex) opt.tags.push({ name: "Type", value: "Message" })
265
- const { item, id, owner } = await ar.dataitem({
237
+ let _opt = mem.msgs[opt.message]
238
+ let hash = genHashChain(p.hash, opt.message)
239
+ p.hash = hash
240
+ opt.tags = buildTags(
241
+ null,
242
+ mergeLeft(tags(opt.tags ?? []), {
243
+ Timestamp: Date.now(),
244
+ Epoch: p.epochs.length,
245
+ Nonce: "0",
246
+ "Data-Protocol": "ao",
247
+ Variant: "ao.TN.1",
248
+ SDK: "aoconnect",
249
+ Type: "Assignment",
250
+ "Block-Height": mem.height,
251
+ Process: opt.process,
252
+ Message: opt.message,
253
+ "Hash-Chain": hash,
254
+ }),
255
+ )
256
+ p.epochs.push([opt.id])
257
+ const { id, owner, item } = await ar.dataitem({
266
258
  data: opt.data,
267
259
  signer: opt.signer,
268
260
  tags: tags(opt.tags),
@@ -272,9 +264,9 @@ export const connect = mem => {
272
264
  try {
273
265
  const msg = genMsg(
274
266
  p,
275
- opt.data ?? "",
276
- opt.tags,
277
- opt.from ?? owner,
267
+ _opt.data ?? "",
268
+ _opt.tags,
269
+ _opt.from ?? opt.from ?? owner,
278
270
  mu.addr,
279
271
  )
280
272
  const _env = genEnv({
@@ -286,10 +278,10 @@ export const connect = mem => {
286
278
  const res = await p.handle(p.memory, msg, _env)
287
279
  p.memory = res.Memory
288
280
  delete res.Memory
289
- p.res[id] = res
290
- p.results.push(id)
291
- p.txs.unshift({ id: id, ...opt })
292
- mem.msgs[id] = opt
281
+ p.res[opt.message] = res
282
+ p.results.push(opt.message)
283
+ p.txs.unshift({ id: opt.message, ...opt })
284
+ mem.msgs[opt.message] = _opt
293
285
  for (const v of res.Messages ?? []) {
294
286
  if (mem.env[v.Target]) {
295
287
  await message({
@@ -322,6 +314,7 @@ export const connect = mem => {
322
314
  })
323
315
  }
324
316
  }
317
+
325
318
  return id
326
319
  } catch (e) {
327
320
  console.log(e)
@@ -329,6 +322,36 @@ export const connect = mem => {
329
322
  return null
330
323
  }
331
324
 
325
+ const message = async opt => {
326
+ const p = mem.env[opt.process]
327
+ let ex = false
328
+ for (let v of opt.tags) if (v.name === "Type") ex = true
329
+ opt.tags = buildTags(
330
+ null,
331
+ mergeLeft(tags(opt.tags ?? []), {
332
+ "Data-Protocol": "ao",
333
+ Variant: "ao.TN.1",
334
+ Type: "Message",
335
+ SDK: "aoconnect",
336
+ }),
337
+ )
338
+ const { item, id, owner } = await ar.dataitem({
339
+ data: opt.data,
340
+ signer: opt.signer,
341
+ tags: tags(opt.tags),
342
+ target: opt.process,
343
+ })
344
+ await ar.postItem(item, su.jwk)
345
+ mem.msgs[id] = opt
346
+ await assign({
347
+ message: id,
348
+ process: opt.process,
349
+ from: owner,
350
+ signer: mu.signer,
351
+ })
352
+ return id
353
+ }
354
+
332
355
  return {
333
356
  message,
334
357
  unmonitor: async opt => {
package/esm/armem.js CHANGED
@@ -11,6 +11,7 @@ export default class ArMem {
11
11
  : last(this.blockmap[last(this.blocks)].txs)
12
12
  }
13
13
  this.arweave.transactions.getPrice = () => 0
14
+ this.addrmap = {}
14
15
  this.txs = {}
15
16
  this.jwks = {}
16
17
  this.height = 0
package/esm/tar.js CHANGED
@@ -30,11 +30,13 @@ class AR extends MAR {
30
30
  let tx = await this.arweave.createTransaction({ data: data })
31
31
  let _tags = buildTags(null, tags)
32
32
  for (const v of _tags) tx.addTag(v.name, v.value)
33
+ const owner = await this.arweave.wallets.jwkToAddress(jwk)
34
+ this.mem.addrmap[owner] = jwk.n
33
35
  return await this.postTx(tx, jwk, {
34
36
  recipient: "",
35
37
  tags: _tags,
36
38
  data,
37
- owner: await this.arweave.wallets.jwkToAddress(jwk),
39
+ owner,
38
40
  })
39
41
  }
40
42
 
@@ -43,16 +45,23 @@ class AR extends MAR {
43
45
  tx.addTag("Bundle-Format", "binary")
44
46
  tx.addTag("Bundle-Version", "2.0.0")
45
47
  const di = new DataItem(item.raw)
48
+ const data_size = Buffer.byteLength(di.rawData).toString()
49
+ let data_type = ""
50
+ for (const t of di.tags) if (t.name === "Content-Type") data_type = t.value
46
51
  const rowner = di.rawOwner
47
52
  const hashBuffer = Buffer.from(
48
53
  await crypto.subtle.digest("SHA-256", rowner),
49
54
  )
50
55
  const owner = base64url.encode(hashBuffer)
56
+ this.mem.addrmap[owner] = di.owner
51
57
  let data = di.data
52
58
  try {
53
59
  data = base64url.decode(di.data)
54
60
  } catch (e) {}
55
61
  let _item = {
62
+ _data: { size: data_size, type: data_type },
63
+ anchor: di.anchor,
64
+ signature: di.signature,
56
65
  recipient: di.target,
57
66
  id: item.id,
58
67
  item: di,
@@ -69,28 +78,38 @@ class AR extends MAR {
69
78
  await this.mem.arweave.transactions.sign(tx, jwk)
70
79
  if (item) {
71
80
  this.mem.height += 1
72
-
73
81
  const block = {
74
82
  id: tx.id,
75
83
  timestamp: Date.now(),
76
84
  height: this.mem.height,
77
85
  previous: last(this.mem.blocks) ?? "",
78
86
  }
79
-
80
87
  if (!item.id) {
81
88
  item.id = tx.id
82
89
  this.mem.txs[item.id] = item
83
- this.mem.txs[item.id].parent = { id: block.id }
90
+ this.mem.txs[item.id].parent = null
91
+ this.mem.txs[item.id].signature = tx.signature
92
+ this.mem.txs[item.id].anchor = tx.last_tx
93
+ let data_type = ""
94
+ for (const v of tx.tags) {
95
+ if (
96
+ v.get("name", { decode: true, string: true }) === "Content-Type"
97
+ ) {
98
+ data_type = v.get("value", { decode: true, string: true })
99
+ }
100
+ }
101
+ this.mem.txs[item.id]._data = { size: tx.data_size, type: data_type }
84
102
  } else {
85
- this.mem.txs[item.id].parent = { id: "" }
103
+ this.mem.txs[item.id].parent = { id: block.id }
86
104
  }
87
105
  block.txs = [item.id]
88
106
  this.mem.txs[item.id].block = block.id
89
- this.mem.txs[item.id].parent = { id: block.id }
90
107
  this.mem.blocks.push(block.id)
91
108
  this.mem.blockmap[block.id] = block
92
109
  }
93
110
  res = { id: tx.id, status: 200, statusText: "200" }
111
+ const owner = await this.arweave.wallets.jwkToAddress(jwk)
112
+ this.mem.addrmap[owner] = jwk.n
94
113
  return { res, err, id: tx.id }
95
114
  }
96
115
 
package/esm/tgql.js CHANGED
@@ -127,13 +127,14 @@ export default class GQL {
127
127
  let _tx = {
128
128
  cursor: tx.id,
129
129
  ...tx,
130
+ data: tx._data,
130
131
  block: pick(["id", "timestamp", "height", "previous"], block),
131
132
  anchor: tx.anchor ?? "",
132
133
  signature: tx.signature ?? "",
133
- owner: { address: tx.owner, key: "" },
134
- fee: { ar: 0, winston: 0 },
135
- quantity: { ar: 0, winston: 0 },
136
- data: { size: 0, type: "" },
134
+ owner: { address: tx.owner, key: this.mem.addrmap[tx.owner] },
135
+ fee: { ar: "0", winston: "0" },
136
+ quantity: { ar: "0", winston: "0" },
137
+ data: { size: "0", type: "" },
137
138
  }
138
139
  if (!isNil(opt.fields)) {
139
140
  let _tx2 = { cursor: tx.id }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wao",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",