@meshconnect/uwc-ton-connector 0.5.5 → 0.6.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
@@ -3,4 +3,6 @@ export { isValidBase64 } from './validation';
3
3
  export { buildTonTransactionRequest, buildSignDataPayload, executeSignData, unwrapBoc, bocToHash, toFriendlyAddress } from './ton-transaction-utils';
4
4
  export { buildJettonTransferPayload, buildTonNativeRequestFromJettonTransfer } from './jetton-transfer';
5
5
  export { TonConnectConnector } from './ton-connect-connector';
6
+ export { WALLET_RESPONSE_TIMEOUT_MS, withWalletResponseTimeout } from './ton-connect-session-restore';
7
+ export { TON_CONNECT_INJECTED_STORAGE_PREFIX, tryRestoreInjectedSession } from './ton-connect-injected-restore';
6
8
  //# 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,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,EACL,0BAA0B,EAC1B,uCAAuC,EACxC,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,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,EACL,0BAA0B,EAC1B,uCAAuC,EACxC,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,mCAAmC,EACnC,yBAAyB,EAC1B,MAAM,gCAAgC,CAAA"}
package/dist/index.js CHANGED
@@ -3,4 +3,6 @@ export { isValidBase64 } from './validation';
3
3
  export { buildTonTransactionRequest, buildSignDataPayload, executeSignData, unwrapBoc, bocToHash, toFriendlyAddress } from './ton-transaction-utils';
4
4
  export { buildJettonTransferPayload, buildTonNativeRequestFromJettonTransfer } from './jetton-transfer';
5
5
  export { TonConnectConnector } from './ton-connect-connector';
6
+ export { WALLET_RESPONSE_TIMEOUT_MS, withWalletResponseTimeout } from './ton-connect-session-restore';
7
+ export { TON_CONNECT_INJECTED_STORAGE_PREFIX, tryRestoreInjectedSession } from './ton-connect-injected-restore';
6
8
  //# 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,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,EACL,0BAA0B,EAC1B,uCAAuC,EACxC,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,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,EACL,0BAA0B,EAC1B,uCAAuC,EACxC,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,mCAAmC,EACnC,yBAAyB,EAC1B,MAAM,gCAAgC,CAAA"}
@@ -1,13 +1,6 @@
1
1
  import type { IStorage } from '@tonconnect/sdk';
2
- /**
3
- * Prefixed localStorage wrapper required by @tonconnect/sdk.
4
- * The SDK requires the dApp to provide storage for persisting connection state across reloads.
5
- * Keys are prefixed per wallet (e.g. "tonkeeper:session") to avoid collisions.
6
- * Falls back to in-memory Map when localStorage is blocked (Safari ITP in iframes).
7
- */
8
2
  export declare class NamespacedStorage implements IStorage {
9
3
  private prefix;
10
- private memoryFallback;
11
4
  constructor(prefix: string);
12
5
  setItem(key: string, value: string): Promise<void>;
13
6
  getItem(key: string): Promise<string | null>;
@@ -1 +1 @@
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
+ {"version":3,"file":"namespaced-storage.d.ts","sourceRoot":"","sources":["../src/namespaced-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAa/C,qBAAa,iBAAkB,YAAW,QAAQ;IACpC,OAAO,CAAC,MAAM;gBAAN,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,48 +1,50 @@
1
1
  /**
2
- * Prefixed localStorage wrapper required by @tonconnect/sdk.
3
- * The SDK requires the dApp to provide storage for persisting connection state across reloads.
4
- * Keys are prefixed per wallet (e.g. "tonkeeper:session") to avoid collisions.
5
- * Falls back to in-memory Map when localStorage is blocked (Safari ITP in iframes).
2
+ * Prefixed `localStorage` wrapper for @tonconnect/sdk's `IStorage`. Namespaces
3
+ * keys by prefix to avoid collisions, and falls back to an in-memory map when
4
+ * localStorage is blocked (e.g. Safari ITP in iframes).
6
5
  */
6
+ // Shared across instances so a fallback write is visible to a sibling instance
7
+ // — matching real localStorage (global). Keys are already prefix-namespaced,
8
+ // so a single map is collision-free.
9
+ const memoryFallback = new Map();
7
10
  export class NamespacedStorage {
8
11
  prefix;
9
- memoryFallback = new Map();
10
12
  constructor(prefix) {
11
13
  this.prefix = prefix;
12
14
  }
13
15
  async setItem(key, value) {
14
16
  if (typeof localStorage === 'undefined') {
15
- this.memoryFallback.set(this.prefixed(key), value);
17
+ memoryFallback.set(this.prefixed(key), value);
16
18
  return;
17
19
  }
18
20
  try {
19
21
  localStorage.setItem(this.prefixed(key), value);
20
22
  }
21
23
  catch {
22
- this.memoryFallback.set(this.prefixed(key), value);
24
+ memoryFallback.set(this.prefixed(key), value);
23
25
  }
24
26
  }
25
27
  async getItem(key) {
26
28
  if (typeof localStorage === 'undefined') {
27
- return this.memoryFallback.get(this.prefixed(key)) ?? null;
29
+ return memoryFallback.get(this.prefixed(key)) ?? null;
28
30
  }
29
31
  try {
30
32
  return localStorage.getItem(this.prefixed(key));
31
33
  }
32
34
  catch {
33
- return this.memoryFallback.get(this.prefixed(key)) ?? null;
35
+ return memoryFallback.get(this.prefixed(key)) ?? null;
34
36
  }
35
37
  }
36
38
  async removeItem(key) {
37
39
  if (typeof localStorage === 'undefined') {
38
- this.memoryFallback.delete(this.prefixed(key));
40
+ memoryFallback.delete(this.prefixed(key));
39
41
  return;
40
42
  }
41
43
  try {
42
44
  localStorage.removeItem(this.prefixed(key));
43
45
  }
44
46
  catch {
45
- this.memoryFallback.delete(this.prefixed(key));
47
+ memoryFallback.delete(this.prefixed(key));
46
48
  }
47
49
  }
48
50
  prefixed(key) {
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"namespaced-storage.js","sourceRoot":"","sources":["../src/namespaced-storage.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,+EAA+E;AAC/E,6EAA6E;AAC7E,qCAAqC;AACrC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;AAEhD,MAAM,OAAO,iBAAiB;IACR;IAApB,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,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;YAC7C,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,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;QACvD,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,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;QACvD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;YACzC,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,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,GAAW;QAC1B,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAA;IAChC,CAAC;CACF"}
@@ -32,6 +32,5 @@ export declare class TonConnectConnector implements Connector {
32
32
  private extractSdkErrorMessage;
33
33
  private cleanupSdk;
34
34
  private clearConnectTimeout;
35
- private buildAvailableAddresses;
36
35
  }
37
36
  //# sourceMappingURL=ton-connect-connector.d.ts.map
@@ -1 +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;AA4B/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,cAAc,CAA6C;IACnE,OAAO,CAAC,uBAAuB,CAEhB;IACf,OAAO,CAAC,qBAAqB,CAAiD;IAC9E,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,qBAAqB,CAAwC;IACrE,OAAO,CAAC,iBAAiB,CAAI;gBAEjB,MAAM,EAAE,gBAAgB;IAIpC,oEAAoE;IAC9D,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,wBAAwB,GAClC,OAAO,CAAC,eAAe,CAAC;YA6Bb,cAAc;IAkG5B,sEAAsE;IACtE,gBAAgB,IAAI,MAAM;IAO1B,iDAAiD;IAC3C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAsB1D,uDAAuD;IACjD,eAAe,CACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IA2B7B,qEAAqE;IAC/D,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAOnE,yDAAyD;IACnD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC,4DAA4D;IACtD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAIhB,qBAAqB;IAuEnC,OAAO,CAAC,sBAAsB;YAWhB,UAAU;IAWxB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,uBAAuB;CAQhC"}
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,EAEd,MAAM,wBAAwB,CAAA;AAkC/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,cAAc,CAA6C;IACnE,OAAO,CAAC,uBAAuB,CAEhB;IACf,OAAO,CAAC,qBAAqB,CAAiD;IAC9E,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,qBAAqB,CAAwC;IACrE,OAAO,CAAC,iBAAiB,CAAI;gBAEjB,MAAM,EAAE,gBAAgB;IAIpC,oEAAoE;IAC9D,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,wBAAwB,GAClC,OAAO,CAAC,eAAe,CAAC;YA6Bb,cAAc;IAqG5B,sEAAsE;IACtE,gBAAgB,IAAI,MAAM;IAO1B,iDAAiD;IAC3C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAyB1D,uDAAuD;IACjD,eAAe,CACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IA8B7B,qEAAqE;IAC/D,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAOnE,yDAAyD;IACnD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC,4DAA4D;IACtD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAIhB,qBAAqB;IAuEnC,OAAO,CAAC,sBAAsB;YAWhB,UAAU;IAWxB,OAAO,CAAC,mBAAmB;CAM5B"}
@@ -1,8 +1,9 @@
1
1
  import { WalletConnectorError } from '@meshconnect/uwc-types';
2
2
  import { NamespacedStorage } from './namespaced-storage';
3
- import { buildTonTransactionRequest, buildSignDataPayload, executeSignData, unwrapBoc, bocToHash, toFriendlyAddress } from './ton-transaction-utils';
4
- // 5 minutes matches WalletConnect's proposal expiry. The TonConnect protocol
5
- // has no built-in timeout without this, a pending connect hangs indefinitely.
3
+ import { buildTonTransactionRequest, buildSignDataPayload, executeSignData, unwrapBoc, bocToHash } from './ton-transaction-utils';
4
+ import { TON_CONNECT_STORAGE_PREFIX, buildConnectorResult, connectionCancelledError, tryRestoreSession, withWalletResponseTimeout } from './ton-connect-session-restore';
5
+ // TonConnect has no built-in connect timeout; bound the pending handshake so
6
+ // it can't hang indefinitely.
6
7
  const CONNECT_TIMEOUT_MS = 5 * 60 * 1000;
7
8
  export class TonConnectConnector {
8
9
  config;
@@ -45,7 +46,7 @@ export class TonConnectConnector {
45
46
  try {
46
47
  const { TonConnect, toUserFriendlyAddress, UserRejectsError } = await import('@tonconnect/sdk');
47
48
  if (this.connectGeneration !== generation) {
48
- throw new Error('TON Connect connection was cancelled');
49
+ throw connectionCancelledError();
49
50
  }
50
51
  this.toUserFriendlyAddressFn = toUserFriendlyAddress;
51
52
  this.UserRejectsErrorClass = UserRejectsError;
@@ -53,7 +54,7 @@ export class TonConnectConnector {
53
54
  ? this.config.manifestUrl()
54
55
  : this.config.manifestUrl;
55
56
  const sdkOptions = {
56
- storage: new NamespacedStorage('uwc-ton-remote'),
57
+ storage: new NamespacedStorage(TON_CONNECT_STORAGE_PREFIX),
57
58
  manifestUrl: resolvedManifestUrl,
58
59
  analytics: { mode: 'off' }
59
60
  };
@@ -61,45 +62,51 @@ export class TonConnectConnector {
61
62
  sdkOptions.walletsListSource = this.config.walletsListSource;
62
63
  }
63
64
  this.sdk = new TonConnect(sdkOptions);
64
- // ONC-2717: The SDK supports restoreConnection() to resume a previous
65
- // session from NamespacedStorage without a new QR scan. Currently we
66
- // always start fresh (disconnect stale sessions below). Adding session
67
- // resumption would let users stay connected across page reloads —
68
- // call sdk.restoreConnection() here and skip the QR flow if it succeeds.
69
- if (this.sdk.connected) {
70
- // Can't reuse: the SDK binds one provider (JS or HTTP bridge) per instance.
71
- // A stale HTTP session from a previous wallet would corrupt the new one.
72
- try {
73
- await this.sdk.disconnect();
74
- }
75
- catch {
76
- /* best effort — clear stale session from NamespacedStorage */
77
- }
78
- }
79
65
  const sdkRef = this.sdk;
66
+ // Outer connect() validates this is non-empty; narrow for the rest of executeConnect.
67
+ const walletAppName = provider.walletListAppName;
68
+ if (!walletAppName) {
69
+ throw new Error('TonConnectWalletProvider.walletListAppName is required');
70
+ }
71
+ const restored = await tryRestoreSession({
72
+ network,
73
+ provider,
74
+ requestedAppName: walletAppName,
75
+ sdk: sdkRef,
76
+ generation
77
+ }, {
78
+ getCurrentGeneration: () => this.connectGeneration,
79
+ setAbortHook: fn => {
80
+ this.abortPendingConnect = fn;
81
+ },
82
+ toUserFriendlyAddressFn: this.toUserFriendlyAddressFn,
83
+ ...(this.config.onSessionRestored
84
+ ? { onSessionRestored: this.config.onSessionRestored }
85
+ : {})
86
+ });
87
+ if (restored) {
88
+ this.connectedAddress = restored.address;
89
+ this.connectedNetworkId = network.id;
90
+ return restored;
91
+ }
80
92
  // Resolve bridge URLs from the SDK's wallet list (built-in or custom walletsListSource)
81
93
  const wallets = await sdkRef.getWallets();
82
94
  const remoteWallets = wallets.filter((w) => 'bridgeUrl' in w && 'universalLink' in w);
83
- const walletInfo = remoteWallets.find(w => w.appName === provider.walletListAppName);
95
+ const walletInfo = remoteWallets.find(w => w.appName === walletAppName);
84
96
  if (!walletInfo) {
85
- throw new Error(`Wallet '${provider.walletListAppName}' not found in TonConnect wallet list, or missing bridge/universalLink`);
97
+ throw new Error(`Wallet '${walletAppName}' not found in TonConnect wallet list, or missing bridge/universalLink`);
86
98
  }
87
99
  const walletResult = await this.waitForWalletApproval(sdkRef, walletInfo.universalLink, walletInfo.bridgeUrl);
88
100
  this.connectionURI = undefined; // URI consumed — clear before notify fires
89
- const friendlyAddress = this.toUserFriendlyAddressFn
90
- ? toFriendlyAddress(walletResult.address, this.toUserFriendlyAddressFn)
91
- : walletResult.address;
92
- this.connectedAddress = friendlyAddress;
101
+ const result = buildConnectorResult({
102
+ account: walletResult,
103
+ network,
104
+ provider,
105
+ toUserFriendlyAddressFn: this.toUserFriendlyAddressFn
106
+ });
107
+ this.connectedAddress = result.address;
93
108
  this.connectedNetworkId = network.id;
94
- const availableAddresses = this.buildAvailableAddresses(provider.supportedNetworkIds, friendlyAddress);
95
- return {
96
- networkId: network.id,
97
- address: friendlyAddress,
98
- ...(walletResult.publicKey
99
- ? { publicKey: walletResult.publicKey }
100
- : {}),
101
- availableAddresses
102
- };
109
+ return result;
103
110
  }
104
111
  finally {
105
112
  if (this.connectGeneration === generation) {
@@ -122,7 +129,7 @@ export class TonConnectConnector {
122
129
  }
123
130
  const payload = buildSignDataPayload(message);
124
131
  try {
125
- return await executeSignData(this.sdk, payload);
132
+ return await withWalletResponseTimeout(executeSignData(this.sdk, payload), TON_CONNECT_STORAGE_PREFIX);
126
133
  }
127
134
  catch (error) {
128
135
  if (this.UserRejectsErrorClass &&
@@ -144,7 +151,7 @@ export class TonConnectConnector {
144
151
  const senderRawAddress = this.sdk.account?.address;
145
152
  const txRequest = buildTonTransactionRequest(tonRequest, senderRawAddress);
146
153
  try {
147
- const result = await this.sdk.sendTransaction(txRequest);
154
+ const result = await withWalletResponseTimeout(this.sdk.sendTransaction(txRequest), TON_CONNECT_STORAGE_PREFIX);
148
155
  const boc = unwrapBoc(result);
149
156
  return bocToHash(boc);
150
157
  }
@@ -168,6 +175,9 @@ export class TonConnectConnector {
168
175
  }
169
176
  /** Disconnect from the wallet and clean up resources. */
170
177
  async disconnect() {
178
+ // Advancing the generation cancels an in-flight restore still parked in its
179
+ // pre-hook storage read, where the abort hook isn't registered yet.
180
+ this.connectGeneration++;
171
181
  this.abortPendingConnect?.();
172
182
  this.abortPendingConnect = null;
173
183
  this.pendingConnectPromise = null;
@@ -206,7 +216,7 @@ export class TonConnectConnector {
206
216
  settled = true;
207
217
  this.clearConnectTimeout();
208
218
  unsubscribe?.();
209
- reject(new Error('TON Connect connection was cancelled'));
219
+ reject(connectionCancelledError());
210
220
  };
211
221
  this.connectTimeout = setTimeout(() => {
212
222
  if (settled)
@@ -277,10 +287,5 @@ export class TonConnectConnector {
277
287
  this.connectTimeout = null;
278
288
  }
279
289
  }
280
- buildAvailableAddresses(supportedNetworkIds, address) {
281
- return supportedNetworkIds
282
- .filter(id => id.startsWith('tvm:'))
283
- .map(networkId => ({ address, networkId: networkId }));
284
- }
285
290
  }
286
291
  //# sourceMappingURL=ton-connect-connector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ton-connect-connector.js","sourceRoot":"","sources":["../src/ton-connect-connector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ton-connect-connector.js","sourceRoot":"","sources":["../src/ton-connect-connector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { ITonConnect } from '@tonconnect/sdk';
2
+ /**
3
+ * Injected (JS Bridge) restore preflight behind `TonWalletService`.
4
+ * Mirrors the HTTP path in `ton-connect-session-restore.ts` and shares its
5
+ * account-extraction; only the storage prefix and match criterion differ.
6
+ */
7
+ export declare const TON_CONNECT_INJECTED_STORAGE_PREFIX = "uwc-ton-injected";
8
+ /**
9
+ * Return the stored session's jsBridgeKey if a usable injected session exists;
10
+ * null (→ fresh connect) for empty/malformed/non-injected entries.
11
+ */
12
+ export declare function readStoredInjectedConnection(): Promise<{
13
+ jsBridgeKey: string;
14
+ } | null>;
15
+ export interface TryRestoreInjectedSessionArgs {
16
+ requestedJsBridgeKey: string;
17
+ sdk: ITonConnect;
18
+ generation: number;
19
+ }
20
+ export interface TryRestoreInjectedSessionDeps {
21
+ /** Current connectGeneration for cancellation detection. */
22
+ getCurrentGeneration: () => number;
23
+ /** Register/clear the abort hook on the host (TonWalletService). */
24
+ setAbortHook: (fn: (() => void) | null) => void;
25
+ /** SDK's `toUserFriendlyAddress`, captured by the host after dynamic import. */
26
+ toUserFriendlyAddressFn: ((hex: string, testOnly?: boolean) => string) | null;
27
+ /** Optional host telemetry callback fired exactly once on successful restore. */
28
+ onSessionRestored?: () => void;
29
+ }
30
+ /**
31
+ * Resume an existing injected session before falling back to a fresh handshake.
32
+ * Returns null on any non-success path; throws the cancellation error if
33
+ * connectGeneration changes mid-flight. The wallet's injected restoreConnection
34
+ * is the source of truth — it re-issues the connect event or drops the session.
35
+ */
36
+ export declare function tryRestoreInjectedSession(args: TryRestoreInjectedSessionArgs, deps: TryRestoreInjectedSessionDeps): Promise<{
37
+ address: string;
38
+ publicKey?: string;
39
+ } | null>;
40
+ //# sourceMappingURL=ton-connect-injected-restore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton-connect-injected-restore.d.ts","sourceRoot":"","sources":["../src/ton-connect-injected-restore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAUlD;;;;GAIG;AAIH,eAAO,MAAM,mCAAmC,qBAAqB,CAAA;AASrE;;;GAGG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC;IAC5D,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,IAAI,CAAC,CAcR;AAED,MAAM,WAAW,6BAA6B;IAC5C,oBAAoB,EAAE,MAAM,CAAA;IAC5B,GAAG,EAAE,WAAW,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,6BAA6B;IAC5C,4DAA4D;IAC5D,oBAAoB,EAAE,MAAM,MAAM,CAAA;IAClC,oEAAoE;IACpE,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;IAC/C,gFAAgF;IAChF,uBAAuB,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC,GAAG,IAAI,CAAA;IAC7E,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;CAC/B;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,6BAA6B,EACnC,IAAI,EAAE,6BAA6B,GAClC,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAyBzD"}
@@ -0,0 +1,65 @@
1
+ import { NamespacedStorage } from './namespaced-storage';
2
+ import { toFriendlyAddress } from './ton-transaction-utils';
3
+ import { TON_CONNECT_BRIDGE_CONNECTION_KEY, awaitRestoredAccount, clearStoredBridgeConnection, connectionCancelledError } from './ton-connect-session-restore';
4
+ /**
5
+ * Injected (JS Bridge) restore preflight behind `TonWalletService`.
6
+ * Mirrors the HTTP path in `ton-connect-session-restore.ts` and shares its
7
+ * account-extraction; only the storage prefix and match criterion differ.
8
+ */
9
+ // Storage prefix for the injected TON path; must match the SDK constructor in
10
+ // ton-wallet-service.ts.
11
+ export const TON_CONNECT_INJECTED_STORAGE_PREFIX = 'uwc-ton-injected';
12
+ /**
13
+ * Return the stored session's jsBridgeKey if a usable injected session exists;
14
+ * null (→ fresh connect) for empty/malformed/non-injected entries.
15
+ */
16
+ export async function readStoredInjectedConnection() {
17
+ try {
18
+ const storage = new NamespacedStorage(TON_CONNECT_INJECTED_STORAGE_PREFIX);
19
+ const raw = await storage.getItem(TON_CONNECT_BRIDGE_CONNECTION_KEY);
20
+ if (!raw)
21
+ return null;
22
+ const parsed = JSON.parse(raw);
23
+ if (parsed.type !== 'injected')
24
+ return null;
25
+ if (typeof parsed.jsBridgeKey !== 'string' || !parsed.jsBridgeKey) {
26
+ return null;
27
+ }
28
+ return { jsBridgeKey: parsed.jsBridgeKey };
29
+ }
30
+ catch {
31
+ return null;
32
+ }
33
+ }
34
+ /**
35
+ * Resume an existing injected session before falling back to a fresh handshake.
36
+ * Returns null on any non-success path; throws the cancellation error if
37
+ * connectGeneration changes mid-flight. The wallet's injected restoreConnection
38
+ * is the source of truth — it re-issues the connect event or drops the session.
39
+ */
40
+ export async function tryRestoreInjectedSession(args, deps) {
41
+ const { requestedJsBridgeKey, sdk, generation } = args;
42
+ const stored = await readStoredInjectedConnection();
43
+ if (deps.getCurrentGeneration() !== generation) {
44
+ throw connectionCancelledError();
45
+ }
46
+ if (!stored)
47
+ return null;
48
+ // JS bridge keys are JS property names on `window` (e.g. `tonkeeper`) —
49
+ // case-sensitive by definition. A mismatch means a different wallet was
50
+ // last connected; wipe the stale session and fall through.
51
+ if (stored.jsBridgeKey !== requestedJsBridgeKey) {
52
+ await clearStoredBridgeConnection(TON_CONNECT_INJECTED_STORAGE_PREFIX);
53
+ return null;
54
+ }
55
+ return awaitRestoredAccount(sdk, deps, generation, account => {
56
+ const friendlyAddress = deps.toUserFriendlyAddressFn
57
+ ? toFriendlyAddress(account.address, deps.toUserFriendlyAddressFn)
58
+ : account.address;
59
+ return {
60
+ address: friendlyAddress,
61
+ ...(account.publicKey ? { publicKey: account.publicKey } : {})
62
+ };
63
+ });
64
+ }
65
+ //# sourceMappingURL=ton-connect-injected-restore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton-connect-injected-restore.js","sourceRoot":"","sources":["../src/ton-connect-injected-restore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EACL,iCAAiC,EACjC,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACzB,MAAM,+BAA+B,CAAA;AAEtC;;;;GAIG;AAEH,8EAA8E;AAC9E,yBAAyB;AACzB,MAAM,CAAC,MAAM,mCAAmC,GAAG,kBAAkB,CAAA;AASrE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAGhD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,mCAAmC,CAAC,CAAA;QAC1E,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAA;QACpE,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,CAAA;QAC1D,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO,IAAI,CAAA;QAC3C,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAClE,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAA;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAmBD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAmC,EACnC,IAAmC;IAEnC,MAAM,EAAE,oBAAoB,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IACtD,MAAM,MAAM,GAAG,MAAM,4BAA4B,EAAE,CAAA;IACnD,IAAI,IAAI,CAAC,oBAAoB,EAAE,KAAK,UAAU,EAAE,CAAC;QAC/C,MAAM,wBAAwB,EAAE,CAAA;IAClC,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,wEAAwE;IACxE,wEAAwE;IACxE,2DAA2D;IAC3D,IAAI,MAAM,CAAC,WAAW,KAAK,oBAAoB,EAAE,CAAC;QAChD,MAAM,2BAA2B,CAAC,mCAAmC,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;QAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB;YAClD,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC;YAClE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;QACnB,OAAO;YACL,OAAO,EAAE,eAAe;YACxB,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,88 @@
1
+ import type { AvailableAddress, ConnectorResult, Network, TonConnectWalletProvider } from '@meshconnect/uwc-types';
2
+ import type { ITonConnect } from '@tonconnect/sdk';
3
+ /**
4
+ * Pure helpers + the shared restore orchestrator behind the TON restore
5
+ * preflight, split out of the connector so the storage read,
6
+ * wallet-shape guard, and result construction stay unit-testable.
7
+ */
8
+ export declare const TON_CONNECT_STORAGE_PREFIX = "uwc-ton-remote";
9
+ export declare const TON_CONNECT_BRIDGE_CONNECTION_KEY = "ton-connect-storage_bridge-connection";
10
+ export declare const WALLET_RESPONSE_TIMEOUT_MS: number;
11
+ export declare function connectionCancelledError(): Error;
12
+ /**
13
+ * Wipe the SDK's stored bridge-connection blob for a prefix, on appName mismatch
14
+ * or a dead-session timeout. We remove the entry directly rather than via
15
+ * sdk.disconnect(), which throws on a freshly-built SDK (connected === false)
16
+ * and would leave the stale blob in place.
17
+ */
18
+ export declare function clearStoredBridgeConnection(prefix: string): Promise<void>;
19
+ /**
20
+ * Race a wallet round-trip against the deadline. On timeout, clear the stored
21
+ * session and reject with a recoverable `expired` error. The SDK promise stays
22
+ * parked; a late wallet reply resolves into a no-op.
23
+ */
24
+ export declare function withWalletResponseTimeout<T>(operation: Promise<T>, prefix: string, timeoutMs?: number): Promise<T>;
25
+ /**
26
+ * Return the stored session's wallet appName if a usable HTTP session exists;
27
+ * null (→ fresh connect) for empty/malformed/pending/non-http entries.
28
+ */
29
+ export declare function readStoredConnection(): Promise<{
30
+ appName: string;
31
+ } | null>;
32
+ /**
33
+ * Extract account address/publicKey from the unknown onStatusChange payload;
34
+ * null when disconnected or the shape mismatches.
35
+ */
36
+ export declare function extractRestoredAccount(wallet: unknown): {
37
+ address: string;
38
+ publicKey?: string;
39
+ } | null;
40
+ /** Pair each TVM-namespace network id with the friendly address. */
41
+ export declare function buildAvailableAddresses(supportedNetworkIds: string[], address: string): AvailableAddress[];
42
+ /**
43
+ * Build the ConnectorResult for both the fresh-connect and restore paths.
44
+ * Pure; pass toUserFriendlyAddressFn=null to keep the raw hex address.
45
+ */
46
+ export declare function buildConnectorResult(args: {
47
+ account: {
48
+ address: string;
49
+ publicKey?: string;
50
+ };
51
+ network: Network;
52
+ provider: TonConnectWalletProvider;
53
+ toUserFriendlyAddressFn: ((hex: string, testOnly?: boolean) => string) | null;
54
+ }): ConnectorResult;
55
+ export interface TryRestoreSessionArgs {
56
+ network: Network;
57
+ provider: TonConnectWalletProvider;
58
+ requestedAppName: string;
59
+ sdk: ITonConnect;
60
+ generation: number;
61
+ }
62
+ export interface TryRestoreSessionDeps {
63
+ /** Read-side: current connectGeneration for cancellation detection. */
64
+ getCurrentGeneration: () => number;
65
+ /** Write-side: register/clear the abort hook on the host (TonConnectConnector). */
66
+ setAbortHook: (fn: (() => void) | null) => void;
67
+ /** Optional host telemetry callback fired exactly once on successful restore. */
68
+ onSessionRestored?: () => void;
69
+ /** SDK's `toUserFriendlyAddress`, captured by the host after dynamic import. */
70
+ toUserFriendlyAddressFn: ((hex: string, testOnly?: boolean) => string) | null;
71
+ }
72
+ /**
73
+ * Shared restore orchestrator: subscribe to onStatusChange, register the abort
74
+ * hook, call sdk.restoreConnection(), then resolve buildResult(account) on a
75
+ * usable account — null if restore settles without one, reject if aborted.
76
+ * Only the resolve shape (buildResult) differs between HTTP and injected.
77
+ */
78
+ export declare function awaitRestoredAccount<T>(sdk: ITonConnect, deps: Pick<TryRestoreSessionDeps, 'setAbortHook' | 'onSessionRestored' | 'getCurrentGeneration'>, generation: number, buildResult: (account: {
79
+ address: string;
80
+ publicKey?: string;
81
+ }) => T): Promise<T | null>;
82
+ /**
83
+ * Resume an existing HTTP-bridge session before falling back to a fresh
84
+ * handshake. Returns null on any non-success path; throws the cancellation
85
+ * error if connectGeneration changes mid-flight (caller surfaces it).
86
+ */
87
+ export declare function tryRestoreSession(args: TryRestoreSessionArgs, deps: TryRestoreSessionDeps): Promise<ConnectorResult | null>;
88
+ //# sourceMappingURL=ton-connect-session-restore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton-connect-session-restore.d.ts","sourceRoot":"","sources":["../src/ton-connect-session-restore.ts"],"names":[],"mappings":"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"}