@tonconnect/sdk 0.0.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/LICENSE +201 -0
- package/README.md +83 -0
- package/lib/errors/generate-error.d.ts +2 -0
- package/lib/errors/generate-error.js +19 -0
- package/lib/errors/generate-error.js.map +1 -0
- package/lib/errors/index.d.ts +1 -0
- package/lib/errors/index.js +5 -0
- package/lib/errors/index.js.map +1 -0
- package/lib/errors/protocol/events/connect/index.d.ts +1 -0
- package/lib/errors/protocol/events/connect/index.js +6 -0
- package/lib/errors/protocol/events/connect/index.js.map +1 -0
- package/lib/errors/protocol/events/connect/user-rejects.error.d.ts +1 -0
- package/lib/errors/protocol/events/connect/user-rejects.error.js +6 -0
- package/lib/errors/protocol/events/connect/user-rejects.error.js.map +1 -0
- package/lib/errors/protocol/events/index.d.ts +1 -0
- package/lib/errors/protocol/events/index.js +5 -0
- package/lib/errors/protocol/events/index.js.map +1 -0
- package/lib/errors/protocol/index.d.ts +1 -0
- package/lib/errors/protocol/index.js +5 -0
- package/lib/errors/protocol/index.js.map +1 -0
- package/lib/errors/storage/localstorage-not-found.error.d.ts +1 -0
- package/lib/errors/storage/localstorage-not-found.error.js +6 -0
- package/lib/errors/storage/localstorage-not-found.error.js.map +1 -0
- package/lib/errors/ton-connect.error.d.ts +3 -0
- package/lib/errors/ton-connect.error.js +15 -0
- package/lib/errors/ton-connect.error.js.map +1 -0
- package/lib/errors/unknown.error.d.ts +1 -0
- package/lib/errors/unknown.error.js +6 -0
- package/lib/errors/unknown.error.js.map +1 -0
- package/lib/errors/wallet/wallet-already-connected.error.d.ts +1 -0
- package/lib/errors/wallet/wallet-already-connected.error.js +6 -0
- package/lib/errors/wallet/wallet-already-connected.error.js.map +1 -0
- package/lib/errors/wallet/wallet-not-connected.error.d.ts +1 -0
- package/lib/errors/wallet/wallet-not-connected.error.js +6 -0
- package/lib/errors/wallet/wallet-not-connected.error.js.map +1 -0
- package/lib/errors/wallet/wallet-not-injected.error.d.ts +1 -0
- package/lib/errors/wallet/wallet-not-injected.error.js +6 -0
- package/lib/errors/wallet/wallet-not-injected.error.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +8 -0
- package/lib/index.js.map +1 -0
- package/lib/models/dapp/dapp-metadata.d.ts +5 -0
- package/lib/models/dapp/dapp-metadata.js +3 -0
- package/lib/models/dapp/dapp-metadata.js.map +1 -0
- package/lib/models/dapp/dapp-settings.d.ts +6 -0
- package/lib/models/dapp/dapp-settings.js +3 -0
- package/lib/models/dapp/dapp-settings.js.map +1 -0
- package/lib/models/index.d.ts +3 -0
- package/lib/models/index.js +5 -0
- package/lib/models/index.js.map +1 -0
- package/lib/models/methods/index.d.ts +1 -0
- package/lib/models/methods/index.js +5 -0
- package/lib/models/methods/index.js.map +1 -0
- package/lib/models/methods/send-transaction/index.d.ts +2 -0
- package/lib/models/methods/send-transaction/index.js +3 -0
- package/lib/models/methods/send-transaction/index.js.map +1 -0
- package/lib/models/methods/send-transaction/send-transaction-request.d.ts +9 -0
- package/lib/models/methods/send-transaction/send-transaction-request.js +3 -0
- package/lib/models/methods/send-transaction/send-transaction-request.js.map +1 -0
- package/lib/models/methods/send-transaction/send-transaction-response.d.ts +3 -0
- package/lib/models/methods/send-transaction/send-transaction-response.js +3 -0
- package/lib/models/methods/send-transaction/send-transaction-response.js.map +1 -0
- package/lib/models/wallet/account.d.ts +5 -0
- package/lib/models/wallet/account.js +3 -0
- package/lib/models/wallet/account.js.map +1 -0
- package/lib/models/wallet/index.d.ts +3 -0
- package/lib/models/wallet/index.js +3 -0
- package/lib/models/wallet/index.js.map +1 -0
- package/lib/models/wallet/wallet-connection-source.d.ts +4 -0
- package/lib/models/wallet/wallet-connection-source.js +3 -0
- package/lib/models/wallet/wallet-connection-source.js.map +1 -0
- package/lib/models/wallet/wallet.d.ts +7 -0
- package/lib/models/wallet/wallet.js +3 -0
- package/lib/models/wallet/wallet.js.map +1 -0
- package/lib/parsers/connect-errors-parser.d.ts +8 -0
- package/lib/parsers/connect-errors-parser.js +23 -0
- package/lib/parsers/connect-errors-parser.js.map +1 -0
- package/lib/parsers/rpc-parser.d.ts +8 -0
- package/lib/parsers/rpc-parser.js +13 -0
- package/lib/parsers/rpc-parser.js.map +1 -0
- package/lib/parsers/send-transaction-parser.d.ts +11 -0
- package/lib/parsers/send-transaction-parser.js +36 -0
- package/lib/parsers/send-transaction-parser.js.map +1 -0
- package/lib/provider/bridge/bridge-gateway.d.ts +18 -0
- package/lib/provider/bridge/bridge-gateway.js +79 -0
- package/lib/provider/bridge/bridge-gateway.js.map +1 -0
- package/lib/provider/bridge/bridge-provider.d.ts +27 -0
- package/lib/provider/bridge/bridge-provider.js +161 -0
- package/lib/provider/bridge/bridge-provider.js.map +1 -0
- package/lib/provider/bridge/models/bridge-connection.d.ts +11 -0
- package/lib/provider/bridge/models/bridge-connection.js +3 -0
- package/lib/provider/bridge/models/bridge-connection.js.map +1 -0
- package/lib/provider/bridge/models/bridge-incomming-message.d.ts +4 -0
- package/lib/provider/bridge/models/bridge-incomming-message.js +3 -0
- package/lib/provider/bridge/models/bridge-incomming-message.js.map +1 -0
- package/lib/provider/bridge/models/bridge-session-raw.d.ts +5 -0
- package/lib/provider/bridge/models/bridge-session-raw.js +3 -0
- package/lib/provider/bridge/models/bridge-session-raw.js.map +1 -0
- package/lib/provider/bridge/models/bridge-session.d.ts +8 -0
- package/lib/provider/bridge/models/bridge-session.js +3 -0
- package/lib/provider/bridge/models/bridge-session.js.map +1 -0
- package/lib/provider/injected/injected-provider.d.ts +21 -0
- package/lib/provider/injected/injected-provider.js +118 -0
- package/lib/provider/injected/injected-provider.js.map +1 -0
- package/lib/provider/injected/models/injected-wallet-api.d.ts +9 -0
- package/lib/provider/injected/models/injected-wallet-api.js +3 -0
- package/lib/provider/injected/models/injected-wallet-api.js.map +1 -0
- package/lib/provider/provider.d.ts +20 -0
- package/lib/provider/provider.js +3 -0
- package/lib/provider/provider.js.map +1 -0
- package/lib/resources/protocol.json +3 -0
- package/lib/storage/bridge-connection-storage.d.ts +11 -0
- package/lib/storage/bridge-connection-storage.js +76 -0
- package/lib/storage/bridge-connection-storage.js.map +1 -0
- package/lib/storage/default-storage.d.ts +7 -0
- package/lib/storage/default-storage.js +34 -0
- package/lib/storage/default-storage.js.map +1 -0
- package/lib/storage/models/storage.interface.d.ts +5 -0
- package/lib/storage/models/storage.interface.js +3 -0
- package/lib/storage/models/storage.interface.js.map +1 -0
- package/lib/ton-connect.d.ts +36 -0
- package/lib/ton-connect.interface.d.ts +13 -0
- package/lib/ton-connect.interface.js +3 -0
- package/lib/ton-connect.interface.js.map +1 -0
- package/lib/ton-connect.js +200 -0
- package/lib/ton-connect.js.map +1 -0
- package/lib/utils/options.d.ts +1 -0
- package/lib/utils/options.js +16 -0
- package/lib/utils/options.js.map +1 -0
- package/lib/utils/types.d.ts +6 -0
- package/lib/utils/types.js +3 -0
- package/lib/utils/types.js.map +1 -0
- package/lib/utils/web-api.d.ts +2 -0
- package/lib/utils/web-api.js +12 -0
- package/lib/utils/web-api.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/models/wallet/account.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/wallet/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-connection-source.js","sourceRoot":"","sources":["../../../src/models/wallet/wallet-connection-source.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/models/wallet/wallet.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TonConnectError } from "../errors/ton-connect.error";
|
|
2
|
+
import { ConnectEventError } from '@tonconnect/protocol';
|
|
3
|
+
declare class ConnectErrorsParser {
|
|
4
|
+
private readonly errorsCodes;
|
|
5
|
+
parseError(error: ConnectEventError['payload']): TonConnectError;
|
|
6
|
+
}
|
|
7
|
+
export declare const connectErrorsParser: ConnectErrorsParser;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.connectErrorsParser = void 0;
|
|
4
|
+
var errors_1 = require("../errors");
|
|
5
|
+
var unknown_error_1 = require("../errors/unknown.error");
|
|
6
|
+
var ConnectErrorsParser = /** @class */ (function () {
|
|
7
|
+
function ConnectErrorsParser() {
|
|
8
|
+
this.errorsCodes = {
|
|
9
|
+
0: unknown_error_1.UnknownError,
|
|
10
|
+
1: errors_1.UserRejectsError
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
ConnectErrorsParser.prototype.parseError = function (error) {
|
|
14
|
+
var ErrorConstructor = unknown_error_1.UnknownError;
|
|
15
|
+
if (error.code in this.errorsCodes) {
|
|
16
|
+
ErrorConstructor = this.errorsCodes[error.code] || unknown_error_1.UnknownError;
|
|
17
|
+
}
|
|
18
|
+
return new ErrorConstructor(error.message);
|
|
19
|
+
};
|
|
20
|
+
return ConnectErrorsParser;
|
|
21
|
+
}());
|
|
22
|
+
exports.connectErrorsParser = new ConnectErrorsParser();
|
|
23
|
+
//# sourceMappingURL=connect-errors-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-errors-parser.js","sourceRoot":"","sources":["../../src/parsers/connect-errors-parser.ts"],"names":[],"mappings":";;;AAAA,oCAA8C;AAE9C,yDAAwD;AAGxD;IAAA;QACqB,gBAAW,GAExB;YACA,CAAC,EAAE,4BAAY;YACf,CAAC,EAAE,yBAAgB;SACtB,CAAC;IAWN,CAAC;IATG,wCAAU,GAAV,UAAW,KAAmC;QAC1C,IAAI,gBAAgB,GAA2B,4BAAY,CAAC;QAE5D,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;YAChC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,4BAAY,CAAC;SACnE;QAED,OAAO,IAAI,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IACL,0BAAC;AAAD,CAAC,AAjBD,IAiBC;AAEY,QAAA,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AppRequest, RpcMethod, WalletResponse, WalletResponseError, WalletResponseSuccess } from '@tonconnect/protocol';
|
|
2
|
+
import { WithoutId } from "../utils/types";
|
|
3
|
+
export declare abstract class RpcParser<T extends RpcMethod> {
|
|
4
|
+
abstract convertToRpcRequest(...args: unknown[]): WithoutId<AppRequest<T>>;
|
|
5
|
+
abstract convertFromRpcResponse(rpcResponse: WithoutId<WalletResponseSuccess<T>>): unknown;
|
|
6
|
+
abstract parseAndThrowError(response: WithoutId<WalletResponseError<T>>): never;
|
|
7
|
+
isError(response: WithoutId<WalletResponse<T>>): response is WithoutId<WalletResponseError<T>>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RpcParser = void 0;
|
|
4
|
+
var RpcParser = /** @class */ (function () {
|
|
5
|
+
function RpcParser() {
|
|
6
|
+
}
|
|
7
|
+
RpcParser.prototype.isError = function (response) {
|
|
8
|
+
return 'error' in response;
|
|
9
|
+
};
|
|
10
|
+
return RpcParser;
|
|
11
|
+
}());
|
|
12
|
+
exports.RpcParser = RpcParser;
|
|
13
|
+
//# sourceMappingURL=rpc-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-parser.js","sourceRoot":"","sources":["../../src/parsers/rpc-parser.ts"],"names":[],"mappings":";;;AASA;IAAA;IAYA,CAAC;IALU,2BAAO,GAAd,UACI,QAAsC;QAEtC,OAAO,OAAO,IAAI,QAAQ,CAAC;IAC/B,CAAC;IACL,gBAAC;AAAD,CAAC,AAZD,IAYC;AAZqB,8BAAS"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SendTransactionRpcRequest, SendTransactionRpcResponseError, SendTransactionRpcResponseSuccess } from '@tonconnect/protocol';
|
|
2
|
+
import { SendTransactionRequest, SendTransactionResponse } from "../models/methods";
|
|
3
|
+
import { RpcParser } from "./rpc-parser";
|
|
4
|
+
import { WithoutId } from "../utils/types";
|
|
5
|
+
declare class SendTransactionParser extends RpcParser<'sendTransaction'> {
|
|
6
|
+
convertToRpcRequest(request: SendTransactionRequest): WithoutId<SendTransactionRpcRequest>;
|
|
7
|
+
parseAndThrowError(response: WithoutId<SendTransactionRpcResponseError>): never;
|
|
8
|
+
convertFromRpcResponse(rpcResponse: WithoutId<SendTransactionRpcResponseSuccess>): SendTransactionResponse;
|
|
9
|
+
}
|
|
10
|
+
export declare const sendTransactionParser: SendTransactionParser;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.sendTransactionParser = void 0;
|
|
5
|
+
var tslib_1 = require("tslib");
|
|
6
|
+
var protocol_1 = require("@tonconnect/protocol");
|
|
7
|
+
var errors_1 = require("../errors");
|
|
8
|
+
var unknown_error_1 = require("../errors/unknown.error");
|
|
9
|
+
var rpc_parser_1 = require("./rpc-parser");
|
|
10
|
+
var sendTransactionErrors = (_a = {},
|
|
11
|
+
_a[protocol_1.SEND_TRANSACTION_ERROR_CODES.UNKNOWN_ERROR] = unknown_error_1.UnknownError,
|
|
12
|
+
_a[protocol_1.SEND_TRANSACTION_ERROR_CODES.USER_REJECTS_ERROR] = errors_1.UserRejectsError,
|
|
13
|
+
_a);
|
|
14
|
+
var SendTransactionParser = /** @class */ (function (_super) {
|
|
15
|
+
tslib_1.__extends(SendTransactionParser, _super);
|
|
16
|
+
function SendTransactionParser() {
|
|
17
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
18
|
+
}
|
|
19
|
+
SendTransactionParser.prototype.convertToRpcRequest = function (request) {
|
|
20
|
+
return {
|
|
21
|
+
method: 'sendTransaction',
|
|
22
|
+
params: [JSON.stringify(request)]
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
SendTransactionParser.prototype.parseAndThrowError = function (response) {
|
|
26
|
+
throw new sendTransactionErrors[response.error.code](response.error.message);
|
|
27
|
+
};
|
|
28
|
+
SendTransactionParser.prototype.convertFromRpcResponse = function (rpcResponse) {
|
|
29
|
+
return {
|
|
30
|
+
boc: rpcResponse.result
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
return SendTransactionParser;
|
|
34
|
+
}(rpc_parser_1.RpcParser));
|
|
35
|
+
exports.sendTransactionParser = new SendTransactionParser();
|
|
36
|
+
//# sourceMappingURL=send-transaction-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-transaction-parser.js","sourceRoot":"","sources":["../../src/parsers/send-transaction-parser.ts"],"names":[],"mappings":";;;;;AAAA,iDAK8B;AAC9B,oCAA8C;AAC9C,yDAAwD;AAExD,2CAAmD;AAGnD,IAAM,qBAAqB;IACvB,GAAC,uCAA4B,CAAC,aAAa,IAAG,4BAAY;IAC1D,GAAC,uCAA4B,CAAC,kBAAkB,IAAG,yBAAgB;OACtE,CAAC;AAEF;IAAoC,iDAA4B;IAAhE;;IAmBA,CAAC;IAlBG,mDAAmB,GAAnB,UAAoB,OAA+B;QAC/C,OAAO;YACH,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACpC,CAAC;IACN,CAAC;IAED,kDAAkB,GAAlB,UAAmB,QAAoD;QACnE,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjF,CAAC;IAED,sDAAsB,GAAtB,UACI,WAAyD;QAEzD,OAAO;YACH,GAAG,EAAE,WAAW,CAAC,MAAM;SAC1B,CAAC;IACN,CAAC;IACL,4BAAC;AAAD,CAAC,AAnBD,CAAoC,sBAAS,GAmB5C;AAEY,QAAA,qBAAqB,GAAG,IAAI,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BridgeIncomingMessage } from "./models/bridge-incomming-message";
|
|
2
|
+
export declare class BridgeGateway {
|
|
3
|
+
readonly sessionId: string;
|
|
4
|
+
private readonly listener;
|
|
5
|
+
private readonly errorsListener;
|
|
6
|
+
private readonly ssePath;
|
|
7
|
+
private readonly postPath;
|
|
8
|
+
private readonly defaultTtl;
|
|
9
|
+
private eventSource;
|
|
10
|
+
private isClosed;
|
|
11
|
+
private readonly bridgeUrl;
|
|
12
|
+
constructor(bridgeUrl: string, sessionId: string, listener: (msg: BridgeIncomingMessage) => void, errorsListener: (err: Event) => void);
|
|
13
|
+
registerSession(): Promise<void>;
|
|
14
|
+
send(message: Uint8Array, receiver: string, ttl?: number): Promise<void>;
|
|
15
|
+
close(): void;
|
|
16
|
+
private errorsHandler;
|
|
17
|
+
private messagesHandler;
|
|
18
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BridgeGateway = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var BridgeGateway = /** @class */ (function () {
|
|
6
|
+
function BridgeGateway(bridgeUrl, sessionId, listener, errorsListener) {
|
|
7
|
+
this.sessionId = sessionId;
|
|
8
|
+
this.listener = listener;
|
|
9
|
+
this.errorsListener = errorsListener;
|
|
10
|
+
this.ssePath = 'events';
|
|
11
|
+
this.postPath = 'message';
|
|
12
|
+
this.defaultTtl = 300;
|
|
13
|
+
this.isClosed = false;
|
|
14
|
+
if (bridgeUrl.slice(-1) === '/') {
|
|
15
|
+
this.bridgeUrl = bridgeUrl.slice(0, -1);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
this.bridgeUrl = bridgeUrl;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
BridgeGateway.prototype.registerSession = function () {
|
|
22
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
23
|
+
var url;
|
|
24
|
+
var _this = this;
|
|
25
|
+
return tslib_1.__generator(this, function (_a) {
|
|
26
|
+
url = new URL("this.bridgeUrl/".concat(this.ssePath));
|
|
27
|
+
url.searchParams.append('client_id', this.sessionId);
|
|
28
|
+
this.eventSource = new EventSource(url);
|
|
29
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
30
|
+
_this.eventSource.onerror = reject;
|
|
31
|
+
_this.eventSource.onopen = function () {
|
|
32
|
+
_this.eventSource.onerror = _this.errorsHandler.bind(_this);
|
|
33
|
+
_this.eventSource.onmessage = _this.messagesHandler.bind(_this);
|
|
34
|
+
resolve();
|
|
35
|
+
};
|
|
36
|
+
})];
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
BridgeGateway.prototype.send = function (message, receiver, ttl) {
|
|
41
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var url;
|
|
43
|
+
return tslib_1.__generator(this, function (_a) {
|
|
44
|
+
switch (_a.label) {
|
|
45
|
+
case 0:
|
|
46
|
+
url = new URL("this.bridgeUrl/".concat(this.postPath));
|
|
47
|
+
url.searchParams.append('client_id', this.sessionId);
|
|
48
|
+
url.searchParams.append('to', receiver);
|
|
49
|
+
url.searchParams.append('ttl', (ttl || this.defaultTtl).toString());
|
|
50
|
+
return [4 /*yield*/, fetch(url, {
|
|
51
|
+
method: 'post',
|
|
52
|
+
body: message
|
|
53
|
+
})];
|
|
54
|
+
case 1:
|
|
55
|
+
_a.sent();
|
|
56
|
+
return [2 /*return*/];
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
BridgeGateway.prototype.close = function () {
|
|
62
|
+
var _a;
|
|
63
|
+
this.isClosed = true;
|
|
64
|
+
(_a = this.eventSource) === null || _a === void 0 ? void 0 : _a.close();
|
|
65
|
+
};
|
|
66
|
+
BridgeGateway.prototype.errorsHandler = function (e) {
|
|
67
|
+
if (!this.isClosed) {
|
|
68
|
+
this.errorsListener(e);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
BridgeGateway.prototype.messagesHandler = function (e) {
|
|
72
|
+
if (!this.isClosed) {
|
|
73
|
+
this.listener(e.data);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
return BridgeGateway;
|
|
77
|
+
}());
|
|
78
|
+
exports.BridgeGateway = BridgeGateway;
|
|
79
|
+
//# sourceMappingURL=bridge-gateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-gateway.js","sourceRoot":"","sources":["../../../src/provider/bridge/bridge-gateway.ts"],"names":[],"mappings":";;;;AAEA;IAaI,uBACI,SAAiB,EACD,SAAiB,EAChB,QAA8C,EAC9C,cAAoC;QAFrC,cAAS,GAAT,SAAS,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAsC;QAC9C,mBAAc,GAAd,cAAc,CAAsB;QAhBxC,YAAO,GAAG,QAAQ,CAAC;QAEnB,aAAQ,GAAG,SAAS,CAAC;QAErB,eAAU,GAAG,GAAG,CAAC;QAI1B,aAAQ,GAAG,KAAK,CAAC;QAUrB,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC3C;aAAM;YACH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC9B;IACL,CAAC;IAEY,uCAAe,GAA5B;;;;;gBACU,GAAG,GAAG,IAAI,GAAG,CAAC,yBAAkB,IAAI,CAAC,OAAO,CAAE,CAAC,CAAC;gBACtD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;gBAExC,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAC/B,KAAI,CAAC,WAAY,CAAC,OAAO,GAAG,MAAM,CAAC;wBACnC,KAAI,CAAC,WAAY,CAAC,MAAO,GAAG;4BACxB,KAAI,CAAC,WAAY,CAAC,OAAO,GAAG,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;4BAC1D,KAAI,CAAC,WAAY,CAAC,SAAS,GAAG,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;4BAC9D,OAAO,EAAE,CAAC;wBACd,CAAC,CAAC;oBACN,CAAC,CAAC,EAAC;;;KACN;IAEY,4BAAI,GAAjB,UAAkB,OAAmB,EAAE,QAAgB,EAAE,GAAY;;;;;;wBAC3D,GAAG,GAAG,IAAI,GAAG,CAAC,yBAAkB,IAAI,CAAC,QAAQ,CAAE,CAAC,CAAC;wBACvD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;wBACrD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;wBACxC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;wBACpE,qBAAM,KAAK,CAAC,GAAG,EAAE;gCACb,MAAM,EAAE,MAAM;gCACd,IAAI,EAAE,OAAO;6BAChB,CAAC,EAAA;;wBAHF,SAGE,CAAC;;;;;KACN;IAEM,6BAAK,GAAZ;;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEO,qCAAa,GAArB,UAAsB,CAAQ;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SAC1B;IACL,CAAC;IAEO,uCAAe,GAAvB,UAAwB,CAAsC;QAC1D,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACzB;IACL,CAAC;IACL,oBAAC;AAAD,CAAC,AApED,IAoEC;AApEY,sCAAa"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AppRequest, ConnectRequest, RpcMethod, WalletEvent, WalletResponse } from '@tonconnect/protocol';
|
|
2
|
+
import { WalletConnectionSource } from "../../models";
|
|
3
|
+
import { HTTPProvider } from "../provider";
|
|
4
|
+
import { IStorage } from "../../storage/models/storage.interface";
|
|
5
|
+
import { WithoutId } from "../../utils/types";
|
|
6
|
+
export declare class BridgeProvider implements HTTPProvider {
|
|
7
|
+
private readonly walletConnectionSource;
|
|
8
|
+
readonly type = "http";
|
|
9
|
+
private readonly connectionStorage;
|
|
10
|
+
private readonly pendingRequests;
|
|
11
|
+
private nextRequestId;
|
|
12
|
+
private session;
|
|
13
|
+
private bridge;
|
|
14
|
+
private listeners;
|
|
15
|
+
constructor(storage: IStorage, walletConnectionSource: WalletConnectionSource);
|
|
16
|
+
connect(message: ConnectRequest): string;
|
|
17
|
+
autoConnect(): Promise<void>;
|
|
18
|
+
sendRequest<T extends RpcMethod>(request: WithoutId<AppRequest<T>>): Promise<WithoutId<WalletResponse<T>>>;
|
|
19
|
+
closeConnection(): void;
|
|
20
|
+
disconnect(): Promise<void>;
|
|
21
|
+
listen(callback: (e: WalletEvent) => void): () => void;
|
|
22
|
+
private gatewayListener;
|
|
23
|
+
private gatewayErrorsListener;
|
|
24
|
+
private updateSession;
|
|
25
|
+
private removeBridgeAndSession;
|
|
26
|
+
private generateUniversalLink;
|
|
27
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BridgeProvider = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var protocol_1 = require("@tonconnect/protocol");
|
|
6
|
+
var ton_connect_error_1 = require("../../errors/ton-connect.error");
|
|
7
|
+
var bridge_gateway_1 = require("./bridge-gateway");
|
|
8
|
+
var bridge_connection_storage_1 = require("../../storage/bridge-connection-storage");
|
|
9
|
+
var protocol = tslib_1.__importStar(require("../../resources/protocol.json"));
|
|
10
|
+
var BridgeProvider = /** @class */ (function () {
|
|
11
|
+
function BridgeProvider(storage, walletConnectionSource) {
|
|
12
|
+
this.walletConnectionSource = walletConnectionSource;
|
|
13
|
+
this.type = 'http';
|
|
14
|
+
this.pendingRequests = new Map();
|
|
15
|
+
this.nextRequestId = 0;
|
|
16
|
+
this.session = null;
|
|
17
|
+
this.bridge = null;
|
|
18
|
+
this.listeners = [];
|
|
19
|
+
this.connectionStorage = new bridge_connection_storage_1.BridgeConnectionStorage(storage);
|
|
20
|
+
}
|
|
21
|
+
BridgeProvider.prototype.connect = function (message) {
|
|
22
|
+
var _a;
|
|
23
|
+
(_a = this.bridge) === null || _a === void 0 ? void 0 : _a.close();
|
|
24
|
+
var sessionCrypto = new protocol_1.SessionCrypto();
|
|
25
|
+
this.session = {
|
|
26
|
+
sessionCrypto: sessionCrypto,
|
|
27
|
+
walletConnectionSource: this.walletConnectionSource
|
|
28
|
+
};
|
|
29
|
+
this.bridge = new bridge_gateway_1.BridgeGateway(this.walletConnectionSource.bridgeUrl, sessionCrypto.sessionId, this.gatewayListener.bind(this), this.gatewayErrorsListener.bind(this));
|
|
30
|
+
this.bridge.registerSession();
|
|
31
|
+
return this.generateUniversalLink(message);
|
|
32
|
+
};
|
|
33
|
+
BridgeProvider.prototype.autoConnect = function () {
|
|
34
|
+
var _a;
|
|
35
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
36
|
+
var storedConnection;
|
|
37
|
+
return tslib_1.__generator(this, function (_b) {
|
|
38
|
+
switch (_b.label) {
|
|
39
|
+
case 0:
|
|
40
|
+
(_a = this.bridge) === null || _a === void 0 ? void 0 : _a.close();
|
|
41
|
+
return [4 /*yield*/, this.connectionStorage.getConnection()];
|
|
42
|
+
case 1:
|
|
43
|
+
storedConnection = _b.sent();
|
|
44
|
+
if (!storedConnection) {
|
|
45
|
+
return [2 /*return*/];
|
|
46
|
+
}
|
|
47
|
+
this.session = storedConnection.session;
|
|
48
|
+
this.bridge = new bridge_gateway_1.BridgeGateway(this.walletConnectionSource.bridgeUrl, storedConnection.session.sessionCrypto.sessionId, this.gatewayListener.bind(this), this.gatewayErrorsListener.bind(this));
|
|
49
|
+
return [4 /*yield*/, this.bridge.registerSession()];
|
|
50
|
+
case 2:
|
|
51
|
+
_b.sent();
|
|
52
|
+
this.listeners.forEach(function (listener) { return listener(storedConnection.connectEvent); });
|
|
53
|
+
return [2 /*return*/];
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
BridgeProvider.prototype.sendRequest = function (request) {
|
|
59
|
+
var _this = this;
|
|
60
|
+
return new Promise(function (resolve, reject) {
|
|
61
|
+
var id = _this.nextRequestId;
|
|
62
|
+
_this.nextRequestId++;
|
|
63
|
+
if (!_this.bridge || !_this.session || !('walletPublicKey' in _this.session)) {
|
|
64
|
+
throw new ton_connect_error_1.TonConnectError('Trying to send bridge request without session');
|
|
65
|
+
}
|
|
66
|
+
var encodedRequest = _this.session.sessionCrypto.encrypt(JSON.stringify(request), (0, protocol_1.hexToByteArray)(_this.session.walletPublicKey));
|
|
67
|
+
_this.bridge.send(encodedRequest, _this.session.walletPublicKey).catch(reject);
|
|
68
|
+
_this.pendingRequests.set(id.toString(), resolve);
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
BridgeProvider.prototype.closeConnection = function () {
|
|
72
|
+
var _a;
|
|
73
|
+
(_a = this.bridge) === null || _a === void 0 ? void 0 : _a.close();
|
|
74
|
+
this.listeners = [];
|
|
75
|
+
};
|
|
76
|
+
BridgeProvider.prototype.disconnect = function () {
|
|
77
|
+
var _a;
|
|
78
|
+
(_a = this.bridge) === null || _a === void 0 ? void 0 : _a.close();
|
|
79
|
+
this.listeners = [];
|
|
80
|
+
return this.removeBridgeAndSession();
|
|
81
|
+
};
|
|
82
|
+
BridgeProvider.prototype.listen = function (callback) {
|
|
83
|
+
var _this = this;
|
|
84
|
+
this.listeners.push(callback);
|
|
85
|
+
return function () { return (_this.listeners = _this.listeners.filter(function (listener) { return listener !== callback; })); };
|
|
86
|
+
};
|
|
87
|
+
BridgeProvider.prototype.gatewayListener = function (bridgeIncomingMessage) {
|
|
88
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
89
|
+
var walletMessage, resolve;
|
|
90
|
+
return tslib_1.__generator(this, function (_a) {
|
|
91
|
+
switch (_a.label) {
|
|
92
|
+
case 0:
|
|
93
|
+
walletMessage = JSON.parse(this.session.sessionCrypto.decrypt(protocol_1.Base64.decode(bridgeIncomingMessage.message).toUint8Array(), (0, protocol_1.hexToByteArray)(bridgeIncomingMessage.from)));
|
|
94
|
+
if (!('event' in walletMessage)) {
|
|
95
|
+
resolve = this.pendingRequests.get(walletMessage.id);
|
|
96
|
+
if (!resolve) {
|
|
97
|
+
throw new ton_connect_error_1.TonConnectError("Response id ".concat(walletMessage.id, " doesn't match any request's id"));
|
|
98
|
+
}
|
|
99
|
+
resolve(walletMessage);
|
|
100
|
+
this.pendingRequests.delete(walletMessage.id);
|
|
101
|
+
return [2 /*return*/];
|
|
102
|
+
}
|
|
103
|
+
if (!(walletMessage.event === 'connect')) return [3 /*break*/, 2];
|
|
104
|
+
return [4 /*yield*/, this.updateSession(walletMessage, bridgeIncomingMessage.from)];
|
|
105
|
+
case 1:
|
|
106
|
+
_a.sent();
|
|
107
|
+
_a.label = 2;
|
|
108
|
+
case 2:
|
|
109
|
+
this.listeners.forEach(function (listener) { return listener(walletMessage); });
|
|
110
|
+
return [2 /*return*/];
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
BridgeProvider.prototype.gatewayErrorsListener = function (e) {
|
|
116
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
117
|
+
return tslib_1.__generator(this, function (_a) {
|
|
118
|
+
throw new ton_connect_error_1.TonConnectError("Bridge error ".concat(e));
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
BridgeProvider.prototype.updateSession = function (connectEvent, walletPublicKey) {
|
|
123
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
124
|
+
return tslib_1.__generator(this, function (_a) {
|
|
125
|
+
switch (_a.label) {
|
|
126
|
+
case 0:
|
|
127
|
+
this.session = tslib_1.__assign(tslib_1.__assign({}, this.session), { walletPublicKey: walletPublicKey });
|
|
128
|
+
return [4 /*yield*/, this.connectionStorage.storeConnection({ session: this.session, connectEvent: connectEvent })];
|
|
129
|
+
case 1:
|
|
130
|
+
_a.sent();
|
|
131
|
+
return [2 /*return*/];
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
BridgeProvider.prototype.removeBridgeAndSession = function () {
|
|
137
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
138
|
+
return tslib_1.__generator(this, function (_a) {
|
|
139
|
+
switch (_a.label) {
|
|
140
|
+
case 0:
|
|
141
|
+
this.session = null;
|
|
142
|
+
this.bridge = null;
|
|
143
|
+
return [4 /*yield*/, this.connectionStorage.removeConnection()];
|
|
144
|
+
case 1:
|
|
145
|
+
_a.sent();
|
|
146
|
+
return [2 /*return*/];
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
BridgeProvider.prototype.generateUniversalLink = function (message) {
|
|
152
|
+
var url = new URL(this.walletConnectionSource.universalLinkBase);
|
|
153
|
+
url.searchParams.append('v', protocol.version.toString());
|
|
154
|
+
url.searchParams.append('id', this.session.sessionCrypto.sessionId);
|
|
155
|
+
url.searchParams.append('r', protocol_1.Base64.encode(JSON.stringify(message), true));
|
|
156
|
+
return url.toString();
|
|
157
|
+
};
|
|
158
|
+
return BridgeProvider;
|
|
159
|
+
}());
|
|
160
|
+
exports.BridgeProvider = BridgeProvider;
|
|
161
|
+
//# sourceMappingURL=bridge-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-provider.js","sourceRoot":"","sources":["../../../src/provider/bridge/bridge-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ConnectEventSuccess } from '@tonconnect/protocol';
|
|
2
|
+
import { BridgeSessionRaw } from './bridge-session-raw';
|
|
3
|
+
import { BridgeSession } from './bridge-session';
|
|
4
|
+
export interface BridgeConnection {
|
|
5
|
+
connectEvent: ConnectEventSuccess;
|
|
6
|
+
session: BridgeSession;
|
|
7
|
+
}
|
|
8
|
+
export interface BridgeConnectionRaw {
|
|
9
|
+
connectEvent: ConnectEventSuccess;
|
|
10
|
+
session: BridgeSessionRaw;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-connection.js","sourceRoot":"","sources":["../../../../src/provider/bridge/models/bridge-connection.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-incomming-message.js","sourceRoot":"","sources":["../../../../src/provider/bridge/models/bridge-incomming-message.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-session-raw.js","sourceRoot":"","sources":["../../../../src/provider/bridge/models/bridge-session-raw.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SessionCrypto } from '@tonconnect/protocol';
|
|
2
|
+
import { WalletConnectionSource } from "../../../models";
|
|
3
|
+
export interface BridgeSession {
|
|
4
|
+
sessionCrypto: SessionCrypto;
|
|
5
|
+
walletPublicKey: string;
|
|
6
|
+
walletConnectionSource: WalletConnectionSource;
|
|
7
|
+
}
|
|
8
|
+
export declare type BridgePartialSession = Omit<BridgeSession, 'walletPublicKey'>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-session.js","sourceRoot":"","sources":["../../../../src/provider/bridge/models/bridge-session.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AppRequest, RpcMethod, WalletResponse, DeviceInfo, ConnectRequest, WalletEvent } from '@tonconnect/protocol';
|
|
2
|
+
import { InternalProvider } from "../provider";
|
|
3
|
+
import { WithoutId } from "../../utils/types";
|
|
4
|
+
export declare class InjectedProvider implements InternalProvider {
|
|
5
|
+
private static window;
|
|
6
|
+
static isWalletInjected(): boolean;
|
|
7
|
+
static deviceInfo(): DeviceInfo | undefined;
|
|
8
|
+
readonly type = "injected";
|
|
9
|
+
private unsubscribeCallback;
|
|
10
|
+
private injectedWallet;
|
|
11
|
+
private listenSubscriptions;
|
|
12
|
+
private listeners;
|
|
13
|
+
constructor();
|
|
14
|
+
connect(message: ConnectRequest, auto?: boolean): void;
|
|
15
|
+
autoConnect(): Promise<void>;
|
|
16
|
+
closeConnection(): void;
|
|
17
|
+
disconnect(): Promise<void>;
|
|
18
|
+
listen(eventsCallback: (e: WalletEvent) => void): () => void;
|
|
19
|
+
sendRequest<T extends RpcMethod>(request: WithoutId<AppRequest<T>>): Promise<WithoutId<WalletResponse<T>>>;
|
|
20
|
+
private makeSubscriptions;
|
|
21
|
+
}
|