@stellar/typescript-wallet-sdk 1.0.0-alpha.2 → 1.1.0-alpha.1

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.
Files changed (34) hide show
  1. package/lib/bundle.js +1541 -80
  2. package/lib/bundle.js.map +1 -1
  3. package/lib/walletSdk/Watcher/Types.d.ts +65 -0
  4. package/lib/walletSdk/Watcher/index.d.ts +54 -0
  5. package/lib/walletSdk/anchor/Types.d.ts +76 -0
  6. package/lib/walletSdk/anchor/index.d.ts +78 -7
  7. package/lib/walletSdk/auth/WalletSigner.d.ts +3 -0
  8. package/lib/walletSdk/auth/index.d.ts +8 -5
  9. package/lib/walletSdk/exception/index.d.ts +9 -0
  10. package/lib/walletSdk/horizon/Account.d.ts +20 -0
  11. package/lib/walletSdk/horizon/AccountService.d.ts +8 -0
  12. package/lib/walletSdk/horizon/Stellar.d.ts +5 -1
  13. package/lib/walletSdk/index.d.ts +12 -13
  14. package/lib/walletSdk/interactive/index.d.ts +16 -5
  15. package/lib/walletSdk/util/camelToSnakeCase.d.ts +2 -0
  16. package/lib/walletSdk/util/sleep.d.ts +1 -0
  17. package/package.json +12 -6
  18. package/src/walletSdk/Anchor/Types.ts +79 -0
  19. package/src/walletSdk/Anchor/index.ts +224 -24
  20. package/src/walletSdk/Auth/WalletSigner.ts +18 -3
  21. package/src/walletSdk/Auth/index.ts +41 -15
  22. package/src/walletSdk/Watcher/Types.ts +81 -0
  23. package/src/walletSdk/Watcher/index.ts +355 -0
  24. package/src/walletSdk/exception/index.ts +23 -2
  25. package/src/walletSdk/horizon/Account.ts +52 -0
  26. package/src/walletSdk/horizon/AccountService.ts +19 -0
  27. package/src/walletSdk/horizon/Stellar.ts +10 -2
  28. package/src/walletSdk/index.ts +41 -28
  29. package/src/walletSdk/interactive/index.ts +32 -43
  30. package/src/walletSdk/util/camelToSnakeCase.ts +13 -0
  31. package/test/account.test.ts +36 -0
  32. package/test/fixtures/TransactionsResponse.ts +230 -0
  33. package/test/wallet.test.ts +1722 -0
  34. package/test/index.test.ts +0 -73
package/lib/bundle.js CHANGED
@@ -6129,6 +6129,111 @@ __webpack_require__.r(__webpack_exports__);
6129
6129
  });
6130
6130
 
6131
6131
 
6132
+ /***/ }),
6133
+
6134
+ /***/ "./node_modules/decode-uri-component/index.js":
6135
+ /*!****************************************************!*\
6136
+ !*** ./node_modules/decode-uri-component/index.js ***!
6137
+ \****************************************************/
6138
+ /***/ ((module) => {
6139
+
6140
+ "use strict";
6141
+
6142
+ var token = '%[a-f0-9]{2}';
6143
+ var singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');
6144
+ var multiMatcher = new RegExp('(' + token + ')+', 'gi');
6145
+
6146
+ function decodeComponents(components, split) {
6147
+ try {
6148
+ // Try to decode the entire string first
6149
+ return [decodeURIComponent(components.join(''))];
6150
+ } catch (err) {
6151
+ // Do nothing
6152
+ }
6153
+
6154
+ if (components.length === 1) {
6155
+ return components;
6156
+ }
6157
+
6158
+ split = split || 1;
6159
+
6160
+ // Split the array in 2 parts
6161
+ var left = components.slice(0, split);
6162
+ var right = components.slice(split);
6163
+
6164
+ return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));
6165
+ }
6166
+
6167
+ function decode(input) {
6168
+ try {
6169
+ return decodeURIComponent(input);
6170
+ } catch (err) {
6171
+ var tokens = input.match(singleMatcher) || [];
6172
+
6173
+ for (var i = 1; i < tokens.length; i++) {
6174
+ input = decodeComponents(tokens, i).join('');
6175
+
6176
+ tokens = input.match(singleMatcher) || [];
6177
+ }
6178
+
6179
+ return input;
6180
+ }
6181
+ }
6182
+
6183
+ function customDecodeURIComponent(input) {
6184
+ // Keep track of all the replacements and prefill the map with the `BOM`
6185
+ var replaceMap = {
6186
+ '%FE%FF': '\uFFFD\uFFFD',
6187
+ '%FF%FE': '\uFFFD\uFFFD'
6188
+ };
6189
+
6190
+ var match = multiMatcher.exec(input);
6191
+ while (match) {
6192
+ try {
6193
+ // Decode as big chunks as possible
6194
+ replaceMap[match[0]] = decodeURIComponent(match[0]);
6195
+ } catch (err) {
6196
+ var result = decode(match[0]);
6197
+
6198
+ if (result !== match[0]) {
6199
+ replaceMap[match[0]] = result;
6200
+ }
6201
+ }
6202
+
6203
+ match = multiMatcher.exec(input);
6204
+ }
6205
+
6206
+ // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else
6207
+ replaceMap['%C2'] = '\uFFFD';
6208
+
6209
+ var entries = Object.keys(replaceMap);
6210
+
6211
+ for (var i = 0; i < entries.length; i++) {
6212
+ // Replace all decoded components
6213
+ var key = entries[i];
6214
+ input = input.replace(new RegExp(key, 'g'), replaceMap[key]);
6215
+ }
6216
+
6217
+ return input;
6218
+ }
6219
+
6220
+ module.exports = function (encodedURI) {
6221
+ if (typeof encodedURI !== 'string') {
6222
+ throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');
6223
+ }
6224
+
6225
+ try {
6226
+ encodedURI = encodedURI.replace(/\+/g, ' ');
6227
+
6228
+ // Try the built in decoder first
6229
+ return decodeURIComponent(encodedURI);
6230
+ } catch (err) {
6231
+ // Fallback to a more advanced decoder
6232
+ return customDecodeURIComponent(encodedURI);
6233
+ }
6234
+ };
6235
+
6236
+
6132
6237
  /***/ }),
6133
6238
 
6134
6239
  /***/ "./node_modules/detect-node/browser.js":
@@ -8327,6 +8432,34 @@ function getOrigin (url) {
8327
8432
  }
8328
8433
 
8329
8434
 
8435
+ /***/ }),
8436
+
8437
+ /***/ "./node_modules/filter-obj/index.js":
8438
+ /*!******************************************!*\
8439
+ !*** ./node_modules/filter-obj/index.js ***!
8440
+ \******************************************/
8441
+ /***/ ((module) => {
8442
+
8443
+ "use strict";
8444
+
8445
+ module.exports = function (obj, predicate) {
8446
+ var ret = {};
8447
+ var keys = Object.keys(obj);
8448
+ var isArr = Array.isArray(predicate);
8449
+
8450
+ for (var i = 0; i < keys.length; i++) {
8451
+ var key = keys[i];
8452
+ var val = obj[key];
8453
+
8454
+ if (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {
8455
+ ret[key] = val;
8456
+ }
8457
+ }
8458
+
8459
+ return ret;
8460
+ };
8461
+
8462
+
8330
8463
  /***/ }),
8331
8464
 
8332
8465
  /***/ "./node_modules/for-each/index.js":
@@ -18714,6 +18847,51 @@ function isEmpty(value) {
18714
18847
  module.exports = isEmpty;
18715
18848
 
18716
18849
 
18850
+ /***/ }),
18851
+
18852
+ /***/ "./node_modules/lodash/isEqual.js":
18853
+ /*!****************************************!*\
18854
+ !*** ./node_modules/lodash/isEqual.js ***!
18855
+ \****************************************/
18856
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
18857
+
18858
+ var baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./node_modules/lodash/_baseIsEqual.js");
18859
+
18860
+ /**
18861
+ * Performs a deep comparison between two values to determine if they are
18862
+ * equivalent.
18863
+ *
18864
+ * **Note:** This method supports comparing arrays, array buffers, booleans,
18865
+ * date objects, error objects, maps, numbers, `Object` objects, regexes,
18866
+ * sets, strings, symbols, and typed arrays. `Object` objects are compared
18867
+ * by their own, not inherited, enumerable properties. Functions and DOM
18868
+ * nodes are compared by strict equality, i.e. `===`.
18869
+ *
18870
+ * @static
18871
+ * @memberOf _
18872
+ * @since 0.1.0
18873
+ * @category Lang
18874
+ * @param {*} value The value to compare.
18875
+ * @param {*} other The other value to compare.
18876
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
18877
+ * @example
18878
+ *
18879
+ * var object = { 'a': 1 };
18880
+ * var other = { 'a': 1 };
18881
+ *
18882
+ * _.isEqual(object, other);
18883
+ * // => true
18884
+ *
18885
+ * object === other;
18886
+ * // => false
18887
+ */
18888
+ function isEqual(value, other) {
18889
+ return baseIsEqual(value, other);
18890
+ }
18891
+
18892
+ module.exports = isEqual;
18893
+
18894
+
18717
18895
  /***/ }),
18718
18896
 
18719
18897
  /***/ "./node_modules/lodash/isFinite.js":
@@ -21769,6 +21947,499 @@ var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.3.2 by @mathia
21769
21947
  }(this));
21770
21948
 
21771
21949
 
21950
+ /***/ }),
21951
+
21952
+ /***/ "./node_modules/query-string/index.js":
21953
+ /*!********************************************!*\
21954
+ !*** ./node_modules/query-string/index.js ***!
21955
+ \********************************************/
21956
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
21957
+
21958
+ "use strict";
21959
+
21960
+ const strictUriEncode = __webpack_require__(/*! strict-uri-encode */ "./node_modules/strict-uri-encode/index.js");
21961
+ const decodeComponent = __webpack_require__(/*! decode-uri-component */ "./node_modules/decode-uri-component/index.js");
21962
+ const splitOnFirst = __webpack_require__(/*! split-on-first */ "./node_modules/split-on-first/index.js");
21963
+ const filterObject = __webpack_require__(/*! filter-obj */ "./node_modules/filter-obj/index.js");
21964
+
21965
+ const isNullOrUndefined = value => value === null || value === undefined;
21966
+
21967
+ const encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');
21968
+
21969
+ function encoderForArrayFormat(options) {
21970
+ switch (options.arrayFormat) {
21971
+ case 'index':
21972
+ return key => (result, value) => {
21973
+ const index = result.length;
21974
+
21975
+ if (
21976
+ value === undefined ||
21977
+ (options.skipNull && value === null) ||
21978
+ (options.skipEmptyString && value === '')
21979
+ ) {
21980
+ return result;
21981
+ }
21982
+
21983
+ if (value === null) {
21984
+ return [...result, [encode(key, options), '[', index, ']'].join('')];
21985
+ }
21986
+
21987
+ return [
21988
+ ...result,
21989
+ [encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')
21990
+ ];
21991
+ };
21992
+
21993
+ case 'bracket':
21994
+ return key => (result, value) => {
21995
+ if (
21996
+ value === undefined ||
21997
+ (options.skipNull && value === null) ||
21998
+ (options.skipEmptyString && value === '')
21999
+ ) {
22000
+ return result;
22001
+ }
22002
+
22003
+ if (value === null) {
22004
+ return [...result, [encode(key, options), '[]'].join('')];
22005
+ }
22006
+
22007
+ return [...result, [encode(key, options), '[]=', encode(value, options)].join('')];
22008
+ };
22009
+
22010
+ case 'colon-list-separator':
22011
+ return key => (result, value) => {
22012
+ if (
22013
+ value === undefined ||
22014
+ (options.skipNull && value === null) ||
22015
+ (options.skipEmptyString && value === '')
22016
+ ) {
22017
+ return result;
22018
+ }
22019
+
22020
+ if (value === null) {
22021
+ return [...result, [encode(key, options), ':list='].join('')];
22022
+ }
22023
+
22024
+ return [...result, [encode(key, options), ':list=', encode(value, options)].join('')];
22025
+ };
22026
+
22027
+ case 'comma':
22028
+ case 'separator':
22029
+ case 'bracket-separator': {
22030
+ const keyValueSep = options.arrayFormat === 'bracket-separator' ?
22031
+ '[]=' :
22032
+ '=';
22033
+
22034
+ return key => (result, value) => {
22035
+ if (
22036
+ value === undefined ||
22037
+ (options.skipNull && value === null) ||
22038
+ (options.skipEmptyString && value === '')
22039
+ ) {
22040
+ return result;
22041
+ }
22042
+
22043
+ // Translate null to an empty string so that it doesn't serialize as 'null'
22044
+ value = value === null ? '' : value;
22045
+
22046
+ if (result.length === 0) {
22047
+ return [[encode(key, options), keyValueSep, encode(value, options)].join('')];
22048
+ }
22049
+
22050
+ return [[result, encode(value, options)].join(options.arrayFormatSeparator)];
22051
+ };
22052
+ }
22053
+
22054
+ default:
22055
+ return key => (result, value) => {
22056
+ if (
22057
+ value === undefined ||
22058
+ (options.skipNull && value === null) ||
22059
+ (options.skipEmptyString && value === '')
22060
+ ) {
22061
+ return result;
22062
+ }
22063
+
22064
+ if (value === null) {
22065
+ return [...result, encode(key, options)];
22066
+ }
22067
+
22068
+ return [...result, [encode(key, options), '=', encode(value, options)].join('')];
22069
+ };
22070
+ }
22071
+ }
22072
+
22073
+ function parserForArrayFormat(options) {
22074
+ let result;
22075
+
22076
+ switch (options.arrayFormat) {
22077
+ case 'index':
22078
+ return (key, value, accumulator) => {
22079
+ result = /\[(\d*)\]$/.exec(key);
22080
+
22081
+ key = key.replace(/\[\d*\]$/, '');
22082
+
22083
+ if (!result) {
22084
+ accumulator[key] = value;
22085
+ return;
22086
+ }
22087
+
22088
+ if (accumulator[key] === undefined) {
22089
+ accumulator[key] = {};
22090
+ }
22091
+
22092
+ accumulator[key][result[1]] = value;
22093
+ };
22094
+
22095
+ case 'bracket':
22096
+ return (key, value, accumulator) => {
22097
+ result = /(\[\])$/.exec(key);
22098
+ key = key.replace(/\[\]$/, '');
22099
+
22100
+ if (!result) {
22101
+ accumulator[key] = value;
22102
+ return;
22103
+ }
22104
+
22105
+ if (accumulator[key] === undefined) {
22106
+ accumulator[key] = [value];
22107
+ return;
22108
+ }
22109
+
22110
+ accumulator[key] = [].concat(accumulator[key], value);
22111
+ };
22112
+
22113
+ case 'colon-list-separator':
22114
+ return (key, value, accumulator) => {
22115
+ result = /(:list)$/.exec(key);
22116
+ key = key.replace(/:list$/, '');
22117
+
22118
+ if (!result) {
22119
+ accumulator[key] = value;
22120
+ return;
22121
+ }
22122
+
22123
+ if (accumulator[key] === undefined) {
22124
+ accumulator[key] = [value];
22125
+ return;
22126
+ }
22127
+
22128
+ accumulator[key] = [].concat(accumulator[key], value);
22129
+ };
22130
+
22131
+ case 'comma':
22132
+ case 'separator':
22133
+ return (key, value, accumulator) => {
22134
+ const isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);
22135
+ const isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));
22136
+ value = isEncodedArray ? decode(value, options) : value;
22137
+ const newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);
22138
+ accumulator[key] = newValue;
22139
+ };
22140
+
22141
+ case 'bracket-separator':
22142
+ return (key, value, accumulator) => {
22143
+ const isArray = /(\[\])$/.test(key);
22144
+ key = key.replace(/\[\]$/, '');
22145
+
22146
+ if (!isArray) {
22147
+ accumulator[key] = value ? decode(value, options) : value;
22148
+ return;
22149
+ }
22150
+
22151
+ const arrayValue = value === null ?
22152
+ [] :
22153
+ value.split(options.arrayFormatSeparator).map(item => decode(item, options));
22154
+
22155
+ if (accumulator[key] === undefined) {
22156
+ accumulator[key] = arrayValue;
22157
+ return;
22158
+ }
22159
+
22160
+ accumulator[key] = [].concat(accumulator[key], arrayValue);
22161
+ };
22162
+
22163
+ default:
22164
+ return (key, value, accumulator) => {
22165
+ if (accumulator[key] === undefined) {
22166
+ accumulator[key] = value;
22167
+ return;
22168
+ }
22169
+
22170
+ accumulator[key] = [].concat(accumulator[key], value);
22171
+ };
22172
+ }
22173
+ }
22174
+
22175
+ function validateArrayFormatSeparator(value) {
22176
+ if (typeof value !== 'string' || value.length !== 1) {
22177
+ throw new TypeError('arrayFormatSeparator must be single character string');
22178
+ }
22179
+ }
22180
+
22181
+ function encode(value, options) {
22182
+ if (options.encode) {
22183
+ return options.strict ? strictUriEncode(value) : encodeURIComponent(value);
22184
+ }
22185
+
22186
+ return value;
22187
+ }
22188
+
22189
+ function decode(value, options) {
22190
+ if (options.decode) {
22191
+ return decodeComponent(value);
22192
+ }
22193
+
22194
+ return value;
22195
+ }
22196
+
22197
+ function keysSorter(input) {
22198
+ if (Array.isArray(input)) {
22199
+ return input.sort();
22200
+ }
22201
+
22202
+ if (typeof input === 'object') {
22203
+ return keysSorter(Object.keys(input))
22204
+ .sort((a, b) => Number(a) - Number(b))
22205
+ .map(key => input[key]);
22206
+ }
22207
+
22208
+ return input;
22209
+ }
22210
+
22211
+ function removeHash(input) {
22212
+ const hashStart = input.indexOf('#');
22213
+ if (hashStart !== -1) {
22214
+ input = input.slice(0, hashStart);
22215
+ }
22216
+
22217
+ return input;
22218
+ }
22219
+
22220
+ function getHash(url) {
22221
+ let hash = '';
22222
+ const hashStart = url.indexOf('#');
22223
+ if (hashStart !== -1) {
22224
+ hash = url.slice(hashStart);
22225
+ }
22226
+
22227
+ return hash;
22228
+ }
22229
+
22230
+ function extract(input) {
22231
+ input = removeHash(input);
22232
+ const queryStart = input.indexOf('?');
22233
+ if (queryStart === -1) {
22234
+ return '';
22235
+ }
22236
+
22237
+ return input.slice(queryStart + 1);
22238
+ }
22239
+
22240
+ function parseValue(value, options) {
22241
+ if (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {
22242
+ value = Number(value);
22243
+ } else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {
22244
+ value = value.toLowerCase() === 'true';
22245
+ }
22246
+
22247
+ return value;
22248
+ }
22249
+
22250
+ function parse(query, options) {
22251
+ options = Object.assign({
22252
+ decode: true,
22253
+ sort: true,
22254
+ arrayFormat: 'none',
22255
+ arrayFormatSeparator: ',',
22256
+ parseNumbers: false,
22257
+ parseBooleans: false
22258
+ }, options);
22259
+
22260
+ validateArrayFormatSeparator(options.arrayFormatSeparator);
22261
+
22262
+ const formatter = parserForArrayFormat(options);
22263
+
22264
+ // Create an object with no prototype
22265
+ const ret = Object.create(null);
22266
+
22267
+ if (typeof query !== 'string') {
22268
+ return ret;
22269
+ }
22270
+
22271
+ query = query.trim().replace(/^[?#&]/, '');
22272
+
22273
+ if (!query) {
22274
+ return ret;
22275
+ }
22276
+
22277
+ for (const param of query.split('&')) {
22278
+ if (param === '') {
22279
+ continue;
22280
+ }
22281
+
22282
+ let [key, value] = splitOnFirst(options.decode ? param.replace(/\+/g, ' ') : param, '=');
22283
+
22284
+ // Missing `=` should be `null`:
22285
+ // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters
22286
+ value = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);
22287
+ formatter(decode(key, options), value, ret);
22288
+ }
22289
+
22290
+ for (const key of Object.keys(ret)) {
22291
+ const value = ret[key];
22292
+ if (typeof value === 'object' && value !== null) {
22293
+ for (const k of Object.keys(value)) {
22294
+ value[k] = parseValue(value[k], options);
22295
+ }
22296
+ } else {
22297
+ ret[key] = parseValue(value, options);
22298
+ }
22299
+ }
22300
+
22301
+ if (options.sort === false) {
22302
+ return ret;
22303
+ }
22304
+
22305
+ return (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {
22306
+ const value = ret[key];
22307
+ if (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {
22308
+ // Sort object keys, not values
22309
+ result[key] = keysSorter(value);
22310
+ } else {
22311
+ result[key] = value;
22312
+ }
22313
+
22314
+ return result;
22315
+ }, Object.create(null));
22316
+ }
22317
+
22318
+ exports.extract = extract;
22319
+ exports.parse = parse;
22320
+
22321
+ exports.stringify = (object, options) => {
22322
+ if (!object) {
22323
+ return '';
22324
+ }
22325
+
22326
+ options = Object.assign({
22327
+ encode: true,
22328
+ strict: true,
22329
+ arrayFormat: 'none',
22330
+ arrayFormatSeparator: ','
22331
+ }, options);
22332
+
22333
+ validateArrayFormatSeparator(options.arrayFormatSeparator);
22334
+
22335
+ const shouldFilter = key => (
22336
+ (options.skipNull && isNullOrUndefined(object[key])) ||
22337
+ (options.skipEmptyString && object[key] === '')
22338
+ );
22339
+
22340
+ const formatter = encoderForArrayFormat(options);
22341
+
22342
+ const objectCopy = {};
22343
+
22344
+ for (const key of Object.keys(object)) {
22345
+ if (!shouldFilter(key)) {
22346
+ objectCopy[key] = object[key];
22347
+ }
22348
+ }
22349
+
22350
+ const keys = Object.keys(objectCopy);
22351
+
22352
+ if (options.sort !== false) {
22353
+ keys.sort(options.sort);
22354
+ }
22355
+
22356
+ return keys.map(key => {
22357
+ const value = object[key];
22358
+
22359
+ if (value === undefined) {
22360
+ return '';
22361
+ }
22362
+
22363
+ if (value === null) {
22364
+ return encode(key, options);
22365
+ }
22366
+
22367
+ if (Array.isArray(value)) {
22368
+ if (value.length === 0 && options.arrayFormat === 'bracket-separator') {
22369
+ return encode(key, options) + '[]';
22370
+ }
22371
+
22372
+ return value
22373
+ .reduce(formatter(key), [])
22374
+ .join('&');
22375
+ }
22376
+
22377
+ return encode(key, options) + '=' + encode(value, options);
22378
+ }).filter(x => x.length > 0).join('&');
22379
+ };
22380
+
22381
+ exports.parseUrl = (url, options) => {
22382
+ options = Object.assign({
22383
+ decode: true
22384
+ }, options);
22385
+
22386
+ const [url_, hash] = splitOnFirst(url, '#');
22387
+
22388
+ return Object.assign(
22389
+ {
22390
+ url: url_.split('?')[0] || '',
22391
+ query: parse(extract(url), options)
22392
+ },
22393
+ options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}
22394
+ );
22395
+ };
22396
+
22397
+ exports.stringifyUrl = (object, options) => {
22398
+ options = Object.assign({
22399
+ encode: true,
22400
+ strict: true,
22401
+ [encodeFragmentIdentifier]: true
22402
+ }, options);
22403
+
22404
+ const url = removeHash(object.url).split('?')[0] || '';
22405
+ const queryFromUrl = exports.extract(object.url);
22406
+ const parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});
22407
+
22408
+ const query = Object.assign(parsedQueryFromUrl, object.query);
22409
+ let queryString = exports.stringify(query, options);
22410
+ if (queryString) {
22411
+ queryString = `?${queryString}`;
22412
+ }
22413
+
22414
+ let hash = getHash(object.url);
22415
+ if (object.fragmentIdentifier) {
22416
+ hash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;
22417
+ }
22418
+
22419
+ return `${url}${queryString}${hash}`;
22420
+ };
22421
+
22422
+ exports.pick = (input, filter, options) => {
22423
+ options = Object.assign({
22424
+ parseFragmentIdentifier: true,
22425
+ [encodeFragmentIdentifier]: false
22426
+ }, options);
22427
+
22428
+ const {url, query, fragmentIdentifier} = exports.parseUrl(input, options);
22429
+ return exports.stringifyUrl({
22430
+ url,
22431
+ query: filterObject(query, filter),
22432
+ fragmentIdentifier
22433
+ }, options);
22434
+ };
22435
+
22436
+ exports.exclude = (input, filter, options) => {
22437
+ const exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);
22438
+
22439
+ return exports.pick(input, exclusionFilter, options);
22440
+ };
22441
+
22442
+
21772
22443
  /***/ }),
21773
22444
 
21774
22445
  /***/ "./node_modules/querystring/decode.js":
@@ -25925,6 +26596,39 @@ Sha512.prototype._hash = function () {
25925
26596
  module.exports = Sha512
25926
26597
 
25927
26598
 
26599
+ /***/ }),
26600
+
26601
+ /***/ "./node_modules/split-on-first/index.js":
26602
+ /*!**********************************************!*\
26603
+ !*** ./node_modules/split-on-first/index.js ***!
26604
+ \**********************************************/
26605
+ /***/ ((module) => {
26606
+
26607
+ "use strict";
26608
+
26609
+
26610
+ module.exports = (string, separator) => {
26611
+ if (!(typeof string === 'string' && typeof separator === 'string')) {
26612
+ throw new TypeError('Expected the arguments to be of type `string`');
26613
+ }
26614
+
26615
+ if (separator === '') {
26616
+ return [string];
26617
+ }
26618
+
26619
+ const separatorIndex = string.indexOf(separator);
26620
+
26621
+ if (separatorIndex === -1) {
26622
+ return [string];
26623
+ }
26624
+
26625
+ return [
26626
+ string.slice(0, separatorIndex),
26627
+ string.slice(separatorIndex + separator.length)
26628
+ ];
26629
+ };
26630
+
26631
+
25928
26632
  /***/ }),
25929
26633
 
25930
26634
  /***/ "./node_modules/stellar-base/lib/account.js":
@@ -45354,6 +46058,19 @@ IncomingMessage.prototype._onXHRProgress = function (resetTimers) {
45354
46058
  }
45355
46059
 
45356
46060
 
46061
+ /***/ }),
46062
+
46063
+ /***/ "./node_modules/strict-uri-encode/index.js":
46064
+ /*!*************************************************!*\
46065
+ !*** ./node_modules/strict-uri-encode/index.js ***!
46066
+ \*************************************************/
46067
+ /***/ ((module) => {
46068
+
46069
+ "use strict";
46070
+
46071
+ module.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);
46072
+
46073
+
45357
46074
  /***/ }),
45358
46075
 
45359
46076
  /***/ "./node_modules/string_decoder/lib/string_decoder.js":
@@ -49788,6 +50505,17 @@ exports["default"] = { walletSdk: walletSdk };
49788
50505
 
49789
50506
  "use strict";
49790
50507
 
50508
+ var __assign = (this && this.__assign) || function () {
50509
+ __assign = Object.assign || function(t) {
50510
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
50511
+ s = arguments[i];
50512
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
50513
+ t[p] = s[p];
50514
+ }
50515
+ return t;
50516
+ };
50517
+ return __assign.apply(this, arguments);
50518
+ };
49791
50519
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
49792
50520
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
49793
50521
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -49824,35 +50552,56 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
49824
50552
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
49825
50553
  }
49826
50554
  };
50555
+ var __rest = (this && this.__rest) || function (s, e) {
50556
+ var t = {};
50557
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
50558
+ t[p] = s[p];
50559
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
50560
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
50561
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
50562
+ t[p[i]] = s[p[i]];
50563
+ }
50564
+ return t;
50565
+ };
49827
50566
  var __importDefault = (this && this.__importDefault) || function (mod) {
49828
50567
  return (mod && mod.__esModule) ? mod : { "default": mod };
49829
50568
  };
49830
50569
  Object.defineProperty(exports, "__esModule", ({ value: true }));
49831
50570
  exports.Anchor = void 0;
50571
+ var query_string_1 = __importDefault(__webpack_require__(/*! query-string */ "./node_modules/query-string/index.js"));
49832
50572
  var stellar_sdk_1 = __webpack_require__(/*! stellar-sdk */ "./node_modules/stellar-sdk/lib/index.js");
49833
- var axios_1 = __importDefault(__webpack_require__(/*! axios */ "./node_modules/axios/dist/browser/axios.cjs"));
49834
50573
  var Auth_1 = __webpack_require__(/*! ../Auth */ "./src/walletSdk/Auth/index.ts");
49835
50574
  var interactive_1 = __webpack_require__(/*! ../interactive */ "./src/walletSdk/interactive/index.ts");
49836
50575
  var toml_1 = __webpack_require__(/*! ../toml */ "./src/walletSdk/toml/index.ts");
50576
+ var Watcher_1 = __webpack_require__(/*! ../Watcher */ "./src/walletSdk/Watcher/index.ts");
49837
50577
  var exception_1 = __webpack_require__(/*! ../exception */ "./src/walletSdk/exception/index.ts");
50578
+ var camelToSnakeCase_1 = __webpack_require__(/*! ../util/camelToSnakeCase */ "./src/walletSdk/util/camelToSnakeCase.ts");
50579
+ var Types_1 = __webpack_require__(/*! ../Watcher/Types */ "./src/walletSdk/Watcher/Types.ts");
49838
50580
  // Do not create this object directly, use the Wallet class.
49839
50581
  var Anchor = /** @class */ (function () {
49840
- function Anchor(cfg, homeDomain, httpClient) {
49841
- this.homeDomain = "";
49842
- this.httpClient = null;
50582
+ function Anchor(_a) {
50583
+ var cfg = _a.cfg, homeDomain = _a.homeDomain, httpClient = _a.httpClient, language = _a.language;
50584
+ this.cfg = cfg;
49843
50585
  this.homeDomain = homeDomain;
49844
50586
  this.httpClient = httpClient;
49845
- this.cfg = cfg;
50587
+ this.language = language;
49846
50588
  }
49847
- Anchor.prototype.getInfo = function () {
50589
+ Anchor.prototype.getInfo = function (shouldRefresh) {
49848
50590
  return __awaiter(this, void 0, void 0, function () {
49849
- var toml;
50591
+ var stellarToml, parsedToml;
49850
50592
  return __generator(this, function (_a) {
49851
50593
  switch (_a.label) {
49852
- case 0: return [4 /*yield*/, stellar_sdk_1.StellarTomlResolver.resolve(this.homeDomain)];
50594
+ case 0:
50595
+ // return cached TOML values by default
50596
+ if (this.toml && !shouldRefresh) {
50597
+ return [2 /*return*/, this.toml];
50598
+ }
50599
+ return [4 /*yield*/, stellar_sdk_1.StellarTomlResolver.resolve(this.homeDomain)];
49853
50600
  case 1:
49854
- toml = _a.sent();
49855
- return [2 /*return*/, (0, toml_1.parseToml)(toml)];
50601
+ stellarToml = _a.sent();
50602
+ parsedToml = (0, toml_1.parseToml)(stellarToml);
50603
+ this.toml = parsedToml;
50604
+ return [2 /*return*/, parsedToml];
49856
50605
  }
49857
50606
  });
49858
50607
  });
@@ -49865,15 +50614,19 @@ var Anchor = /** @class */ (function () {
49865
50614
  case 0: return [4 /*yield*/, this.getInfo()];
49866
50615
  case 1:
49867
50616
  tomlInfo = _a.sent();
49868
- return [2 /*return*/, new Auth_1.Auth(tomlInfo.webAuthEndpoint)];
50617
+ return [2 /*return*/, new Auth_1.Auth(this.cfg, tomlInfo.webAuthEndpoint, this.httpClient)];
49869
50618
  }
49870
50619
  });
49871
50620
  });
49872
50621
  };
49873
50622
  Anchor.prototype.interactive = function () {
49874
- return new interactive_1.Interactive(this.homeDomain, this);
50623
+ return new interactive_1.Interactive(this.homeDomain, this, this.httpClient);
50624
+ };
50625
+ Anchor.prototype.watcher = function () {
50626
+ return new Watcher_1.Watcher(this);
49875
50627
  };
49876
- Anchor.prototype.getServicesInfo = function () {
50628
+ Anchor.prototype.getServicesInfo = function (lang) {
50629
+ if (lang === void 0) { lang = this.language; }
49877
50630
  return __awaiter(this, void 0, void 0, function () {
49878
50631
  var toml, transferServerEndpoint, resp, e_1;
49879
50632
  return __generator(this, function (_a) {
@@ -49885,7 +50638,7 @@ var Anchor = /** @class */ (function () {
49885
50638
  _a.label = 2;
49886
50639
  case 2:
49887
50640
  _a.trys.push([2, 4, , 5]);
49888
- return [4 /*yield*/, axios_1.default.get("".concat(transferServerEndpoint, "/info"), {
50641
+ return [4 /*yield*/, this.httpClient.get("".concat(transferServerEndpoint, "/info?lang=").concat(lang), {
49889
50642
  headers: {
49890
50643
  "Content-Type": "application/json",
49891
50644
  },
@@ -49901,9 +50654,167 @@ var Anchor = /** @class */ (function () {
49901
50654
  });
49902
50655
  });
49903
50656
  };
49904
- Anchor.prototype.getTransaction = function () { };
49905
- Anchor.prototype.getTransactionForAsset = function () { };
49906
- Anchor.prototype.getHistory = function () { };
50657
+ /**
50658
+ * Get single transaction's current status and details. One of the [id], [stellarTransactionId],
50659
+ * [externalTransactionId] must be provided.
50660
+ *
50661
+ * @param authToken auth token of the account authenticated with the anchor
50662
+ * @param id transaction ID
50663
+ * @param stellarTransactionId stellar transaction ID
50664
+ * @param externalTransactionId external transaction ID
50665
+ * @return transaction object
50666
+ * @throws [MissingTransactionIdError] if none of the id params is provided
50667
+ * @throws [InvalidTransactionResponseError] if Anchor returns an invalid transaction
50668
+ * @throws [ServerRequestFailedError] if server request fails
50669
+ */
50670
+ Anchor.prototype.getTransactionBy = function (_a) {
50671
+ var _b;
50672
+ var authToken = _a.authToken, id = _a.id, stellarTransactionId = _a.stellarTransactionId, externalTransactionId = _a.externalTransactionId, _c = _a.lang, lang = _c === void 0 ? this.language : _c;
50673
+ return __awaiter(this, void 0, void 0, function () {
50674
+ var toml, transferServerEndpoint, qs, resp, transaction, e_2;
50675
+ return __generator(this, function (_d) {
50676
+ switch (_d.label) {
50677
+ case 0:
50678
+ if (!id && !stellarTransactionId && !externalTransactionId) {
50679
+ throw new exception_1.MissingTransactionIdError();
50680
+ }
50681
+ return [4 /*yield*/, this.getInfo()];
50682
+ case 1:
50683
+ toml = _d.sent();
50684
+ transferServerEndpoint = toml.transferServerSep24;
50685
+ qs = {};
50686
+ if (id) {
50687
+ qs = { id: id };
50688
+ }
50689
+ else if (stellarTransactionId) {
50690
+ qs = { stellar_transaction_id: stellarTransactionId };
50691
+ }
50692
+ else if (externalTransactionId) {
50693
+ qs = { external_transaction_id: externalTransactionId };
50694
+ }
50695
+ qs = __assign({ lang: lang }, qs);
50696
+ _d.label = 2;
50697
+ case 2:
50698
+ _d.trys.push([2, 4, , 5]);
50699
+ return [4 /*yield*/, this.httpClient.get("".concat(transferServerEndpoint, "/transaction?").concat(query_string_1.default.stringify(qs)), {
50700
+ headers: {
50701
+ Authorization: "Bearer ".concat(authToken),
50702
+ },
50703
+ })];
50704
+ case 3:
50705
+ resp = _d.sent();
50706
+ transaction = (_b = resp.data) === null || _b === void 0 ? void 0 : _b.transaction;
50707
+ if (!transaction || Object.keys(transaction).length === 0) {
50708
+ throw new exception_1.InvalidTransactionResponseError(transaction);
50709
+ }
50710
+ return [2 /*return*/, transaction];
50711
+ case 4:
50712
+ e_2 = _d.sent();
50713
+ throw new exception_1.ServerRequestFailedError(e_2);
50714
+ case 5: return [2 /*return*/];
50715
+ }
50716
+ });
50717
+ });
50718
+ };
50719
+ /**
50720
+ * Get account's transactions specified by asset and other params.
50721
+ *
50722
+ * @param authToken auth token of the account authenticated with the anchor
50723
+ * @param assetCode target asset to query for
50724
+ * @param noOlderThan response should contain transactions starting on or after this date & time
50725
+ * @param limit response should contain at most 'limit' transactions
50726
+ * @param kind kind of transaction that is desired. E.g.: 'deposit', 'withdrawal'
50727
+ * @param pagingId response should contain transactions starting prior to this ID (exclusive)
50728
+ * @param lang desired language (localization), it can also accept locale in the format 'en-US'
50729
+ * @return list of transactions as requested by the client, sorted in time-descending order
50730
+ * @throws [InvalidTransactionsResponseError] if Anchor returns an invalid response
50731
+ * @throws [ServerRequestFailedError] if server request fails
50732
+ */
50733
+ Anchor.prototype.getTransactionsForAsset = function (params) {
50734
+ var _a;
50735
+ return __awaiter(this, void 0, void 0, function () {
50736
+ var authToken, _b, lang, otherParams, toml, transferServerEndpoint, apiParams, resp, transactions, e_3;
50737
+ return __generator(this, function (_c) {
50738
+ switch (_c.label) {
50739
+ case 0:
50740
+ authToken = params.authToken, _b = params.lang, lang = _b === void 0 ? this.language : _b, otherParams = __rest(params, ["authToken", "lang"]);
50741
+ return [4 /*yield*/, this.getInfo()];
50742
+ case 1:
50743
+ toml = _c.sent();
50744
+ transferServerEndpoint = toml.transferServerSep24;
50745
+ apiParams = (0, camelToSnakeCase_1.camelToSnakeCaseObject)(__assign({ lang: lang }, otherParams));
50746
+ _c.label = 2;
50747
+ case 2:
50748
+ _c.trys.push([2, 4, , 5]);
50749
+ return [4 /*yield*/, this.httpClient.get("".concat(transferServerEndpoint, "/transactions?").concat(query_string_1.default.stringify(apiParams)), {
50750
+ headers: {
50751
+ Authorization: "Bearer ".concat(authToken),
50752
+ },
50753
+ })];
50754
+ case 3:
50755
+ resp = _c.sent();
50756
+ transactions = (_a = resp.data) === null || _a === void 0 ? void 0 : _a.transactions;
50757
+ if (!transactions || !Array.isArray(transactions)) {
50758
+ throw new exception_1.InvalidTransactionsResponseError(transactions);
50759
+ }
50760
+ return [2 /*return*/, transactions];
50761
+ case 4:
50762
+ e_3 = _c.sent();
50763
+ throw new exception_1.ServerRequestFailedError(e_3);
50764
+ case 5: return [2 /*return*/];
50765
+ }
50766
+ });
50767
+ });
50768
+ };
50769
+ /**
50770
+ * Get all successfully finished (either completed or refunded) account transactions for specified
50771
+ * asset. Optional field implementation depends on anchor.
50772
+ *
50773
+ * @param authToken auth token of the account authenticated with the anchor
50774
+ * @param assetCode target asset to query for
50775
+ * @param noOlderThan response should contain transactions starting on or after this date & time
50776
+ * @param limit response should contain at most 'limit' transactions
50777
+ * @param kind kind of transaction that is desired. E.g.: 'deposit', 'withdrawal'
50778
+ * @param pagingId response should contain transactions starting prior to this ID (exclusive)
50779
+ * @param lang desired language (localization), it can also accept locale in the format 'en-US'
50780
+ * @return list of filtered transactions that achieved a final state (completed or refunded)
50781
+ * @throws [AssetNotSupportedError] if asset is not supported by the anchor
50782
+ * @throws [InvalidTransactionsResponseError] if Anchor returns an invalid response
50783
+ * @throws [ServerRequestFailedError] if server request fails
50784
+ */
50785
+ Anchor.prototype.getHistory = function (params) {
50786
+ var _a;
50787
+ return __awaiter(this, void 0, void 0, function () {
50788
+ var assetCode, toml, transactions, finishedTransactions;
50789
+ return __generator(this, function (_b) {
50790
+ switch (_b.label) {
50791
+ case 0:
50792
+ assetCode = params.assetCode;
50793
+ return [4 /*yield*/, this.getInfo()];
50794
+ case 1:
50795
+ toml = _b.sent();
50796
+ if (!((_a = toml.currencies) === null || _a === void 0 ? void 0 : _a.find(function (_a) {
50797
+ var code = _a.code;
50798
+ return code === assetCode;
50799
+ }))) {
50800
+ throw new exception_1.AssetNotSupportedError(null, assetCode);
50801
+ }
50802
+ return [4 /*yield*/, this.getTransactionsForAsset(params)];
50803
+ case 2:
50804
+ transactions = _b.sent();
50805
+ finishedTransactions = transactions
50806
+ .filter(function (_a) {
50807
+ var status = _a.status;
50808
+ return [
50809
+ Types_1.TransactionStatus.completed,
50810
+ Types_1.TransactionStatus.refunded
50811
+ ].includes(status);
50812
+ });
50813
+ return [2 /*return*/, finishedTransactions];
50814
+ }
50815
+ });
50816
+ });
50817
+ };
49907
50818
  return Anchor;
49908
50819
  }());
49909
50820
  exports.Anchor = Anchor;
@@ -49919,10 +50830,17 @@ exports.Anchor = Anchor;
49919
50830
 
49920
50831
  "use strict";
49921
50832
 
49922
- // TODO - https://stellarorg.atlassian.net/browse/WAL-813?atlOrigin=eyJpIjoiODBkZTQ1MDMzYTJmNDFjOWI0NDM3MTQ2YWYxNTEzNTgiLCJwIjoiaiJ9
49923
50833
  Object.defineProperty(exports, "__esModule", ({ value: true }));
49924
50834
  exports.DefaultSigner = void 0;
49925
- exports.DefaultSigner = {};
50835
+ exports.DefaultSigner = {
50836
+ signWithClientAccount: function (txn, account) {
50837
+ txn.sign(account);
50838
+ return txn;
50839
+ },
50840
+ signWithDomainAccount: function (transactionXDR, networkPassPhrase, account) {
50841
+ throw new Error("The DefaultSigner can't sign transactions with domain");
50842
+ },
50843
+ };
49926
50844
 
49927
50845
 
49928
50846
  /***/ }),
@@ -49976,17 +50894,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
49976
50894
  };
49977
50895
  Object.defineProperty(exports, "__esModule", ({ value: true }));
49978
50896
  exports.Auth = void 0;
49979
- var axios_1 = __importDefault(__webpack_require__(/*! axios */ "./node_modules/axios/dist/browser/axios.cjs"));
49980
50897
  var stellar_sdk_1 = __importDefault(__webpack_require__(/*! stellar-sdk */ "./node_modules/stellar-sdk/lib/index.js"));
49981
50898
  var exception_1 = __webpack_require__(/*! ../exception */ "./src/walletSdk/exception/index.ts");
49982
50899
  // Do not create this object directly, use the Wallet class.
49983
50900
  var Auth = /** @class */ (function () {
49984
- // TODO - add config and custom httpClient functionality
49985
- function Auth(webAuthEndpoint) {
50901
+ function Auth(cfg, webAuthEndpoint, httpClient) {
49986
50902
  this.webAuthEndpoint = "";
50903
+ this.cfg = cfg;
49987
50904
  this.webAuthEndpoint = webAuthEndpoint;
50905
+ this.httpClient = httpClient;
49988
50906
  }
49989
- Auth.prototype.authenticate = function (accountKp, memoId, clientDomain) {
50907
+ Auth.prototype.authenticate = function (accountKp, walletSigner, memoId, clientDomain) {
49990
50908
  return __awaiter(this, void 0, void 0, function () {
49991
50909
  var challengeResponse, signedTx;
49992
50910
  return __generator(this, function (_a) {
@@ -49994,7 +50912,7 @@ var Auth = /** @class */ (function () {
49994
50912
  case 0: return [4 /*yield*/, this.challenge(accountKp, memoId, clientDomain)];
49995
50913
  case 1:
49996
50914
  challengeResponse = _a.sent();
49997
- signedTx = this.sign(accountKp, challengeResponse.transaction, challengeResponse.network_passphrase);
50915
+ signedTx = this.sign(accountKp, challengeResponse, walletSigner !== null && walletSigner !== void 0 ? walletSigner : this.cfg.app.defaultSigner);
49998
50916
  return [4 /*yield*/, this.getToken(signedTx)];
49999
50917
  case 2: return [2 /*return*/, _a.sent()];
50000
50918
  }
@@ -50017,7 +50935,7 @@ var Auth = /** @class */ (function () {
50017
50935
  _a.label = 1;
50018
50936
  case 1:
50019
50937
  _a.trys.push([1, 3, , 4]);
50020
- return [4 /*yield*/, axios_1.default.get(url)];
50938
+ return [4 /*yield*/, this.httpClient.get(url)];
50021
50939
  case 2:
50022
50940
  auth = _a.sent();
50023
50941
  return [2 /*return*/, auth.data];
@@ -50029,10 +50947,16 @@ var Auth = /** @class */ (function () {
50029
50947
  });
50030
50948
  });
50031
50949
  };
50032
- // TODO - add signing with client account functionality
50033
- Auth.prototype.sign = function (accountKp, challengeTx, network) {
50034
- var transaction = stellar_sdk_1.default.TransactionBuilder.fromXDR(challengeTx, network);
50035
- transaction.sign(accountKp);
50950
+ Auth.prototype.sign = function (accountKp, challengeResponse, walletSigner) {
50951
+ var transaction = stellar_sdk_1.default.TransactionBuilder.fromXDR(challengeResponse.transaction, challengeResponse.network_passphrase);
50952
+ // check if verifying client domain as well
50953
+ for (var _i = 0, _a = transaction.operations; _i < _a.length; _i++) {
50954
+ var op = _a[_i];
50955
+ if (op.type === "manageData" && op.name === "client_domain") {
50956
+ transaction = walletSigner.signWithDomainAccount(challengeResponse.transaction, challengeResponse.network_passphrase, accountKp);
50957
+ }
50958
+ }
50959
+ walletSigner.signWithClientAccount(transaction, accountKp);
50036
50960
  return transaction;
50037
50961
  };
50038
50962
  Auth.prototype.getToken = function (signedTx) {
@@ -50042,7 +50966,7 @@ var Auth = /** @class */ (function () {
50042
50966
  switch (_a.label) {
50043
50967
  case 0:
50044
50968
  _a.trys.push([0, 2, , 3]);
50045
- return [4 /*yield*/, axios_1.default.post(this.webAuthEndpoint, {
50969
+ return [4 /*yield*/, this.httpClient.post(this.webAuthEndpoint, {
50046
50970
  transaction: signedTx.toXDR(),
50047
50971
  })];
50048
50972
  case 1:
@@ -50061,6 +50985,341 @@ var Auth = /** @class */ (function () {
50061
50985
  exports.Auth = Auth;
50062
50986
 
50063
50987
 
50988
+ /***/ }),
50989
+
50990
+ /***/ "./src/walletSdk/Watcher/Types.ts":
50991
+ /*!****************************************!*\
50992
+ !*** ./src/walletSdk/Watcher/Types.ts ***!
50993
+ \****************************************/
50994
+ /***/ ((__unused_webpack_module, exports) => {
50995
+
50996
+ "use strict";
50997
+
50998
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
50999
+ exports.TransactionStatus = void 0;
51000
+ var TransactionStatus;
51001
+ (function (TransactionStatus) {
51002
+ /**
51003
+ * There is not yet enough information for this transaction to be initiated. Perhaps the user has
51004
+ * not yet entered necessary info in an interactive flow
51005
+ */
51006
+ TransactionStatus["incomplete"] = "incomplete";
51007
+ /**
51008
+ * The user has not yet initiated their transfer to the anchor. This is the next necessary step in
51009
+ * any deposit or withdrawal flow after transitioning from `incomplete`
51010
+ */
51011
+ TransactionStatus["pending_user_transfer_start"] = "pending_user_transfer_start";
51012
+ /**
51013
+ * The Stellar payment has been successfully received by the anchor and the off-chain funds are
51014
+ * available for the customer to pick up. Only used for withdrawal transactions.
51015
+ */
51016
+ TransactionStatus["pending_user_transfer_complete"] = "pending_user_transfer_complete";
51017
+ /**
51018
+ * Pending External deposit/withdrawal has been submitted to external network, but is not yet
51019
+ * confirmed. This is the status when waiting on Bitcoin or other external crypto network to
51020
+ * complete a transaction, or when waiting on a bank transfer.
51021
+ */
51022
+ TransactionStatus["pending_external"] = "pending_external";
51023
+ /**
51024
+ * Deposit/withdrawal is being processed internally by anchor. This can also be used when the
51025
+ * anchor must verify KYC information prior to deposit/withdrawal.
51026
+ */
51027
+ TransactionStatus["pending_anchor"] = "pending_anchor";
51028
+ /**
51029
+ * Deposit/withdrawal operation has been submitted to Stellar network, but is not yet confirmed.
51030
+ */
51031
+ TransactionStatus["pending_stellar"] = "pending_stellar";
51032
+ /** The user must add a trustline for the asset for the deposit to complete. */
51033
+ TransactionStatus["pending_trust"] = "pending_trust";
51034
+ /**
51035
+ * The user must take additional action before the deposit / withdrawal can complete, for example
51036
+ * an email or 2fa confirmation of a withdrawal.
51037
+ */
51038
+ TransactionStatus["pending_user"] = "pending_user";
51039
+ /** Deposit/withdrawal fully completed */
51040
+ TransactionStatus["completed"] = "completed";
51041
+ /** The deposit/withdrawal is fully refunded */
51042
+ TransactionStatus["refunded"] = "refunded";
51043
+ /**
51044
+ * Funds were never received by the anchor and the transaction is considered abandoned by the
51045
+ * user. Anchors are responsible for determining when transactions are considered expired.
51046
+ */
51047
+ TransactionStatus["expired"] = "expired";
51048
+ /**
51049
+ * Could not complete deposit because no satisfactory asset/XLM market was available to create the
51050
+ * account
51051
+ */
51052
+ TransactionStatus["no_market"] = "no_market";
51053
+ /** Deposit/withdrawal size less than min_amount. */
51054
+ TransactionStatus["too_small"] = "too_small";
51055
+ /** Deposit/withdrawal size exceeded max_amount. */
51056
+ TransactionStatus["too_large"] = "too_large";
51057
+ /** Catch-all for any error not enumerated above. */
51058
+ TransactionStatus["error"] = "error";
51059
+ })(TransactionStatus = exports.TransactionStatus || (exports.TransactionStatus = {}));
51060
+
51061
+
51062
+ /***/ }),
51063
+
51064
+ /***/ "./src/walletSdk/Watcher/index.ts":
51065
+ /*!****************************************!*\
51066
+ !*** ./src/walletSdk/Watcher/index.ts ***!
51067
+ \****************************************/
51068
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
51069
+
51070
+ "use strict";
51071
+
51072
+ var __assign = (this && this.__assign) || function () {
51073
+ __assign = Object.assign || function(t) {
51074
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
51075
+ s = arguments[i];
51076
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
51077
+ t[p] = s[p];
51078
+ }
51079
+ return t;
51080
+ };
51081
+ return __assign.apply(this, arguments);
51082
+ };
51083
+ var __rest = (this && this.__rest) || function (s, e) {
51084
+ var t = {};
51085
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
51086
+ t[p] = s[p];
51087
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
51088
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
51089
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
51090
+ t[p[i]] = s[p[i]];
51091
+ }
51092
+ return t;
51093
+ };
51094
+ var __importDefault = (this && this.__importDefault) || function (mod) {
51095
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51096
+ };
51097
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
51098
+ exports.Watcher = void 0;
51099
+ var isEqual_1 = __importDefault(__webpack_require__(/*! lodash/isEqual */ "./node_modules/lodash/isEqual.js"));
51100
+ var Types_1 = __webpack_require__(/*! ./Types */ "./src/walletSdk/Watcher/Types.ts");
51101
+ // Do not create this object directly, use the Anchor class.
51102
+ var Watcher = /** @class */ (function () {
51103
+ function Watcher(anchor) {
51104
+ this.anchor = anchor;
51105
+ this._oneTransactionWatcher = {};
51106
+ this._allTransactionsWatcher = undefined;
51107
+ this._watchOneTransactionRegistry = {};
51108
+ this._watchAllTransactionsRegistry = {};
51109
+ this._transactionsRegistry = {};
51110
+ this._transactionsIgnoredRegistry = {};
51111
+ }
51112
+ /**
51113
+ * Watch all transactions returned from a transfer server. When new or
51114
+ * updated transactions come in, run an `onMessage` callback.
51115
+ *
51116
+ * On initial load, it'll return ALL pending transactions via onMessage.
51117
+ * Subsequent messages will be any one of these events:
51118
+ * - Any new transaction appears
51119
+ * - Any of the initial pending transactions change any state
51120
+ *
51121
+ * You may also provide an array of transaction ids, `watchlist`, and this
51122
+ * watcher will always react to transactions whose ids are in the watchlist.
51123
+ */
51124
+ Watcher.prototype.watchAllTransactions = function (params) {
51125
+ var _this = this;
51126
+ var authToken = params.authToken, assetCode = params.assetCode, onMessage = params.onMessage, onError = params.onError, _a = params.watchlist, watchlist = _a === void 0 ? [] : _a, _b = params.timeout, timeout = _b === void 0 ? 5000 : _b, _c = params.isRetry, isRetry = _c === void 0 ? false : _c, _d = params.lang, lang = _d === void 0 ? this.anchor.language : _d, otherParams = __rest(params, ["authToken", "assetCode", "onMessage", "onError", "watchlist", "timeout", "isRetry", "lang"]);
51127
+ // make an object map out of watchlist
51128
+ var watchlistMap = watchlist.reduce(function (memo, id) {
51129
+ var _a;
51130
+ return (__assign(__assign({}, memo), (_a = {}, _a[id] = true, _a)));
51131
+ }, {});
51132
+ // make sure to initiate registries for the given asset code
51133
+ // to prevent 'Cannot read properties of undefined' errors
51134
+ if (!this._transactionsRegistry[assetCode]) {
51135
+ this._transactionsRegistry[assetCode] = {};
51136
+ }
51137
+ if (!this._transactionsIgnoredRegistry[assetCode]) {
51138
+ this._transactionsIgnoredRegistry[assetCode] = {};
51139
+ }
51140
+ // if it's a first run, drop it in the registry for the given asset code
51141
+ if (!isRetry) {
51142
+ this._watchAllTransactionsRegistry[assetCode] = true;
51143
+ }
51144
+ this.anchor.getTransactionsForAsset(__assign({ authToken: authToken, assetCode: assetCode, lang: lang }, otherParams))
51145
+ .then(function (transactions) {
51146
+ // make sure we're still watching
51147
+ if (!_this._watchAllTransactionsRegistry[assetCode]) {
51148
+ return;
51149
+ }
51150
+ try {
51151
+ var newTransactions = transactions.filter(function (transaction) {
51152
+ var isInProgress = transaction.status.indexOf("pending") === 0 ||
51153
+ transaction.status === Types_1.TransactionStatus.incomplete;
51154
+ var registeredTransaction = _this._transactionsRegistry[assetCode][transaction.id];
51155
+ // if this is the first watch, only keep the pending ones
51156
+ if (!isRetry) {
51157
+ // always show transactions on the watchlist
51158
+ if (watchlistMap[transaction.id]) {
51159
+ return true;
51160
+ }
51161
+ // if we're not in progress, then save this in an ignore reg
51162
+ if (!isInProgress) {
51163
+ _this._transactionsIgnoredRegistry[assetCode][transaction.id] = transaction;
51164
+ }
51165
+ return isInProgress;
51166
+ }
51167
+ // if we've had the transaction before, only report updates
51168
+ if (registeredTransaction) {
51169
+ return !(0, isEqual_1.default)(registeredTransaction, transaction);
51170
+ }
51171
+ // if it's NOT a registered transaction, and it's not the first
51172
+ // roll, maybe it's a new transaction that achieved a final
51173
+ // status immediately so register that!
51174
+ if ([
51175
+ Types_1.TransactionStatus.completed,
51176
+ Types_1.TransactionStatus.refunded,
51177
+ Types_1.TransactionStatus.expired,
51178
+ Types_1.TransactionStatus.error,
51179
+ ].includes(transaction.status) &&
51180
+ isRetry &&
51181
+ !_this._transactionsIgnoredRegistry[assetCode][transaction.id]) {
51182
+ return true;
51183
+ }
51184
+ // always use in progress transactions
51185
+ if (isInProgress) {
51186
+ return true;
51187
+ }
51188
+ return false;
51189
+ });
51190
+ newTransactions.forEach(function (transaction) {
51191
+ _this._transactionsRegistry[assetCode][transaction.id] = transaction;
51192
+ if (transaction.status === Types_1.TransactionStatus.error) {
51193
+ onError(transaction);
51194
+ }
51195
+ else {
51196
+ onMessage(transaction);
51197
+ }
51198
+ });
51199
+ }
51200
+ catch (e) {
51201
+ onError(e);
51202
+ return;
51203
+ }
51204
+ // call it again
51205
+ if (_this._allTransactionsWatcher) {
51206
+ clearTimeout(_this._allTransactionsWatcher);
51207
+ }
51208
+ _this._allTransactionsWatcher = setTimeout(function () {
51209
+ _this.watchAllTransactions(__assign(__assign({}, params), { isRetry: true }));
51210
+ }, timeout);
51211
+ })
51212
+ .catch(function (e) {
51213
+ onError(e);
51214
+ });
51215
+ return {
51216
+ refresh: function () {
51217
+ // don't do that if we stopped watching
51218
+ if (!_this._watchAllTransactionsRegistry[assetCode]) {
51219
+ return;
51220
+ }
51221
+ if (_this._allTransactionsWatcher) {
51222
+ clearTimeout(_this._allTransactionsWatcher);
51223
+ }
51224
+ _this.watchAllTransactions(__assign(__assign({}, params), { isRetry: true }));
51225
+ },
51226
+ stop: function () {
51227
+ if (_this._allTransactionsWatcher) {
51228
+ _this._watchAllTransactionsRegistry[assetCode] = false;
51229
+ _this._transactionsRegistry[assetCode] = {};
51230
+ _this._transactionsIgnoredRegistry[assetCode] = {};
51231
+ clearTimeout(_this._allTransactionsWatcher);
51232
+ }
51233
+ },
51234
+ };
51235
+ };
51236
+ /**
51237
+ * Watch a transaction until it stops pending. Takes three callbacks:
51238
+ * * onMessage - When the transaction comes back as pending_ or incomplete.
51239
+ * * onSuccess - When the transaction comes back as completed / refunded / expired.
51240
+ * * onError - When there's a runtime error, or the transaction comes back as
51241
+ * no_market / too_small / too_large / error.
51242
+ */
51243
+ Watcher.prototype.watchOneTransaction = function (params) {
51244
+ var _a;
51245
+ var _this = this;
51246
+ var authToken = params.authToken, assetCode = params.assetCode, id = params.id, onMessage = params.onMessage, onSuccess = params.onSuccess, onError = params.onError, _b = params.timeout, timeout = _b === void 0 ? 5000 : _b, _c = params.isRetry, isRetry = _c === void 0 ? false : _c, _d = params.lang, lang = _d === void 0 ? this.anchor.language : _d;
51247
+ // make sure to initiate registries for the given asset code
51248
+ // to prevent 'Cannot read properties of undefined' errors
51249
+ if (!this._transactionsRegistry[assetCode]) {
51250
+ this._transactionsRegistry[assetCode] = {};
51251
+ }
51252
+ if (!this._oneTransactionWatcher[assetCode]) {
51253
+ this._oneTransactionWatcher[assetCode] = {};
51254
+ }
51255
+ // if it's a first run, drop it in the registry for the given asset code
51256
+ if (!isRetry) {
51257
+ this._watchOneTransactionRegistry[assetCode] = __assign(__assign({}, (this._watchOneTransactionRegistry[assetCode] || {})), (_a = {}, _a[id] = true, _a));
51258
+ }
51259
+ // do this all asynchronously (since this func needs to return a cancel fun)
51260
+ this.anchor.getTransactionBy({ authToken: authToken, id: id, lang: lang })
51261
+ .then(function (transaction) {
51262
+ var _a;
51263
+ // make sure we're still watching
51264
+ if (!((_a = _this._watchOneTransactionRegistry[assetCode]) === null || _a === void 0 ? void 0 : _a[id])) {
51265
+ return;
51266
+ }
51267
+ var registeredTransaction = _this._transactionsRegistry[assetCode][transaction.id];
51268
+ // if we've had the transaction before, only report if there is a change
51269
+ if (registeredTransaction &&
51270
+ (0, isEqual_1.default)(registeredTransaction, transaction)) {
51271
+ return;
51272
+ }
51273
+ _this._transactionsRegistry[assetCode][transaction.id] = transaction;
51274
+ if (transaction.status.indexOf("pending") === 0 ||
51275
+ transaction.status === Types_1.TransactionStatus.incomplete) {
51276
+ if (_this._oneTransactionWatcher[assetCode][id]) {
51277
+ clearTimeout(_this._oneTransactionWatcher[assetCode][id]);
51278
+ }
51279
+ _this._oneTransactionWatcher[assetCode][id] = setTimeout(function () {
51280
+ _this.watchOneTransaction(__assign(__assign({}, params), { isRetry: true }));
51281
+ }, timeout);
51282
+ onMessage(transaction);
51283
+ }
51284
+ else if ([
51285
+ Types_1.TransactionStatus.completed,
51286
+ Types_1.TransactionStatus.refunded,
51287
+ Types_1.TransactionStatus.expired
51288
+ ].includes(transaction.status)) {
51289
+ onSuccess(transaction);
51290
+ }
51291
+ else {
51292
+ onError(transaction);
51293
+ }
51294
+ })
51295
+ .catch(function (e) {
51296
+ onError(e);
51297
+ });
51298
+ return {
51299
+ refresh: function () {
51300
+ var _a;
51301
+ // don't do that if we stopped watching
51302
+ if (!((_a = _this._watchOneTransactionRegistry[assetCode]) === null || _a === void 0 ? void 0 : _a[id])) {
51303
+ return;
51304
+ }
51305
+ if (_this._oneTransactionWatcher[assetCode][id]) {
51306
+ clearTimeout(_this._oneTransactionWatcher[assetCode][id]);
51307
+ }
51308
+ _this.watchOneTransaction(__assign(__assign({}, params), { isRetry: true }));
51309
+ },
51310
+ stop: function () {
51311
+ if (_this._oneTransactionWatcher[assetCode][id]) {
51312
+ _this._watchOneTransactionRegistry[assetCode][id] = false;
51313
+ clearTimeout(_this._oneTransactionWatcher[assetCode][id]);
51314
+ }
51315
+ },
51316
+ };
51317
+ };
51318
+ return Watcher;
51319
+ }());
51320
+ exports.Watcher = Watcher;
51321
+
51322
+
50064
51323
  /***/ }),
50065
51324
 
50066
51325
  /***/ "./src/walletSdk/exception/index.ts":
@@ -50087,11 +51346,11 @@ var __extends = (this && this.__extends) || (function () {
50087
51346
  };
50088
51347
  })();
50089
51348
  Object.defineProperty(exports, "__esModule", ({ value: true }));
50090
- exports.ClientDomainWithMemoError = exports.InvalidMemoError = exports.AssetNotSupportedError = exports.ServerRequestFailedError = void 0;
51349
+ exports.InvalidTransactionsResponseError = exports.InvalidTransactionResponseError = exports.MissingTransactionIdError = exports.ClientDomainWithMemoError = exports.InvalidMemoError = exports.AssetNotSupportedError = exports.ServerRequestFailedError = void 0;
50091
51350
  var ServerRequestFailedError = /** @class */ (function (_super) {
50092
51351
  __extends(ServerRequestFailedError, _super);
50093
51352
  function ServerRequestFailedError(e) {
50094
- var _this = _super.call(this, "server request failed with error: ".concat(e)) || this;
51353
+ var _this = _super.call(this, "Server request failed with error: ".concat(e)) || this;
50095
51354
  Object.setPrototypeOf(_this, ServerRequestFailedError.prototype);
50096
51355
  return _this;
50097
51356
  }
@@ -50101,7 +51360,7 @@ exports.ServerRequestFailedError = ServerRequestFailedError;
50101
51360
  var AssetNotSupportedError = /** @class */ (function (_super) {
50102
51361
  __extends(AssetNotSupportedError, _super);
50103
51362
  function AssetNotSupportedError(type, assetCode) {
50104
- var _this = _super.call(this, "asset ".concat(assetCode, " not supported for ").concat(type)) || this;
51363
+ var _this = _super.call(this, "Asset ".concat(assetCode, " not supported") + (type ? " for ".concat(type) : "")) || this;
50105
51364
  Object.setPrototypeOf(_this, AssetNotSupportedError.prototype);
50106
51365
  return _this;
50107
51366
  }
@@ -50128,6 +51387,144 @@ var ClientDomainWithMemoError = /** @class */ (function (_super) {
50128
51387
  return ClientDomainWithMemoError;
50129
51388
  }(Error));
50130
51389
  exports.ClientDomainWithMemoError = ClientDomainWithMemoError;
51390
+ var MissingTransactionIdError = /** @class */ (function (_super) {
51391
+ __extends(MissingTransactionIdError, _super);
51392
+ function MissingTransactionIdError() {
51393
+ var _this = _super.call(this, "One of id, stellarTransactionId or externalTransactionId is required") || this;
51394
+ Object.setPrototypeOf(_this, MissingTransactionIdError.prototype);
51395
+ return _this;
51396
+ }
51397
+ return MissingTransactionIdError;
51398
+ }(Error));
51399
+ exports.MissingTransactionIdError = MissingTransactionIdError;
51400
+ var InvalidTransactionResponseError = /** @class */ (function (_super) {
51401
+ __extends(InvalidTransactionResponseError, _super);
51402
+ function InvalidTransactionResponseError(transactionResponse) {
51403
+ var _this = _super.call(this, "Invalid transaction in response data: ".concat(JSON.stringify(transactionResponse))) || this;
51404
+ Object.setPrototypeOf(_this, InvalidTransactionResponseError.prototype);
51405
+ return _this;
51406
+ }
51407
+ return InvalidTransactionResponseError;
51408
+ }(Error));
51409
+ exports.InvalidTransactionResponseError = InvalidTransactionResponseError;
51410
+ var InvalidTransactionsResponseError = /** @class */ (function (_super) {
51411
+ __extends(InvalidTransactionsResponseError, _super);
51412
+ function InvalidTransactionsResponseError(transactionsResponse) {
51413
+ var _this = _super.call(this, "Invalid transactions in response data: ".concat(JSON.stringify(transactionsResponse))) || this;
51414
+ Object.setPrototypeOf(_this, InvalidTransactionsResponseError.prototype);
51415
+ return _this;
51416
+ }
51417
+ return InvalidTransactionsResponseError;
51418
+ }(Error));
51419
+ exports.InvalidTransactionsResponseError = InvalidTransactionsResponseError;
51420
+
51421
+
51422
+ /***/ }),
51423
+
51424
+ /***/ "./src/walletSdk/horizon/Account.ts":
51425
+ /*!******************************************!*\
51426
+ !*** ./src/walletSdk/horizon/Account.ts ***!
51427
+ \******************************************/
51428
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
51429
+
51430
+ "use strict";
51431
+
51432
+ var __extends = (this && this.__extends) || (function () {
51433
+ var extendStatics = function (d, b) {
51434
+ extendStatics = Object.setPrototypeOf ||
51435
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
51436
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
51437
+ return extendStatics(d, b);
51438
+ };
51439
+ return function (d, b) {
51440
+ if (typeof b !== "function" && b !== null)
51441
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
51442
+ extendStatics(d, b);
51443
+ function __() { this.constructor = d; }
51444
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
51445
+ };
51446
+ })();
51447
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
51448
+ exports.SigningKeypair = exports.PublicKeypair = void 0;
51449
+ var stellar_sdk_1 = __webpack_require__(/*! stellar-sdk */ "./node_modules/stellar-sdk/lib/index.js");
51450
+ var AccountKeypair = /** @class */ (function () {
51451
+ function AccountKeypair(keypair) {
51452
+ this.keypair = keypair;
51453
+ }
51454
+ Object.defineProperty(AccountKeypair.prototype, "publicKey", {
51455
+ get: function () {
51456
+ return this.keypair.publicKey();
51457
+ },
51458
+ enumerable: false,
51459
+ configurable: true
51460
+ });
51461
+ AccountKeypair.prototype.toString = function () {
51462
+ return "".concat(this.constructor.name, "(address=").concat(this.publicKey, ")");
51463
+ };
51464
+ return AccountKeypair;
51465
+ }());
51466
+ var PublicKeypair = exports.PublicKeypair = /** @class */ (function (_super) {
51467
+ __extends(PublicKeypair, _super);
51468
+ function PublicKeypair(keypair) {
51469
+ return _super.call(this, keypair) || this;
51470
+ }
51471
+ PublicKeypair.fromPublicKey = function (str) {
51472
+ return new PublicKeypair(stellar_sdk_1.Keypair.fromPublicKey(str));
51473
+ };
51474
+ return PublicKeypair;
51475
+ }(AccountKeypair));
51476
+ var SigningKeypair = exports.SigningKeypair = /** @class */ (function (_super) {
51477
+ __extends(SigningKeypair, _super);
51478
+ function SigningKeypair(keypair) {
51479
+ if (!keypair.canSign()) {
51480
+ throw new Error("This keypair doesn't have a private key and can't sign");
51481
+ }
51482
+ return _super.call(this, keypair) || this;
51483
+ }
51484
+ Object.defineProperty(SigningKeypair.prototype, "secretKey", {
51485
+ get: function () {
51486
+ return this.keypair.secret();
51487
+ },
51488
+ enumerable: false,
51489
+ configurable: true
51490
+ });
51491
+ SigningKeypair.prototype.sign = function (transaction) {
51492
+ transaction.sign(this.keypair);
51493
+ return transaction;
51494
+ };
51495
+ SigningKeypair.fromSecret = function (secret) {
51496
+ return new SigningKeypair(stellar_sdk_1.Keypair.fromSecret(secret));
51497
+ };
51498
+ return SigningKeypair;
51499
+ }(AccountKeypair));
51500
+
51501
+
51502
+ /***/ }),
51503
+
51504
+ /***/ "./src/walletSdk/horizon/AccountService.ts":
51505
+ /*!*************************************************!*\
51506
+ !*** ./src/walletSdk/horizon/AccountService.ts ***!
51507
+ \*************************************************/
51508
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
51509
+
51510
+ "use strict";
51511
+
51512
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
51513
+ exports.AccountService = void 0;
51514
+ var stellar_sdk_1 = __webpack_require__(/*! stellar-sdk */ "./node_modules/stellar-sdk/lib/index.js");
51515
+ var Account_1 = __webpack_require__(/*! ./Account */ "./src/walletSdk/horizon/Account.ts");
51516
+ // Do not create this object directly, use the Wallet class.
51517
+ var AccountService = /** @class */ (function () {
51518
+ function AccountService(cfg) {
51519
+ this.server = cfg.stellar.server;
51520
+ this.network = cfg.stellar.network;
51521
+ }
51522
+ AccountService.prototype.createKeypair = function () {
51523
+ return new Account_1.SigningKeypair(stellar_sdk_1.Keypair.random());
51524
+ };
51525
+ return AccountService;
51526
+ }());
51527
+ exports.AccountService = AccountService;
50131
51528
 
50132
51529
 
50133
51530
  /***/ }),
@@ -50136,17 +51533,21 @@ exports.ClientDomainWithMemoError = ClientDomainWithMemoError;
50136
51533
  /*!******************************************!*\
50137
51534
  !*** ./src/walletSdk/horizon/Stellar.ts ***!
50138
51535
  \******************************************/
50139
- /***/ ((__unused_webpack_module, exports) => {
51536
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
50140
51537
 
50141
51538
  "use strict";
50142
51539
 
50143
- // TODO - https://stellarorg.atlassian.net/browse/WAL-814?atlOrigin=eyJpIjoiMWY5MjBkZTE4MTg3NDA3N2E0MjYwMmQ2ZmRhOGFiODUiLCJwIjoiaiJ9
50144
51540
  Object.defineProperty(exports, "__esModule", ({ value: true }));
50145
51541
  exports.Stellar = void 0;
51542
+ var AccountService_1 = __webpack_require__(/*! ./AccountService */ "./src/walletSdk/horizon/AccountService.ts");
50146
51543
  // Do not create this object directly, use the Wallet class.
50147
51544
  var Stellar = /** @class */ (function () {
50148
51545
  function Stellar(cfg) {
51546
+ this.cfg = cfg;
50149
51547
  }
51548
+ Stellar.prototype.account = function () {
51549
+ return new AccountService_1.AccountService(this.cfg);
51550
+ };
50150
51551
  return Stellar;
50151
51552
  }());
50152
51553
  exports.Stellar = Stellar;
@@ -50177,24 +51578,40 @@ var NETWORK_URLS;
50177
51578
  /*!********************************!*\
50178
51579
  !*** ./src/walletSdk/index.ts ***!
50179
51580
  \********************************/
50180
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
51581
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
50181
51582
 
50182
51583
  "use strict";
50183
51584
 
51585
+ var __assign = (this && this.__assign) || function () {
51586
+ __assign = Object.assign || function(t) {
51587
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
51588
+ s = arguments[i];
51589
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
51590
+ t[p] = s[p];
51591
+ }
51592
+ return t;
51593
+ };
51594
+ return __assign.apply(this, arguments);
51595
+ };
51596
+ var __importDefault = (this && this.__importDefault) || function (mod) {
51597
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51598
+ };
50184
51599
  Object.defineProperty(exports, "__esModule", ({ value: true }));
50185
- exports.ApplicationConfiguration = exports.StellarConfiguration = exports.Wallet = void 0;
51600
+ exports.ApplicationConfiguration = exports.StellarConfiguration = exports.Wallet = exports.Config = void 0;
50186
51601
  var stellar_sdk_1 = __webpack_require__(/*! stellar-sdk */ "./node_modules/stellar-sdk/lib/index.js");
51602
+ var axios_1 = __importDefault(__webpack_require__(/*! axios */ "./node_modules/axios/dist/browser/axios.cjs"));
50187
51603
  var Anchor_1 = __webpack_require__(/*! ./Anchor */ "./src/walletSdk/Anchor/index.ts");
50188
51604
  var WalletSigner_1 = __webpack_require__(/*! ./Auth/WalletSigner */ "./src/walletSdk/Auth/WalletSigner.ts");
50189
51605
  var Stellar_1 = __webpack_require__(/*! ./horizon/Stellar */ "./src/walletSdk/horizon/Stellar.ts");
50190
51606
  var constants_1 = __webpack_require__(/*! ./horizon/constants */ "./src/walletSdk/horizon/constants.ts");
50191
51607
  var Recovery_1 = __webpack_require__(/*! ./recovery/Recovery */ "./src/walletSdk/recovery/Recovery.ts");
50192
51608
  var url_1 = __webpack_require__(/*! ./util/url */ "./src/walletSdk/util/url.ts");
50193
- var HttpClient = /** @class */ (function () {
50194
- function HttpClient() {
50195
- }
50196
- return HttpClient;
50197
- }());
51609
+ /* tslint:disable-next-line:no-var-requires */
51610
+ var version = (__webpack_require__(/*! ../../package.json */ "./package.json").version);
51611
+ var walletHeaders = {
51612
+ "X-Client-Name": "typescript-wallet-sdk",
51613
+ "X-Client-Version": version,
51614
+ };
50198
51615
  var Config = /** @class */ (function () {
50199
51616
  function Config(stellarCfg, appCfg) {
50200
51617
  this.stellar = stellarCfg;
@@ -50202,30 +51619,37 @@ var Config = /** @class */ (function () {
50202
51619
  }
50203
51620
  return Config;
50204
51621
  }());
51622
+ exports.Config = Config;
50205
51623
  var Wallet = exports.Wallet = /** @class */ (function () {
50206
- function Wallet(stellarConfiguration, applicationConfiguration) {
51624
+ function Wallet(stellarConfiguration, applicationConfiguration,
51625
+ // Defaults wallet language to "en", this will reflect in all Anchor API calls
51626
+ language) {
50207
51627
  if (applicationConfiguration === void 0) { applicationConfiguration = new ApplicationConfiguration(); }
50208
- this.clients = [];
51628
+ if (language === void 0) { language = "en"; }
50209
51629
  this.cfg = new Config(stellarConfiguration, applicationConfiguration);
51630
+ this.language = language;
50210
51631
  }
50211
- Wallet.prototype.anchor = function (homeDomain, httpClientConfig) {
50212
- if (httpClientConfig === void 0) { httpClientConfig = null; }
51632
+ Wallet.prototype.anchor = function (homeDomain, httpClientConfig, language) {
51633
+ if (httpClientConfig === void 0) { httpClientConfig = {}; }
51634
+ if (language === void 0) { language = this.language; }
50213
51635
  var url = homeDomain.indexOf("://") !== -1 ? homeDomain : "https://".concat(homeDomain);
50214
- return new Anchor_1.Anchor(this.cfg, (0, url_1.getUrlDomain)(url), this.getClient(httpClientConfig));
51636
+ return new Anchor_1.Anchor({
51637
+ cfg: this.cfg,
51638
+ homeDomain: (0, url_1.getUrlDomain)(url),
51639
+ httpClient: this.getClient(httpClientConfig),
51640
+ language: language,
51641
+ });
50215
51642
  };
50216
51643
  Wallet.prototype.stellar = function () {
50217
51644
  return new Stellar_1.Stellar(this.cfg);
50218
51645
  };
50219
51646
  Wallet.prototype.recover = function (servers, httpClientConfig) {
51647
+ if (httpClientConfig === void 0) { httpClientConfig = {}; }
50220
51648
  return new Recovery_1.Recovery(this.cfg, this.stellar(), this.getClient(httpClientConfig), servers);
50221
51649
  };
50222
51650
  Wallet.prototype.getClient = function (httpClientConfig) {
50223
- // TODO - create an httpClient object from the passed in config object
50224
- var httpClient = null;
50225
- if (httpClient) {
50226
- this.clients.push(httpClient);
50227
- }
50228
- return httpClient ? httpClient : this.cfg.app.defaultClient;
51651
+ if (httpClientConfig === void 0) { httpClientConfig = {}; }
51652
+ return axios_1.default.create(__assign({ headers: __assign(__assign({}, walletHeaders), httpClientConfig.headers) }, httpClientConfig));
50229
51653
  };
50230
51654
  Wallet.TestNet = function () {
50231
51655
  return new Wallet(StellarConfiguration.TestNet());
@@ -50252,12 +51676,12 @@ var StellarConfiguration = exports.StellarConfiguration = /** @class */ (functio
50252
51676
  return StellarConfiguration;
50253
51677
  }());
50254
51678
  var ApplicationConfiguration = /** @class */ (function () {
50255
- function ApplicationConfiguration(defaultSigner, defaultCliengConfig) {
51679
+ function ApplicationConfiguration(defaultSigner) {
50256
51680
  if (defaultSigner === void 0) { defaultSigner = WalletSigner_1.DefaultSigner; }
50257
- if (defaultCliengConfig === void 0) { defaultCliengConfig = {}; }
50258
51681
  this.defaultSigner = defaultSigner;
50259
- // TODO - default client
50260
- this.defaultClient = new HttpClient();
51682
+ this.defaultClient = axios_1.default.create({
51683
+ headers: __assign({}, walletHeaders),
51684
+ });
50261
51685
  }
50262
51686
  return ApplicationConfiguration;
50263
51687
  }());
@@ -50321,12 +51745,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
50321
51745
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
50322
51746
  }
50323
51747
  };
50324
- var __importDefault = (this && this.__importDefault) || function (mod) {
50325
- return (mod && mod.__esModule) ? mod : { "default": mod };
50326
- };
50327
51748
  Object.defineProperty(exports, "__esModule", ({ value: true }));
50328
51749
  exports.Interactive = exports.FLOW_TYPE = void 0;
50329
- var axios_1 = __importDefault(__webpack_require__(/*! axios */ "./node_modules/axios/dist/browser/axios.cjs"));
50330
51750
  var exception_1 = __webpack_require__(/*! ../exception */ "./src/walletSdk/exception/index.ts");
50331
51751
  var FLOW_TYPE;
50332
51752
  (function (FLOW_TYPE) {
@@ -50335,44 +51755,45 @@ var FLOW_TYPE;
50335
51755
  })(FLOW_TYPE = exports.FLOW_TYPE || (exports.FLOW_TYPE = {}));
50336
51756
  // Do not create this object directly, use the Wallet class.
50337
51757
  var Interactive = /** @class */ (function () {
50338
- function Interactive(homeDomain, anchor) {
50339
- this.homeDomain = "";
50340
- this.anchor = null;
51758
+ function Interactive(homeDomain, anchor, httpClient) {
50341
51759
  this.homeDomain = homeDomain;
50342
51760
  this.anchor = anchor;
51761
+ this.httpClient = httpClient;
50343
51762
  }
50344
- Interactive.prototype.deposit = function (accountAddress, assetCode, authToken, extraFields, fundsAccountAddress) {
51763
+ Interactive.prototype.deposit = function (params) {
50345
51764
  return __awaiter(this, void 0, void 0, function () {
50346
51765
  return __generator(this, function (_a) {
50347
51766
  switch (_a.label) {
50348
- case 0: return [4 /*yield*/, this.flow(accountAddress, assetCode, authToken, FLOW_TYPE.DEPOSIT, extraFields, fundsAccountAddress)];
51767
+ case 0: return [4 /*yield*/, this.flow(__assign(__assign({}, params), { type: FLOW_TYPE.DEPOSIT }))];
50349
51768
  case 1: return [2 /*return*/, _a.sent()];
50350
51769
  }
50351
51770
  });
50352
51771
  });
50353
51772
  };
50354
- Interactive.prototype.withdraw = function (accountAddress, assetCode, authToken, extraFields, fundsAccountAddress) {
51773
+ Interactive.prototype.withdraw = function (params) {
50355
51774
  return __awaiter(this, void 0, void 0, function () {
50356
51775
  return __generator(this, function (_a) {
50357
51776
  switch (_a.label) {
50358
- case 0: return [4 /*yield*/, this.flow(accountAddress, assetCode, authToken, FLOW_TYPE.WITHDRAW, extraFields, fundsAccountAddress)];
51777
+ case 0: return [4 /*yield*/, this.flow(__assign(__assign({}, params), { type: FLOW_TYPE.WITHDRAW }))];
50359
51778
  case 1: return [2 /*return*/, _a.sent()];
50360
51779
  }
50361
51780
  });
50362
51781
  });
50363
51782
  };
50364
- Interactive.prototype.flow = function (accountAddress, assetCode, authToken, type, extraFields, fundsAccountAddress) {
51783
+ Interactive.prototype.flow = function (params) {
50365
51784
  return __awaiter(this, void 0, void 0, function () {
50366
- var toml, transferServerEndpoint, serviceInfo, assets, resp, e_1;
50367
- return __generator(this, function (_a) {
50368
- switch (_a.label) {
50369
- case 0: return [4 /*yield*/, this.anchor.getInfo()];
51785
+ var accountAddress, assetCode, authToken, _a, lang, extraFields, _b, fundsAccountAddress, type, toml, transferServerEndpoint, serviceInfo, assets, resp, e_1;
51786
+ return __generator(this, function (_c) {
51787
+ switch (_c.label) {
51788
+ case 0:
51789
+ accountAddress = params.accountAddress, assetCode = params.assetCode, authToken = params.authToken, _a = params.lang, lang = _a === void 0 ? this.anchor.language : _a, extraFields = params.extraFields, _b = params.fundsAccountAddress, fundsAccountAddress = _b === void 0 ? accountAddress : _b, type = params.type;
51790
+ return [4 /*yield*/, this.anchor.getInfo()];
50370
51791
  case 1:
50371
- toml = _a.sent();
51792
+ toml = _c.sent();
50372
51793
  transferServerEndpoint = toml.transferServerSep24;
50373
51794
  return [4 /*yield*/, this.anchor.getServicesInfo()];
50374
51795
  case 2:
50375
- serviceInfo = _a.sent();
51796
+ serviceInfo = _c.sent();
50376
51797
  if (type === FLOW_TYPE.DEPOSIT) {
50377
51798
  assets = Object.keys(serviceInfo.deposit);
50378
51799
  }
@@ -50382,20 +51803,20 @@ var Interactive = /** @class */ (function () {
50382
51803
  if (!assets.includes(assetCode)) {
50383
51804
  throw new exception_1.AssetNotSupportedError(type, assetCode);
50384
51805
  }
50385
- _a.label = 3;
51806
+ _c.label = 3;
50386
51807
  case 3:
50387
- _a.trys.push([3, 5, , 6]);
50388
- return [4 /*yield*/, axios_1.default.post("".concat(transferServerEndpoint, "/transactions/").concat(type, "/interactive"), __assign({ asset_code: assetCode, account: fundsAccountAddress ? fundsAccountAddress : accountAddress }, extraFields), {
51808
+ _c.trys.push([3, 5, , 6]);
51809
+ return [4 /*yield*/, this.httpClient.post("".concat(transferServerEndpoint, "/transactions/").concat(type, "/interactive"), __assign({ asset_code: assetCode, lang: lang, account: fundsAccountAddress }, extraFields), {
50389
51810
  headers: {
50390
51811
  "Content-Type": "application/json",
50391
51812
  Authorization: "Bearer ".concat(authToken),
50392
51813
  },
50393
51814
  })];
50394
51815
  case 4:
50395
- resp = _a.sent();
51816
+ resp = _c.sent();
50396
51817
  return [2 /*return*/, resp.data];
50397
51818
  case 5:
50398
- e_1 = _a.sent();
51819
+ e_1 = _c.sent();
50399
51820
  throw new exception_1.ServerRequestFailedError(e_1);
50400
51821
  case 6: return [2 /*return*/];
50401
51822
  }
@@ -50537,6 +51958,35 @@ var parseToml = function (toml) {
50537
51958
  exports.parseToml = parseToml;
50538
51959
 
50539
51960
 
51961
+ /***/ }),
51962
+
51963
+ /***/ "./src/walletSdk/util/camelToSnakeCase.ts":
51964
+ /*!************************************************!*\
51965
+ !*** ./src/walletSdk/util/camelToSnakeCase.ts ***!
51966
+ \************************************************/
51967
+ /***/ ((__unused_webpack_module, exports) => {
51968
+
51969
+ "use strict";
51970
+
51971
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
51972
+ exports.camelToSnakeCaseObject = exports.camelToSnakeCaseKey = void 0;
51973
+ var camelToSnakeCaseKey = function (key) {
51974
+ return key.replace(/[A-Z]/g, function (upperCaseLetter) { return "_".concat(upperCaseLetter.toLowerCase()); });
51975
+ };
51976
+ exports.camelToSnakeCaseKey = camelToSnakeCaseKey;
51977
+ var camelToSnakeCaseObject = function (obj) {
51978
+ var snakeCasedObj = {};
51979
+ for (var key in obj) {
51980
+ if (obj.hasOwnProperty(key)) {
51981
+ var snakeCaseKey = (0, exports.camelToSnakeCaseKey)(key);
51982
+ snakeCasedObj[snakeCaseKey] = obj[key];
51983
+ }
51984
+ }
51985
+ return snakeCasedObj;
51986
+ };
51987
+ exports.camelToSnakeCaseObject = camelToSnakeCaseObject;
51988
+
51989
+
50540
51990
  /***/ }),
50541
51991
 
50542
51992
  /***/ "./src/walletSdk/util/url.ts":
@@ -62162,6 +63612,17 @@ module.exports = axios;
62162
63612
  "use strict";
62163
63613
  module.exports = JSON.parse('{"name":"stellar-sdk","version":"10.4.1","description":"stellar-sdk is a library for working with the Stellar Horizon server.","main":"./lib/index.js","types":"./lib/index.d.ts","files":["/types","/lib","/dist"],"scripts":{"prepare":"gulp build","test":"babel-node ./node_modules/.bin/gulp test","test:watch":"babel-node ./node_modules/.bin/gulp test:watch","build:docs":"gulp build:docs","docs":"yarn build:docs && jsdoc -c .jsdoc.json","preversion":"gulp test","version":"gulp build","postversion":"git push && git push --tags","prettier-all":"prettier --write **/*.{js,ts}"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"prettier":"@stellar/prettier-config","lint-staged":{"lib/*.{js,json}":["prettier --write","git add"],"lib/*.js":["eslint --fix --max-warnings 0","git add"],"**/*.ts":["prettier --write","tslint --fix","git add"]},"keywords":["stellar"],"repository":{"type":"git","url":"https://github.com/stellar/js-stellar-sdk.git"},"author":"Stellar Development Foundation <hello@stellar.org>","license":"Apache-2.0","bugs":{"url":"https://github.com/stellar/js-stellar-sdk/issues"},"homepage":"https://github.com/stellar/js-stellar-sdk","devDependencies":{"@kollavarsham/gulp-coveralls":"0.2.8","@stellar/prettier-config":"^1.0.1","@stellar/tsconfig":"^1.0.1","@stellar/tslint-config":"^1.0.3","@types/detect-node":"^2.0.0","@types/lodash":"^4.14.130","axios-mock-adapter":"^1.16.0","babel-cli":"^6.26.0","babel-core":"~6.26.3","babel-eslint":"^10.0.1","babel-istanbul":"^0.12.2","babel-loader":"^7.0.0","babel-plugin-transform-builtin-extend":"^1.1.2","babel-preset-es2015":"^6.24.1","babel-register":"^6.26.0","body-parser":"^1.12.2","chai":"^2.2.0","chai-as-promised":"^5.2.0","chai-http":"^4.3.0","clear":"^0.1.0","coveralls":"3.0.2","del":"^5.1.0","eslint":"^5.12.1","eslint-config-airbnb-base":"^13.1.0","eslint-config-prettier":"^3.6.0","eslint-plugin-import":"^2.15.0","eslint-plugin-node":"^8.0.1","eslint-plugin-prefer-import":"^0.0.1","eslint-plugin-prettier":"^3.0.1","ghooks":"^0.3.0","gulp":"^4.0.0","gulp-babel":"^6.1.3","gulp-eslint":"^5.0.0","gulp-insert":"^0.5.0","gulp-istanbul":"^1.1.3","gulp-load-plugins":"1.5.0","gulp-mocha":"^7.0.2","gulp-plumber":"^1.0.0","gulp-rename":"~1.2.0","gulp-tslint":"^8.1.4","husky":"^1.3.1","isparta":"^4.1.1","istanbul":"^0.4.5","jsdoc":"3.5.5","json-loader":"^0.5.1","karma":"^6.3.0","karma-chai":"^0.1.0","karma-chai-as-promised":"^0.1.2","karma-chrome-launcher":"^3.1.0","karma-commonjs":"^1.0.0","karma-firefox-launcher":"^2.1.2","karma-mocha":"^2.0.1","karma-phantomjs-launcher":"^1.0.4","karma-sauce-launcher":"2.0.2","karma-sinon":"^1.0.5","karma-sinon-chai":"2.0.2","karma-webpack":"5.0.0","lint-staged":"7.3.0","minami":"^1.1.1","mocha":"^9.1.4","prettier":"^1.17.1","sinon":"^1.14.1","sinon-chai":"^2.7.0","terser-webpack-plugin":"^1.3.0","ts-loader":"^5.0.0","tslint":"^5.16.0","typescript":"^3.4.5","webpack":"^4.33.0","webpack-cli":"^3.3.3","webpack-stream":"^5.2.1"},"dependencies":{"@types/eventsource":"^1.1.2","@types/node":">= 8","@types/randombytes":"^2.0.0","@types/urijs":"^1.19.6","axios":"0.25.0","bignumber.js":"^4.0.0","detect-node":"^2.0.4","es6-promise":"^4.2.4","eventsource":"^1.1.1","lodash":"^4.17.21","randombytes":"^2.1.0","stellar-base":"^8.2.2","toml":"^2.3.0","tslib":"^1.10.0","urijs":"^1.19.1","utility-types":"^3.7.0"}}');
62164
63614
 
63615
+ /***/ }),
63616
+
63617
+ /***/ "./package.json":
63618
+ /*!**********************!*\
63619
+ !*** ./package.json ***!
63620
+ \**********************/
63621
+ /***/ ((module) => {
63622
+
63623
+ "use strict";
63624
+ module.exports = JSON.parse('{"name":"@stellar/typescript-wallet-sdk","version":"1.1.0-alpha.1","engines":{"node":">=18"},"main":"./lib/bundle.js","types":"./lib/index.d.ts","license":"Apache-2.0","private":false,"devDependencies":{"@babel/preset-env":"^7.20.2","@stellar/eslint-config":"^2.1.2","@stellar/prettier-config":"^1.0.1","@stellar/tsconfig":"^1.0.2","@types/jest":"^29.4.0","@types/lodash":"^4.14.194","@types/sinon":"^10.0.15","babel-jest":"^29.4.1","eslint":"^8.33.0","jest":"^29.4.1","sinon":"^15.1.0","ts-jest":"^29.0.5","ts-loader":"^9.4.2","tslib":"^2.5.0","typescript":"^5.0.4","webpack":"^5.83.1","webpack-cli":"^5.1.1"},"dependencies":{"axios":"^1.4.0","https-browserify":"^1.0.0","lodash":"^4.17.21","query-string":"^7.1.3","stellar-sdk":"^10.4.1","stream-http":"^3.2.0","url":"^0.11.0","util":"^0.12.5","utility-types":"^3.10.0"},"scripts":{"prepare":"yarn build","test":"jest --watchAll","build":"webpack --config webpack.config.js"}}');
63625
+
62165
63626
  /***/ })
62166
63627
 
62167
63628
  /******/ });