wao 0.14.3 → 0.14.5

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.
@@ -300,6 +300,7 @@ var _default = exports["default"] = function _default() {
300
300
  __tags,
301
301
  msg_owner,
302
302
  _opt$id,
303
+ i,
303
304
  _yield$ar$httpmsg,
304
305
  _opt$tags,
305
306
  ex,
@@ -357,31 +358,33 @@ var _default = exports["default"] = function _default() {
357
358
  format = _yield$mem$getWasm.format;
358
359
  msg_owner = mu.addr;
359
360
  if (!ar.isHttpMsg(opt.http_msg)) {
360
- _context3.next = 35;
361
+ _context3.next = 37;
361
362
  break;
362
363
  }
363
364
  id = (_opt$id = opt.id) !== null && _opt$id !== void 0 ? _opt$id : opt.http_msg.target;
364
365
  if (!ongoing[id]) {
365
- _context3.next = 23;
366
+ _context3.next = 25;
366
367
  break;
367
368
  }
368
- case 15:
369
- if (!ongoing[id]) {
370
- _context3.next = 20;
369
+ i = 0;
370
+ case 16:
371
+ if (!(i < 30 && ongoing[id])) {
372
+ _context3.next = 22;
371
373
  break;
372
374
  }
373
- _context3.next = 18;
375
+ _context3.next = 19;
374
376
  return (0, _utils.wait)(100);
375
- case 18:
376
- _context3.next = 15;
377
+ case 19:
378
+ i++;
379
+ _context3.next = 16;
377
380
  break;
378
- case 20:
381
+ case 22:
379
382
  return _context3.abrupt("return", id);
380
- case 23:
383
+ case 25:
381
384
  ongoing[id] = true;
382
- _context3.next = 26;
385
+ _context3.next = 28;
383
386
  return ar.httpmsg(opt.http_msg, id);
384
- case 26:
387
+ case 28:
385
388
  _yield$ar$httpmsg = _context3.sent;
386
389
  owner = _yield$ar$httpmsg.owner;
387
390
  item = _yield$ar$httpmsg.item;
@@ -389,10 +392,10 @@ var _default = exports["default"] = function _default() {
389
392
  opt.tags = (0, _utils.buildTags)(null, __tags);
390
393
  opt.data = opt.http_msg.data;
391
394
  msg_owner = owner;
392
- case 33:
393
- _context3.next = 52;
394
- break;
395
395
  case 35:
396
+ _context3.next = 54;
397
+ break;
398
+ case 37:
396
399
  opt.tags = (0, _utils.buildTags)(null, (0, _ramda.mergeLeft)((0, _utils.tags)((_opt$tags = opt.tags) !== null && _opt$tags !== void 0 ? _opt$tags : []), {
397
400
  "Data-Protocol": "ao",
398
401
  Variant: "ao.TN.1",
@@ -423,14 +426,14 @@ var _default = exports["default"] = function _default() {
423
426
  name: "Pushed-For",
424
427
  value: opt["for"]
425
428
  });
426
- _context3.next = 43;
429
+ _context3.next = 45;
427
430
  return ar.dataitem({
428
431
  item: opt.item,
429
432
  data: opt.data,
430
433
  signer: opt.signer,
431
434
  tags: (0, _utils.tags)(opt.tags)
432
435
  });
433
- case 43:
436
+ case 45:
434
437
  _yield$ar$dataitem = _context3.sent;
435
438
  id = _yield$ar$dataitem.id;
436
439
  owner = _yield$ar$dataitem.owner;
@@ -438,23 +441,23 @@ var _default = exports["default"] = function _default() {
438
441
  __tags = _yield$ar$dataitem.tags;
439
442
  opt.tags = (0, _utils.buildTags)(null, __tags);
440
443
  if (opt.item) opt.data = _base64url["default"].decode(item.data);
441
- _context3.next = 52;
444
+ _context3.next = 54;
442
445
  return ar.postItems(item, su.jwk);
443
- case 52:
446
+ case 54:
444
447
  now = Date.now;
445
448
  t = (0, _utils.tags)(opt.tags);
446
449
  ext = t.Extension || "WeaveDrive";
447
450
  wdrive = extensions[ext];
448
451
  handle = null;
449
- _context3.prev = 57;
452
+ _context3.prev = 59;
450
453
  _context3.t0 = AoLoader;
451
454
  _context3.t1 = wasm;
452
455
  _context3.t2 = format;
453
456
  _context3.t3 = wdrive;
454
457
  _context3.t4 = item;
455
- _context3.next = 65;
458
+ _context3.next = 67;
456
459
  return mem.getTx(mod);
457
- case 65:
460
+ case 67:
458
461
  _context3.t5 = _context3.sent;
459
462
  _context3.t6 = {
460
463
  format: _context3.t2,
@@ -462,23 +465,23 @@ var _default = exports["default"] = function _default() {
462
465
  spawn: _context3.t4,
463
466
  module: _context3.t5
464
467
  };
465
- _context3.next = 69;
468
+ _context3.next = 71;
466
469
  return (0, _context3.t0)(_context3.t1, _context3.t6);
467
- case 69:
470
+ case 71:
468
471
  handle = _context3.sent;
469
- _context3.next = 75;
472
+ _context3.next = 77;
470
473
  break;
471
- case 72:
472
- _context3.prev = 72;
473
- _context3.t7 = _context3["catch"](57);
474
+ case 74:
475
+ _context3.prev = 74;
476
+ _context3.t7 = _context3["catch"](59);
474
477
  console.log(mod, _context3.t7);
475
- case 75:
478
+ case 77:
476
479
  if (handle) {
477
- _context3.next = 77;
480
+ _context3.next = 79;
478
481
  break;
479
482
  }
480
483
  return _context3.abrupt("return", null);
481
- case 77:
484
+ case 79:
482
485
  _module = null;
483
486
  _module = {
484
487
  handle: handle,
@@ -502,126 +505,126 @@ var _default = exports["default"] = function _default() {
502
505
  results: [id]
503
506
  };
504
507
  if (!memory) {
505
- _context3.next = 87;
508
+ _context3.next = 89;
506
509
  break;
507
510
  }
508
- _context3.next = 128;
511
+ _context3.next = 130;
509
512
  break;
510
- case 87:
513
+ case 89:
511
514
  if (!(_tags["On-Boot"] || true)) {
512
- _context3.next = 127;
515
+ _context3.next = 129;
513
516
  break;
514
517
  }
515
518
  data = "";
516
519
  if (!(_tags["On-Boot"] === "Data")) {
517
- _context3.next = 93;
520
+ _context3.next = 95;
518
521
  break;
519
522
  }
520
523
  data = (_opt$data = opt.data) !== null && _opt$data !== void 0 ? _opt$data : "";
521
- _context3.next = 114;
524
+ _context3.next = 116;
522
525
  break;
523
- case 93:
524
- _context3.next = 95;
525
- return mem.get("msgs", _tags["On-Boot"]);
526
526
  case 95:
527
+ _context3.next = 97;
528
+ return mem.get("msgs", _tags["On-Boot"]);
529
+ case 97:
527
530
  _context3.t10 = _yield$mem$get = _context3.sent;
528
531
  _context3.t9 = _context3.t10 === null;
529
532
  if (_context3.t9) {
530
- _context3.next = 99;
533
+ _context3.next = 101;
531
534
  break;
532
535
  }
533
536
  _context3.t9 = _yield$mem$get === void 0;
534
- case 99:
537
+ case 101:
535
538
  if (!_context3.t9) {
536
- _context3.next = 103;
539
+ _context3.next = 105;
537
540
  break;
538
541
  }
539
542
  _context3.t11 = void 0;
540
- _context3.next = 104;
543
+ _context3.next = 106;
541
544
  break;
542
- case 103:
545
+ case 105:
543
546
  _context3.t11 = _yield$mem$get.data;
544
- case 104:
547
+ case 106:
545
548
  _context3.t12 = _yield$mem$get$data = _context3.t11;
546
549
  _context3.t8 = _context3.t12 !== null;
547
550
  if (!_context3.t8) {
548
- _context3.next = 108;
551
+ _context3.next = 110;
549
552
  break;
550
553
  }
551
554
  _context3.t8 = _yield$mem$get$data !== void 0;
552
- case 108:
555
+ case 110:
553
556
  if (!_context3.t8) {
554
- _context3.next = 112;
557
+ _context3.next = 114;
555
558
  break;
556
559
  }
557
560
  _context3.t13 = _yield$mem$get$data;
558
- _context3.next = 113;
561
+ _context3.next = 115;
559
562
  break;
560
- case 112:
563
+ case 114:
561
564
  _context3.t13 = "";
562
- case 113:
565
+ case 115:
563
566
  data = _context3.t13;
564
- case 114:
565
- _context3.next = 116;
566
- return genMsg(id, p, data, opt.tags, owner, msg_owner, true);
567
567
  case 116:
568
+ _context3.next = 118;
569
+ return genMsg(id, p, data, opt.tags, owner, msg_owner, true);
570
+ case 118:
568
571
  msg = _context3.sent;
569
- _context3.next = 119;
572
+ _context3.next = 121;
570
573
  return genEnv({
571
574
  pid: p.id,
572
575
  owner: p.owner,
573
576
  module: p.module
574
577
  });
575
- case 119:
578
+ case 121:
576
579
  _env = _context3.sent;
577
- _context3.next = 122;
580
+ _context3.next = 124;
578
581
  return _module.handle(null, msg, _env);
579
- case 122:
582
+ case 124:
580
583
  res = _context3.sent;
581
584
  p.memory = res.Memory;
582
585
  delete res.Memory;
583
- _context3.next = 128;
586
+ _context3.next = 130;
584
587
  break;
585
- case 127:
588
+ case 129:
586
589
  p.height += 1;
587
- case 128:
590
+ case 130:
588
591
  _msg = _objectSpread(_objectSpread({}, (0, _ramda.o)((0, _ramda.dissoc)("signer"), (0, _ramda.dissoc)("memory"))(opt)), {}, {
589
592
  res: res
590
593
  });
591
- _context3.next = 131;
594
+ _context3.next = 133;
592
595
  return mem.set(_msg, "msgs", id);
593
- case 131:
596
+ case 133:
594
597
  if (!_tags["Cron-Interval"]) {
595
- _context3.next = 155;
598
+ _context3.next = 157;
596
599
  break;
597
600
  }
598
601
  _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];
599
602
  _int = 0;
600
603
  _context3.t14 = unit.replace(/s$/, "");
601
- _context3.next = _context3.t14 === "millisecond" ? 137 : _context3.t14 === "second" ? 139 : _context3.t14 === "minute" ? 141 : _context3.t14 === "hour" ? 143 : _context3.t14 === "day" ? 145 : _context3.t14 === "month" ? 147 : _context3.t14 === "year" ? 149 : 151;
604
+ _context3.next = _context3.t14 === "millisecond" ? 139 : _context3.t14 === "second" ? 141 : _context3.t14 === "minute" ? 143 : _context3.t14 === "hour" ? 145 : _context3.t14 === "day" ? 147 : _context3.t14 === "month" ? 149 : _context3.t14 === "year" ? 151 : 153;
602
605
  break;
603
- case 137:
604
- _int = num;
605
- return _context3.abrupt("break", 151);
606
606
  case 139:
607
- _int = num * 1000;
608
- return _context3.abrupt("break", 151);
607
+ _int = num;
608
+ return _context3.abrupt("break", 153);
609
609
  case 141:
610
- _int = num * 1000 * 60;
611
- return _context3.abrupt("break", 151);
610
+ _int = num * 1000;
611
+ return _context3.abrupt("break", 153);
612
612
  case 143:
613
- _int = num * 1000 * 60 * 60;
614
- return _context3.abrupt("break", 151);
613
+ _int = num * 1000 * 60;
614
+ return _context3.abrupt("break", 153);
615
615
  case 145:
616
- _int = num * 1000 * 60 * 60 * 24;
617
- return _context3.abrupt("break", 151);
616
+ _int = num * 1000 * 60 * 60;
617
+ return _context3.abrupt("break", 153);
618
618
  case 147:
619
- _int = num * 1000 * 60 * 60 * 24 * 30;
620
- return _context3.abrupt("break", 151);
619
+ _int = num * 1000 * 60 * 60 * 24;
620
+ return _context3.abrupt("break", 153);
621
621
  case 149:
622
- _int = num * 1000 * 60 * 60 * 24 * 365;
623
- return _context3.abrupt("break", 151);
622
+ _int = num * 1000 * 60 * 60 * 24 * 30;
623
+ return _context3.abrupt("break", 153);
624
624
  case 151:
625
+ _int = num * 1000 * 60 * 60 * 24 * 365;
626
+ return _context3.abrupt("break", 153);
627
+ case 153:
625
628
  cronTags = [];
626
629
  for (_k in _tags) {
627
630
  if (/^Cron-Tag-/.test(_k)) {
@@ -633,16 +636,17 @@ var _default = exports["default"] = function _default() {
633
636
  }
634
637
  p.cronTags = cronTags;
635
638
  p.span = _int;
636
- case 155:
637
- _context3.next = 157;
638
- return mem.set(p, "env", id);
639
639
  case 157:
640
+ _context3.next = 159;
641
+ return mem.set(p, "env", id);
642
+ case 159:
643
+ delete ongoing[id];
640
644
  return _context3.abrupt("return", id);
641
- case 158:
645
+ case 161:
642
646
  case "end":
643
647
  return _context3.stop();
644
648
  }
645
- }, _callee3, null, [[57, 72]]);
649
+ }, _callee3, null, [[59, 74]]);
646
650
  }));
647
651
  return function spawn() {
648
652
  return _ref8.apply(this, arguments);
@@ -999,7 +1003,7 @@ var _default = exports["default"] = function _default() {
999
1003
  }();
1000
1004
  var message = /*#__PURE__*/function () {
1001
1005
  var _ref11 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(opt) {
1002
- var id, owner, item, _opt$id2, _yield$ar$httpmsg2, _p, new_slot, last_slot, _opt$item$id, _opt$item, _opt$owner, _id, _owner, _item, p, _opt$tags3, _yield$mem$getTx$tags3, _yield$mem$getTx4, pr, module, _yield$ar$dataitem3, _msg, _opt, _ref12, _opt$from2, _opt$http_msg$data, from, data, _tags, msg, _env, _yield$mem$getTx5, _yield$mem$getWasm3, format, mod, wasm, wdrive, start, res, _msg2;
1006
+ var id, owner, item, _opt$id2, _key, i, _yield$ar$httpmsg2, _p, new_slot, last_slot, _opt$item$id, _opt$item, _opt$owner, _id, _owner, _item, p, _opt$tags3, _yield$mem$getTx$tags3, _yield$mem$getTx4, pr, module, _yield$ar$dataitem3, _msg, _opt, _ref12, _opt$from2, _opt$http_msg$data, from, data, _tags, msg, _env, _yield$mem$getTx5, _yield$mem$getWasm3, format, mod, wasm, wdrive, start, res, _msg2, key;
1003
1007
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
1004
1008
  while (1) switch (_context5.prev = _context5.next) {
1005
1009
  case 0:
@@ -1007,72 +1011,75 @@ var _default = exports["default"] = function _default() {
1007
1011
  owner = "";
1008
1012
  item = null;
1009
1013
  if (!ar.isHttpMsg(opt.http_msg)) {
1010
- _context5.next = 32;
1014
+ _context5.next = 35;
1011
1015
  break;
1012
1016
  }
1013
1017
  id = (_opt$id2 = opt.id) !== null && _opt$id2 !== void 0 ? _opt$id2 : opt.http_msg.target;
1014
- if (!ongoing[id]) {
1015
- _context5.next = 14;
1018
+ _key = "".concat(opt.process, ":").concat(id, "}");
1019
+ if (!ongoing[_key]) {
1020
+ _context5.next = 17;
1016
1021
  break;
1017
1022
  }
1018
- case 6:
1019
- if (!ongoing[id]) {
1020
- _context5.next = 11;
1023
+ i = 0;
1024
+ case 8:
1025
+ if (!(i < 30 && ongoing[_key])) {
1026
+ _context5.next = 14;
1021
1027
  break;
1022
1028
  }
1023
- _context5.next = 9;
1029
+ _context5.next = 11;
1024
1030
  return (0, _utils.wait)(100);
1025
- case 9:
1026
- _context5.next = 6;
1027
- break;
1028
1031
  case 11:
1029
- return _context5.abrupt("return", id);
1032
+ i++;
1033
+ _context5.next = 8;
1034
+ break;
1030
1035
  case 14:
1031
- ongoing[id] = true;
1032
- _context5.next = 17;
1033
- return ar.httpmsg(opt.http_msg, id);
1036
+ return _context5.abrupt("return", id);
1034
1037
  case 17:
1038
+ ongoing[_key] = true;
1039
+ _context5.next = 20;
1040
+ return ar.httpmsg(opt.http_msg, id);
1041
+ case 20:
1035
1042
  _yield$ar$httpmsg2 = _context5.sent;
1036
1043
  owner = _yield$ar$httpmsg2.owner;
1037
1044
  item = _yield$ar$httpmsg2.item;
1038
- _context5.next = 22;
1045
+ _context5.next = 25;
1039
1046
  return mem.get("env", opt.process);
1040
- case 22:
1047
+ case 25:
1041
1048
  _p = _context5.sent;
1042
1049
  new_slot = opt.slot * 1;
1043
1050
  last_slot = !_p ? -1 : _p.results.length - 1;
1044
1051
  if (!(last_slot + 1 < new_slot)) {
1045
- _context5.next = 30;
1052
+ _context5.next = 33;
1046
1053
  break;
1047
1054
  }
1048
1055
  if (!(!hb || opt.recovery)) {
1049
- _context5.next = 28;
1056
+ _context5.next = 31;
1050
1057
  break;
1051
1058
  }
1052
1059
  return _context5.abrupt("return", null);
1053
- case 28:
1054
- _context5.next = 30;
1060
+ case 31:
1061
+ _context5.next = 33;
1055
1062
  return _recover(opt.process);
1056
- case 30:
1057
- _context5.next = 35;
1063
+ case 33:
1064
+ _context5.next = 38;
1058
1065
  break;
1059
- case 32:
1066
+ case 35:
1060
1067
  _id = (_opt$item$id = opt === null || opt === void 0 || (_opt$item = opt.item) === null || _opt$item === void 0 ? void 0 : _opt$item.id) !== null && _opt$item$id !== void 0 ? _opt$item$id : "";
1061
1068
  _owner = (_opt$owner = opt.owner) !== null && _opt$owner !== void 0 ? _opt$owner : "";
1062
1069
  _item = opt.item;
1063
- case 35:
1064
- _context5.next = 37;
1070
+ case 38:
1071
+ _context5.next = 40;
1065
1072
  return mem.get("env", opt.process);
1066
- case 37:
1073
+ case 40:
1067
1074
  p = _context5.sent;
1068
1075
  if (p) {
1069
- _context5.next = 40;
1076
+ _context5.next = 43;
1070
1077
  break;
1071
1078
  }
1072
1079
  return _context5.abrupt("return", null);
1073
- case 40:
1080
+ case 43:
1074
1081
  if (!(!opt.item && opt.signer)) {
1075
- _context5.next = 75;
1082
+ _context5.next = 78;
1076
1083
  break;
1077
1084
  }
1078
1085
  opt.tags = (0, _utils.buildTags)(null, (0, _ramda.mergeLeft)((0, _utils.tags)((_opt$tags3 = opt.tags) !== null && _opt$tags3 !== void 0 ? _opt$tags3 : []), {
@@ -1082,7 +1089,7 @@ var _default = exports["default"] = function _default() {
1082
1089
  SDK: "aoconnect"
1083
1090
  }));
1084
1091
  if (!opt["for"]) {
1085
- _context5.next = 68;
1092
+ _context5.next = 71;
1086
1093
  break;
1087
1094
  }
1088
1095
  opt.tags.push({
@@ -1093,100 +1100,100 @@ var _default = exports["default"] = function _default() {
1093
1100
  name: "From-Process",
1094
1101
  value: opt.from
1095
1102
  });
1096
- _context5.next = 47;
1103
+ _context5.next = 50;
1097
1104
  return mem.getTx(opt.from);
1098
- case 47:
1105
+ case 50:
1099
1106
  _context5.t2 = _yield$mem$getTx4 = _context5.sent;
1100
1107
  _context5.t1 = _context5.t2 === null;
1101
1108
  if (_context5.t1) {
1102
- _context5.next = 51;
1109
+ _context5.next = 54;
1103
1110
  break;
1104
1111
  }
1105
1112
  _context5.t1 = _yield$mem$getTx4 === void 0;
1106
- case 51:
1113
+ case 54:
1107
1114
  if (!_context5.t1) {
1108
- _context5.next = 55;
1115
+ _context5.next = 58;
1109
1116
  break;
1110
1117
  }
1111
1118
  _context5.t3 = void 0;
1112
- _context5.next = 56;
1119
+ _context5.next = 59;
1113
1120
  break;
1114
- case 55:
1121
+ case 58:
1115
1122
  _context5.t3 = _yield$mem$getTx4.tags;
1116
- case 56:
1123
+ case 59:
1117
1124
  _context5.t4 = _yield$mem$getTx$tags3 = _context5.t3;
1118
1125
  _context5.t0 = _context5.t4 !== null;
1119
1126
  if (!_context5.t0) {
1120
- _context5.next = 60;
1127
+ _context5.next = 63;
1121
1128
  break;
1122
1129
  }
1123
1130
  _context5.t0 = _yield$mem$getTx$tags3 !== void 0;
1124
- case 60:
1131
+ case 63:
1125
1132
  if (!_context5.t0) {
1126
- _context5.next = 64;
1133
+ _context5.next = 67;
1127
1134
  break;
1128
1135
  }
1129
1136
  _context5.t5 = _yield$mem$getTx$tags3;
1130
- _context5.next = 65;
1137
+ _context5.next = 68;
1131
1138
  break;
1132
- case 64:
1139
+ case 67:
1133
1140
  _context5.t5 = [];
1134
- case 65:
1141
+ case 68:
1135
1142
  pr = _context5.t5;
1136
1143
  module = (0, _utils.tags)(pr).Module;
1137
1144
  if (module) opt.tags.push({
1138
1145
  name: "From-Module",
1139
1146
  value: module
1140
1147
  });
1141
- case 68:
1148
+ case 71:
1142
1149
  ;
1143
- _context5.next = 71;
1150
+ _context5.next = 74;
1144
1151
  return ar.dataitem({
1145
1152
  data: opt.data,
1146
1153
  signer: opt.signer,
1147
1154
  tags: (0, _utils.tags)(opt.tags),
1148
1155
  target: opt.process
1149
1156
  });
1150
- case 71:
1157
+ case 74:
1151
1158
  _yield$ar$dataitem3 = _context5.sent;
1152
1159
  item = _yield$ar$dataitem3.item;
1153
1160
  id = _yield$ar$dataitem3.id;
1154
1161
  owner = _yield$ar$dataitem3.owner;
1155
- case 75:
1162
+ case 78:
1156
1163
  _msg = (0, _ramda.dissoc)("signer", opt);
1157
- _context5.next = 78;
1164
+ _context5.next = 81;
1158
1165
  return mem.set(_msg, "msgs", id);
1159
- case 78:
1166
+ case 81:
1160
1167
  if (!ar.isHttpMsg(opt.http_msg)) {
1161
- _context5.next = 143;
1168
+ _context5.next = 145;
1162
1169
  break;
1163
1170
  }
1164
1171
  p.epochs.push([id]);
1165
1172
  _opt = opt;
1166
- _context5.prev = 81;
1173
+ _context5.prev = 84;
1167
1174
  // todo: not sure if this is correct
1168
1175
  from = (_ref12 = (_opt$from2 = _opt.from) !== null && _opt$from2 !== void 0 ? _opt$from2 : opt.from) !== null && _ref12 !== void 0 ? _ref12 : owner;
1169
1176
  data = (_opt$http_msg$data = opt.http_msg.data) !== null && _opt$http_msg$data !== void 0 ? _opt$http_msg$data : "";
1170
1177
  _tags = _opt.http_msg.tags; // todo: check if owner=mu.addr right?
1171
- _context5.next = 87;
1178
+ _context5.next = 90;
1172
1179
  return genMsg(opt.http_msg, p, data, _tags, from, owner);
1173
- case 87:
1180
+ case 90:
1174
1181
  msg = _context5.sent;
1175
- _context5.next = 90;
1182
+ _context5.next = 93;
1176
1183
  return genEnv({
1177
1184
  pid: p.id,
1178
1185
  owner: p.owner,
1179
1186
  module: p.module
1180
1187
  });
1181
- case 90:
1188
+ case 93:
1182
1189
  _env = _context5.sent;
1183
1190
  if (p.handle) {
1184
- _context5.next = 123;
1191
+ _context5.next = 126;
1185
1192
  break;
1186
1193
  }
1187
- _context5.next = 94;
1194
+ _context5.next = 97;
1188
1195
  return mem.getWasm(p.modulea);
1189
- case 94:
1196
+ case 97:
1190
1197
  _yield$mem$getWasm3 = _context5.sent;
1191
1198
  format = _yield$mem$getWasm3.format;
1192
1199
  mod = _yield$mem$getWasm3.mod;
@@ -1196,31 +1203,31 @@ var _default = exports["default"] = function _default() {
1196
1203
  _context5.t7 = wasm;
1197
1204
  _context5.t8 = format;
1198
1205
  _context5.t9 = wdrive;
1199
- _context5.next = 105;
1206
+ _context5.next = 108;
1200
1207
  return mem.getTx(p.id);
1201
- case 105:
1208
+ case 108:
1202
1209
  _context5.t11 = _yield$mem$getTx5 = _context5.sent;
1203
1210
  _context5.t10 = _context5.t11 === null;
1204
1211
  if (_context5.t10) {
1205
- _context5.next = 109;
1212
+ _context5.next = 112;
1206
1213
  break;
1207
1214
  }
1208
1215
  _context5.t10 = _yield$mem$getTx5 === void 0;
1209
- case 109:
1216
+ case 112:
1210
1217
  if (!_context5.t10) {
1211
- _context5.next = 113;
1218
+ _context5.next = 116;
1212
1219
  break;
1213
1220
  }
1214
1221
  _context5.t12 = void 0;
1215
- _context5.next = 114;
1222
+ _context5.next = 117;
1216
1223
  break;
1217
- case 113:
1224
+ case 116:
1218
1225
  _context5.t12 = _yield$mem$getTx5.item;
1219
- case 114:
1226
+ case 117:
1220
1227
  _context5.t13 = _context5.t12;
1221
- _context5.next = 117;
1228
+ _context5.next = 120;
1222
1229
  return mem.getTx(mod);
1223
- case 117:
1230
+ case 120:
1224
1231
  _context5.t14 = _context5.sent;
1225
1232
  _context5.t15 = {
1226
1233
  format: _context5.t8,
@@ -1228,43 +1235,44 @@ var _default = exports["default"] = function _default() {
1228
1235
  spawn: _context5.t13,
1229
1236
  module: _context5.t14
1230
1237
  };
1231
- _context5.next = 121;
1238
+ _context5.next = 124;
1232
1239
  return (0, _context5.t6)(_context5.t7, _context5.t15);
1233
- case 121:
1240
+ case 124:
1234
1241
  p.handle = _context5.sent;
1235
1242
  mem.env[opt.process].handle = p.handle;
1236
- case 123:
1243
+ case 126:
1237
1244
  if (p.compressed) {
1238
1245
  start = Date.now();
1239
1246
  p.memory = mem.waosm.decompress(p.memory, p.original_size);
1240
1247
  p.compressed = false;
1241
1248
  }
1242
- _context5.next = 126;
1249
+ _context5.next = 129;
1243
1250
  return p.handle(p.memory, msg, _env);
1244
- case 126:
1251
+ case 129:
1245
1252
  res = _context5.sent;
1246
1253
  p.memory = res.Memory;
1247
1254
  delete res.Memory;
1248
1255
  p.results.push(id);
1249
- _context5.next = 132;
1256
+ _context5.next = 135;
1250
1257
  return mem.set(p, "env", opt.process);
1251
- case 132:
1258
+ case 135:
1252
1259
  _msg2 = _objectSpread(_objectSpread({}, (0, _ramda.dissoc)("signer", _opt)), {}, {
1253
1260
  res: res
1254
1261
  });
1255
- _context5.next = 135;
1262
+ _context5.next = 138;
1256
1263
  return mem.set(_msg2, "msgs", id);
1257
- case 135:
1258
- return _context5.abrupt("return", id);
1259
1264
  case 138:
1260
- _context5.prev = 138;
1261
- _context5.t16 = _context5["catch"](81);
1262
- console.log(_context5.t16);
1263
- case 141:
1264
- _context5.next = 145;
1265
+ _context5.next = 143;
1265
1266
  break;
1267
+ case 140:
1268
+ _context5.prev = 140;
1269
+ _context5.t16 = _context5["catch"](84);
1270
+ console.log(_context5.t16);
1266
1271
  case 143:
1267
- _context5.next = 145;
1272
+ _context5.next = 147;
1273
+ break;
1274
+ case 145:
1275
+ _context5.next = 147;
1268
1276
  return _assign({
1269
1277
  message_item: item,
1270
1278
  message: id,
@@ -1272,14 +1280,15 @@ var _default = exports["default"] = function _default() {
1272
1280
  from: owner,
1273
1281
  signer: mu.signer
1274
1282
  });
1275
- case 145:
1276
- delete ongoing[id];
1277
- return _context5.abrupt("return", id);
1278
1283
  case 147:
1284
+ key = "".concat(opt.process, ":").concat(id, "}");
1285
+ delete ongoing[key];
1286
+ return _context5.abrupt("return", id);
1287
+ case 150:
1279
1288
  case "end":
1280
1289
  return _context5.stop();
1281
1290
  }
1282
- }, _callee5, null, [[81, 138]]);
1291
+ }, _callee5, null, [[84, 140]]);
1283
1292
  }));
1284
1293
  return function message(_x9) {
1285
1294
  return _ref11.apply(this, arguments);
package/cjs/server.js CHANGED
@@ -176,33 +176,28 @@ var Server = /*#__PURE__*/function () {
176
176
  return _regeneratorRuntime().wrap(function _callee$(_context) {
177
177
  while (1) switch (_context.prev = _context.next) {
178
178
  case 0:
179
- if (Buffer.isBuffer(req.body)) {
180
- _context.next = 3;
181
- break;
182
- }
183
- console.log("BD: Invalid body | expected raw Buffer");
184
- return _context.abrupt("return", res.status(400).send("Invalid body: expected raw Buffer"));
185
- case 3:
179
+ return _context.abrupt("return", res.status(200).send("Success"));
180
+ case 4:
186
181
  lines = req.body.toString("utf8").split(/\r?\n/);
187
182
  sigs = {};
188
183
  currentKey = null;
189
184
  _iterator = _createForOfIteratorHelper(lines);
190
- _context.prev = 7;
185
+ _context.prev = 8;
191
186
  _iterator.s();
192
- case 9:
187
+ case 10:
193
188
  if ((_step = _iterator.n()).done) {
194
- _context.next = 19;
189
+ _context.next = 20;
195
190
  break;
196
191
  }
197
192
  line = _step.value;
198
193
  trimmed = line.trim();
199
194
  if (!/^--[a-zA-Z0-9_\-=]+/.test(trimmed)) {
200
- _context.next = 15;
195
+ _context.next = 16;
201
196
  break;
202
197
  }
203
198
  currentKey = null;
204
- return _context.abrupt("continue", 17);
205
- case 15:
199
+ return _context.abrupt("continue", 18);
200
+ case 16:
206
201
  headerMatch = trimmed.match(/^([a-zA-Z0-9_-]+):\s*(.*)$/);
207
202
  if (headerMatch && !headerMatch[2].includes(": ")) {
208
203
  _key = headerMatch[1];
@@ -210,21 +205,21 @@ var Server = /*#__PURE__*/function () {
210
205
  sigs[_key] = value;
211
206
  currentKey = _key;
212
207
  } else if (currentKey) sigs[currentKey] += "\n" + line;
213
- case 17:
214
- _context.next = 9;
208
+ case 18:
209
+ _context.next = 10;
215
210
  break;
216
- case 19:
217
- _context.next = 24;
211
+ case 20:
212
+ _context.next = 25;
218
213
  break;
219
- case 21:
220
- _context.prev = 21;
221
- _context.t0 = _context["catch"](7);
214
+ case 22:
215
+ _context.prev = 22;
216
+ _context.t0 = _context["catch"](8);
222
217
  _iterator.e(_context.t0);
223
- case 24:
224
- _context.prev = 24;
218
+ case 25:
219
+ _context.prev = 25;
225
220
  _iterator.f();
226
- return _context.finish(24);
227
- case 27:
221
+ return _context.finish(25);
222
+ case 28:
228
223
  sigs.target = req.headers.process;
229
224
  sigs.slot = req.headers.slot;
230
225
  input = parseSignatureInput(req.headers["signature-input"]);
@@ -238,8 +233,8 @@ var Server = /*#__PURE__*/function () {
238
233
  format: "jwk"
239
234
  }), "rsa-pss-sha512");
240
235
  id = null;
241
- _context.prev = 33;
242
- _context.next = 36;
236
+ _context.prev = 34;
237
+ _context.next = 37;
243
238
  return verifyMessage({
244
239
  keyLookup: function keyLookup(params) {
245
240
  return {
@@ -251,11 +246,11 @@ var Server = /*#__PURE__*/function () {
251
246
  headers: req.headers,
252
247
  url: "http://ao.com".concat(req.headers.path)
253
248
  });
254
- case 36:
249
+ case 37:
255
250
  isValid = _context.sent;
256
251
  item = toANS104Request(sigs).item;
257
252
  if (!(sigs.slot === "0" || sigs.type === "Process")) {
258
- _context.next = 46;
253
+ _context.next = 47;
259
254
  break;
260
255
  }
261
256
  _iterator2 = _createForOfIteratorHelper(item.tags);
@@ -269,19 +264,19 @@ var Server = /*#__PURE__*/function () {
269
264
  } finally {
270
265
  _iterator2.f();
271
266
  }
272
- _context.next = 43;
267
+ _context.next = 44;
273
268
  return _this.spawn({
274
269
  http_msg: item,
275
270
  module: sigs.module,
276
271
  scheduler: sigs.scheduler
277
272
  });
278
- case 43:
273
+ case 44:
279
274
  _res2 = _context.sent;
280
- _context.next = 52;
275
+ _context.next = 53;
281
276
  break;
282
- case 46:
277
+ case 47:
283
278
  if (!(sigs.type === "Message")) {
284
- _context.next = 52;
279
+ _context.next = 53;
285
280
  break;
286
281
  }
287
282
  _iterator3 = _createForOfIteratorHelper(item.tags);
@@ -295,28 +290,28 @@ var Server = /*#__PURE__*/function () {
295
290
  } finally {
296
291
  _iterator3.f();
297
292
  }
298
- _context.next = 51;
293
+ _context.next = 52;
299
294
  return _this.message({
300
295
  slot: sigs.slot,
301
296
  http_msg: item,
302
297
  process: sigs.target
303
298
  });
304
- case 51:
305
- _res3 = _context.sent;
306
299
  case 52:
307
- _context.next = 57;
300
+ _res3 = _context.sent;
301
+ case 53:
302
+ _context.next = 58;
308
303
  break;
309
- case 54:
310
- _context.prev = 54;
311
- _context.t1 = _context["catch"](33);
304
+ case 55:
305
+ _context.prev = 55;
306
+ _context.t1 = _context["catch"](34);
312
307
  console.log(_context.t1, req.originalUrl);
313
- case 57:
314
- return _context.abrupt("return", res.status(200).send("Success"));
315
308
  case 58:
309
+ return _context.abrupt("return", res.status(200).send("Success"));
310
+ case 59:
316
311
  case "end":
317
312
  return _context.stop();
318
313
  }
319
- }, _callee, null, [[7, 21, 24, 27], [33, 54]]);
314
+ }, _callee, null, [[8, 22, 25, 28], [34, 55]]);
320
315
  }));
321
316
  return function (_x, _x2) {
322
317
  return _ref2.apply(this, arguments);
@@ -375,7 +370,7 @@ var Server = /*#__PURE__*/function () {
375
370
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
376
371
  while (1) switch (_context3.prev = _context3.next) {
377
372
  case 0:
378
- res.send(_this2.mem.getAnchor());
373
+ return _context3.abrupt("return", res.send(_this2.mem.getAnchor()));
379
374
  case 1:
380
375
  case "end":
381
376
  return _context3.stop();
@@ -391,7 +386,7 @@ var Server = /*#__PURE__*/function () {
391
386
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
392
387
  while (1) switch (_context4.prev = _context4.next) {
393
388
  case 0:
394
- res.json(req.params);
389
+ return _context4.abrupt("return", res.json(req.params));
395
390
  case 1:
396
391
  case "end":
397
392
  return _context4.stop();
@@ -433,7 +428,7 @@ var Server = /*#__PURE__*/function () {
433
428
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
434
429
  while (1) switch (_context6.prev = _context6.next) {
435
430
  case 0:
436
- res.send("0");
431
+ return _context6.abrupt("return", res.send("0"));
437
432
  case 1:
438
433
  case "end":
439
434
  return _context6.stop();
@@ -813,7 +808,7 @@ var Server = /*#__PURE__*/function () {
813
808
  });
814
809
  var result = /*#__PURE__*/function () {
815
810
  var _ref14 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee13(req, res) {
816
- var message, process, _yield$_this5$recover, success, _this5$mem$env$proces, res2;
811
+ var message, process, _yield$_this5$recover, success, slot, _this5$mem$env$proces, _this5$mem$env$proces2, res2;
817
812
  return _regeneratorRuntime().wrap(function _callee13$(_context13) {
818
813
  while (1) switch (_context13.prev = _context13.next) {
819
814
  case 0:
@@ -839,29 +834,37 @@ var Server = /*#__PURE__*/function () {
839
834
  });
840
835
  return _context13.abrupt("return");
841
836
  case 12:
837
+ slot = message;
842
838
  if (!/^--[0-9a-zA-Z_-]{43,44}$/.test(message)) {
843
- message = (_this5$mem$env$proces = _this5.mem.env[process]) === null || _this5$mem$env$proces === void 0 || (_this5$mem$env$proces = _this5$mem$env$proces.results) === null || _this5$mem$env$proces === void 0 ? void 0 : _this5$mem$env$proces[message];
839
+ message = (_this5$mem$env$proces = _this5.mem.env[process]) === null || _this5$mem$env$proces === void 0 || (_this5$mem$env$proces = _this5$mem$env$proces.results) === null || _this5$mem$env$proces === void 0 ? void 0 : _this5$mem$env$proces[slot];
840
+ }
841
+ if (!(0, _ramda.isNil)(message)) {
842
+ _context13.next = 22;
843
+ break;
844
844
  }
845
+ _context13.next = 17;
846
+ return _this5.recover(process);
847
+ case 17:
848
+ message = (_this5$mem$env$proces2 = _this5.mem.env[process]) === null || _this5$mem$env$proces2 === void 0 || (_this5$mem$env$proces2 = _this5$mem$env$proces2.results) === null || _this5$mem$env$proces2 === void 0 ? void 0 : _this5$mem$env$proces2[slot];
845
849
  if (!(0, _ramda.isNil)(message)) {
846
- _context13.next = 18;
850
+ _context13.next = 22;
847
851
  break;
848
852
  }
849
- console.log("message not found", message, req.params);
850
853
  res.status(404);
851
854
  res.json({
852
855
  error: "Not Found"
853
856
  });
854
857
  return _context13.abrupt("return");
855
- case 18:
856
- _context13.next = 20;
858
+ case 22:
859
+ _context13.next = 24;
857
860
  return _this5.result({
858
861
  message: message,
859
862
  process: process
860
863
  });
861
- case 20:
864
+ case 24:
862
865
  res2 = _context13.sent;
863
866
  res.json(res2);
864
- case 22:
867
+ case 26:
865
868
  case "end":
866
869
  return _context13.stop();
867
870
  }
@@ -114,7 +114,11 @@ export default ({ AR, scheduler, mu, su, cu, acc, AoLoader, ArMem } = {}) => {
114
114
  if (ar.isHttpMsg(opt.http_msg)) {
115
115
  id = opt.id ?? opt.http_msg.target
116
116
  if (ongoing[id]) {
117
- while (ongoing[id]) await wait(100)
117
+ let i = 0
118
+ while (i < 30 && ongoing[id]) {
119
+ await wait(100)
120
+ i++
121
+ }
118
122
  return id
119
123
  } else {
120
124
  ongoing[id] = true
@@ -248,6 +252,7 @@ export default ({ AR, scheduler, mu, su, cu, acc, AoLoader, ArMem } = {}) => {
248
252
  p.span = int
249
253
  }
250
254
  await mem.set(p, "env", id)
255
+ delete ongoing[id]
251
256
  return id
252
257
  }
253
258
 
@@ -377,7 +382,6 @@ export default ({ AR, scheduler, mu, su, cu, acc, AoLoader, ArMem } = {}) => {
377
382
  })
378
383
  }
379
384
  }
380
-
381
385
  return id
382
386
  } catch (e) {
383
387
  console.log(e)
@@ -390,11 +394,16 @@ export default ({ AR, scheduler, mu, su, cu, acc, AoLoader, ArMem } = {}) => {
390
394
  let item = null
391
395
  if (ar.isHttpMsg(opt.http_msg)) {
392
396
  id = opt.id ?? opt.http_msg.target
393
- if (ongoing[id]) {
394
- while (ongoing[id]) await wait(100)
397
+ const key = `${opt.process}:${id}}`
398
+ if (ongoing[key]) {
399
+ let i = 0
400
+ while (i < 30 && ongoing[key]) {
401
+ await wait(100)
402
+ i++
403
+ }
395
404
  return id
396
405
  } else {
397
- ongoing[id] = true
406
+ ongoing[key] = true
398
407
  ;({ owner, item } = await ar.httpmsg(opt.http_msg, id))
399
408
  // check if process exists, and recover if necessary
400
409
  const p = await mem.get("env", opt.process)
@@ -477,7 +486,6 @@ export default ({ AR, scheduler, mu, su, cu, acc, AoLoader, ArMem } = {}) => {
477
486
  await mem.set(p, "env", opt.process)
478
487
  const _msg = { ...dissoc("signer", _opt), res }
479
488
  await mem.set(_msg, "msgs", id)
480
- return id
481
489
  } catch (e) {
482
490
  console.log(e)
483
491
  }
@@ -490,7 +498,8 @@ export default ({ AR, scheduler, mu, su, cu, acc, AoLoader, ArMem } = {}) => {
490
498
  signer: mu.signer,
491
499
  })
492
500
  }
493
- delete ongoing[id]
501
+ const key = `${opt.process}:${id}}`
502
+ delete ongoing[key]
494
503
  return id
495
504
  }
496
505
  const recover = async (pid, next) => {
package/esm/server.js CHANGED
@@ -4,7 +4,7 @@ import express from "express"
4
4
  import cors from "cors"
5
5
  import base64url from "base64url"
6
6
  import { DataItem } from "arbundles"
7
- import { tags, toGraphObj, optAO } from "./utils.js"
7
+ import { tags, toGraphObj, optAO, wait } from "./utils.js"
8
8
  import { connect } from "./aoconnect.js"
9
9
  import { GQL, cu, su, mu } from "./test.js"
10
10
  import bodyParser from "body-parser"
@@ -130,6 +130,8 @@ class Server {
130
130
  app.use(cors())
131
131
  app.use("/tx", bodyParser.raw({ type: "*/*", limit: "100mb" }))
132
132
  app.post("/tx", async (req, res) => {
133
+ // todo: items from HB has wrong sigs and ids
134
+ return res.status(200).send("Success")
133
135
  if (!Buffer.isBuffer(req.body)) {
134
136
  console.log("BD: Invalid body | expected raw Buffer")
135
137
  return res.status(400).send("Invalid body: expected raw Buffer")
@@ -218,12 +220,8 @@ class Server {
218
220
  res.status(400)
219
221
  res.send(null)
220
222
  })
221
- app.get("/tx_anchor", async (req, res) => {
222
- res.send(this.mem.getAnchor())
223
- })
224
- app.get("/mine", async (req, res) => {
225
- res.json(req.params)
226
- })
223
+ app.get("/tx_anchor", async (req, res) => res.send(this.mem.getAnchor()))
224
+ app.get("/mine", async (req, res) => res.json(req.params))
227
225
  app.get("/:id", async (req, res) => {
228
226
  const _data = await this._ar.data(req.params.id)
229
227
  if (!_data) {
@@ -233,9 +231,7 @@ class Server {
233
231
  res.send(Buffer.from(_data, "base64"))
234
232
  }
235
233
  })
236
- app.get("/price/:id", async (req, res) => {
237
- res.send("0")
238
- })
234
+ app.get("/price/:id", async (req, res) => res.send("0"))
239
235
  app.post("/graphql", async (req, res) => {
240
236
  try {
241
237
  const { query, variables } = req.body
@@ -414,14 +410,18 @@ class Server {
414
410
  return
415
411
  }
416
412
  }
413
+ const slot = message
417
414
  if (!/^--[0-9a-zA-Z_-]{43,44}$/.test(message)) {
418
- message = this.mem.env[process]?.results?.[message]
415
+ message = this.mem.env[process]?.results?.[slot]
419
416
  }
420
417
  if (isNil(message)) {
421
- console.log("message not found", message, req.params)
422
- res.status(404)
423
- res.json({ error: `Not Found` })
424
- return
418
+ await this.recover(process)
419
+ message = this.mem.env[process]?.results?.[slot]
420
+ if (isNil(message)) {
421
+ res.status(404)
422
+ res.json({ error: `Not Found` })
423
+ return
424
+ }
425
425
  }
426
426
  const res2 = await this.result({
427
427
  message,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wao",
3
- "version": "0.14.3",
3
+ "version": "0.14.5",
4
4
  "bin": {
5
5
  "wao": "./cjs/cli.js",
6
6
  "wao-esm": "./esm/cli.js"