Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions packages/walletkit-android-bridge/src/api/eventListeners.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,21 @@ import type {
RequestErrorEvent,
SendTransactionRequestEvent,
SignDataRequestEvent,
SignMessageRequestEvent,
} from '@ton/walletkit';

type ConnectEventListener = ((event: ConnectionRequestEvent) => void) | null;
type TransactionEventListener = ((event: SendTransactionRequestEvent) => void) | null;
type SignDataEventListener = ((event: SignDataRequestEvent) => void) | null;
type SignMessageEventListener = ((event: SignMessageRequestEvent) => void) | null;
type DisconnectEventListener = ((event: DisconnectionEvent) => void) | null;
type ErrorEventListener = ((event: RequestErrorEvent) => void) | null;

export const eventListeners = {
onConnectListener: null as ConnectEventListener,
onTransactionListener: null as TransactionEventListener,
onSignDataListener: null as SignDataEventListener,
onSignMessageListener: null as SignMessageEventListener,
onDisconnectListener: null as DisconnectEventListener,
onErrorListener: null as ErrorEventListener,
};
2 changes: 2 additions & 0 deletions packages/walletkit-android-bridge/src/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ export const api = {
rejectTransactionRequest: requests.rejectTransactionRequest,
approveSignDataRequest: requests.approveSignDataRequest,
rejectSignDataRequest: requests.rejectSignDataRequest,
approveSignMessageRequest: requests.approveSignMessageRequest,
rejectSignMessageRequest: requests.rejectSignMessageRequest,

handleTonConnectUrl: tonconnect.handleTonConnectUrl,
connectionEventFromUrl: tonconnect.connectionEventFromUrl,
Expand Down
16 changes: 16 additions & 0 deletions packages/walletkit-android-bridge/src/api/initialization.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import type {
RequestErrorEvent,
SendTransactionRequestEvent,
SignDataRequestEvent,
SignMessageRequestEvent,
} from '@ton/walletkit';

import type { WalletKitBridgeInitConfig, SetEventsListenersArgs, WalletKitBridgeEventCallback } from '../types';
Expand Down Expand Up @@ -84,6 +85,16 @@ export async function setEventsListeners(args?: SetEventsListenersArgs): Promise

kit.onSignDataRequest(eventListeners.onSignDataListener);

if (eventListeners.onSignMessageListener) {
kit.removeSignMessageRequestCallback();
}

eventListeners.onSignMessageListener = (event: SignMessageRequestEvent) => {
callback('signMessageRequest', event);
};

kit.onSignMessageRequest(eventListeners.onSignMessageListener);

if (eventListeners.onDisconnectListener) {
kit.removeDisconnectCallback();
}
Expand Down Expand Up @@ -129,6 +140,11 @@ export async function removeEventListeners(): Promise<{ ok: true }> {
eventListeners.onSignDataListener = null;
}

if (eventListeners.onSignMessageListener) {
kit.removeSignMessageRequestCallback();
eventListeners.onSignMessageListener = null;
}

if (eventListeners.onDisconnectListener) {
kit.removeDisconnectCallback();
eventListeners.onDisconnectListener = null;
Expand Down
8 changes: 8 additions & 0 deletions packages/walletkit-android-bridge/src/api/requests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,11 @@ export async function approveSignDataRequest(args: unknown[]) {
export async function rejectSignDataRequest(args: unknown[]) {
return kit('rejectSignDataRequest', ...args);
}

export async function approveSignMessageRequest(args: unknown[]) {
return kit('approveSignMessageRequest', ...args);
}

export async function rejectSignMessageRequest(args: unknown[]) {
return kit('rejectSignMessageRequest', ...args);
}
14 changes: 14 additions & 0 deletions packages/walletkit-android-bridge/src/types/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,18 @@ export interface RejectSignDataRequestArgs {
reason?: string;
}

export interface ApproveSignMessageRequestArgs {
event: TonConnectRequestEvent;
response?: {
internalBoc: string;
};
}

export interface RejectSignMessageRequestArgs {
event: TonConnectRequestEvent;
reason?: string;
}

export interface DisconnectSessionArgs {
sessionId?: string;
}
Expand Down Expand Up @@ -442,6 +454,8 @@ export interface WalletKitBridgeApi {
rejectTransactionRequest(args: RejectTransactionRequestArgs): PromiseOrValue<{ success: boolean }>;
approveSignDataRequest(args: ApproveSignDataRequestArgs): PromiseOrValue<{ signature: string; timestamp: number }>;
rejectSignDataRequest(args: RejectSignDataRequestArgs): PromiseOrValue<{ success: boolean }>;
approveSignMessageRequest(args: ApproveSignMessageRequestArgs): PromiseOrValue<{ internalBoc: string }>;
rejectSignMessageRequest(args: RejectSignMessageRequestArgs): PromiseOrValue<{ success: boolean }>;
listSessions(): PromiseOrValue<{ items: TONConnectSession[] }>;
disconnectSession(args?: DisconnectSessionArgs): PromiseOrValue<{ ok: boolean }>;
getNfts(args: GetNftsArgs): PromiseOrValue<NFTsResponse>;
Expand Down
1 change: 1 addition & 0 deletions packages/walletkit-android-bridge/src/types/events.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export type WalletKitBridgeEventType =
| 'connectRequest'
| 'transactionRequest'
| 'signDataRequest'
| 'signMessageRequest'
| 'disconnect'
| 'requestError'
| 'browserPageStarted'
Expand Down
Loading