@eluvio/elv-client-js 4.0.136 → 4.0.138
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 +14 -15
- package/dist/ElvClient-node-min.js +13 -14
- package/dist/ElvFrameClient-min.js +10 -10
- package/dist/ElvPermissionsClient-min.js +9 -9
- package/dist/ElvWalletClient-min.js +14 -15
- package/dist/ElvWalletClient-node-min.js +13 -14
- package/dist/src/AuthorizationClient.js +12 -9
- package/dist/src/ContentObjectAudit.js +3 -3
- package/dist/src/ContentObjectVerification.js +3 -3
- package/dist/src/Crypto.js +2 -2
- package/dist/src/ElvClient.js +397 -522
- package/dist/src/ElvWallet.js +5 -7
- package/dist/src/EthClient.js +9 -8
- package/dist/src/FrameClient.js +10 -9
- package/dist/src/HttpClient.js +5 -5
- package/dist/src/Id.js +2 -1
- package/dist/src/PermissionsClient.js +19 -31
- package/dist/src/RemoteSigner.js +11 -10
- package/dist/src/UserProfileClient.js +20 -35
- package/dist/src/Utils.js +3 -2
- package/dist/src/client/ABRPublishing.js +196 -342
- package/dist/src/client/AccessGroups.js +2 -2
- package/dist/src/client/ContentAccess.js +12 -8
- package/dist/src/client/ContentManagement.js +83 -99
- package/dist/src/client/Contracts.js +2 -2
- package/dist/src/client/Files.js +2 -2
- package/dist/src/client/LiveConf.js +26 -43
- package/dist/src/client/LiveStream.js +63 -65
- package/dist/src/client/NFT.js +2 -2
- package/dist/src/client/Shares.js +24 -47
- package/dist/src/walletClient/ClientMethods.js +2 -2
- package/dist/src/walletClient/Profile.js +2 -2
- package/dist/src/walletClient/Utils.js +2 -2
- package/dist/src/walletClient/index.js +50 -65
- package/package.json +1 -1
- package/src/AuthorizationClient.js +2 -1
- package/src/ElvClient.js +2 -0
- package/src/EthClient.js +1 -1
- package/src/client/ABRPublishing.js +1 -1
- package/src/client/ContentAccess.js +30 -71
- package/src/walletClient/index.js +10 -6
|
@@ -7,8 +7,8 @@ var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
|
|
|
7
7
|
var _classCallCheck = require("@babel/runtime/helpers/classCallCheck");
|
|
8
8
|
var _createClass = require("@babel/runtime/helpers/createClass");
|
|
9
9
|
var _excluded = ["code", "address", "type", "authToken", "expiresAt"];
|
|
10
|
-
function ownKeys(
|
|
11
|
-
function _objectSpread(
|
|
10
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
11
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
12
12
|
var _require = require("../ElvClient"),
|
|
13
13
|
ElvClient = _require.ElvClient;
|
|
14
14
|
var Configuration = require("./Configuration");
|
|
@@ -79,7 +79,7 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
79
79
|
this.utils = client.utils;
|
|
80
80
|
this.ForbiddenMethods = ElvWalletClient.ForbiddenMethods;
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
_createClass(ElvWalletClient, [{
|
|
83
83
|
key: "Log",
|
|
84
84
|
value: function Log(message) {
|
|
85
85
|
var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
@@ -136,7 +136,7 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
136
136
|
*/
|
|
137
137
|
}, {
|
|
138
138
|
key: "PersonalSign",
|
|
139
|
-
value:
|
|
139
|
+
value: function () {
|
|
140
140
|
var _PersonalSign = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref2) {
|
|
141
141
|
var message, parameters, url;
|
|
142
142
|
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
@@ -265,7 +265,7 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
265
265
|
return _PersonalSign.apply(this, arguments);
|
|
266
266
|
}
|
|
267
267
|
return PersonalSign;
|
|
268
|
-
}()
|
|
268
|
+
}()
|
|
269
269
|
}, {
|
|
270
270
|
key: "LogInURL",
|
|
271
271
|
value: function () {
|
|
@@ -344,7 +344,7 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
344
344
|
*/
|
|
345
345
|
}, {
|
|
346
346
|
key: "LogIn",
|
|
347
|
-
value:
|
|
347
|
+
value: function () {
|
|
348
348
|
var _LogIn = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(_ref5) {
|
|
349
349
|
var _this = this;
|
|
350
350
|
var _ref5$method, method, provider, _ref5$mode, mode, callbackUrl, marketplaceParams, _ref5$clearLogin, clearLogin, callback, loginUrl;
|
|
@@ -463,10 +463,9 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
463
463
|
*
|
|
464
464
|
* @methodGroup Login
|
|
465
465
|
*/
|
|
466
|
-
)
|
|
467
466
|
}, {
|
|
468
467
|
key: "LogOut",
|
|
469
|
-
value:
|
|
468
|
+
value: function () {
|
|
470
469
|
var _LogOut = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {
|
|
471
470
|
return _regeneratorRuntime.wrap(function _callee8$(_context8) {
|
|
472
471
|
while (1) switch (_context8.prev = _context8.next) {
|
|
@@ -509,7 +508,7 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
509
508
|
return _LogOut.apply(this, arguments);
|
|
510
509
|
}
|
|
511
510
|
return LogOut;
|
|
512
|
-
}()
|
|
511
|
+
}()
|
|
513
512
|
}, {
|
|
514
513
|
key: "TokenStatus",
|
|
515
514
|
value: function () {
|
|
@@ -549,7 +548,7 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
549
548
|
*/
|
|
550
549
|
}, {
|
|
551
550
|
key: "Authenticate",
|
|
552
|
-
value:
|
|
551
|
+
value: function () {
|
|
553
552
|
var _Authenticate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(_ref7) {
|
|
554
553
|
var token, decodedToken;
|
|
555
554
|
return _regeneratorRuntime.wrap(function _callee10$(_context10) {
|
|
@@ -606,7 +605,6 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
606
605
|
* @param {string=} email - Email address of the user. If not specified, this method will attempt to extract the email from the ID token.
|
|
607
606
|
* @param {Array<string>=} signerURIs - (Only if using custom OAuth) - URIs corresponding to the key server(s) to use
|
|
608
607
|
* @param {boolean=} shareEmail=false - Whether or not the user consents to sharing their email
|
|
609
|
-
* @param {number=} tokenDuration=24 - Token expiration duration, in hours
|
|
610
608
|
*
|
|
611
609
|
* @returns {Promise<Object>} - Returns an authorization tokens that can be used to initialize the client using <a href="#Authenticate">Authenticate</a>.
|
|
612
610
|
* Save this token to avoid having to reauthenticate with OAuth. This token expires after 24 hours.
|
|
@@ -616,26 +614,26 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
616
614
|
* - signingToken - Identical to `authToken`, but also includes the ability to perform arbitrary signatures with the custodial wallet. This token should be protected and should not be
|
|
617
615
|
* shared with third parties.
|
|
618
616
|
*/
|
|
619
|
-
)
|
|
620
617
|
}, {
|
|
621
618
|
key: "AuthenticateOAuth",
|
|
622
|
-
value:
|
|
619
|
+
value: function () {
|
|
623
620
|
var _AuthenticateOAuth = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(_ref8) {
|
|
624
|
-
var idToken, tenantId, email, signerURIs, _ref8$shareEmail, shareEmail, _ref8$extraData, extraData, nonce, _ref8$createRemoteTok, createRemoteToken, _ref8$force, force,
|
|
621
|
+
var idToken, tenantId, email, signerURIs, _ref8$shareEmail, shareEmail, _ref8$extraData, extraData, nonce, _ref8$createRemoteTok, createRemoteToken, _ref8$force, force, tokenDuration, fabricToken, expiresAt, tokenResponse, address, decodedToken;
|
|
625
622
|
return _regeneratorRuntime.wrap(function _callee11$(_context11) {
|
|
626
623
|
while (1) switch (_context11.prev = _context11.next) {
|
|
627
624
|
case 0:
|
|
628
|
-
idToken = _ref8.idToken, tenantId = _ref8.tenantId, email = _ref8.email, signerURIs = _ref8.signerURIs, _ref8$shareEmail = _ref8.shareEmail, shareEmail = _ref8$shareEmail === void 0 ? false : _ref8$shareEmail, _ref8$extraData = _ref8.extraData, extraData = _ref8$extraData === void 0 ? {} : _ref8$extraData, nonce = _ref8.nonce, _ref8$createRemoteTok = _ref8.createRemoteToken, createRemoteToken = _ref8$createRemoteTok === void 0 ? true : _ref8$createRemoteTok, _ref8$force = _ref8.force, force = _ref8$force === void 0 ? false : _ref8$force
|
|
625
|
+
idToken = _ref8.idToken, tenantId = _ref8.tenantId, email = _ref8.email, signerURIs = _ref8.signerURIs, _ref8$shareEmail = _ref8.shareEmail, shareEmail = _ref8$shareEmail === void 0 ? false : _ref8$shareEmail, _ref8$extraData = _ref8.extraData, extraData = _ref8$extraData === void 0 ? {} : _ref8$extraData, nonce = _ref8.nonce, _ref8$createRemoteTok = _ref8.createRemoteToken, createRemoteToken = _ref8$createRemoteTok === void 0 ? true : _ref8$createRemoteTok, _ref8$force = _ref8.force, force = _ref8$force === void 0 ? false : _ref8$force;
|
|
626
|
+
tokenDuration = 24;
|
|
629
627
|
if (!(!tenantId && this.selectedMarketplaceInfo)) {
|
|
630
|
-
_context11.next =
|
|
628
|
+
_context11.next = 6;
|
|
631
629
|
break;
|
|
632
630
|
}
|
|
633
|
-
_context11.next =
|
|
631
|
+
_context11.next = 5;
|
|
634
632
|
return this.AvailableMarketplaces();
|
|
635
|
-
case 4:
|
|
636
|
-
tenantId = this.selectedMarketplaceInfo.tenantId;
|
|
637
633
|
case 5:
|
|
638
|
-
|
|
634
|
+
tenantId = this.selectedMarketplaceInfo.tenantId;
|
|
635
|
+
case 6:
|
|
636
|
+
_context11.next = 8;
|
|
639
637
|
return this.client.SetRemoteSigner({
|
|
640
638
|
idToken: idToken,
|
|
641
639
|
tenantId: tenantId,
|
|
@@ -645,55 +643,54 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
645
643
|
}),
|
|
646
644
|
unsignedPublicAuth: true
|
|
647
645
|
});
|
|
648
|
-
case
|
|
646
|
+
case 8:
|
|
649
647
|
if (!(createRemoteToken && this.client.signer.remoteSigner)) {
|
|
650
|
-
_context11.next =
|
|
648
|
+
_context11.next = 17;
|
|
651
649
|
break;
|
|
652
650
|
}
|
|
653
|
-
expiresAt = Date.now() +
|
|
654
|
-
_context11.next =
|
|
651
|
+
expiresAt = Date.now() + 24 * 60 * 60 * 1000;
|
|
652
|
+
_context11.next = 12;
|
|
655
653
|
return this.client.signer.RetrieveCSAT({
|
|
656
654
|
email: email,
|
|
657
655
|
nonce: nonce,
|
|
658
656
|
tenantId: tenantId,
|
|
659
|
-
force: force
|
|
660
|
-
duration: tokenDuration
|
|
657
|
+
force: force
|
|
661
658
|
});
|
|
662
|
-
case
|
|
659
|
+
case 12:
|
|
663
660
|
tokenResponse = _context11.sent;
|
|
664
661
|
fabricToken = tokenResponse.token;
|
|
665
662
|
nonce = tokenResponse.nonce;
|
|
666
|
-
_context11.next =
|
|
663
|
+
_context11.next = 21;
|
|
667
664
|
break;
|
|
668
|
-
case
|
|
665
|
+
case 17:
|
|
669
666
|
expiresAt = Date.now() + tokenDuration * 60 * 60 * 1000;
|
|
670
|
-
_context11.next =
|
|
667
|
+
_context11.next = 20;
|
|
671
668
|
return this.client.CreateFabricToken({
|
|
672
|
-
duration:
|
|
669
|
+
duration: tokenDuration * 60 * 60 * 1000,
|
|
673
670
|
context: email ? {
|
|
674
671
|
usr: {
|
|
675
672
|
email: email
|
|
676
673
|
}
|
|
677
674
|
} : {}
|
|
678
675
|
});
|
|
679
|
-
case 19:
|
|
680
|
-
fabricToken = _context11.sent;
|
|
681
676
|
case 20:
|
|
677
|
+
fabricToken = _context11.sent;
|
|
678
|
+
case 21:
|
|
682
679
|
address = this.client.utils.FormatAddress(this.client.CurrentAccountAddress());
|
|
683
680
|
if (email) {
|
|
684
|
-
_context11.next =
|
|
681
|
+
_context11.next = 31;
|
|
685
682
|
break;
|
|
686
683
|
}
|
|
687
|
-
_context11.prev =
|
|
684
|
+
_context11.prev = 23;
|
|
688
685
|
decodedToken = JSON.parse(this.utils.FromB64URL(idToken.split(".")[1]));
|
|
689
686
|
email = decodedToken.email;
|
|
690
|
-
_context11.next =
|
|
687
|
+
_context11.next = 31;
|
|
691
688
|
break;
|
|
692
|
-
case
|
|
693
|
-
_context11.prev =
|
|
694
|
-
_context11.t0 = _context11["catch"](
|
|
689
|
+
case 28:
|
|
690
|
+
_context11.prev = 28;
|
|
691
|
+
_context11.t0 = _context11["catch"](23);
|
|
695
692
|
throw Error("Failed to decode ID token");
|
|
696
|
-
case
|
|
693
|
+
case 31:
|
|
697
694
|
this.client.SetStaticToken({
|
|
698
695
|
token: fabricToken
|
|
699
696
|
});
|
|
@@ -723,11 +720,11 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
723
720
|
nonce: nonce
|
|
724
721
|
})
|
|
725
722
|
});
|
|
726
|
-
case
|
|
723
|
+
case 33:
|
|
727
724
|
case "end":
|
|
728
725
|
return _context11.stop();
|
|
729
726
|
}
|
|
730
|
-
}, _callee11, this, [[
|
|
727
|
+
}, _callee11, this, [[23, 28]]);
|
|
731
728
|
}));
|
|
732
729
|
function AuthenticateOAuth(_x13) {
|
|
733
730
|
return _AuthenticateOAuth.apply(this, arguments);
|
|
@@ -747,10 +744,9 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
747
744
|
* @returns {Promise<string>} - Returns an authorization token that can be used to initialize the client using <a href="#Authenticate">Authenticate</a>.
|
|
748
745
|
* Save this token to avoid having to reauthenticate. This token expires after 24 hours.
|
|
749
746
|
*/
|
|
750
|
-
)
|
|
751
747
|
}, {
|
|
752
748
|
key: "AuthenticateExternalWallet",
|
|
753
|
-
value:
|
|
749
|
+
value: function () {
|
|
754
750
|
var _AuthenticateExternalWallet = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(_ref9) {
|
|
755
751
|
var _this2 = this;
|
|
756
752
|
var address, _ref9$tokenDuration, tokenDuration, _ref9$walletName, walletName, Sign, expiresAt, fabricToken;
|
|
@@ -819,7 +815,6 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
819
815
|
*
|
|
820
816
|
* @returns {string} - The client auth token
|
|
821
817
|
*/
|
|
822
|
-
)
|
|
823
818
|
}, {
|
|
824
819
|
key: "ClientAuthToken",
|
|
825
820
|
value: function ClientAuthToken() {
|
|
@@ -1883,7 +1878,7 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
1883
1878
|
*/
|
|
1884
1879
|
}, {
|
|
1885
1880
|
key: "Initialize",
|
|
1886
|
-
value:
|
|
1881
|
+
value: function () {
|
|
1887
1882
|
var _Initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee25(_ref24) {
|
|
1888
1883
|
var client, _ref24$appId, appId, _ref24$network, network, _ref24$mode, mode, localization, marketplaceParams, previewMarketplaceId, _ref24$storeAuthToken, storeAuthToken, _ref24$skipMarketplac, skipMarketplaceLoad, _ref25, tenantSlug, marketplaceSlug, marketplaceId, marketplaceHash, previewMarketplaceHash, walletClient, url, savedToken;
|
|
1889
1884
|
return _regeneratorRuntime.wrap(function _callee25$(_context25) {
|
|
@@ -1983,46 +1978,36 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
1983
1978
|
_context25.prev = 35;
|
|
1984
1979
|
_context25.t0 = _context25["catch"](28);
|
|
1985
1980
|
case 37:
|
|
1986
|
-
_context25.
|
|
1987
|
-
_context25.next = 40;
|
|
1981
|
+
_context25.next = 39;
|
|
1988
1982
|
return client.utils.ResponseToJson(client.MakeAuthServiceRequest({
|
|
1989
1983
|
path: "/as/mw/toplevel",
|
|
1990
1984
|
queryParams: {
|
|
1991
1985
|
env: mode
|
|
1992
1986
|
}
|
|
1993
1987
|
}));
|
|
1994
|
-
case
|
|
1988
|
+
case 39:
|
|
1995
1989
|
walletClient.topLevelInfo = _context25.sent;
|
|
1996
|
-
_context25.next = 47;
|
|
1997
|
-
break;
|
|
1998
|
-
case 43:
|
|
1999
|
-
_context25.prev = 43;
|
|
2000
|
-
_context25.t1 = _context25["catch"](37);
|
|
2001
|
-
// eslint-disable-next-line no-console
|
|
2002
|
-
console.error("Unable to load top level info:");
|
|
2003
|
-
// eslint-disable-next-line no-console
|
|
2004
|
-
console.error(_context25.t1);
|
|
2005
|
-
case 47:
|
|
2006
1990
|
if (skipMarketplaceLoad) {
|
|
2007
|
-
_context25.next =
|
|
1991
|
+
_context25.next = 43;
|
|
2008
1992
|
break;
|
|
2009
1993
|
}
|
|
2010
|
-
_context25.next =
|
|
1994
|
+
_context25.next = 43;
|
|
2011
1995
|
return walletClient.LoadAvailableMarketplaces();
|
|
2012
|
-
case
|
|
1996
|
+
case 43:
|
|
2013
1997
|
return _context25.abrupt("return", walletClient);
|
|
2014
|
-
case
|
|
1998
|
+
case 44:
|
|
2015
1999
|
case "end":
|
|
2016
2000
|
return _context25.stop();
|
|
2017
2001
|
}
|
|
2018
|
-
}, _callee25, null, [[28, 35]
|
|
2002
|
+
}, _callee25, null, [[28, 35]]);
|
|
2019
2003
|
}));
|
|
2020
2004
|
function Initialize(_x25) {
|
|
2021
2005
|
return _Initialize.apply(this, arguments);
|
|
2022
2006
|
}
|
|
2023
2007
|
return Initialize;
|
|
2024
|
-
}()
|
|
2008
|
+
}()
|
|
2025
2009
|
}]);
|
|
2010
|
+
return ElvWalletClient;
|
|
2026
2011
|
}();
|
|
2027
2012
|
Object.assign(ElvWalletClient.prototype, require("./ClientMethods"));
|
|
2028
2013
|
Object.assign(ElvWalletClient.prototype, require("./Profile"));
|
package/package.json
CHANGED
|
@@ -122,6 +122,7 @@ class AuthorizationClient {
|
|
|
122
122
|
const isWalletRequest =
|
|
123
123
|
objectId &&
|
|
124
124
|
this.client.signer &&
|
|
125
|
+
!this.client.signer.anonymous &&
|
|
125
126
|
this.client.utils.EqualAddress(
|
|
126
127
|
await this.client.userProfileClient.WalletAddress(false),
|
|
127
128
|
this.client.utils.HashToAddress(objectId)
|
|
@@ -958,7 +959,7 @@ class AuthorizationClient {
|
|
|
958
959
|
|
|
959
960
|
const kmsUrl = KMSUrls[i];
|
|
960
961
|
if(!this.providers[kmsUrl]) {
|
|
961
|
-
this.providers[kmsUrl] = new Ethers.providers.
|
|
962
|
+
this.providers[kmsUrl] = new Ethers.providers.StaticJsonRpcProvider(kmsUrl, this.client.networkId);
|
|
962
963
|
}
|
|
963
964
|
|
|
964
965
|
return await this.providers[kmsUrl].send(methodName, params);
|
package/src/ElvClient.js
CHANGED
|
@@ -434,6 +434,7 @@ class ElvClient {
|
|
|
434
434
|
if(!this.signer) {
|
|
435
435
|
const wallet = this.GenerateWallet();
|
|
436
436
|
const signer = wallet.AddAccountFromMnemonic({mnemonic: wallet.GenerateMnemonic()});
|
|
437
|
+
signer.anonymous = true;
|
|
437
438
|
|
|
438
439
|
this.SetSigner({signer, reset: false});
|
|
439
440
|
this.SetStaticToken({token: staticToken});
|
|
@@ -739,6 +740,7 @@ class ElvClient {
|
|
|
739
740
|
);
|
|
740
741
|
|
|
741
742
|
if(!nodeUrl) {
|
|
743
|
+
// eslint-disable-next-line no-console
|
|
742
744
|
console.error(`No node url found for write token: ${writeToken}`);
|
|
743
745
|
|
|
744
746
|
return "";
|
package/src/EthClient.js
CHANGED
|
@@ -50,7 +50,7 @@ class EthClient {
|
|
|
50
50
|
|
|
51
51
|
Provider() {
|
|
52
52
|
if(!this.provider) {
|
|
53
|
-
this.provider = new Ethers.providers.
|
|
53
|
+
this.provider = new Ethers.providers.StaticJsonRpcProvider(this.ethereumURIs[this.ethereumURIIndex], this.networkId);
|
|
54
54
|
|
|
55
55
|
// Ethers.js uses eth_getCode to ensure a contract is deployed and nothing else - this pulls a large chunk of pointless
|
|
56
56
|
// data every time a contract is initialized in the client (often). Ethers.js just checks that the code isn't == "0x", so
|
|
@@ -832,7 +832,7 @@ exports.FinalizeABRMezzanine = async function({libraryId, objectId, preFinalizeF
|
|
|
832
832
|
}
|
|
833
833
|
|
|
834
834
|
const finalizeResponse = {};
|
|
835
|
-
if
|
|
835
|
+
if(!writeToken) {
|
|
836
836
|
finalizeResponse = await this.FinalizeContentObject({
|
|
837
837
|
libraryId,
|
|
838
838
|
objectId: objectId,
|
|
@@ -584,17 +584,21 @@ exports.ContentObjects = async function({libraryId, filterOptions={}}) {
|
|
|
584
584
|
*
|
|
585
585
|
* @returns {Promise<Object>} - Description of content object
|
|
586
586
|
*/
|
|
587
|
-
exports.ContentObject = async function({
|
|
588
|
-
|
|
587
|
+
exports.ContentObject = async function({objectId, versionHash, writeToken}) {
|
|
588
|
+
this.Log(`Retrieving content object: ${writeToken || versionHash || objectId}`);
|
|
589
589
|
|
|
590
|
-
|
|
590
|
+
if(writeToken) {
|
|
591
|
+
objectId = this.utils.DecodeWriteToken(writeToken).objectId;
|
|
592
|
+
} else if(versionHash) {
|
|
593
|
+
objectId = this.utils.DecodeVersionHash(versionHash).objectId;
|
|
594
|
+
}
|
|
591
595
|
|
|
592
|
-
|
|
596
|
+
ValidateObject(objectId);
|
|
593
597
|
|
|
594
598
|
let path = UrlJoin("q", writeToken || versionHash || objectId);
|
|
595
599
|
|
|
596
600
|
return await this.HttpClient.RequestJsonBody({
|
|
597
|
-
headers: await this.authClient.AuthorizationHeader({
|
|
601
|
+
headers: await this.authClient.AuthorizationHeader({objectId, versionHash}),
|
|
598
602
|
method: "GET",
|
|
599
603
|
path: path
|
|
600
604
|
});
|
|
@@ -664,6 +668,24 @@ exports.ContentObjectTenantId = async function({objectId, versionHash}) {
|
|
|
664
668
|
* @returns {Promise<string>} - Library ID of the object
|
|
665
669
|
*/
|
|
666
670
|
exports.ContentObjectLibraryId = async function({objectId, versionHash}) {
|
|
671
|
+
if(versionHash) {
|
|
672
|
+
objectId = this.utils.DecodeVersionHash(versionHash).objectId;
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
// Cache results because they will never change
|
|
676
|
+
if(!this.objectLibraryIds[objectId]) {
|
|
677
|
+
try {
|
|
678
|
+
this.objectLibraryIds[objectId] = (await this.ContentObject({objectId, versionHash})).qlib_id;
|
|
679
|
+
} catch(error) {
|
|
680
|
+
error.message = `Unable to determine latest library for ${versionHash || objectId}`;
|
|
681
|
+
throw error;
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
return this.objectLibraryIds[objectId];
|
|
686
|
+
};
|
|
687
|
+
|
|
688
|
+
exports.ContentObjectLibraryId2 = async function({objectId, versionHash}) {
|
|
667
689
|
versionHash ? ValidateVersion(versionHash) : ValidateObject(objectId);
|
|
668
690
|
|
|
669
691
|
if(versionHash) { objectId = this.utils.DecodeVersionHash(versionHash).objectId; }
|
|
@@ -1065,57 +1087,8 @@ exports.ContentObjectVersions = async function({libraryId, objectId}) {
|
|
|
1065
1087
|
});
|
|
1066
1088
|
};
|
|
1067
1089
|
|
|
1068
|
-
/**
|
|
1069
|
-
* Retrieve the version hash of the latest version of the specified object from chain
|
|
1070
|
-
*
|
|
1071
|
-
* @methodGroup Content Objects
|
|
1072
|
-
* @namedParams
|
|
1073
|
-
* @param {string=} objectId - ID of the object
|
|
1074
|
-
* @param {string=} versionHash - Version hash of the object
|
|
1075
|
-
*
|
|
1076
|
-
* @returns {Promise<string>} - The latest version hash of the object
|
|
1077
|
-
*/
|
|
1078
|
-
exports.LatestVersionHash = async function({objectId, versionHash}) {
|
|
1079
|
-
if(versionHash) { objectId = this.utils.DecodeVersionHash(versionHash).objectId; }
|
|
1080
|
-
|
|
1081
|
-
ValidateObject(objectId);
|
|
1082
|
-
|
|
1083
|
-
let latestHash;
|
|
1084
|
-
try {
|
|
1085
|
-
latestHash = await this.CallContractMethod({
|
|
1086
|
-
contractAddress: this.utils.HashToAddress(objectId),
|
|
1087
|
-
methodName: "objectHash"
|
|
1088
|
-
});
|
|
1089
|
-
// eslint-disable-next-line no-empty
|
|
1090
|
-
} catch(error) {}
|
|
1091
|
-
|
|
1092
|
-
if(!latestHash) {
|
|
1093
|
-
let versionCount;
|
|
1094
|
-
try {
|
|
1095
|
-
versionCount = await this.CallContractMethod({
|
|
1096
|
-
contractAddress: this.utils.HashToAddress(objectId),
|
|
1097
|
-
methodName: "countVersionHashes"
|
|
1098
|
-
});
|
|
1099
|
-
// eslint-disable-next-line no-empty
|
|
1100
|
-
} catch(error) {}
|
|
1101
|
-
|
|
1102
|
-
if(!versionCount || !versionCount.toNumber()) {
|
|
1103
|
-
throw Error(`Unable to determine latest version hash for ${versionHash || objectId} - Item deleted?`);
|
|
1104
|
-
}
|
|
1105
|
-
|
|
1106
|
-
latestHash = await this.CallContractMethod({
|
|
1107
|
-
contractAddress: this.utils.HashToAddress(objectId),
|
|
1108
|
-
methodName: "versionHashes",
|
|
1109
|
-
methodArgs: [versionCount - 1]
|
|
1110
|
-
});
|
|
1111
|
-
}
|
|
1112
|
-
|
|
1113
|
-
return latestHash;
|
|
1114
|
-
};
|
|
1115
|
-
|
|
1116
1090
|
/**
|
|
1117
1091
|
* Retrieve the version hash of the latest version of the specified object via fabric API.
|
|
1118
|
-
* Requires authorization.
|
|
1119
1092
|
*
|
|
1120
1093
|
* @methodGroup Content Objects
|
|
1121
1094
|
* @namedParams
|
|
@@ -1124,27 +1097,13 @@ exports.LatestVersionHash = async function({objectId, versionHash}) {
|
|
|
1124
1097
|
*
|
|
1125
1098
|
* @returns {Promise<string>} - The latest version hash of the object
|
|
1126
1099
|
*/
|
|
1127
|
-
exports.
|
|
1128
|
-
if(versionHash) { objectId = this.utils.DecodeVersionHash(versionHash).objectId; }
|
|
1129
|
-
|
|
1130
|
-
ValidateObject(objectId);
|
|
1131
|
-
|
|
1132
|
-
let latestHash;
|
|
1100
|
+
exports.LatestVersionHash = async function({objectId, versionHash}) {
|
|
1133
1101
|
try {
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
let q = await this.HttpClient.RequestJsonBody({
|
|
1137
|
-
headers: await this.authClient.AuthorizationHeader({objectId}),
|
|
1138
|
-
method: "GET",
|
|
1139
|
-
path: path
|
|
1140
|
-
});
|
|
1141
|
-
latestHash = q.hash;
|
|
1142
|
-
|
|
1102
|
+
return (await this.ContentObject({objectId, versionHash})).hash;
|
|
1143
1103
|
} catch(error) {
|
|
1144
1104
|
error.message = `Unable to determine latest version hash for ${versionHash || objectId}`;
|
|
1145
1105
|
throw error;
|
|
1146
1106
|
}
|
|
1147
|
-
return latestHash;
|
|
1148
1107
|
};
|
|
1149
1108
|
|
|
1150
1109
|
/* URL Methods */
|
|
@@ -1946,7 +1905,7 @@ exports.MakeFileServiceRequest = async function({
|
|
|
1946
1905
|
]
|
|
1947
1906
|
.flat()
|
|
1948
1907
|
.filter(token => token);
|
|
1949
|
-
|
|
1908
|
+
|
|
1950
1909
|
return this.utils.ResponseToFormat(
|
|
1951
1910
|
format,
|
|
1952
1911
|
await this.FileServiceHttpClient.Request({
|
|
@@ -186,12 +186,19 @@ class ElvWalletClient {
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
try {
|
|
189
|
-
walletClient.
|
|
189
|
+
walletClient.topLevelInfoPromise = client.utils.ResponseToJson(
|
|
190
190
|
client.MakeAuthServiceRequest({
|
|
191
191
|
path: "/as/mw/toplevel",
|
|
192
192
|
queryParams: {env: mode}
|
|
193
193
|
})
|
|
194
|
-
)
|
|
194
|
+
)
|
|
195
|
+
.then(info => {
|
|
196
|
+
walletClient.topLevelInfo = info;
|
|
197
|
+
|
|
198
|
+
if(!skipMarketplaceLoad) {
|
|
199
|
+
walletClient.LoadAvailableMarketplaces();
|
|
200
|
+
}
|
|
201
|
+
});
|
|
195
202
|
} catch(error) {
|
|
196
203
|
// eslint-disable-next-line no-console
|
|
197
204
|
console.error("Unable to load top level info:");
|
|
@@ -199,10 +206,6 @@ class ElvWalletClient {
|
|
|
199
206
|
console.error(error);
|
|
200
207
|
}
|
|
201
208
|
|
|
202
|
-
if(!skipMarketplaceLoad) {
|
|
203
|
-
await walletClient.LoadAvailableMarketplaces();
|
|
204
|
-
}
|
|
205
|
-
|
|
206
209
|
return walletClient;
|
|
207
210
|
}
|
|
208
211
|
|
|
@@ -823,6 +826,7 @@ class ElvWalletClient {
|
|
|
823
826
|
}
|
|
824
827
|
|
|
825
828
|
async LoadMarketplace(marketplaceParams) {
|
|
829
|
+
await this.topLevelInfoPromise;
|
|
826
830
|
const marketplaceInfo = this.MarketplaceInfo({marketplaceParams});
|
|
827
831
|
|
|
828
832
|
const marketplaceId = marketplaceInfo.marketplaceId;
|