@tonconnect/sdk 0.0.21 → 0.0.22
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/errors/dapp/dapp-metadata.error.js +6 -14
- package/lib/errors/index.js +18 -5
- package/lib/errors/protocol/events/connect/user-rejects.error.js +6 -14
- package/lib/errors/protocol/events/index.js +15 -2
- package/lib/errors/protocol/index.js +16 -3
- package/lib/errors/protocol/responses/bad-request.error.js +6 -14
- package/lib/errors/protocol/responses/unknown-app.error.js +6 -14
- package/lib/errors/storage/localstorage-not-found.error.js +6 -14
- package/lib/errors/ton-connect.error.js +5 -13
- package/lib/errors/unknown.error.js +6 -14
- package/lib/errors/wallet/wallet-already-connected.error.js +6 -14
- package/lib/errors/wallet/wallet-not-connected.error.js +6 -14
- package/lib/errors/wallet/wallet-not-injected.error.js +6 -14
- package/lib/errors/wallets-manager/fetch-wallets.error.js +6 -14
- package/lib/index.js +17 -4
- package/lib/models/index.js +16 -3
- package/lib/models/methods/index.js +16 -3
- package/lib/parsers/connect-errors-parser.js +14 -18
- package/lib/parsers/rpc-parser.js +4 -7
- package/lib/parsers/send-transaction-parser.js +19 -26
- package/lib/provider/bridge/bridge-gateway.js +60 -79
- package/lib/provider/bridge/bridge-provider.js +118 -138
- package/lib/provider/injected/injected-provider.js +93 -89
- package/lib/storage/bridge-connection-storage.js +86 -112
- package/lib/storage/default-storage.js +24 -21
- package/lib/storage/http-bridge-gateway-storage.js +28 -32
- package/lib/ton-connect.js +123 -165
- package/lib/utils/options.js +5 -5
- package/lib/utils/web-api.js +10 -10
- package/lib/wallets-list-manager.js +59 -73
- package/package.json +2 -2
|
@@ -1,13 +1,21 @@
|
|
|
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.BridgeGateway = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
function BridgeGateway(storage, bridgeUrl, sessionId, listener, errorsListener) {
|
|
13
|
+
const protocol_1 = require("@tonconnect/protocol");
|
|
14
|
+
const errors_1 = require("../../errors");
|
|
15
|
+
const http_bridge_gateway_storage_1 = require("../../storage/http-bridge-gateway-storage");
|
|
16
|
+
const url_1 = require("../../utils/url");
|
|
17
|
+
class BridgeGateway {
|
|
18
|
+
constructor(storage, bridgeUrl, sessionId, listener, errorsListener) {
|
|
11
19
|
this.bridgeUrl = bridgeUrl;
|
|
12
20
|
this.sessionId = sessionId;
|
|
13
21
|
this.listener = listener;
|
|
@@ -18,88 +26,61 @@ var BridgeGateway = /** @class */ (function () {
|
|
|
18
26
|
this.isClosed = false;
|
|
19
27
|
this.bridgeGatewayStorage = new http_bridge_gateway_storage_1.HttpBridgeGatewayStorage(storage);
|
|
20
28
|
}
|
|
21
|
-
|
|
22
|
-
return
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
38
|
-
_this.eventSource.onerror = reject;
|
|
39
|
-
_this.eventSource.onopen = function () {
|
|
40
|
-
_this.eventSource.onerror = _this.errorsHandler.bind(_this);
|
|
41
|
-
_this.eventSource.onmessage = _this.messagesHandler.bind(_this);
|
|
42
|
-
resolve();
|
|
43
|
-
};
|
|
44
|
-
})];
|
|
45
|
-
}
|
|
29
|
+
registerSession() {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const url = new URL((0, url_1.addPathToUrl)(this.bridgeUrl, this.ssePath));
|
|
32
|
+
url.searchParams.append('client_id', this.sessionId);
|
|
33
|
+
const lastEventId = yield this.bridgeGatewayStorage.getLastEventId();
|
|
34
|
+
if (lastEventId) {
|
|
35
|
+
url.searchParams.append('last_event_id', lastEventId);
|
|
36
|
+
}
|
|
37
|
+
this.eventSource = new EventSource(url);
|
|
38
|
+
return new Promise((resolve, reject) => {
|
|
39
|
+
this.eventSource.onerror = reject;
|
|
40
|
+
this.eventSource.onopen = () => {
|
|
41
|
+
this.eventSource.onerror = this.errorsHandler.bind(this);
|
|
42
|
+
this.eventSource.onmessage = this.messagesHandler.bind(this);
|
|
43
|
+
resolve();
|
|
44
|
+
};
|
|
46
45
|
});
|
|
47
46
|
});
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
url.searchParams.append('ttl', (ttl || this.defaultTtl).toString());
|
|
59
|
-
return [4 /*yield*/, fetch(url, {
|
|
60
|
-
method: 'post',
|
|
61
|
-
body: protocol_1.Base64.encode(message)
|
|
62
|
-
})];
|
|
63
|
-
case 1:
|
|
64
|
-
_a.sent();
|
|
65
|
-
return [2 /*return*/];
|
|
66
|
-
}
|
|
47
|
+
}
|
|
48
|
+
send(message, receiver, ttl) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
const url = new URL((0, url_1.addPathToUrl)(this.bridgeUrl, this.postPath));
|
|
51
|
+
url.searchParams.append('client_id', this.sessionId);
|
|
52
|
+
url.searchParams.append('to', receiver);
|
|
53
|
+
url.searchParams.append('ttl', (ttl || this.defaultTtl).toString());
|
|
54
|
+
yield fetch(url, {
|
|
55
|
+
method: 'post',
|
|
56
|
+
body: protocol_1.Base64.encode(message)
|
|
67
57
|
});
|
|
68
58
|
});
|
|
69
|
-
}
|
|
70
|
-
|
|
59
|
+
}
|
|
60
|
+
close() {
|
|
71
61
|
var _a;
|
|
72
62
|
this.isClosed = true;
|
|
73
63
|
(_a = this.eventSource) === null || _a === void 0 ? void 0 : _a.close();
|
|
74
|
-
}
|
|
75
|
-
|
|
64
|
+
}
|
|
65
|
+
errorsHandler(e) {
|
|
76
66
|
if (!this.isClosed) {
|
|
77
67
|
this.errorsListener(e);
|
|
78
68
|
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
_a.sent();
|
|
88
|
-
if (!this.isClosed) {
|
|
89
|
-
bridgeIncomingMessage = void 0;
|
|
90
|
-
try {
|
|
91
|
-
bridgeIncomingMessage = JSON.parse(e.data);
|
|
92
|
-
}
|
|
93
|
-
catch (e) {
|
|
94
|
-
throw new errors_1.TonConnectError("Bridge message parse failed, message ".concat(e.data));
|
|
95
|
-
}
|
|
96
|
-
this.listener(bridgeIncomingMessage);
|
|
97
|
-
}
|
|
98
|
-
return [2 /*return*/];
|
|
69
|
+
}
|
|
70
|
+
messagesHandler(e) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
yield this.bridgeGatewayStorage.storeLastEventId(e.lastEventId);
|
|
73
|
+
if (!this.isClosed) {
|
|
74
|
+
let bridgeIncomingMessage;
|
|
75
|
+
try {
|
|
76
|
+
bridgeIncomingMessage = JSON.parse(e.data);
|
|
99
77
|
}
|
|
100
|
-
|
|
78
|
+
catch (e) {
|
|
79
|
+
throw new errors_1.TonConnectError(`Bridge message parse failed, message ${e.data}`);
|
|
80
|
+
}
|
|
81
|
+
this.listener(bridgeIncomingMessage);
|
|
82
|
+
}
|
|
101
83
|
});
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
}());
|
|
84
|
+
}
|
|
85
|
+
}
|
|
105
86
|
exports.BridgeGateway = BridgeGateway;
|
|
@@ -1,14 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
2
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
35
|
exports.BridgeProvider = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
function BridgeProvider(storage, walletConnectionSource) {
|
|
36
|
+
const protocol_1 = require("@tonconnect/protocol");
|
|
37
|
+
const ton_connect_error_1 = require("../../errors/ton-connect.error");
|
|
38
|
+
const bridge_gateway_1 = require("./bridge-gateway");
|
|
39
|
+
const bridge_connection_storage_1 = require("../../storage/bridge-connection-storage");
|
|
40
|
+
const protocol = __importStar(require("../../resources/protocol.json"));
|
|
41
|
+
class BridgeProvider {
|
|
42
|
+
constructor(storage, walletConnectionSource) {
|
|
12
43
|
this.storage = storage;
|
|
13
44
|
this.walletConnectionSource = walletConnectionSource;
|
|
14
45
|
this.type = 'http';
|
|
@@ -19,166 +50,115 @@ var BridgeProvider = /** @class */ (function () {
|
|
|
19
50
|
this.listeners = [];
|
|
20
51
|
this.connectionStorage = new bridge_connection_storage_1.BridgeConnectionStorage(storage);
|
|
21
52
|
}
|
|
22
|
-
|
|
23
|
-
return
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
case 0:
|
|
28
|
-
bridgeConnectionStorage = new bridge_connection_storage_1.BridgeConnectionStorage(storage);
|
|
29
|
-
return [4 /*yield*/, bridgeConnectionStorage.getHttpConnection()];
|
|
30
|
-
case 1:
|
|
31
|
-
connection = _a.sent();
|
|
32
|
-
return [2 /*return*/, new BridgeProvider(storage, connection.session.walletConnectionSource)];
|
|
33
|
-
}
|
|
34
|
-
});
|
|
53
|
+
static fromStorage(storage) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
const bridgeConnectionStorage = new bridge_connection_storage_1.BridgeConnectionStorage(storage);
|
|
56
|
+
const connection = yield bridgeConnectionStorage.getHttpConnection();
|
|
57
|
+
return new BridgeProvider(storage, connection.session.walletConnectionSource);
|
|
35
58
|
});
|
|
36
|
-
}
|
|
37
|
-
|
|
59
|
+
}
|
|
60
|
+
connect(message) {
|
|
38
61
|
var _a;
|
|
39
62
|
(_a = this.bridge) === null || _a === void 0 ? void 0 : _a.close();
|
|
40
|
-
|
|
63
|
+
const sessionCrypto = new protocol_1.SessionCrypto();
|
|
41
64
|
this.session = {
|
|
42
|
-
sessionCrypto
|
|
65
|
+
sessionCrypto,
|
|
43
66
|
walletConnectionSource: this.walletConnectionSource
|
|
44
67
|
};
|
|
45
68
|
this.bridge = new bridge_gateway_1.BridgeGateway(this.storage, this.walletConnectionSource.bridgeUrl, sessionCrypto.sessionId, this.gatewayListener.bind(this), this.gatewayErrorsListener.bind(this));
|
|
46
69
|
this.bridge.registerSession();
|
|
47
70
|
return this.generateUniversalLink(message);
|
|
48
|
-
}
|
|
49
|
-
|
|
71
|
+
}
|
|
72
|
+
restoreConnection() {
|
|
50
73
|
var _a;
|
|
51
|
-
return
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return [2 /*return*/];
|
|
62
|
-
}
|
|
63
|
-
this.session = storedConnection.session;
|
|
64
|
-
this.bridge = new bridge_gateway_1.BridgeGateway(this.storage, this.walletConnectionSource.bridgeUrl, storedConnection.session.sessionCrypto.sessionId, this.gatewayListener.bind(this), this.gatewayErrorsListener.bind(this));
|
|
65
|
-
return [4 /*yield*/, this.bridge.registerSession()];
|
|
66
|
-
case 2:
|
|
67
|
-
_b.sent();
|
|
68
|
-
this.listeners.forEach(function (listener) { return listener(storedConnection.connectEvent); });
|
|
69
|
-
return [2 /*return*/];
|
|
70
|
-
}
|
|
71
|
-
});
|
|
74
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
(_a = this.bridge) === null || _a === void 0 ? void 0 : _a.close();
|
|
76
|
+
const storedConnection = yield this.connectionStorage.getHttpConnection();
|
|
77
|
+
if (!storedConnection) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.session = storedConnection.session;
|
|
81
|
+
this.bridge = new bridge_gateway_1.BridgeGateway(this.storage, this.walletConnectionSource.bridgeUrl, storedConnection.session.sessionCrypto.sessionId, this.gatewayListener.bind(this), this.gatewayErrorsListener.bind(this));
|
|
82
|
+
yield this.bridge.registerSession();
|
|
83
|
+
this.listeners.forEach(listener => listener(storedConnection.connectEvent));
|
|
72
84
|
});
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if (!_this.bridge || !_this.session || !('walletPublicKey' in _this.session)) {
|
|
85
|
+
}
|
|
86
|
+
sendRequest(request) {
|
|
87
|
+
return new Promise((resolve, reject) => {
|
|
88
|
+
const id = this.nextRequestId;
|
|
89
|
+
this.nextRequestId++;
|
|
90
|
+
if (!this.bridge || !this.session || !('walletPublicKey' in this.session)) {
|
|
80
91
|
throw new ton_connect_error_1.TonConnectError('Trying to send bridge request without session');
|
|
81
92
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
93
|
+
const encodedRequest = this.session.sessionCrypto.encrypt(JSON.stringify(Object.assign(Object.assign({}, request), { id })), (0, protocol_1.hexToByteArray)(this.session.walletPublicKey));
|
|
94
|
+
this.bridge.send(encodedRequest, this.session.walletPublicKey).catch(reject);
|
|
95
|
+
this.pendingRequests.set(id.toString(), resolve);
|
|
85
96
|
});
|
|
86
|
-
}
|
|
87
|
-
|
|
97
|
+
}
|
|
98
|
+
closeConnection() {
|
|
88
99
|
var _a;
|
|
89
100
|
(_a = this.bridge) === null || _a === void 0 ? void 0 : _a.close();
|
|
90
101
|
this.listeners = [];
|
|
91
|
-
}
|
|
92
|
-
|
|
102
|
+
}
|
|
103
|
+
disconnect() {
|
|
93
104
|
var _a;
|
|
94
105
|
(_a = this.bridge) === null || _a === void 0 ? void 0 : _a.close();
|
|
95
106
|
this.listeners = [];
|
|
96
107
|
return this.removeBridgeAndSession();
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
var _this = this;
|
|
108
|
+
}
|
|
109
|
+
listen(callback) {
|
|
100
110
|
this.listeners.push(callback);
|
|
101
|
-
return
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
id = walletMessage.id.toString();
|
|
112
|
-
resolve = this.pendingRequests.get(id);
|
|
113
|
-
if (!resolve) {
|
|
114
|
-
throw new ton_connect_error_1.TonConnectError("Response id ".concat(id, " doesn't match any request's id"));
|
|
115
|
-
}
|
|
116
|
-
resolve(walletMessage);
|
|
117
|
-
this.pendingRequests.delete(id);
|
|
118
|
-
return [2 /*return*/];
|
|
119
|
-
}
|
|
120
|
-
if (!(walletMessage.event === 'connect')) return [3 /*break*/, 2];
|
|
121
|
-
return [4 /*yield*/, this.updateSession(walletMessage, bridgeIncomingMessage.from)];
|
|
122
|
-
case 1:
|
|
123
|
-
_a.sent();
|
|
124
|
-
_a.label = 2;
|
|
125
|
-
case 2:
|
|
126
|
-
this.listeners.forEach(function (listener) { return listener(walletMessage); });
|
|
127
|
-
return [2 /*return*/];
|
|
111
|
+
return () => (this.listeners = this.listeners.filter(listener => listener !== callback));
|
|
112
|
+
}
|
|
113
|
+
gatewayListener(bridgeIncomingMessage) {
|
|
114
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
115
|
+
const walletMessage = JSON.parse(this.session.sessionCrypto.decrypt(protocol_1.Base64.decode(bridgeIncomingMessage.message).toUint8Array(), (0, protocol_1.hexToByteArray)(bridgeIncomingMessage.from)));
|
|
116
|
+
if (!('event' in walletMessage)) {
|
|
117
|
+
const id = walletMessage.id.toString();
|
|
118
|
+
const resolve = this.pendingRequests.get(id);
|
|
119
|
+
if (!resolve) {
|
|
120
|
+
throw new ton_connect_error_1.TonConnectError(`Response id ${id} doesn't match any request's id`);
|
|
128
121
|
}
|
|
129
|
-
|
|
122
|
+
resolve(walletMessage);
|
|
123
|
+
this.pendingRequests.delete(id);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (walletMessage.event === 'connect') {
|
|
127
|
+
yield this.updateSession(walletMessage, bridgeIncomingMessage.from);
|
|
128
|
+
}
|
|
129
|
+
this.listeners.forEach(listener => listener(walletMessage));
|
|
130
130
|
});
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
return
|
|
134
|
-
|
|
135
|
-
throw new ton_connect_error_1.TonConnectError("Bridge error ".concat(e));
|
|
136
|
-
});
|
|
131
|
+
}
|
|
132
|
+
gatewayErrorsListener(e) {
|
|
133
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
134
|
+
throw new ton_connect_error_1.TonConnectError(`Bridge error ${e}`);
|
|
137
135
|
});
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
return [4 /*yield*/, this.connectionStorage.storeConnection({
|
|
149
|
-
type: 'http',
|
|
150
|
-
session: this.session,
|
|
151
|
-
connectEvent: connectEventToSave
|
|
152
|
-
})];
|
|
153
|
-
case 1:
|
|
154
|
-
_a.sent();
|
|
155
|
-
return [2 /*return*/];
|
|
156
|
-
}
|
|
136
|
+
}
|
|
137
|
+
updateSession(connectEvent, walletPublicKey) {
|
|
138
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
139
|
+
this.session = Object.assign(Object.assign({}, this.session), { walletPublicKey });
|
|
140
|
+
const tonAddrItem = connectEvent.payload.items.find(item => item.name === 'ton_addr');
|
|
141
|
+
const connectEventToSave = Object.assign(Object.assign({}, connectEvent), { payload: Object.assign(Object.assign({}, connectEvent.payload), { items: [tonAddrItem] }) });
|
|
142
|
+
yield this.connectionStorage.storeConnection({
|
|
143
|
+
type: 'http',
|
|
144
|
+
session: this.session,
|
|
145
|
+
connectEvent: connectEventToSave
|
|
157
146
|
});
|
|
158
147
|
});
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
return
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
this.session = null;
|
|
166
|
-
this.bridge = null;
|
|
167
|
-
return [4 /*yield*/, this.connectionStorage.removeConnection()];
|
|
168
|
-
case 1:
|
|
169
|
-
_a.sent();
|
|
170
|
-
return [2 /*return*/];
|
|
171
|
-
}
|
|
172
|
-
});
|
|
148
|
+
}
|
|
149
|
+
removeBridgeAndSession() {
|
|
150
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
+
this.session = null;
|
|
152
|
+
this.bridge = null;
|
|
153
|
+
yield this.connectionStorage.removeConnection();
|
|
173
154
|
});
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
|
|
155
|
+
}
|
|
156
|
+
generateUniversalLink(message) {
|
|
157
|
+
const url = new URL(this.walletConnectionSource.universalLink);
|
|
177
158
|
url.searchParams.append('v', protocol.version.toString());
|
|
178
159
|
url.searchParams.append('id', this.session.sessionCrypto.sessionId);
|
|
179
160
|
url.searchParams.append('r', protocol_1.Base64.encode(JSON.stringify(message), true));
|
|
180
161
|
return url.toString();
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
}());
|
|
162
|
+
}
|
|
163
|
+
}
|
|
184
164
|
exports.BridgeProvider = BridgeProvider;
|