wao 0.4.11 → 0.5.0
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/ao.js +4 -3
- package/cjs/aoconnect.js +223 -136
- package/cjs/ar.js +299 -211
- package/cjs/armem.js +102 -41
- package/cjs/run.js +26 -0
- package/cjs/server.js +632 -0
- package/cjs/tao.js +4 -8
- package/cjs/tar.js +161 -65
- package/cjs/test.js +8 -1
- package/esm/ao.js +1 -1
- package/esm/aoconnect.js +94 -35
- package/esm/ar.js +42 -2
- package/esm/armem.js +53 -8
- package/esm/run.js +7 -0
- package/esm/server.js +375 -0
- package/esm/tao.js +2 -2
- package/esm/tar.js +56 -31
- package/esm/test.js +4 -1
- package/esm/tgql.js +0 -1
- package/package.json +11 -1
package/cjs/tar.js
CHANGED
|
@@ -61,35 +61,53 @@ var AR = /*#__PURE__*/function (_MAR) {
|
|
|
61
61
|
key: "dataitem",
|
|
62
62
|
value: function () {
|
|
63
63
|
var _dataitem = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
|
|
64
|
-
var _ref$target, target, _ref$data, data, _ref$tags, tags, signer,
|
|
64
|
+
var _ref$target, target, _ref$data, data, _ref$tags, tags, signer, item, di, _tags, _item, raw_owner, hashBuffer, owner;
|
|
65
65
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
66
66
|
while (1) switch (_context.prev = _context.next) {
|
|
67
67
|
case 0:
|
|
68
|
-
_ref$target = _ref.target, target = _ref$target === void 0 ? "" : _ref$target, _ref$data = _ref.data, data = _ref$data === void 0 ? "1984" : _ref$data, _ref$tags = _ref.tags, tags = _ref$tags === void 0 ? {} : _ref$tags, signer = _ref.signer;
|
|
68
|
+
_ref$target = _ref.target, target = _ref$target === void 0 ? "" : _ref$target, _ref$data = _ref.data, data = _ref$data === void 0 ? "1984" : _ref$data, _ref$tags = _ref.tags, tags = _ref$tags === void 0 ? {} : _ref$tags, signer = _ref.signer, item = _ref.item;
|
|
69
|
+
di = item;
|
|
70
|
+
if (di) {
|
|
71
|
+
_context.next = 10;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
69
74
|
_tags = (0, _utils.buildTags)(tags);
|
|
70
|
-
_context.next =
|
|
75
|
+
_context.next = 6;
|
|
71
76
|
return signer({
|
|
72
77
|
data: data,
|
|
73
78
|
tags: _tags,
|
|
74
79
|
target: target
|
|
75
80
|
});
|
|
76
|
-
case
|
|
77
|
-
|
|
78
|
-
di = new DataItem(
|
|
81
|
+
case 6:
|
|
82
|
+
_item = _context.sent;
|
|
83
|
+
di = new DataItem(_item.raw);
|
|
84
|
+
_context.next = 11;
|
|
85
|
+
break;
|
|
86
|
+
case 10:
|
|
87
|
+
tags = (0, _utils.tags)(di.tags);
|
|
88
|
+
case 11:
|
|
79
89
|
raw_owner = di.rawOwner;
|
|
80
90
|
_context.t0 = Buffer;
|
|
81
|
-
_context.next =
|
|
91
|
+
_context.next = 15;
|
|
82
92
|
return crypto.subtle.digest("SHA-256", raw_owner);
|
|
83
|
-
case
|
|
93
|
+
case 15:
|
|
84
94
|
_context.t1 = _context.sent;
|
|
85
95
|
hashBuffer = _context.t0.from.call(_context.t0, _context.t1);
|
|
86
96
|
owner = _base64url["default"].encode(hashBuffer);
|
|
97
|
+
_context.next = 20;
|
|
98
|
+
return di.id;
|
|
99
|
+
case 20:
|
|
100
|
+
_context.t2 = _context.sent;
|
|
101
|
+
_context.t3 = owner;
|
|
102
|
+
_context.t4 = di;
|
|
103
|
+
_context.t5 = tags;
|
|
87
104
|
return _context.abrupt("return", {
|
|
88
|
-
id:
|
|
89
|
-
owner:
|
|
90
|
-
item:
|
|
105
|
+
id: _context.t2,
|
|
106
|
+
owner: _context.t3,
|
|
107
|
+
item: _context.t4,
|
|
108
|
+
tags: _context.t5
|
|
91
109
|
});
|
|
92
|
-
case
|
|
110
|
+
case 25:
|
|
93
111
|
case "end":
|
|
94
112
|
return _context.stop();
|
|
95
113
|
}
|
|
@@ -155,27 +173,26 @@ var AR = /*#__PURE__*/function (_MAR) {
|
|
|
155
173
|
}, {
|
|
156
174
|
key: "postItem",
|
|
157
175
|
value: function () {
|
|
158
|
-
var _postItem = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(
|
|
159
|
-
var tx,
|
|
176
|
+
var _postItem = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(di, jwk) {
|
|
177
|
+
var tx, data_size, data_type, _iterator2, _step2, _t, rowner, hashBuffer, owner, data, _item;
|
|
160
178
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
161
179
|
while (1) switch (_context3.prev = _context3.next) {
|
|
162
180
|
case 0:
|
|
163
181
|
_context3.next = 2;
|
|
164
182
|
return this.mem.arweave.createTransaction({
|
|
165
|
-
data:
|
|
183
|
+
data: di.binary
|
|
166
184
|
}, jwk);
|
|
167
185
|
case 2:
|
|
168
186
|
tx = _context3.sent;
|
|
169
187
|
tx.addTag("Bundle-Format", "binary");
|
|
170
188
|
tx.addTag("Bundle-Version", "2.0.0");
|
|
171
|
-
di = new DataItem(item.raw);
|
|
172
189
|
data_size = Buffer.byteLength(di.rawData).toString();
|
|
173
190
|
data_type = "";
|
|
174
191
|
_iterator2 = _createForOfIteratorHelper(di.tags);
|
|
175
192
|
try {
|
|
176
193
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
177
|
-
|
|
178
|
-
if (
|
|
194
|
+
_t = _step2.value;
|
|
195
|
+
if (_t.name === "Content-Type") data_type = _t.value;
|
|
179
196
|
}
|
|
180
197
|
} catch (err) {
|
|
181
198
|
_iterator2.e(err);
|
|
@@ -184,9 +201,9 @@ var AR = /*#__PURE__*/function (_MAR) {
|
|
|
184
201
|
}
|
|
185
202
|
rowner = di.rawOwner;
|
|
186
203
|
_context3.t0 = Buffer;
|
|
187
|
-
_context3.next =
|
|
204
|
+
_context3.next = 13;
|
|
188
205
|
return crypto.subtle.digest("SHA-256", rowner);
|
|
189
|
-
case
|
|
206
|
+
case 13:
|
|
190
207
|
_context3.t1 = _context3.sent;
|
|
191
208
|
hashBuffer = _context3.t0.from.call(_context3.t0, _context3.t1);
|
|
192
209
|
owner = _base64url["default"].encode(hashBuffer);
|
|
@@ -195,26 +212,42 @@ var AR = /*#__PURE__*/function (_MAR) {
|
|
|
195
212
|
try {
|
|
196
213
|
data = _base64url["default"].decode(di.data);
|
|
197
214
|
} catch (e) {}
|
|
215
|
+
_context3.t2 = {
|
|
216
|
+
size: data_size,
|
|
217
|
+
type: data_type
|
|
218
|
+
};
|
|
219
|
+
_context3.t3 = di.anchor;
|
|
220
|
+
_context3.t4 = di.signature;
|
|
221
|
+
_context3.t5 = di.target;
|
|
222
|
+
_context3.next = 25;
|
|
223
|
+
return di.id;
|
|
224
|
+
case 25:
|
|
225
|
+
_context3.t6 = _context3.sent;
|
|
226
|
+
_context3.t7 = di;
|
|
227
|
+
_context3.t8 = owner;
|
|
228
|
+
_context3.t9 = di.tags;
|
|
229
|
+
_context3.t10 = data;
|
|
198
230
|
_item = {
|
|
199
|
-
_data:
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
owner: owner,
|
|
209
|
-
tags: di.tags,
|
|
210
|
-
data: data
|
|
231
|
+
_data: _context3.t2,
|
|
232
|
+
anchor: _context3.t3,
|
|
233
|
+
signature: _context3.t4,
|
|
234
|
+
recipient: _context3.t5,
|
|
235
|
+
id: _context3.t6,
|
|
236
|
+
item: _context3.t7,
|
|
237
|
+
owner: _context3.t8,
|
|
238
|
+
tags: _context3.t9,
|
|
239
|
+
data: _context3.t10
|
|
211
240
|
};
|
|
212
|
-
|
|
213
|
-
|
|
241
|
+
_context3.next = 33;
|
|
242
|
+
return di.id;
|
|
243
|
+
case 33:
|
|
244
|
+
_context3.t11 = _context3.sent;
|
|
245
|
+
this.mem.txs[_context3.t11] = _item;
|
|
246
|
+
_context3.next = 37;
|
|
214
247
|
return this.postTx(tx, jwk, _item);
|
|
215
|
-
case
|
|
248
|
+
case 37:
|
|
216
249
|
return _context3.abrupt("return", _context3.sent);
|
|
217
|
-
case
|
|
250
|
+
case 38:
|
|
218
251
|
case "end":
|
|
219
252
|
return _context3.stop();
|
|
220
253
|
}
|
|
@@ -229,28 +262,33 @@ var AR = /*#__PURE__*/function (_MAR) {
|
|
|
229
262
|
key: "postTx",
|
|
230
263
|
value: function () {
|
|
231
264
|
var _postTx = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(tx, jwk, item) {
|
|
232
|
-
var
|
|
265
|
+
var _last;
|
|
266
|
+
var res, err, block, data_type, _iterator3, _step3, v, _tags, _iterator4, _step4, _v, owner;
|
|
233
267
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
234
268
|
while (1) switch (_context4.prev = _context4.next) {
|
|
235
269
|
case 0:
|
|
236
270
|
res = null, err = null;
|
|
237
|
-
|
|
271
|
+
if (tx.id) {
|
|
272
|
+
_context4.next = 4;
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
_context4.next = 4;
|
|
238
276
|
return this.mem.arweave.transactions.sign(tx, jwk);
|
|
239
|
-
case
|
|
277
|
+
case 4:
|
|
278
|
+
this.mem.height += 1;
|
|
279
|
+
block = {
|
|
280
|
+
id: tx.id,
|
|
281
|
+
timestamp: Date.now(),
|
|
282
|
+
height: this.mem.height,
|
|
283
|
+
previous: (_last = (0, _ramda.last)(this.mem.blocks)) !== null && _last !== void 0 ? _last : ""
|
|
284
|
+
};
|
|
240
285
|
if (item) {
|
|
241
|
-
this.mem.height += 1;
|
|
242
|
-
block = {
|
|
243
|
-
id: tx.id,
|
|
244
|
-
timestamp: Date.now(),
|
|
245
|
-
height: this.mem.height,
|
|
246
|
-
previous: (_last = (0, _ramda.last)(this.mem.blocks)) !== null && _last !== void 0 ? _last : ""
|
|
247
|
-
};
|
|
248
286
|
if (!item.id) {
|
|
249
287
|
item.id = tx.id;
|
|
250
|
-
this.mem.txs[
|
|
251
|
-
this.mem.txs[
|
|
252
|
-
this.mem.txs[
|
|
253
|
-
this.mem.txs[
|
|
288
|
+
this.mem.txs[tx.id] = item;
|
|
289
|
+
this.mem.txs[tx.id].parent = null;
|
|
290
|
+
this.mem.txs[tx.id].signature = tx.signature;
|
|
291
|
+
this.mem.txs[tx.id].anchor = tx.last_tx;
|
|
254
292
|
data_type = "";
|
|
255
293
|
_iterator3 = _createForOfIteratorHelper(tx.tags);
|
|
256
294
|
try {
|
|
@@ -271,7 +309,7 @@ var AR = /*#__PURE__*/function (_MAR) {
|
|
|
271
309
|
} finally {
|
|
272
310
|
_iterator3.f();
|
|
273
311
|
}
|
|
274
|
-
this.mem.txs[
|
|
312
|
+
this.mem.txs[tx.id]._data = {
|
|
275
313
|
size: tx.data_size,
|
|
276
314
|
type: data_type
|
|
277
315
|
};
|
|
@@ -282,25 +320,50 @@ var AR = /*#__PURE__*/function (_MAR) {
|
|
|
282
320
|
}
|
|
283
321
|
block.txs = [item.id];
|
|
284
322
|
this.mem.txs[item.id].block = block.id;
|
|
285
|
-
|
|
286
|
-
|
|
323
|
+
} else {
|
|
324
|
+
_tags = [];
|
|
325
|
+
_iterator4 = _createForOfIteratorHelper(tx.tags);
|
|
326
|
+
try {
|
|
327
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
328
|
+
_v = _step4.value;
|
|
329
|
+
_tags.push({
|
|
330
|
+
name: _base64url["default"].decode(_v.name),
|
|
331
|
+
value: _base64url["default"].decode(_v.value)
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
} catch (err) {
|
|
335
|
+
_iterator4.e(err);
|
|
336
|
+
} finally {
|
|
337
|
+
_iterator4.f();
|
|
338
|
+
}
|
|
339
|
+
tx.tags = _tags;
|
|
340
|
+
this.mem.txs[tx.id] = tx;
|
|
341
|
+
block.txs = [tx.id];
|
|
342
|
+
this.mem.txs[tx.id].block = block.id;
|
|
343
|
+
}
|
|
344
|
+
this.mem.blocks.push(block.id);
|
|
345
|
+
this.mem.blockmap[block.id] = block;
|
|
346
|
+
if (!jwk) {
|
|
347
|
+
_context4.next = 14;
|
|
348
|
+
break;
|
|
287
349
|
}
|
|
350
|
+
_context4.next = 12;
|
|
351
|
+
return this.arweave.wallets.jwkToAddress(jwk);
|
|
352
|
+
case 12:
|
|
353
|
+
owner = _context4.sent;
|
|
354
|
+
this.mem.addrmap[owner] = jwk.n;
|
|
355
|
+
case 14:
|
|
288
356
|
res = {
|
|
289
357
|
id: tx.id,
|
|
290
358
|
status: 200,
|
|
291
359
|
statusText: "200"
|
|
292
360
|
};
|
|
293
|
-
_context4.next = 7;
|
|
294
|
-
return this.arweave.wallets.jwkToAddress(jwk);
|
|
295
|
-
case 7:
|
|
296
|
-
owner = _context4.sent;
|
|
297
|
-
this.mem.addrmap[owner] = jwk.n;
|
|
298
361
|
return _context4.abrupt("return", {
|
|
299
362
|
res: res,
|
|
300
363
|
err: err,
|
|
301
364
|
id: tx.id
|
|
302
365
|
});
|
|
303
|
-
case
|
|
366
|
+
case 16:
|
|
304
367
|
case "end":
|
|
305
368
|
return _context4.stop();
|
|
306
369
|
}
|
|
@@ -313,14 +376,47 @@ var AR = /*#__PURE__*/function (_MAR) {
|
|
|
313
376
|
}()
|
|
314
377
|
}, {
|
|
315
378
|
key: "tx",
|
|
316
|
-
value: function
|
|
317
|
-
|
|
318
|
-
|
|
379
|
+
value: function () {
|
|
380
|
+
var _tx = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(id) {
|
|
381
|
+
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
382
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
383
|
+
case 0:
|
|
384
|
+
return _context5.abrupt("return", this.mem.txs[id]);
|
|
385
|
+
case 1:
|
|
386
|
+
case "end":
|
|
387
|
+
return _context5.stop();
|
|
388
|
+
}
|
|
389
|
+
}, _callee5, this);
|
|
390
|
+
}));
|
|
391
|
+
function tx(_x8) {
|
|
392
|
+
return _tx.apply(this, arguments);
|
|
393
|
+
}
|
|
394
|
+
return tx;
|
|
395
|
+
}()
|
|
319
396
|
}, {
|
|
320
397
|
key: "data",
|
|
321
|
-
value: function
|
|
322
|
-
|
|
323
|
-
|
|
398
|
+
value: function () {
|
|
399
|
+
var _data2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(id, string) {
|
|
400
|
+
var _this$mem$txs$id$data, _this$mem$txs$id;
|
|
401
|
+
var tx, _data;
|
|
402
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
403
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
404
|
+
case 0:
|
|
405
|
+
tx = this.mem.txs[id];
|
|
406
|
+
_data = (_this$mem$txs$id$data = (_this$mem$txs$id = this.mem.txs[id]) === null || _this$mem$txs$id === void 0 ? void 0 : _this$mem$txs$id.data) !== null && _this$mem$txs$id$data !== void 0 ? _this$mem$txs$id$data : null;
|
|
407
|
+
if (tx.format === 2 && _data && string) _data = _base64url["default"].decode(_data);
|
|
408
|
+
return _context6.abrupt("return", _data);
|
|
409
|
+
case 4:
|
|
410
|
+
case "end":
|
|
411
|
+
return _context6.stop();
|
|
412
|
+
}
|
|
413
|
+
}, _callee6, this);
|
|
414
|
+
}));
|
|
415
|
+
function data(_x9, _x10) {
|
|
416
|
+
return _data2.apply(this, arguments);
|
|
417
|
+
}
|
|
418
|
+
return data;
|
|
419
|
+
}()
|
|
324
420
|
}]);
|
|
325
421
|
}(_ar["default"]);
|
|
326
422
|
var _default = exports["default"] = AR;
|
package/cjs/test.js
CHANGED
|
@@ -28,6 +28,12 @@ Object.defineProperty(exports, "GQL", {
|
|
|
28
28
|
return _tgql["default"];
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
|
+
Object.defineProperty(exports, "Server", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function get() {
|
|
34
|
+
return _server["default"];
|
|
35
|
+
}
|
|
36
|
+
});
|
|
31
37
|
Object.defineProperty(exports, "Src", {
|
|
32
38
|
enumerable: true,
|
|
33
39
|
get: function get() {
|
|
@@ -94,6 +100,7 @@ var _tgql = _interopRequireDefault(require("./tgql.js"));
|
|
|
94
100
|
var _armem = _interopRequireDefault(require("./armem.js"));
|
|
95
101
|
var _utils = require("./utils.js");
|
|
96
102
|
var _helpers = require("./helpers.js");
|
|
103
|
+
var _server = _interopRequireDefault(require("./server.js"));
|
|
97
104
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
98
105
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
99
106
|
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
@@ -122,4 +129,4 @@ var blueprint = exports.blueprint = /*#__PURE__*/function () {
|
|
|
122
129
|
return _ref.apply(this, arguments);
|
|
123
130
|
};
|
|
124
131
|
}();
|
|
125
|
-
var scheduler = exports.scheduler = "
|
|
132
|
+
var scheduler = exports.scheduler = "_GQ33BkPtZrqxA84vM8Zk-N2aO0toNNu_C-l-rawrBA";
|
package/esm/ao.js
CHANGED
|
@@ -343,6 +343,7 @@ class AO {
|
|
|
343
343
|
data: jsonToStr(data),
|
|
344
344
|
})
|
|
345
345
|
} catch (e) {
|
|
346
|
+
console.log(e)
|
|
346
347
|
err = e
|
|
347
348
|
}
|
|
348
349
|
return { err, pid }
|
|
@@ -540,7 +541,6 @@ class AO {
|
|
|
540
541
|
data: jsonToStr(data),
|
|
541
542
|
})
|
|
542
543
|
res = _res
|
|
543
|
-
|
|
544
544
|
let checks = []
|
|
545
545
|
if (!is(Array, check)) check = [check]
|
|
546
546
|
let i = 0
|
package/esm/aoconnect.js
CHANGED
|
@@ -24,7 +24,15 @@ import { is, clone, fromPairs, map, mergeLeft, isNil } from "ramda"
|
|
|
24
24
|
import AR from "./tar.js"
|
|
25
25
|
|
|
26
26
|
export const connect = mem => {
|
|
27
|
-
mem
|
|
27
|
+
const isMem = mem?.__type__ === "mem"
|
|
28
|
+
if (!isMem) {
|
|
29
|
+
let args = {}
|
|
30
|
+
if (mem?.SU_URL) {
|
|
31
|
+
args = mem
|
|
32
|
+
args.scheduler = scheduler
|
|
33
|
+
}
|
|
34
|
+
mem = new ArMem(args)
|
|
35
|
+
}
|
|
28
36
|
const ar = new AR({ mem })
|
|
29
37
|
const WeaveDrive = new weavedrive(ar).drive
|
|
30
38
|
|
|
@@ -92,11 +100,24 @@ export const connect = mem => {
|
|
|
92
100
|
let mod = opt.module ?? mem.modules["aos2_0_1"]
|
|
93
101
|
let _module = null
|
|
94
102
|
const __dirname = await dirname()
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
103
|
+
let format = null
|
|
104
|
+
let wasm = mem.wasms[mod]?.data
|
|
105
|
+
if (!wasm) {
|
|
106
|
+
if (mem.wasms[mod]?.file) {
|
|
107
|
+
wasm = readFileSync(
|
|
108
|
+
resolve(__dirname, `lua/${mem.wasms[mod].file}.wasm`),
|
|
109
|
+
)
|
|
110
|
+
format = mem.wasms[mod].format
|
|
111
|
+
} else if (mem.txs[mod]) {
|
|
112
|
+
wasm = Buffer.from(mem.txs[mod].data, "base64")
|
|
113
|
+
format = tags(mem.txs[mod].tags)["Module-Format"]
|
|
114
|
+
}
|
|
115
|
+
} else {
|
|
116
|
+
format = mem.wasms[mod].format
|
|
117
|
+
}
|
|
118
|
+
format ??= "wasm64-unknown-emscripten-draft_2024_02_15"
|
|
98
119
|
const handle = await AoLoader(wasm, {
|
|
99
|
-
format
|
|
120
|
+
format,
|
|
100
121
|
mode: "test",
|
|
101
122
|
WeaveDrive,
|
|
102
123
|
})
|
|
@@ -118,11 +139,19 @@ export const connect = mem => {
|
|
|
118
139
|
opt.tags ??= []
|
|
119
140
|
for (let v of opt.tags) if (v.name === "Type") ex = true
|
|
120
141
|
if (!ex) opt.tags.push({ name: "Type", value: "Process" })
|
|
121
|
-
const {
|
|
142
|
+
const {
|
|
143
|
+
id,
|
|
144
|
+
owner,
|
|
145
|
+
item,
|
|
146
|
+
tags: __tags,
|
|
147
|
+
} = await ar.dataitem({
|
|
148
|
+
item: opt.item,
|
|
122
149
|
data: opt.data,
|
|
123
150
|
signer: opt.signer,
|
|
124
151
|
tags: tags(opt.tags),
|
|
125
152
|
})
|
|
153
|
+
opt.tags = buildTags(null, __tags)
|
|
154
|
+
if (opt.item) opt.data = base64url.decode(item.data)
|
|
126
155
|
await ar.postItem(item, su.jwk)
|
|
127
156
|
const _tags = tags(opt.tags)
|
|
128
157
|
let res = null
|
|
@@ -141,7 +170,7 @@ export const connect = mem => {
|
|
|
141
170
|
txs: [],
|
|
142
171
|
opt,
|
|
143
172
|
}
|
|
144
|
-
if (_tags["On-Boot"]) {
|
|
173
|
+
if (_tags["On-Boot"] || true) {
|
|
145
174
|
let data = ""
|
|
146
175
|
if (_tags["On-Boot"] === "Data") data = opt.data ?? ""
|
|
147
176
|
else data = mem.msgs[_tags["On-Boot"]]?.data ?? ""
|
|
@@ -240,14 +269,26 @@ export const connect = mem => {
|
|
|
240
269
|
})
|
|
241
270
|
await ar.postItem(item, su.jwk)
|
|
242
271
|
try {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
272
|
+
let data = _opt.data ?? ""
|
|
273
|
+
let _tags = _opt.tags
|
|
274
|
+
let from = _opt.from ?? opt.from ?? owner
|
|
275
|
+
if (_opt.item) {
|
|
276
|
+
try {
|
|
277
|
+
data = base64url.decode(_opt.item.data)
|
|
278
|
+
_tags = _opt.item.tags
|
|
279
|
+
if (!from) {
|
|
280
|
+
const raw_owner = _opt.item.rawOwner
|
|
281
|
+
const hashBuffer = Buffer.from(
|
|
282
|
+
await crypto.subtle.digest("SHA-256", raw_owner),
|
|
283
|
+
)
|
|
284
|
+
from = base64url.encode(hashBuffer)
|
|
285
|
+
}
|
|
286
|
+
} catch (e) {
|
|
287
|
+
console.log(e)
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
// check: is owner=mu.addr right?
|
|
291
|
+
const msg = genMsg(opt.message, p, data, _tags, from, mu.addr)
|
|
251
292
|
const _env = genEnv({
|
|
252
293
|
pid: p.id,
|
|
253
294
|
owner: p.owner,
|
|
@@ -273,13 +314,13 @@ export const connect = mem => {
|
|
|
273
314
|
}
|
|
274
315
|
}
|
|
275
316
|
for (const v of res.Spawns ?? []) {
|
|
276
|
-
const
|
|
317
|
+
const __tags = tags(v.Tags)
|
|
277
318
|
await spawn({
|
|
278
|
-
module:
|
|
319
|
+
module: __tags.Module,
|
|
279
320
|
scheduler,
|
|
280
321
|
tags: v.Tags,
|
|
281
322
|
data: v.Data,
|
|
282
|
-
from:
|
|
323
|
+
from: __tags["From-Process"],
|
|
283
324
|
signer: mu.signer,
|
|
284
325
|
})
|
|
285
326
|
}
|
|
@@ -304,22 +345,27 @@ export const connect = mem => {
|
|
|
304
345
|
const message = async opt => {
|
|
305
346
|
const p = mem.env[opt.process]
|
|
306
347
|
let ex = false
|
|
307
|
-
|
|
308
|
-
opt.
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
348
|
+
let id = opt?.item?.id ?? ""
|
|
349
|
+
let owner = opt.owner ?? ""
|
|
350
|
+
let item = opt.item
|
|
351
|
+
if (!opt.item && opt.signer) {
|
|
352
|
+
for (let v of opt.tags) if (v.name === "Type") ex = true
|
|
353
|
+
opt.tags = buildTags(
|
|
354
|
+
null,
|
|
355
|
+
mergeLeft(tags(opt.tags ?? []), {
|
|
356
|
+
"Data-Protocol": "ao",
|
|
357
|
+
Variant: "ao.TN.1",
|
|
358
|
+
Type: "Message",
|
|
359
|
+
SDK: "aoconnect",
|
|
360
|
+
}),
|
|
361
|
+
)
|
|
362
|
+
;({ item, id, owner } = await ar.dataitem({
|
|
363
|
+
data: opt.data,
|
|
364
|
+
signer: opt.signer,
|
|
365
|
+
tags: tags(opt.tags),
|
|
366
|
+
target: opt.process,
|
|
367
|
+
}))
|
|
368
|
+
}
|
|
323
369
|
await ar.postItem(item, su.jwk)
|
|
324
370
|
mem.msgs[id] = opt
|
|
325
371
|
await assign({
|
|
@@ -355,6 +401,7 @@ export const connect = mem => {
|
|
|
355
401
|
},
|
|
356
402
|
spawn,
|
|
357
403
|
assign,
|
|
404
|
+
ar,
|
|
358
405
|
result: async opt => mem.env[opt.process].res[opt.message],
|
|
359
406
|
results: async opt => {
|
|
360
407
|
const p = mem.env[opt.process]
|
|
@@ -375,7 +422,11 @@ export const connect = mem => {
|
|
|
375
422
|
},
|
|
376
423
|
dryrun: async opt => {
|
|
377
424
|
const p = mem.env[opt.process]
|
|
378
|
-
|
|
425
|
+
let id = opt.id ?? ""
|
|
426
|
+
let owner = opt.owner ?? ""
|
|
427
|
+
if (!opt.id && opt.signer) {
|
|
428
|
+
;({ id, owner } = await ar.dataitem({ ...opt, target: opt.process }))
|
|
429
|
+
}
|
|
379
430
|
try {
|
|
380
431
|
const msg = genMsg(
|
|
381
432
|
id,
|
|
@@ -392,6 +443,14 @@ export const connect = mem => {
|
|
|
392
443
|
module: p.module,
|
|
393
444
|
auth: mu.addr,
|
|
394
445
|
})
|
|
446
|
+
function cloneMemory(memory) {
|
|
447
|
+
const buffer = memory.buffer.slice(0) // Clone the ArrayBuffer
|
|
448
|
+
return new WebAssembly.Memory({
|
|
449
|
+
initial: memory.buffer.byteLength / 65536, // Memory size in pages (64KB per page)
|
|
450
|
+
maximum: memory.maximum || undefined,
|
|
451
|
+
shared: memory.shared || false, // Retain sharing if applicable
|
|
452
|
+
})
|
|
453
|
+
}
|
|
395
454
|
const res = await p.handle(p.memory, msg, _env)
|
|
396
455
|
return res
|
|
397
456
|
} catch (e) {
|
package/esm/ar.js
CHANGED
|
@@ -18,6 +18,45 @@ class AR {
|
|
|
18
18
|
this.host = _arweave.host
|
|
19
19
|
this.protocol = _arweave.protocol
|
|
20
20
|
this.arweave = Arweave.init(_arweave)
|
|
21
|
+
const ArweaveUtils = this.arweave.utils
|
|
22
|
+
|
|
23
|
+
this.arweave.transactions.getData = async function (id, options) {
|
|
24
|
+
let data = undefined
|
|
25
|
+
try {
|
|
26
|
+
data = await this.chunks.downloadChunkedData(id)
|
|
27
|
+
} catch (error) {}
|
|
28
|
+
if (!data) {
|
|
29
|
+
try {
|
|
30
|
+
const {
|
|
31
|
+
data: resData,
|
|
32
|
+
ok,
|
|
33
|
+
status,
|
|
34
|
+
statusText,
|
|
35
|
+
} = await this.api.get(`/${id}`, { responseType: "arraybuffer" })
|
|
36
|
+
if (!ok) {
|
|
37
|
+
throw new Error(`Bad http status code`, {
|
|
38
|
+
cause: { status, statusText },
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
data = resData
|
|
42
|
+
} catch (error) {
|
|
43
|
+
console.error(
|
|
44
|
+
`Error while trying to download contiguous data from gateway cache for ${id}`,
|
|
45
|
+
)
|
|
46
|
+
console.error(error)
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (!data) {
|
|
50
|
+
throw new Error(`${id} data was not found!`)
|
|
51
|
+
}
|
|
52
|
+
if (options && options.decode && !options.string) return data
|
|
53
|
+
|
|
54
|
+
if (options && options.decode && options.string) {
|
|
55
|
+
return ArweaveUtils.bufferToString(data)
|
|
56
|
+
}
|
|
57
|
+
return ArweaveUtils.bufferTob64Url(data)
|
|
58
|
+
}
|
|
59
|
+
|
|
21
60
|
this.gql = new GQL({
|
|
22
61
|
url: `${_arweave.protocol}://${_arweave.host}:${_arweave.port}/graphql`,
|
|
23
62
|
})
|
|
@@ -196,7 +235,7 @@ class AR {
|
|
|
196
235
|
let tx = await this.arweave.createTransaction({ data: data })
|
|
197
236
|
let _tags = buildTags(null, tags)
|
|
198
237
|
for (const v of _tags) tx.addTag(v.name, v.value)
|
|
199
|
-
return this.postTx(tx, jwk)
|
|
238
|
+
return await this.postTx(tx, jwk)
|
|
200
239
|
}
|
|
201
240
|
}
|
|
202
241
|
|
|
@@ -220,10 +259,11 @@ class AR {
|
|
|
220
259
|
}
|
|
221
260
|
|
|
222
261
|
async data(txid, string = false) {
|
|
223
|
-
|
|
262
|
+
const _data = await this.arweave.transactions.getData(txid, {
|
|
224
263
|
decode: true,
|
|
225
264
|
string,
|
|
226
265
|
})
|
|
266
|
+
return _data
|
|
227
267
|
}
|
|
228
268
|
}
|
|
229
269
|
|