@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.
Files changed (136) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +83 -0
  3. package/lib/errors/generate-error.d.ts +2 -0
  4. package/lib/errors/generate-error.js +19 -0
  5. package/lib/errors/generate-error.js.map +1 -0
  6. package/lib/errors/index.d.ts +1 -0
  7. package/lib/errors/index.js +5 -0
  8. package/lib/errors/index.js.map +1 -0
  9. package/lib/errors/protocol/events/connect/index.d.ts +1 -0
  10. package/lib/errors/protocol/events/connect/index.js +6 -0
  11. package/lib/errors/protocol/events/connect/index.js.map +1 -0
  12. package/lib/errors/protocol/events/connect/user-rejects.error.d.ts +1 -0
  13. package/lib/errors/protocol/events/connect/user-rejects.error.js +6 -0
  14. package/lib/errors/protocol/events/connect/user-rejects.error.js.map +1 -0
  15. package/lib/errors/protocol/events/index.d.ts +1 -0
  16. package/lib/errors/protocol/events/index.js +5 -0
  17. package/lib/errors/protocol/events/index.js.map +1 -0
  18. package/lib/errors/protocol/index.d.ts +1 -0
  19. package/lib/errors/protocol/index.js +5 -0
  20. package/lib/errors/protocol/index.js.map +1 -0
  21. package/lib/errors/storage/localstorage-not-found.error.d.ts +1 -0
  22. package/lib/errors/storage/localstorage-not-found.error.js +6 -0
  23. package/lib/errors/storage/localstorage-not-found.error.js.map +1 -0
  24. package/lib/errors/ton-connect.error.d.ts +3 -0
  25. package/lib/errors/ton-connect.error.js +15 -0
  26. package/lib/errors/ton-connect.error.js.map +1 -0
  27. package/lib/errors/unknown.error.d.ts +1 -0
  28. package/lib/errors/unknown.error.js +6 -0
  29. package/lib/errors/unknown.error.js.map +1 -0
  30. package/lib/errors/wallet/wallet-already-connected.error.d.ts +1 -0
  31. package/lib/errors/wallet/wallet-already-connected.error.js +6 -0
  32. package/lib/errors/wallet/wallet-already-connected.error.js.map +1 -0
  33. package/lib/errors/wallet/wallet-not-connected.error.d.ts +1 -0
  34. package/lib/errors/wallet/wallet-not-connected.error.js +6 -0
  35. package/lib/errors/wallet/wallet-not-connected.error.js.map +1 -0
  36. package/lib/errors/wallet/wallet-not-injected.error.d.ts +1 -0
  37. package/lib/errors/wallet/wallet-not-injected.error.js +6 -0
  38. package/lib/errors/wallet/wallet-not-injected.error.js.map +1 -0
  39. package/lib/index.d.ts +2 -0
  40. package/lib/index.js +8 -0
  41. package/lib/index.js.map +1 -0
  42. package/lib/models/dapp/dapp-metadata.d.ts +5 -0
  43. package/lib/models/dapp/dapp-metadata.js +3 -0
  44. package/lib/models/dapp/dapp-metadata.js.map +1 -0
  45. package/lib/models/dapp/dapp-settings.d.ts +6 -0
  46. package/lib/models/dapp/dapp-settings.js +3 -0
  47. package/lib/models/dapp/dapp-settings.js.map +1 -0
  48. package/lib/models/index.d.ts +3 -0
  49. package/lib/models/index.js +5 -0
  50. package/lib/models/index.js.map +1 -0
  51. package/lib/models/methods/index.d.ts +1 -0
  52. package/lib/models/methods/index.js +5 -0
  53. package/lib/models/methods/index.js.map +1 -0
  54. package/lib/models/methods/send-transaction/index.d.ts +2 -0
  55. package/lib/models/methods/send-transaction/index.js +3 -0
  56. package/lib/models/methods/send-transaction/index.js.map +1 -0
  57. package/lib/models/methods/send-transaction/send-transaction-request.d.ts +9 -0
  58. package/lib/models/methods/send-transaction/send-transaction-request.js +3 -0
  59. package/lib/models/methods/send-transaction/send-transaction-request.js.map +1 -0
  60. package/lib/models/methods/send-transaction/send-transaction-response.d.ts +3 -0
  61. package/lib/models/methods/send-transaction/send-transaction-response.js +3 -0
  62. package/lib/models/methods/send-transaction/send-transaction-response.js.map +1 -0
  63. package/lib/models/wallet/account.d.ts +5 -0
  64. package/lib/models/wallet/account.js +3 -0
  65. package/lib/models/wallet/account.js.map +1 -0
  66. package/lib/models/wallet/index.d.ts +3 -0
  67. package/lib/models/wallet/index.js +3 -0
  68. package/lib/models/wallet/index.js.map +1 -0
  69. package/lib/models/wallet/wallet-connection-source.d.ts +4 -0
  70. package/lib/models/wallet/wallet-connection-source.js +3 -0
  71. package/lib/models/wallet/wallet-connection-source.js.map +1 -0
  72. package/lib/models/wallet/wallet.d.ts +7 -0
  73. package/lib/models/wallet/wallet.js +3 -0
  74. package/lib/models/wallet/wallet.js.map +1 -0
  75. package/lib/parsers/connect-errors-parser.d.ts +8 -0
  76. package/lib/parsers/connect-errors-parser.js +23 -0
  77. package/lib/parsers/connect-errors-parser.js.map +1 -0
  78. package/lib/parsers/rpc-parser.d.ts +8 -0
  79. package/lib/parsers/rpc-parser.js +13 -0
  80. package/lib/parsers/rpc-parser.js.map +1 -0
  81. package/lib/parsers/send-transaction-parser.d.ts +11 -0
  82. package/lib/parsers/send-transaction-parser.js +36 -0
  83. package/lib/parsers/send-transaction-parser.js.map +1 -0
  84. package/lib/provider/bridge/bridge-gateway.d.ts +18 -0
  85. package/lib/provider/bridge/bridge-gateway.js +79 -0
  86. package/lib/provider/bridge/bridge-gateway.js.map +1 -0
  87. package/lib/provider/bridge/bridge-provider.d.ts +27 -0
  88. package/lib/provider/bridge/bridge-provider.js +161 -0
  89. package/lib/provider/bridge/bridge-provider.js.map +1 -0
  90. package/lib/provider/bridge/models/bridge-connection.d.ts +11 -0
  91. package/lib/provider/bridge/models/bridge-connection.js +3 -0
  92. package/lib/provider/bridge/models/bridge-connection.js.map +1 -0
  93. package/lib/provider/bridge/models/bridge-incomming-message.d.ts +4 -0
  94. package/lib/provider/bridge/models/bridge-incomming-message.js +3 -0
  95. package/lib/provider/bridge/models/bridge-incomming-message.js.map +1 -0
  96. package/lib/provider/bridge/models/bridge-session-raw.d.ts +5 -0
  97. package/lib/provider/bridge/models/bridge-session-raw.js +3 -0
  98. package/lib/provider/bridge/models/bridge-session-raw.js.map +1 -0
  99. package/lib/provider/bridge/models/bridge-session.d.ts +8 -0
  100. package/lib/provider/bridge/models/bridge-session.js +3 -0
  101. package/lib/provider/bridge/models/bridge-session.js.map +1 -0
  102. package/lib/provider/injected/injected-provider.d.ts +21 -0
  103. package/lib/provider/injected/injected-provider.js +118 -0
  104. package/lib/provider/injected/injected-provider.js.map +1 -0
  105. package/lib/provider/injected/models/injected-wallet-api.d.ts +9 -0
  106. package/lib/provider/injected/models/injected-wallet-api.js +3 -0
  107. package/lib/provider/injected/models/injected-wallet-api.js.map +1 -0
  108. package/lib/provider/provider.d.ts +20 -0
  109. package/lib/provider/provider.js +3 -0
  110. package/lib/provider/provider.js.map +1 -0
  111. package/lib/resources/protocol.json +3 -0
  112. package/lib/storage/bridge-connection-storage.d.ts +11 -0
  113. package/lib/storage/bridge-connection-storage.js +76 -0
  114. package/lib/storage/bridge-connection-storage.js.map +1 -0
  115. package/lib/storage/default-storage.d.ts +7 -0
  116. package/lib/storage/default-storage.js +34 -0
  117. package/lib/storage/default-storage.js.map +1 -0
  118. package/lib/storage/models/storage.interface.d.ts +5 -0
  119. package/lib/storage/models/storage.interface.js +3 -0
  120. package/lib/storage/models/storage.interface.js.map +1 -0
  121. package/lib/ton-connect.d.ts +36 -0
  122. package/lib/ton-connect.interface.d.ts +13 -0
  123. package/lib/ton-connect.interface.js +3 -0
  124. package/lib/ton-connect.interface.js.map +1 -0
  125. package/lib/ton-connect.js +200 -0
  126. package/lib/ton-connect.js.map +1 -0
  127. package/lib/utils/options.d.ts +1 -0
  128. package/lib/utils/options.js +16 -0
  129. package/lib/utils/options.js.map +1 -0
  130. package/lib/utils/types.d.ts +6 -0
  131. package/lib/utils/types.js +3 -0
  132. package/lib/utils/types.js.map +1 -0
  133. package/lib/utils/web-api.d.ts +2 -0
  134. package/lib/utils/web-api.js +12 -0
  135. package/lib/utils/web-api.js.map +1 -0
  136. 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,3 @@
1
+ export type { Account } from './account';
2
+ export type { Wallet } from './wallet';
3
+ export type { WalletConnectionSource } from './wallet-connection-source';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/wallet/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export interface WalletConnectionSource {
2
+ universalLinkBase: string;
3
+ bridgeUrl: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=wallet-connection-source.js.map
@@ -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,7 @@
1
+ import { DeviceInfo } from '@tonconnect/protocol';
2
+ import { Account } from "..";
3
+ export interface Wallet {
4
+ device: DeviceInfo;
5
+ provider: 'http' | 'injected';
6
+ account: Account;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=wallet.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=bridge-connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-connection.js","sourceRoot":"","sources":["../../../../src/provider/bridge/models/bridge-connection.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export declare type BridgeIncomingMessage = {
2
+ from: string;
3
+ message: string;
4
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=bridge-incomming-message.js.map
@@ -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,5 @@
1
+ import { KeyPair } from '@tonconnect/protocol';
2
+ import { BridgeSession } from './bridge-session';
3
+ export declare type BridgeSessionRaw = Omit<BridgeSession, 'sessionCrypto'> & {
4
+ sessionKeyPair: KeyPair;
5
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=bridge-session-raw.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=bridge-session.js.map
@@ -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
+ }