@meshconnect/uwc-ton-connector 0.2.1 → 0.3.0

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/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export { NamespacedStorage, type TonConnectStorage } from './namespaced-storage';
1
+ export { NamespacedStorage } from './namespaced-storage';
2
2
  export { isValidBase64 } from './validation';
3
3
  export { buildTonTransactionRequest, buildSignDataPayload, executeSignData, unwrapBoc, bocToHash, toFriendlyAddress } from './ton-transaction-utils';
4
+ export { TonConnectConnector } from './ton-connect-connector';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,SAAS,EACT,iBAAiB,EAClB,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,SAAS,EACT,iBAAiB,EAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { NamespacedStorage } from './namespaced-storage';
2
2
  export { isValidBase64 } from './validation';
3
3
  export { buildTonTransactionRequest, buildSignDataPayload, executeSignData, unwrapBoc, bocToHash, toFriendlyAddress } from './ton-transaction-utils';
4
+ export { TonConnectConnector } from './ton-connect-connector';
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA0B,MAAM,sBAAsB,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,SAAS,EACT,iBAAiB,EAClB,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,SAAS,EACT,iBAAiB,EAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -1,16 +1,11 @@
1
- /** Mirrors @tonconnect/sdk IStorage avoids leaking SDK types in published .d.ts. */
2
- export interface TonConnectStorage {
3
- setItem(key: string, value: string): Promise<void>;
4
- getItem(key: string): Promise<string | null>;
5
- removeItem(key: string): Promise<void>;
6
- }
1
+ import type { IStorage } from '@tonconnect/sdk';
7
2
  /**
8
3
  * Prefixed localStorage wrapper required by @tonconnect/sdk.
9
4
  * The SDK requires the dApp to provide storage for persisting connection state across reloads.
10
5
  * Keys are prefixed per wallet (e.g. "tonkeeper:session") to avoid collisions.
11
6
  * Falls back to in-memory Map when localStorage is blocked (Safari ITP in iframes).
12
7
  */
13
- export declare class NamespacedStorage implements TonConnectStorage {
8
+ export declare class NamespacedStorage implements IStorage {
14
9
  private prefix;
15
10
  private memoryFallback;
16
11
  constructor(prefix: string);
@@ -1 +1 @@
1
- {"version":3,"file":"namespaced-storage.d.ts","sourceRoot":"","sources":["../src/namespaced-storage.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC5C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC;AAED;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;IAG7C,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,cAAc,CAA4B;gBAE9B,MAAM,EAAE,MAAM;IAE5B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAW5C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5C,OAAO,CAAC,QAAQ;CAGjB"}
1
+ {"version":3,"file":"namespaced-storage.d.ts","sourceRoot":"","sources":["../src/namespaced-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE/C;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAGpC,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,cAAc,CAA4B;gBAE9B,MAAM,EAAE,MAAM;IAE5B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAW5C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5C,OAAO,CAAC,QAAQ;CAGjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"namespaced-storage.js","sourceRoot":"","sources":["../src/namespaced-storage.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IAGR;IAFZ,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;IAElD,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAa;QACtC,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;YAClD,OAAM;QACR,CAAC;QACD,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;QAC5D,CAAC;QACD,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;YAC9C,OAAM;QACR,CAAC;QACD,IAAI,CAAC;YACH,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,GAAW;QAC1B,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAA;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"namespaced-storage.js","sourceRoot":"","sources":["../src/namespaced-storage.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IAGR;IAFZ,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;IAElD,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAa;QACtC,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;YAClD,OAAM;QACR,CAAC;QACD,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;QAC5D,CAAC;QACD,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;YAC9C,OAAM;QACR,CAAC;QACD,IAAI,CAAC;YACH,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,GAAW;QAC1B,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAA;IAChC,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ import type { Network, Connector, ConnectorResult, SwitchNetworkResult, TonConnectConfig, TonConnectWalletProvider, TransactionRequest, TransactionResult, SignatureType } from '@meshconnect/uwc-types';
2
+ export declare class TonConnectConnector implements Connector {
3
+ private config;
4
+ private sdk;
5
+ private connectionURI;
6
+ private connectedAddress;
7
+ private connectedNetworkId;
8
+ private visibilityHandler;
9
+ private connectTimeout;
10
+ private toUserFriendlyAddressFn;
11
+ private UserRejectsErrorClass;
12
+ private connectInFlight;
13
+ constructor(config: TonConnectConfig);
14
+ /** Connect to a TON wallet via HTTP Bridge (QR code / deeplink). */
15
+ connect(network: Network, provider?: TonConnectWalletProvider): Promise<ConnectorResult>;
16
+ /** Return the connection URI generated by the last connect() call. */
17
+ getConnectionURI(): string;
18
+ /** Sign a message using TON Connect signData. */
19
+ signMessage(message: string): Promise<SignatureType>;
20
+ /** Send a TON transaction via the connected wallet. */
21
+ sendTransaction(request: TransactionRequest): Promise<TransactionResult>;
22
+ /** TON is single-chain — switchNetwork returns the current state. */
23
+ switchNetwork(network: Network): Promise<SwitchNetworkResult>;
24
+ /** Disconnect from the wallet and clean up resources. */
25
+ disconnect(): Promise<void>;
26
+ /** Tear down SDK, event listeners, and pending timeouts. */
27
+ destroy(): Promise<void>;
28
+ private waitForWalletApproval;
29
+ private extractSdkErrorMessage;
30
+ private cleanupSdk;
31
+ private setupVisibilityHandler;
32
+ private removeVisibilityHandler;
33
+ private clearConnectTimeout;
34
+ private buildAvailableAddresses;
35
+ }
36
+ //# sourceMappingURL=ton-connect-connector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton-connect-connector.d.ts","sourceRoot":"","sources":["../src/ton-connect-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EAExB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EAGd,MAAM,wBAAwB,CAAA;AA2B/B,qBAAa,mBAAoB,YAAW,SAAS;IACnD,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,uBAAuB,CAEhB;IACf,OAAO,CAAC,qBAAqB,CAAiD;IAC9E,OAAO,CAAC,eAAe,CAAQ;gBAEnB,MAAM,EAAE,gBAAgB;IAIpC,oEAAoE;IAC9D,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,wBAAwB,GAClC,OAAO,CAAC,eAAe,CAAC;IAmG3B,sEAAsE;IACtE,gBAAgB,IAAI,MAAM;IAO1B,iDAAiD;IAC3C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAS1D,uDAAuD;IACjD,eAAe,CACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAwB7B,qEAAqE;IAC/D,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAOnE,yDAAyD;IACnD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC,4DAA4D;IACtD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAIhB,qBAAqB;IAqDnC,OAAO,CAAC,sBAAsB;YAWhB,UAAU;IAWxB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,uBAAuB;CAQhC"}
@@ -0,0 +1,249 @@
1
+ import { NamespacedStorage } from './namespaced-storage';
2
+ import { buildTonTransactionRequest, buildSignDataPayload, executeSignData, unwrapBoc, bocToHash, toFriendlyAddress } from './ton-transaction-utils';
3
+ // 5 minutes matches WalletConnect's proposal expiry. The TonConnect protocol
4
+ // has no built-in timeout — without this, a pending connect hangs indefinitely.
5
+ const CONNECT_TIMEOUT_MS = 5 * 60 * 1000;
6
+ export class TonConnectConnector {
7
+ config;
8
+ sdk = null;
9
+ connectionURI;
10
+ connectedAddress = null;
11
+ connectedNetworkId = null;
12
+ visibilityHandler = null;
13
+ connectTimeout = null;
14
+ toUserFriendlyAddressFn = null;
15
+ UserRejectsErrorClass = null;
16
+ connectInFlight = false;
17
+ constructor(config) {
18
+ this.config = config;
19
+ }
20
+ /** Connect to a TON wallet via HTTP Bridge (QR code / deeplink). */
21
+ async connect(network, provider) {
22
+ if (!provider) {
23
+ throw new Error('TonConnectWalletProvider is required for TON Connect connection');
24
+ }
25
+ if (!provider.walletListAppName) {
26
+ throw new Error('walletListAppName is required — set it on TonConnectWalletProvider, or ensure the wallet has a jsBridgeKey in extensionInjectedProvider.tvm');
27
+ }
28
+ if (this.connectInFlight) {
29
+ throw new Error('TON Connect connection already in progress');
30
+ }
31
+ this.connectInFlight = true;
32
+ if (this.sdk) {
33
+ await this.cleanupSdk(this.sdk);
34
+ }
35
+ try {
36
+ const { TonConnect, toUserFriendlyAddress, UserRejectsError } = await import('@tonconnect/sdk');
37
+ this.toUserFriendlyAddressFn = toUserFriendlyAddress;
38
+ this.UserRejectsErrorClass = UserRejectsError;
39
+ const sdkOptions = {
40
+ storage: new NamespacedStorage('uwc-ton-remote'),
41
+ manifestUrl: this.config.manifestUrl
42
+ };
43
+ if (this.config.walletsListSource) {
44
+ sdkOptions.walletsListSource = this.config.walletsListSource;
45
+ }
46
+ this.sdk = new TonConnect(sdkOptions);
47
+ // ONC-2717: The SDK supports restoreConnection() to resume a previous
48
+ // session from NamespacedStorage without a new QR scan. Currently we
49
+ // always start fresh (disconnect stale sessions below). Adding session
50
+ // resumption would let users stay connected across page reloads —
51
+ // call sdk.restoreConnection() here and skip the QR flow if it succeeds.
52
+ if (this.sdk.connected) {
53
+ // Can't reuse: the SDK binds one provider (JS or HTTP bridge) per instance.
54
+ // A stale HTTP session from a previous wallet would corrupt the new one.
55
+ try {
56
+ await this.sdk.disconnect();
57
+ }
58
+ catch {
59
+ /* best effort — clear stale session from NamespacedStorage */
60
+ }
61
+ }
62
+ const sdkRef = this.sdk;
63
+ // Resolve bridge URLs from the SDK's wallet list (built-in or custom walletsListSource)
64
+ const wallets = await sdkRef.getWallets();
65
+ const remoteWallets = wallets.filter((w) => 'bridgeUrl' in w && 'universalLink' in w);
66
+ const walletInfo = remoteWallets.find(w => w.appName === provider.walletListAppName);
67
+ if (!walletInfo) {
68
+ throw new Error(`Wallet '${provider.walletListAppName}' not found in TonConnect wallet list, or missing bridge/universalLink`);
69
+ }
70
+ const address = await this.waitForWalletApproval(sdkRef, walletInfo.universalLink, walletInfo.bridgeUrl);
71
+ this.connectionURI = undefined; // URI consumed — clear before notify fires
72
+ const friendlyAddress = this.toUserFriendlyAddressFn
73
+ ? toFriendlyAddress(address, this.toUserFriendlyAddressFn)
74
+ : address;
75
+ this.connectedAddress = friendlyAddress;
76
+ this.connectedNetworkId = network.id;
77
+ this.setupVisibilityHandler(sdkRef);
78
+ const availableAddresses = this.buildAvailableAddresses(provider.supportedNetworkIds, friendlyAddress);
79
+ return {
80
+ networkId: network.id,
81
+ address: friendlyAddress,
82
+ availableAddresses
83
+ };
84
+ }
85
+ finally {
86
+ this.connectInFlight = false;
87
+ }
88
+ }
89
+ /** Return the connection URI generated by the last connect() call. */
90
+ getConnectionURI() {
91
+ if (!this.connectionURI) {
92
+ throw new Error('No connection URI available. Call connect() first.');
93
+ }
94
+ return this.connectionURI;
95
+ }
96
+ /** Sign a message using TON Connect signData. */
97
+ async signMessage(message) {
98
+ if (!this.sdk) {
99
+ throw new Error('No active TON connection');
100
+ }
101
+ const payload = buildSignDataPayload(message);
102
+ return executeSignData(this.sdk, payload);
103
+ }
104
+ /** Send a TON transaction via the connected wallet. */
105
+ async sendTransaction(request) {
106
+ if (!this.sdk) {
107
+ throw new Error('No active TON connection');
108
+ }
109
+ const tonRequest = request;
110
+ const senderRawAddress = this.sdk.account?.address;
111
+ const txRequest = buildTonTransactionRequest(tonRequest, senderRawAddress);
112
+ try {
113
+ const result = await this.sdk.sendTransaction(txRequest);
114
+ const boc = unwrapBoc(result);
115
+ return bocToHash(boc);
116
+ }
117
+ catch (error) {
118
+ if (this.UserRejectsErrorClass &&
119
+ error instanceof this.UserRejectsErrorClass) {
120
+ throw new Error('Transaction was rejected by the user');
121
+ }
122
+ throw error;
123
+ }
124
+ }
125
+ /** TON is single-chain — switchNetwork returns the current state. */
126
+ async switchNetwork(network) {
127
+ return {
128
+ networkId: this.connectedNetworkId ?? network.id,
129
+ address: this.connectedAddress ?? ''
130
+ };
131
+ }
132
+ /** Disconnect from the wallet and clean up resources. */
133
+ async disconnect() {
134
+ if (this.sdk) {
135
+ try {
136
+ await this.sdk.disconnect();
137
+ }
138
+ catch {
139
+ /* best effort */
140
+ }
141
+ }
142
+ this.sdk = null;
143
+ this.connectedAddress = null;
144
+ this.connectedNetworkId = null;
145
+ this.connectionURI = undefined;
146
+ this.connectInFlight = false;
147
+ this.clearConnectTimeout();
148
+ this.removeVisibilityHandler();
149
+ }
150
+ /** Tear down SDK, event listeners, and pending timeouts. */
151
+ async destroy() {
152
+ await this.disconnect();
153
+ }
154
+ async waitForWalletApproval(sdk, universalLink, bridgeUrl) {
155
+ return new Promise((resolve, reject) => {
156
+ let settled = false;
157
+ let unsubscribe;
158
+ const cleanup = () => {
159
+ this.clearConnectTimeout();
160
+ unsubscribe();
161
+ this.connectionURI = undefined;
162
+ this.cleanupSdk(sdk);
163
+ };
164
+ this.connectTimeout = setTimeout(() => {
165
+ if (settled)
166
+ return;
167
+ settled = true;
168
+ cleanup();
169
+ reject(new Error('TON wallet connection timed out'));
170
+ }, CONNECT_TIMEOUT_MS);
171
+ unsubscribe = sdk.onStatusChange(wallet => {
172
+ if (settled)
173
+ return;
174
+ settled = true;
175
+ if (wallet?.account?.address) {
176
+ this.clearConnectTimeout();
177
+ unsubscribe();
178
+ resolve(wallet.account.address);
179
+ }
180
+ else {
181
+ cleanup();
182
+ reject(new Error('TON wallet connection was rejected'));
183
+ }
184
+ }, error => {
185
+ if (settled)
186
+ return;
187
+ settled = true;
188
+ const errorObj = error;
189
+ const message = errorObj?.payload?.message ||
190
+ this.extractSdkErrorMessage(error) ||
191
+ 'TON wallet connection was rejected';
192
+ cleanup();
193
+ reject(new Error(message));
194
+ });
195
+ this.connectionURI = sdk.connect({ universalLink, bridgeUrl });
196
+ });
197
+ }
198
+ extractSdkErrorMessage(error) {
199
+ if (error && typeof error === 'object' && 'message' in error) {
200
+ const msg = error.message;
201
+ const lines = msg.split('\n');
202
+ if (lines.length > 1) {
203
+ return lines[lines.length - 1];
204
+ }
205
+ }
206
+ return undefined;
207
+ }
208
+ async cleanupSdk(sdk) {
209
+ try {
210
+ await sdk.disconnect();
211
+ }
212
+ catch {
213
+ /* best effort */
214
+ }
215
+ if (this.sdk === sdk) {
216
+ this.sdk = null;
217
+ }
218
+ }
219
+ setupVisibilityHandler(sdk) {
220
+ this.removeVisibilityHandler();
221
+ this.visibilityHandler = () => {
222
+ if (document.visibilityState === 'visible') {
223
+ sdk.unPauseConnection();
224
+ }
225
+ else {
226
+ sdk.pauseConnection();
227
+ }
228
+ };
229
+ document.addEventListener('visibilitychange', this.visibilityHandler);
230
+ }
231
+ removeVisibilityHandler() {
232
+ if (this.visibilityHandler) {
233
+ document.removeEventListener('visibilitychange', this.visibilityHandler);
234
+ this.visibilityHandler = null;
235
+ }
236
+ }
237
+ clearConnectTimeout() {
238
+ if (this.connectTimeout) {
239
+ clearTimeout(this.connectTimeout);
240
+ this.connectTimeout = null;
241
+ }
242
+ }
243
+ buildAvailableAddresses(supportedNetworkIds, address) {
244
+ return supportedNetworkIds
245
+ .filter(id => id.startsWith('tvm:'))
246
+ .map(networkId => ({ address, networkId: networkId }));
247
+ }
248
+ }
249
+ //# sourceMappingURL=ton-connect-connector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton-connect-connector.js","sourceRoot":"","sources":["../src/ton-connect-connector.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,5 @@
1
1
  import type { TonNativeTransferRequest, TonSignDataPayload, SignatureType } from '@meshconnect/uwc-types';
2
- /** Mirrors @tonconnect/sdk SendTransactionRequest. */
3
- interface TonConnectTransactionRequest {
4
- validUntil: number;
5
- network?: string;
6
- from?: string;
7
- messages: {
8
- address: string;
9
- amount: string;
10
- stateInit?: string;
11
- payload?: string;
12
- }[];
13
- }
2
+ import type { SendTransactionRequest } from '@tonconnect/sdk';
14
3
  /**
15
4
  * Convert raw TON address to user-friendly format.
16
5
  * TON has two formats:
@@ -42,7 +31,7 @@ export declare function buildTonTransactionMessage(request: TonNativeTransferReq
42
31
  * `sendMode` — bit flags for message handling (e.g. 128 = send entire balance).
43
32
  * See: https://docs.ton.org/v3/documentation/smart-contracts/message-management/message-modes-cookbook
44
33
  */
45
- export declare function buildTonTransactionRequest(request: TonNativeTransferRequest, senderRawAddress?: string): TonConnectTransactionRequest & {
34
+ export declare function buildTonTransactionRequest(request: TonNativeTransferRequest, senderRawAddress?: string): SendTransactionRequest & {
46
35
  sendMode?: number;
47
36
  };
48
37
  export declare function buildSignDataPayload(message: string, override?: TonSignDataPayload): TonSignDataPayload;
@@ -73,5 +62,4 @@ export declare function unwrapBoc(result: string | {
73
62
  * Subsequent calls: <0.1ms (module cached by runtime).
74
63
  */
75
64
  export declare function bocToHash(boc: string): Promise<string>;
76
- export {};
77
65
  //# sourceMappingURL=ton-transaction-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ton-transaction-utils.d.ts","sourceRoot":"","sources":["../src/ton-transaction-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACd,MAAM,wBAAwB,CAAA;AAa/B,sDAAsD;AACtD,UAAU,4BAA4B;IACpC,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,EAAE,CAAA;CACJ;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,MAAM,GACjD,MAAM,CAKR;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,wBAAwB;;;;;EAkB3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,wBAAwB,EACjC,gBAAgB,CAAC,EAAE,MAAM,GACxB,4BAA4B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAatD;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,kBAAkB,CAEpB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE;IACH,QAAQ,CAAC,EAAE,CACT,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACvE,EACD,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,aAAa,CAAC,CA4BxB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAClD,MAAM,CASR;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5D"}
1
+ {"version":3,"file":"ton-transaction-utils.d.ts","sourceRoot":"","sources":["../src/ton-transaction-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACd,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAO7D;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,MAAM,GACjD,MAAM,CAKR;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,wBAAwB;;;;;EAkB3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,wBAAwB,EACjC,gBAAgB,CAAC,EAAE,MAAM,GACxB,sBAAsB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAahD;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,kBAAkB,CAEpB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE;IACH,QAAQ,CAAC,EAAE,CACT,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACvE,EACD,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,aAAa,CAAC,CA4BxB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAClD,MAAM,CASR;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"ton-transaction-utils.js","sourceRoot":"","sources":["../src/ton-transaction-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ton-transaction-utils.js","sourceRoot":"","sources":["../src/ton-transaction-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshconnect/uwc-ton-connector",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "TON Connect connector for Universal Wallet Connector — mobile QR/URI wallet connections",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -17,8 +17,9 @@
17
17
  ],
18
18
  "dependencies": {
19
19
  "@ton/core": "^0.63.1",
20
- "@meshconnect/uwc-constants": "0.5.1",
21
- "@meshconnect/uwc-types": "0.8.0"
20
+ "@tonconnect/sdk": "^3.0.5",
21
+ "@meshconnect/uwc-constants": "0.5.3",
22
+ "@meshconnect/uwc-types": "0.9.0"
22
23
  },
23
24
  "devDependencies": {
24
25
  "typescript": "^5.9.3"
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { NamespacedStorage, type TonConnectStorage } from './namespaced-storage'
1
+ export { NamespacedStorage } from './namespaced-storage'
2
2
  export { isValidBase64 } from './validation'
3
3
  export {
4
4
  buildTonTransactionRequest,
@@ -8,3 +8,4 @@ export {
8
8
  bocToHash,
9
9
  toFriendlyAddress
10
10
  } from './ton-transaction-utils'
11
+ export { TonConnectConnector } from './ton-connect-connector'
@@ -1,9 +1,4 @@
1
- /** Mirrors @tonconnect/sdk IStorage avoids leaking SDK types in published .d.ts. */
2
- export interface TonConnectStorage {
3
- setItem(key: string, value: string): Promise<void>
4
- getItem(key: string): Promise<string | null>
5
- removeItem(key: string): Promise<void>
6
- }
1
+ import type { IStorage } from '@tonconnect/sdk'
7
2
 
8
3
  /**
9
4
  * Prefixed localStorage wrapper required by @tonconnect/sdk.
@@ -11,7 +6,7 @@ export interface TonConnectStorage {
11
6
  * Keys are prefixed per wallet (e.g. "tonkeeper:session") to avoid collisions.
12
7
  * Falls back to in-memory Map when localStorage is blocked (Safari ITP in iframes).
13
8
  */
14
- export class NamespacedStorage implements TonConnectStorage {
9
+ export class NamespacedStorage implements IStorage {
15
10
  private memoryFallback = new Map<string, string>()
16
11
 
17
12
  constructor(private prefix: string) {}