@tonconnect/sdk 0.0.21 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/lib/errors/dapp/dapp-metadata.error.js +6 -14
  2. package/lib/errors/index.js +18 -5
  3. package/lib/errors/protocol/events/connect/user-rejects.error.js +6 -14
  4. package/lib/errors/protocol/events/index.js +15 -2
  5. package/lib/errors/protocol/index.js +16 -3
  6. package/lib/errors/protocol/responses/bad-request.error.js +6 -14
  7. package/lib/errors/protocol/responses/unknown-app.error.js +6 -14
  8. package/lib/errors/storage/localstorage-not-found.error.js +6 -14
  9. package/lib/errors/ton-connect.error.js +5 -13
  10. package/lib/errors/unknown.error.js +6 -14
  11. package/lib/errors/wallet/wallet-already-connected.error.js +6 -14
  12. package/lib/errors/wallet/wallet-not-connected.error.js +6 -14
  13. package/lib/errors/wallet/wallet-not-injected.error.js +6 -14
  14. package/lib/errors/wallets-manager/fetch-wallets.error.js +6 -14
  15. package/lib/index.js +17 -4
  16. package/lib/models/index.js +16 -3
  17. package/lib/models/methods/index.js +16 -3
  18. package/lib/parsers/connect-errors-parser.js +14 -18
  19. package/lib/parsers/rpc-parser.js +4 -7
  20. package/lib/parsers/send-transaction-parser.js +19 -26
  21. package/lib/provider/bridge/bridge-gateway.js +71 -79
  22. package/lib/provider/bridge/bridge-provider.js +118 -138
  23. package/lib/provider/injected/injected-provider.js +95 -90
  24. package/lib/storage/bridge-connection-storage.js +86 -112
  25. package/lib/storage/default-storage.d.ts +1 -0
  26. package/lib/storage/default-storage.js +28 -22
  27. package/lib/storage/http-bridge-gateway-storage.js +28 -32
  28. package/lib/ton-connect.js +123 -165
  29. package/lib/utils/options.js +5 -5
  30. package/lib/utils/web-api.d.ts +3 -0
  31. package/lib/utils/web-api.js +36 -13
  32. package/lib/wallets-list-manager.js +59 -73
  33. package/package.json +4 -2
@@ -1,74 +1,61 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.WalletsListManager = void 0;
4
- var tslib_1 = require("tslib");
5
- var fetch_wallets_error_1 = require("./errors/wallets-manager/fetch-wallets.error");
6
- var wallet_info_1 = require("./models/wallet/wallet-info");
7
- var injected_provider_1 = require("./provider/injected/injected-provider");
8
- var WalletsListManager = /** @class */ (function () {
9
- function WalletsListManager() {
13
+ const fetch_wallets_error_1 = require("./errors/wallets-manager/fetch-wallets.error");
14
+ const wallet_info_1 = require("./models/wallet/wallet-info");
15
+ const injected_provider_1 = require("./provider/injected/injected-provider");
16
+ class WalletsListManager {
17
+ constructor() {
10
18
  this.walletsListCache = null;
11
19
  this.walletsListSource = 'https://raw.githubusercontent.com/ton-connect/wallets-list/main/wallets.json';
12
20
  }
13
- WalletsListManager.prototype.getWallets = function () {
14
- return tslib_1.__awaiter(this, void 0, void 0, function () {
15
- var _this = this;
16
- return tslib_1.__generator(this, function (_a) {
17
- if (!this.walletsListCache) {
18
- this.walletsListCache = this.fetchWalletsList();
19
- this.walletsListCache.catch(function () { return (_this.walletsListCache = null); });
20
- }
21
- return [2 /*return*/, this.walletsListCache];
22
- });
21
+ getWallets() {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ if (!this.walletsListCache) {
24
+ this.walletsListCache = this.fetchWalletsList();
25
+ this.walletsListCache.catch(() => (this.walletsListCache = null));
26
+ }
27
+ return this.walletsListCache;
23
28
  });
24
- };
25
- WalletsListManager.prototype.getEmbeddedWallet = function () {
26
- return tslib_1.__awaiter(this, void 0, void 0, function () {
27
- var walletsList, injectedWallets;
28
- return tslib_1.__generator(this, function (_a) {
29
- switch (_a.label) {
30
- case 0: return [4 /*yield*/, this.getWallets()];
31
- case 1:
32
- walletsList = _a.sent();
33
- injectedWallets = walletsList.filter(wallet_info_1.isWalletInfoInjected);
34
- if (injectedWallets.length !== 1) {
35
- return [2 /*return*/, null];
36
- }
37
- return [2 /*return*/, injectedWallets[0].embedded ? injectedWallets[0] : null];
38
- }
39
- });
29
+ }
30
+ getEmbeddedWallet() {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ const walletsList = yield this.getWallets();
33
+ const injectedWallets = walletsList.filter(wallet_info_1.isWalletInfoInjected);
34
+ if (injectedWallets.length !== 1) {
35
+ return null;
36
+ }
37
+ return injectedWallets[0].embedded ? injectedWallets[0] : null;
40
38
  });
41
- };
42
- WalletsListManager.prototype.fetchWalletsList = function () {
43
- return tslib_1.__awaiter(this, void 0, void 0, function () {
44
- var walletsResponse, walletsList, e_1;
45
- var _this = this;
46
- return tslib_1.__generator(this, function (_a) {
47
- switch (_a.label) {
48
- case 0:
49
- _a.trys.push([0, 3, , 4]);
50
- return [4 /*yield*/, fetch(this.walletsListSource)];
51
- case 1:
52
- walletsResponse = _a.sent();
53
- return [4 /*yield*/, walletsResponse.json()];
54
- case 2:
55
- walletsList = _a.sent();
56
- if (!Array.isArray(walletsList) ||
57
- !walletsList.every(function (wallet) { return _this.isCorrectWalletConfigDTO(wallet); })) {
58
- throw new fetch_wallets_error_1.FetchWalletsError('Wrong wallets list format');
59
- }
60
- return [2 /*return*/, this.walletConfigDTOListToWalletConfigList(walletsList)];
61
- case 3:
62
- e_1 = _a.sent();
63
- throw new fetch_wallets_error_1.FetchWalletsError(e_1);
64
- case 4: return [2 /*return*/];
39
+ }
40
+ fetchWalletsList() {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ try {
43
+ const walletsResponse = yield fetch(this.walletsListSource);
44
+ const walletsList = yield walletsResponse.json();
45
+ if (!Array.isArray(walletsList) ||
46
+ !walletsList.every(wallet => this.isCorrectWalletConfigDTO(wallet))) {
47
+ throw new fetch_wallets_error_1.FetchWalletsError('Wrong wallets list format');
65
48
  }
66
- });
49
+ return this.walletConfigDTOListToWalletConfigList(walletsList);
50
+ }
51
+ catch (e) {
52
+ throw new fetch_wallets_error_1.FetchWalletsError(e);
53
+ }
67
54
  });
68
- };
69
- WalletsListManager.prototype.walletConfigDTOListToWalletConfigList = function (walletConfigDTO) {
70
- return walletConfigDTO.map(function (walletConfigDTO) {
71
- var walletConfig = {
55
+ }
56
+ walletConfigDTOListToWalletConfigList(walletConfigDTO) {
57
+ return walletConfigDTO.map(walletConfigDTO => {
58
+ const walletConfig = {
72
59
  name: walletConfigDTO.name,
73
60
  imageUrl: walletConfigDTO.image,
74
61
  aboutUrl: walletConfigDTO.about_url,
@@ -79,7 +66,7 @@ var WalletsListManager = /** @class */ (function () {
79
66
  walletConfig.universalLink = walletConfigDTO.universal_url;
80
67
  }
81
68
  if ('js_bridge_key' in walletConfigDTO) {
82
- var jsBridgeKey = walletConfigDTO.js_bridge_key;
69
+ const jsBridgeKey = walletConfigDTO.js_bridge_key;
83
70
  walletConfig.jsBridgeKey = jsBridgeKey;
84
71
  walletConfig.injected =
85
72
  injected_provider_1.InjectedProvider.isWalletInjected(jsBridgeKey);
@@ -88,22 +75,21 @@ var WalletsListManager = /** @class */ (function () {
88
75
  }
89
76
  return walletConfig;
90
77
  });
91
- };
92
- WalletsListManager.prototype.isCorrectWalletConfigDTO = function (value) {
78
+ }
79
+ isCorrectWalletConfigDTO(value) {
93
80
  if (!value || !(typeof value === 'object')) {
94
81
  return false;
95
82
  }
96
- var containsName = 'name' in value;
97
- var containsImage = 'image' in value;
98
- var containsAbout = 'about_url' in value;
83
+ const containsName = 'name' in value;
84
+ const containsImage = 'image' in value;
85
+ const containsAbout = 'about_url' in value;
99
86
  if (!containsName || !containsImage || !containsAbout) {
100
87
  return false;
101
88
  }
102
- var containsUniversalUrl = 'universal_url' in value;
103
- var containsHttpBridge = 'bridge_url' in value;
104
- var containsJsBridge = 'js_bridge_key' in value;
89
+ const containsUniversalUrl = 'universal_url' in value;
90
+ const containsHttpBridge = 'bridge_url' in value;
91
+ const containsJsBridge = 'js_bridge_key' in value;
105
92
  return (containsHttpBridge && containsUniversalUrl) || containsJsBridge;
106
- };
107
- return WalletsListManager;
108
- }());
93
+ }
94
+ }
109
95
  exports.WalletsListManager = WalletsListManager;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonconnect/sdk",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "scripts": {
5
5
  "build": "npx rimraf lib && ttsc",
6
6
  "build:production": "npx rimraf lib && ttsc --sourceMap false"
@@ -26,7 +26,9 @@
26
26
  "dependencies": {
27
27
  "deepmerge": "^4.2.2",
28
28
  "tweetnacl": "^1.0.3",
29
- "@tonconnect/protocol": "^0.0.10"
29
+ "eventsource": "^2.0.2",
30
+ "node-fetch": "^2.6.7",
31
+ "@tonconnect/protocol": "^0.0.11"
30
32
  },
31
33
  "files": [
32
34
  "lib"