@eluvio/elv-client-js 3.1.95 → 3.2.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/dist/ElvClient-min.js +11 -15
- package/dist/ElvClient-node-min.js +13 -17
- package/dist/ElvFrameClient-min.js +9 -13
- package/dist/ElvPermissionsClient-min.js +9 -13
- package/dist/src/AuthorizationClient.js +1980 -2238
- package/dist/src/ContentObjectVerification.js +173 -164
- package/dist/src/Crypto.js +324 -376
- package/dist/src/ElvClient.js +1022 -1182
- package/dist/src/ElvWallet.js +95 -119
- package/dist/src/EthClient.js +896 -1040
- package/dist/src/FrameClient.js +300 -331
- package/dist/src/HttpClient.js +147 -153
- package/dist/src/Id.js +3 -1
- package/dist/src/PermissionsClient.js +1168 -1294
- package/dist/src/RemoteSigner.js +211 -263
- package/dist/src/UserProfileClient.js +1023 -1164
- package/dist/src/Utils.js +217 -212
- package/dist/src/client/ABRPublishing.js +858 -895
- package/dist/src/client/AccessGroups.js +959 -1102
- package/dist/src/client/ContentAccess.js +3433 -3717
- package/dist/src/client/ContentManagement.js +2068 -2252
- package/dist/src/client/Contracts.js +563 -647
- package/dist/src/client/Files.js +1757 -1886
- package/dist/src/client/NFT.js +112 -126
- package/dist/src/client/NTP.js +422 -478
- package/dist/src/index.js +11 -0
- package/dist/src/marketplaceClient/ClientMethods.js +1918 -0
- package/dist/src/marketplaceClient/Configuration.js +29 -0
- package/dist/src/marketplaceClient/Utils.js +304 -0
- package/dist/src/marketplaceClient/index.js +1553 -0
- package/dist/src/walletClient/ClientMethods.js +1828 -0
- package/dist/src/walletClient/Configuration.js +29 -0
- package/dist/src/walletClient/Utils.js +290 -0
- package/dist/src/walletClient/index.js +1459 -0
- package/package-lock.json +22001 -0
- package/package.json +6 -4
- package/src/AuthorizationClient.js +1 -1
- package/src/ElvClient.js +4 -1
- package/src/Utils.js +44 -3
- package/src/client/ContentAccess.js +4 -0
- package/src/index.js +7 -0
- package/src/walletClient/ClientMethods.js +1016 -0
- package/src/walletClient/Configuration.js +40 -0
- package/src/walletClient/README.md +185 -0
- package/src/walletClient/Utils.js +234 -0
- package/src/walletClient/index.js +884 -0
- package/testScripts/TestMarketplaceClient.js +25 -0
- package/utilities/ObjectSetPermission.js +4 -4
- package/utilities/SimpleIngest.js +41 -0
- package/utilities/example_files/simple_ingest_library_metadata.json +180 -0
- package/utilities/example_files/simple_ingest_library_metadata_animation_NFTs.json +133 -0
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
var _regeneratorRuntime = require("@babel/runtime/regenerator");
|
|
2
2
|
|
|
3
|
-
var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
|
|
4
|
-
|
|
5
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
6
|
-
|
|
7
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
8
|
-
|
|
9
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
10
|
-
|
|
11
3
|
var CBOR = require("cbor");
|
|
12
4
|
|
|
13
5
|
var SJCL = require("sjcl");
|
|
@@ -20,153 +12,151 @@ var Utils = require("./Utils");
|
|
|
20
12
|
|
|
21
13
|
var ContentObjectVerification = {
|
|
22
14
|
VerifyContentObject: function VerifyContentObject(_ref) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
15
|
+
var client, libraryId, objectId, versionHash, response, partHash, qpartsResponse, partVerification, qmdHash, metadataPartHash, metadataPartResponse, metadataVerification, metadata, qstructHash, structPartHash, structPartResponse, structVerification;
|
|
16
|
+
return _regeneratorRuntime.async(function VerifyContentObject$(_context) {
|
|
17
|
+
while (1) {
|
|
18
|
+
switch (_context.prev = _context.next) {
|
|
19
|
+
case 0:
|
|
20
|
+
client = _ref.client, libraryId = _ref.libraryId, objectId = _ref.objectId, versionHash = _ref.versionHash;
|
|
21
|
+
response = {
|
|
22
|
+
hash: versionHash
|
|
23
|
+
};
|
|
24
|
+
partHash = Utils.DecodeVersionHash(versionHash).partHash;
|
|
25
|
+
_context.next = 5;
|
|
26
|
+
return _regeneratorRuntime.awrap(client.QParts({
|
|
27
|
+
libraryId: libraryId,
|
|
28
|
+
objectId: objectId,
|
|
29
|
+
partHash: partHash,
|
|
30
|
+
format: "arrayBuffer"
|
|
31
|
+
}).then(function (response) {
|
|
32
|
+
return Buffer.from(response);
|
|
33
|
+
}));
|
|
34
|
+
|
|
35
|
+
case 5:
|
|
36
|
+
qpartsResponse = _context.sent;
|
|
37
|
+
partVerification = ContentObjectVerification._VerifyPart({
|
|
38
|
+
partHash: partHash,
|
|
39
|
+
qpartsResponse: qpartsResponse
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
if (partVerification.valid) {
|
|
43
|
+
response.qref = {
|
|
44
|
+
valid: true
|
|
45
|
+
};
|
|
46
|
+
} else {
|
|
47
|
+
response.qref = {
|
|
48
|
+
valid: false,
|
|
49
|
+
error: partVerification.error.message
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
response.qref.hash = partHash;
|
|
54
|
+
|
|
55
|
+
if (!response.qref.valid) {
|
|
56
|
+
_context.next = 32;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Validate Metadata
|
|
61
|
+
qmdHash = partVerification.cbor.QmdHash.value;
|
|
62
|
+
metadataPartHash = "hqp_" + MultiHash.toB58String(qmdHash.slice(1, qmdHash.length));
|
|
63
|
+
_context.next = 14;
|
|
64
|
+
return _regeneratorRuntime.awrap(client.QParts({
|
|
65
|
+
libraryId: libraryId,
|
|
66
|
+
objectId: objectId,
|
|
67
|
+
partHash: metadataPartHash,
|
|
68
|
+
format: "arrayBuffer"
|
|
69
|
+
}).then(function (response) {
|
|
70
|
+
return Buffer.from(response);
|
|
71
|
+
}));
|
|
72
|
+
|
|
73
|
+
case 14:
|
|
74
|
+
metadataPartResponse = _context.sent;
|
|
75
|
+
metadataVerification = ContentObjectVerification._VerifyPart({
|
|
76
|
+
partHash: metadataPartHash,
|
|
77
|
+
qpartsResponse: metadataPartResponse
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
if (metadataVerification.valid) {
|
|
81
|
+
response.qmd = {
|
|
82
|
+
valid: true
|
|
32
83
|
};
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
_context.next = 21;
|
|
108
|
-
return client.ContentObjectMetadata({
|
|
109
|
-
libraryId: libraryId,
|
|
110
|
-
objectId: objectId,
|
|
111
|
-
versionHash: partHash.replace("hqp_", "hq__")
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
case 21:
|
|
115
|
-
metadata = _context.sent;
|
|
116
|
-
response.qmd.check = ContentObjectVerification._VerifyMetadata({
|
|
117
|
-
metadataCbor: metadataVerification.cbor,
|
|
118
|
-
metadata: metadata
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
case 23:
|
|
122
|
-
// Validate Qstruct
|
|
123
|
-
qstructHash = partVerification.cbor.QstructHash.value;
|
|
124
|
-
structPartHash = "hqp_" + MultiHash.toB58String(qstructHash.slice(1, qstructHash.length));
|
|
125
|
-
_context.next = 27;
|
|
126
|
-
return client.QParts({
|
|
127
|
-
libraryId: libraryId,
|
|
128
|
-
objectId: objectId,
|
|
129
|
-
partHash: structPartHash,
|
|
130
|
-
format: "arrayBuffer"
|
|
131
|
-
}).then(function (response) {
|
|
132
|
-
return Buffer.from(response);
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
case 27:
|
|
136
|
-
structPartResponse = _context.sent;
|
|
137
|
-
structVerification = ContentObjectVerification._VerifyPart({
|
|
138
|
-
partHash: structPartHash,
|
|
139
|
-
qpartsResponse: structPartResponse
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
if (structVerification.valid) {
|
|
143
|
-
response.qstruct = {
|
|
144
|
-
valid: true
|
|
145
|
-
};
|
|
146
|
-
} else {
|
|
147
|
-
response.qstruct = {
|
|
148
|
-
valid: false,
|
|
149
|
-
error: structVerification.error.message
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
response.qstruct.hash = structPartHash;
|
|
154
|
-
|
|
155
|
-
if (response.qstruct.valid) {
|
|
156
|
-
response.qstruct.parts = ContentObjectVerification._FormatQStruct(structVerification.cbor.Parts);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
case 32:
|
|
160
|
-
response.valid = response.qref.valid && response.qmd.valid && response.qstruct.valid && (!response.qmd.check || response.qmd.check.valid);
|
|
161
|
-
return _context.abrupt("return", response);
|
|
162
|
-
|
|
163
|
-
case 34:
|
|
164
|
-
case "end":
|
|
165
|
-
return _context.stop();
|
|
166
|
-
}
|
|
84
|
+
} else {
|
|
85
|
+
response.qmd = {
|
|
86
|
+
valid: false,
|
|
87
|
+
error: metadataVerification.error.message
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
response.qmd.hash = metadataPartHash;
|
|
92
|
+
|
|
93
|
+
if (!(response.qmd.valid && libraryId)) {
|
|
94
|
+
_context.next = 23;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
_context.next = 21;
|
|
99
|
+
return _regeneratorRuntime.awrap(client.ContentObjectMetadata({
|
|
100
|
+
libraryId: libraryId,
|
|
101
|
+
objectId: objectId,
|
|
102
|
+
versionHash: partHash.replace("hqp_", "hq__")
|
|
103
|
+
}));
|
|
104
|
+
|
|
105
|
+
case 21:
|
|
106
|
+
metadata = _context.sent;
|
|
107
|
+
response.qmd.check = ContentObjectVerification._VerifyMetadata({
|
|
108
|
+
metadataCbor: metadataVerification.cbor,
|
|
109
|
+
metadata: metadata
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
case 23:
|
|
113
|
+
// Validate Qstruct
|
|
114
|
+
qstructHash = partVerification.cbor.QstructHash.value;
|
|
115
|
+
structPartHash = "hqp_" + MultiHash.toB58String(qstructHash.slice(1, qstructHash.length));
|
|
116
|
+
_context.next = 27;
|
|
117
|
+
return _regeneratorRuntime.awrap(client.QParts({
|
|
118
|
+
libraryId: libraryId,
|
|
119
|
+
objectId: objectId,
|
|
120
|
+
partHash: structPartHash,
|
|
121
|
+
format: "arrayBuffer"
|
|
122
|
+
}).then(function (response) {
|
|
123
|
+
return Buffer.from(response);
|
|
124
|
+
}));
|
|
125
|
+
|
|
126
|
+
case 27:
|
|
127
|
+
structPartResponse = _context.sent;
|
|
128
|
+
structVerification = ContentObjectVerification._VerifyPart({
|
|
129
|
+
partHash: structPartHash,
|
|
130
|
+
qpartsResponse: structPartResponse
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
if (structVerification.valid) {
|
|
134
|
+
response.qstruct = {
|
|
135
|
+
valid: true
|
|
136
|
+
};
|
|
137
|
+
} else {
|
|
138
|
+
response.qstruct = {
|
|
139
|
+
valid: false,
|
|
140
|
+
error: structVerification.error.message
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
response.qstruct.hash = structPartHash;
|
|
145
|
+
|
|
146
|
+
if (response.qstruct.valid) {
|
|
147
|
+
response.qstruct.parts = ContentObjectVerification._FormatQStruct(structVerification.cbor.Parts);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
case 32:
|
|
151
|
+
response.valid = response.qref.valid && response.qmd.valid && response.qstruct.valid && (!response.qmd.check || response.qmd.check.valid);
|
|
152
|
+
return _context.abrupt("return", response);
|
|
153
|
+
|
|
154
|
+
case 34:
|
|
155
|
+
case "end":
|
|
156
|
+
return _context.stop();
|
|
167
157
|
}
|
|
168
|
-
}
|
|
169
|
-
})
|
|
158
|
+
}
|
|
159
|
+
});
|
|
170
160
|
},
|
|
171
161
|
// Content verification methods //
|
|
172
162
|
_FormatQStruct: function _FormatQStruct(structParts) {
|
|
@@ -277,12 +267,12 @@ var ContentObjectVerification = {
|
|
|
277
267
|
}).concat(metadataKeys.filter(function (x) {
|
|
278
268
|
return !cborKeys.includes(x);
|
|
279
269
|
}));
|
|
280
|
-
|
|
281
|
-
var
|
|
282
|
-
|
|
270
|
+
var _iteratorNormalCompletion = true;
|
|
271
|
+
var _didIteratorError = false;
|
|
272
|
+
var _iteratorError = undefined;
|
|
283
273
|
|
|
284
274
|
try {
|
|
285
|
-
for (_iterator.
|
|
275
|
+
for (var _iterator = differentKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
286
276
|
var key = _step.value;
|
|
287
277
|
var cborValue = metadataCbor[key];
|
|
288
278
|
var metadataValue = metadata[key];
|
|
@@ -294,16 +284,26 @@ var ContentObjectVerification = {
|
|
|
294
284
|
} // Deep comparison of up to 5 keys
|
|
295
285
|
|
|
296
286
|
} catch (err) {
|
|
297
|
-
|
|
287
|
+
_didIteratorError = true;
|
|
288
|
+
_iteratorError = err;
|
|
298
289
|
} finally {
|
|
299
|
-
|
|
290
|
+
try {
|
|
291
|
+
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
|
292
|
+
_iterator["return"]();
|
|
293
|
+
}
|
|
294
|
+
} finally {
|
|
295
|
+
if (_didIteratorError) {
|
|
296
|
+
throw _iteratorError;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
300
299
|
}
|
|
301
300
|
|
|
302
|
-
var
|
|
303
|
-
|
|
301
|
+
var _iteratorNormalCompletion2 = true;
|
|
302
|
+
var _didIteratorError2 = false;
|
|
303
|
+
var _iteratorError2 = undefined;
|
|
304
304
|
|
|
305
305
|
try {
|
|
306
|
-
for (_iterator2.
|
|
306
|
+
for (var _iterator2 = Object.keys(metadataCbor).slice(0, 5)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
307
307
|
var fieldToValidate = _step2.value;
|
|
308
308
|
var _cborValue = metadataCbor[fieldToValidate];
|
|
309
309
|
var _metadataValue = metadata[fieldToValidate];
|
|
@@ -317,9 +317,18 @@ var ContentObjectVerification = {
|
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
319
|
} catch (err) {
|
|
320
|
-
|
|
320
|
+
_didIteratorError2 = true;
|
|
321
|
+
_iteratorError2 = err;
|
|
321
322
|
} finally {
|
|
322
|
-
|
|
323
|
+
try {
|
|
324
|
+
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
|
325
|
+
_iterator2["return"]();
|
|
326
|
+
}
|
|
327
|
+
} finally {
|
|
328
|
+
if (_didIteratorError2) {
|
|
329
|
+
throw _iteratorError2;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
323
332
|
}
|
|
324
333
|
|
|
325
334
|
if (response.invalidValues.length !== 0) {
|