@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.
- package/lib/bundle.js +1541 -80
- package/lib/bundle.js.map +1 -1
- package/lib/walletSdk/Watcher/Types.d.ts +65 -0
- package/lib/walletSdk/Watcher/index.d.ts +54 -0
- package/lib/walletSdk/anchor/Types.d.ts +76 -0
- package/lib/walletSdk/anchor/index.d.ts +78 -7
- package/lib/walletSdk/auth/WalletSigner.d.ts +3 -0
- package/lib/walletSdk/auth/index.d.ts +8 -5
- package/lib/walletSdk/exception/index.d.ts +9 -0
- package/lib/walletSdk/horizon/Account.d.ts +20 -0
- package/lib/walletSdk/horizon/AccountService.d.ts +8 -0
- package/lib/walletSdk/horizon/Stellar.d.ts +5 -1
- package/lib/walletSdk/index.d.ts +12 -13
- package/lib/walletSdk/interactive/index.d.ts +16 -5
- package/lib/walletSdk/util/camelToSnakeCase.d.ts +2 -0
- package/lib/walletSdk/util/sleep.d.ts +1 -0
- package/package.json +12 -6
- package/src/walletSdk/Anchor/Types.ts +79 -0
- package/src/walletSdk/Anchor/index.ts +224 -24
- package/src/walletSdk/Auth/WalletSigner.ts +18 -3
- package/src/walletSdk/Auth/index.ts +41 -15
- package/src/walletSdk/Watcher/Types.ts +81 -0
- package/src/walletSdk/Watcher/index.ts +355 -0
- package/src/walletSdk/exception/index.ts +23 -2
- package/src/walletSdk/horizon/Account.ts +52 -0
- package/src/walletSdk/horizon/AccountService.ts +19 -0
- package/src/walletSdk/horizon/Stellar.ts +10 -2
- package/src/walletSdk/index.ts +41 -28
- package/src/walletSdk/interactive/index.ts +32 -43
- package/src/walletSdk/util/camelToSnakeCase.ts +13 -0
- package/test/account.test.ts +36 -0
- package/test/fixtures/TransactionsResponse.ts +230 -0
- package/test/wallet.test.ts +1722 -0
- 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(
|
|
49841
|
-
|
|
49842
|
-
this.
|
|
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.
|
|
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
|
|
50591
|
+
var stellarToml, parsedToml;
|
|
49850
50592
|
return __generator(this, function (_a) {
|
|
49851
50593
|
switch (_a.label) {
|
|
49852
|
-
case 0:
|
|
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
|
-
|
|
49855
|
-
|
|
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*/,
|
|
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
|
-
|
|
49905
|
-
|
|
49906
|
-
|
|
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
|
-
|
|
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
|
|
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*/,
|
|
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
|
-
|
|
50033
|
-
|
|
50034
|
-
|
|
50035
|
-
transaction.
|
|
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*/,
|
|
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, "
|
|
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, "
|
|
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
|
|
50194
|
-
|
|
50195
|
-
|
|
50196
|
-
|
|
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
|
-
|
|
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 =
|
|
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(
|
|
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
|
-
|
|
50224
|
-
|
|
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
|
|
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
|
-
|
|
50260
|
-
|
|
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 (
|
|
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(
|
|
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 (
|
|
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(
|
|
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 (
|
|
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 (
|
|
50368
|
-
switch (
|
|
50369
|
-
case 0:
|
|
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 =
|
|
51792
|
+
toml = _c.sent();
|
|
50372
51793
|
transferServerEndpoint = toml.transferServerSep24;
|
|
50373
51794
|
return [4 /*yield*/, this.anchor.getServicesInfo()];
|
|
50374
51795
|
case 2:
|
|
50375
|
-
serviceInfo =
|
|
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
|
-
|
|
51806
|
+
_c.label = 3;
|
|
50386
51807
|
case 3:
|
|
50387
|
-
|
|
50388
|
-
return [4 /*yield*/,
|
|
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 =
|
|
51816
|
+
resp = _c.sent();
|
|
50396
51817
|
return [2 /*return*/, resp.data];
|
|
50397
51818
|
case 5:
|
|
50398
|
-
e_1 =
|
|
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
|
/******/ });
|