@reown/appkit-adapter-ton 1.8.15-viem-upgrade.0 → 1.8.15-viem-upgrade-2.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.
Files changed (32) hide show
  1. package/dist/esm/exports/index.js +3 -0
  2. package/dist/esm/exports/index.js.map +1 -0
  3. package/dist/esm/exports/utils.js +2 -0
  4. package/dist/esm/exports/utils.js.map +1 -0
  5. package/dist/esm/src/adapter.js +249 -0
  6. package/dist/esm/src/adapter.js.map +1 -0
  7. package/dist/esm/src/connectors/TonConnectConnector.js +177 -0
  8. package/dist/esm/src/connectors/TonConnectConnector.js.map +1 -0
  9. package/dist/esm/src/connectors/TonWalletConnectConnector.js +67 -0
  10. package/dist/esm/src/connectors/TonWalletConnectConnector.js.map +1 -0
  11. package/dist/esm/src/utils/Base64.js +47 -0
  12. package/dist/esm/src/utils/Base64.js.map +1 -0
  13. package/dist/esm/src/utils/ProviderEventEmitter.js +26 -0
  14. package/dist/esm/src/utils/ProviderEventEmitter.js.map +1 -0
  15. package/dist/esm/src/utils/TonConnectTypeUtils.js +2 -0
  16. package/dist/esm/src/utils/TonConnectTypeUtils.js.map +1 -0
  17. package/dist/esm/src/utils/TonConnectUtil.js +418 -0
  18. package/dist/esm/src/utils/TonConnectUtil.js.map +1 -0
  19. package/dist/esm/src/utils/TonWalletUtils.js +160 -0
  20. package/dist/esm/src/utils/TonWalletUtils.js.map +1 -0
  21. package/dist/esm/tsconfig.build.tsbuildinfo +1 -0
  22. package/dist/types/exports/index.d.ts +2 -0
  23. package/dist/types/exports/utils.d.ts +1 -0
  24. package/dist/types/src/adapter.d.ts +29 -0
  25. package/dist/types/src/connectors/TonConnectConnector.d.ts +29 -0
  26. package/dist/types/src/connectors/TonWalletConnectConnector.d.ts +26 -0
  27. package/dist/types/src/utils/Base64.d.ts +11 -0
  28. package/dist/types/src/utils/ProviderEventEmitter.d.ts +11 -0
  29. package/dist/types/src/utils/TonConnectTypeUtils.d.ts +66 -0
  30. package/dist/types/src/utils/TonConnectUtil.d.ts +35 -0
  31. package/dist/types/src/utils/TonWalletUtils.d.ts +23 -0
  32. package/package.json +6 -6
@@ -0,0 +1,2 @@
1
+ export * from '../src/adapter.js';
2
+ export * from '@reown/appkit-utils/ton';
@@ -0,0 +1 @@
1
+ export * from '../src/utils/TonWalletUtils.js';
@@ -0,0 +1,29 @@
1
+ import UniversalProvider from '@walletconnect/universal-provider';
2
+ import { AdapterBlueprint } from '@reown/appkit-controllers';
3
+ import type { TonConnector } from '@reown/appkit-utils/ton';
4
+ export declare class TonAdapter extends AdapterBlueprint<TonConnector> {
5
+ private universalProvider;
6
+ constructor(params?: AdapterBlueprint.Params);
7
+ syncConnectors(): Promise<void>;
8
+ connect(params: AdapterBlueprint.ConnectParams): Promise<AdapterBlueprint.ConnectResult>;
9
+ protected getActiveConnector(): TonConnector | undefined;
10
+ getAccounts(): Promise<AdapterBlueprint.GetAccountsResult>;
11
+ signMessage(): Promise<AdapterBlueprint.SignMessageResult>;
12
+ sendTransaction(): Promise<AdapterBlueprint.SendTransactionResult>;
13
+ disconnect(params?: AdapterBlueprint.DisconnectParams): Promise<AdapterBlueprint.DisconnectResult>;
14
+ private disconnectAll;
15
+ switchNetwork(params: AdapterBlueprint.SwitchNetworkParams): Promise<void>;
16
+ setUniversalProvider(universalProvider: UniversalProvider): Promise<void>;
17
+ getBalance(params: AdapterBlueprint.GetBalanceParams): Promise<AdapterBlueprint.GetBalanceResult>;
18
+ parseUnits(): bigint;
19
+ formatUnits(): string;
20
+ syncConnections({ connectToFirstConnector, caipNetwork }: AdapterBlueprint.SyncConnectionsParams): Promise<void>;
21
+ syncConnection(params: AdapterBlueprint.SyncConnectionParams): Promise<AdapterBlueprint.ConnectResult>;
22
+ estimateGas(_params: AdapterBlueprint.EstimateGasTransactionArgs): Promise<AdapterBlueprint.EstimateGasTransactionResult>;
23
+ writeContract(_params: AdapterBlueprint.WriteContractParams): Promise<AdapterBlueprint.WriteContractResult>;
24
+ grantPermissions(_params: AdapterBlueprint.GrantPermissionsParams): Promise<unknown>;
25
+ getCapabilities(_params: AdapterBlueprint.GetCapabilitiesParams): Promise<unknown>;
26
+ revokePermissions(_params: AdapterBlueprint.RevokePermissionsParams): Promise<`0x${string}`>;
27
+ walletGetAssets(_params: AdapterBlueprint.WalletGetAssetsParams): Promise<AdapterBlueprint.WalletGetAssetsResponse>;
28
+ getWalletConnectProvider(params: AdapterBlueprint.GetWalletConnectProviderParams): AdapterBlueprint.GetWalletConnectProviderResult;
29
+ }
@@ -0,0 +1,29 @@
1
+ import type { RequestArguments } from '@walletconnect/universal-provider';
2
+ import type { CaipNetwork } from '@reown/appkit-common';
3
+ import type { TonConnector, TonWalletInfo } from '@reown/appkit-utils/ton';
4
+ export declare class TonConnectConnector implements TonConnector {
5
+ readonly chain = "ton";
6
+ readonly type = "INJECTED";
7
+ private readonly requestedChains;
8
+ private readonly wallet;
9
+ private currentAddress;
10
+ private eventEmitter;
11
+ readonly emit: (event: string, data?: unknown) => void;
12
+ readonly on: <Event extends keyof import("@reown/appkit-controllers").ProviderEventListener>(event: Event, listener: import("@reown/appkit-controllers").ProviderEventListener[Event]) => void;
13
+ readonly removeListener: <T>(event: string, listener: (data: T) => void) => void;
14
+ constructor({ wallet, chains }: {
15
+ wallet: TonWalletInfo;
16
+ chains: CaipNetwork[];
17
+ });
18
+ request<T>(args: RequestArguments): T;
19
+ get id(): string;
20
+ get name(): string;
21
+ get imageUrl(): string | undefined;
22
+ get chains(): CaipNetwork[];
23
+ connect(): Promise<string>;
24
+ disconnect(): Promise<void>;
25
+ signData(params: TonConnector.SignDataParams): Promise<string>;
26
+ sendMessage(params: TonConnector.SendMessageParams): Promise<string>;
27
+ switchNetwork(): Promise<void>;
28
+ private clearSession;
29
+ }
@@ -0,0 +1,26 @@
1
+ import type { CaipNetwork } from '@reown/appkit-common';
2
+ import { type RequestArguments, WalletConnectConnector } from '@reown/appkit-controllers';
3
+ import type { TonConnector } from '@reown/appkit-utils/ton';
4
+ export type WalletConnectProviderConfig = {
5
+ provider: WalletConnectConnector['provider'];
6
+ chains: CaipNetwork[];
7
+ };
8
+ export declare class TonWalletConnectConnector extends WalletConnectConnector<'ton'> implements TonConnector {
9
+ readonly chain: "ton";
10
+ private eventEmitter;
11
+ readonly emit: (event: string, data?: unknown) => void;
12
+ readonly on: <Event extends keyof import("@reown/appkit-controllers").ProviderEventListener>(event: Event, listener: import("@reown/appkit-controllers").ProviderEventListener[Event]) => void;
13
+ readonly removeListener: <T>(event: string, listener: (data: T) => void) => void;
14
+ constructor({ provider, chains }: WalletConnectProviderConfig);
15
+ get imageUrl(): string | undefined;
16
+ get info(): undefined;
17
+ get chainsList(): CaipNetwork[];
18
+ get chains(): CaipNetwork[];
19
+ connect(): Promise<never>;
20
+ signData(params: TonConnector.SignDataParams): Promise<string>;
21
+ sendMessage(params: TonConnector.SendMessageParams): Promise<string>;
22
+ switchNetwork(): Promise<void>;
23
+ request<T>(args: RequestArguments): T;
24
+ setDefaultChain(chainId: string): void;
25
+ private get sessionChains();
26
+ }
@@ -0,0 +1,11 @@
1
+ declare function encode(value: string | object | Uint8Array, urlSafe?: boolean): string;
2
+ declare function decode(value: string, urlSafe?: boolean): {
3
+ toString(): string;
4
+ toObject<T>(): T | null;
5
+ toUint8Array(): Uint8Array;
6
+ };
7
+ export declare const Base64: {
8
+ encode: typeof encode;
9
+ decode: typeof decode;
10
+ };
11
+ export type { encode, decode };
@@ -0,0 +1,11 @@
1
+ import type { Provider, ProviderEventListener } from '@reown/appkit-controllers';
2
+ type ProviderEventEmitterMethods = Pick<Provider, 'on' | 'removeListener' | 'emit'>;
3
+ type Events = keyof ProviderEventListener;
4
+ type Listener<Event extends Events> = ProviderEventListener[Event];
5
+ export declare class ProviderEventEmitter implements ProviderEventEmitterMethods {
6
+ private listeners;
7
+ on<Event extends Events>(event: Event, listener: Listener<Event>): void;
8
+ removeListener<T>(event: string, listener: (data: T) => void): void;
9
+ emit(event: string, data?: unknown): void;
10
+ }
11
+ export {};
@@ -0,0 +1,66 @@
1
+ export type TonWalletFeature = {
2
+ name: 'SendTransaction';
3
+ maxMessages?: number;
4
+ extraCurrencySupported?: boolean;
5
+ } | {
6
+ name: 'SignData';
7
+ types?: Array<'text' | 'binary' | 'cell'>;
8
+ } | string;
9
+ export interface TonConnectEvent {
10
+ event?: string;
11
+ payload?: {
12
+ items?: Array<{
13
+ name?: string;
14
+ address?: string;
15
+ }>;
16
+ message?: string;
17
+ };
18
+ }
19
+ export interface TonConnectResponse {
20
+ event?: string;
21
+ payload?: {
22
+ items?: Array<{
23
+ name?: string;
24
+ address?: string;
25
+ }>;
26
+ message?: string;
27
+ };
28
+ result?: unknown;
29
+ signature?: string;
30
+ boc?: string;
31
+ error?: {
32
+ code?: number;
33
+ message?: string;
34
+ };
35
+ }
36
+ export interface InjectedWalletApi {
37
+ deviceInfo?: unknown;
38
+ walletInfo?: {
39
+ name?: string;
40
+ app_name?: string;
41
+ tondns?: string;
42
+ image?: string;
43
+ about_url?: string;
44
+ platforms?: string[];
45
+ features?: TonWalletFeature[];
46
+ };
47
+ protocolVersion?: number;
48
+ isWalletBrowser?: boolean;
49
+ connect(protocolVersion: number, message: {
50
+ manifestUrl: string;
51
+ items: Array<{
52
+ name: 'ton_addr';
53
+ } | {
54
+ name: 'ton_proof';
55
+ payload: string;
56
+ }>;
57
+ }): Promise<TonConnectResponse>;
58
+ restoreConnection?(): Promise<TonConnectEvent>;
59
+ send(message: {
60
+ method: string;
61
+ params: string[];
62
+ id: string;
63
+ }): Promise<TonConnectResponse>;
64
+ listen(callback: (event: TonConnectEvent) => void): () => void;
65
+ disconnect(): Promise<void>;
66
+ }
@@ -0,0 +1,35 @@
1
+ import type { TonWalletInfo, TonWalletInfoDTO, TonWalletInfoInjectable } from '@reown/appkit-utils/ton';
2
+ import type { InjectedWalletApi, TonWalletFeature } from './TonConnectTypeUtils.js';
3
+ export declare const TonConnectUtil: {
4
+ getTonConnectManifestUrl(): string;
5
+ connectInjected(jsBridgeKey: string, tonProof?: string): Promise<string>;
6
+ disconnectInjected(jsBridgeKey: string): Promise<void>;
7
+ createConnectRequest(manifestUrl: string, tonProof?: string): {
8
+ manifestUrl: string;
9
+ items: ({
10
+ name: "ton_addr";
11
+ } | {
12
+ name: "ton_proof";
13
+ payload: string;
14
+ })[];
15
+ };
16
+ normalizeBase64(data: string | undefined): string | undefined;
17
+ getInjectedWallets(): Promise<TonWalletInfo[]>;
18
+ isWalletInjected(jsBridgeKey: string): boolean;
19
+ isInsideWalletBrowser(jsBridgeKey: string): boolean;
20
+ getCurrentlyInjectedWallets(): TonWalletInfoInjectable[];
21
+ fetchWalletsListDTO(): Promise<TonWalletInfoDTO[]>;
22
+ isCorrectWalletInfoDTO(value: unknown): value is TonWalletInfoDTO;
23
+ isJSBridgeWithMetadata(value: unknown): value is {
24
+ tonconnect: {
25
+ walletInfo: TonWalletInfoDTO;
26
+ isWalletBrowser?: boolean;
27
+ };
28
+ };
29
+ getWalletFeatures(wallet: TonWalletInfoInjectable): TonWalletFeature[] | undefined;
30
+ assertSendTransactionSupported(wallet: TonWalletInfoInjectable, requiredMessagesNumber: number, requireExtraCurrencies: boolean): void;
31
+ assertSignDataSupported(wallet: TonWalletInfoInjectable, requiredTypes: Array<"text" | "binary" | "cell">): void;
32
+ getJSBridgeKey(wallet: TonWalletInfoInjectable): string | undefined;
33
+ getTonConnect(jsBridgeKey: string | undefined): InjectedWalletApi | undefined;
34
+ setupWalletListener(jsBridgeKey: string, wallet: InjectedWalletApi): void;
35
+ };
@@ -0,0 +1,23 @@
1
+ import type { TonWalletInfo, TonWalletInfoInjectable, TonWalletInfoRemote } from '@reown/appkit-utils/ton';
2
+ export declare function isWalletInfoInjectable(value: TonWalletInfo): value is TonWalletInfoInjectable;
3
+ export declare function isWalletInfoRemote(value: TonWalletInfo): value is TonWalletInfoRemote;
4
+ export type TonWalletInfoCurrentlyInjected = TonWalletInfoInjectable & {
5
+ injected: true;
6
+ };
7
+ export type TonWalletInfoCurrentlyEmbedded = TonWalletInfoCurrentlyInjected & {
8
+ embedded: true;
9
+ };
10
+ export declare function isWalletInfoCurrentlyInjected(value: TonWalletInfo): value is TonWalletInfoCurrentlyInjected;
11
+ export declare function isWalletInfoCurrentlyEmbedded(value: TonWalletInfo): value is TonWalletInfoCurrentlyEmbedded;
12
+ export type ToUserFriendlyOpts = {
13
+ testOnly?: boolean;
14
+ bounceable?: boolean;
15
+ };
16
+ export declare function toUserFriendlyAddress(hexAddress: string, testOnly?: boolean): string;
17
+ export declare function hexToBytes(hex: string): Uint8Array;
18
+ export declare function parseUserFriendlyAddress(address: string): {
19
+ wc: 0 | -1;
20
+ hex: string;
21
+ testOnly: boolean;
22
+ isBounceable: boolean;
23
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-adapter-ton",
3
- "version": "1.8.15-viem-upgrade.0",
3
+ "version": "1.8.15-viem-upgrade-2.0",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "main": "./dist/esm/exports/index.js",
@@ -25,11 +25,11 @@
25
25
  "dependencies": {
26
26
  "@walletconnect/universal-provider": "2.23.1",
27
27
  "tweetnacl-util": "0.15.1",
28
- "@reown/appkit": "1.8.15-viem-upgrade.0",
29
- "@reown/appkit-common": "1.8.15-viem-upgrade.0",
30
- "@reown/appkit-controllers": "1.8.15-viem-upgrade.0",
31
- "@reown/appkit-polyfills": "1.8.15-viem-upgrade.0",
32
- "@reown/appkit-utils": "1.8.15-viem-upgrade.0"
28
+ "@reown/appkit-controllers": "1.8.15-viem-upgrade-2.0",
29
+ "@reown/appkit-polyfills": "1.8.15-viem-upgrade-2.0",
30
+ "@reown/appkit-utils": "1.8.15-viem-upgrade-2.0",
31
+ "@reown/appkit": "1.8.15-viem-upgrade-2.0",
32
+ "@reown/appkit-common": "1.8.15-viem-upgrade-2.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@vitest/coverage-v8": "2.1.9",