devin-test
Version:
With OmniConnect, users can connect effortlessly across all platforms—whether it's a plugin, mobile app, TGMini App, or Web/H5. No matter where users are or which blockchain they want to interact with, OmniConnect provides direct, seamless access, ensurin
305 lines (257 loc) • 8.21 kB
TypeScript
import { KeyPair } from '@tonconnect/protocol';
import { MessageEvent as MessageEvent_2 } from 'react-native-sse';
import { Subscription } from 'rxjs';
import { Transaction } from '@solana/web3.js';
import { VersionedTransaction } from '@solana/web3.js';
export declare class BaseProvider {
private readonly defaultTtl;
private bridgeUrl;
private deeplink;
private eventSource;
private namespaceKey;
private metadata;
private namespace;
private valid;
private resolve;
private reject;
walletInfo: WalletInfo;
connection: OmniConnection;
constructor(options: any);
getWalletInfo(): WalletInfo;
onStatusChange(callback: any, errorsHandler: any): Subscription;
syncEventSourceMessage(): Promise<any>;
connect(options: ConnectingOptions): Promise<any>;
getAddress(): any;
disconnect(response?: any): void;
distribute({ method, payload, settings, }: {
method: RequestMethods;
payload: any;
settings: {
preventPopup?: PreventType;
};
}): Promise<any>;
handleMessage(messageEvent: MessageEvent_2): Promise<void>;
send(request: OmniAppRequest, ttl?: number): Promise<void>;
restoreConnection(cb?: any): Promise<any>;
setWalletInfo(walletInfo: any): void;
next(v: any): void;
close(): void;
eventSourceErrorHandle(event: any): void;
removeConnection(): void;
connectedNeededAssert(): void;
openlinkInCommonWay(preventPopup?: PreventType): void;
validationAssert(): void;
}
export declare interface ConnectingOptions {
request?: any;
ret?: string;
callback?: () => void;
}
export declare const defaultEip155Namespace: {
chains: string[];
methods: Eip155SigningMethods[];
};
export declare const DefaultSupportedChainIds: string[];
export declare interface Eip155Namespace {
eip155: {
chains: Array<number | string>;
methods?: Array<string>;
events?: Array<string>;
};
}
export declare class Eip155Provider extends BaseProvider {
chains?: Array<string>;
chainId?: string;
constructor(options: any);
request(args: any): Promise<any>;
getAccounts(): Promise<any>;
connect(opt?: any): Promise<{
account: any;
chainId: any;
}>;
signMessage(options: Eip155SigningMessageOptions): Promise<any>;
signTransaction(options: SigningTxOptions): Promise<any>;
sendTransaction(options: SigningTxOptions): Promise<any>;
restoreConnection(): Promise<{
account: any;
chainId: any;
}>;
}
export declare interface Eip155SigningMessageOptions {
method: Eip155SigningMethods;
params: Array<any>;
settings?: {
preventPopup?: PreventType;
};
}
export declare enum Eip155SigningMethods {
EthSign = "eth_sign",
PersonalSign = "personal_sign",
EthSignTypedData = "eth_signTypedData",
EthSignTypedDataV3 = "eth_signTypedData_v3",
EthSignTypedDataV4 = "eth_signTypedData_v4",
EthSignTransaction = "eth_signTransaction",
EthSendTransaction = "eth_sendTransaction",
EthSendRawTransaction = "eth_sendRawTransaction"
}
export declare const generateClientId: (keyPair?: KeyPair) => {
sessionKeyPair: KeyPair;
sessionId: string;
};
export declare const getTransactionVersion: (transaction: SolTransaction) => string;
export declare const InitWalletInfo: {
namespaceKey: string;
connected: boolean;
result: {};
};
export declare function isTelegramEnvironment(): Promise<boolean>;
export declare function isVersionedTransaction(transaction: SolTransaction): boolean;
export declare interface MessageStream {
id: number;
namespaceKey: string;
event: string;
connected: boolean;
result: {
[key: string]: any;
};
}
export declare interface MessageStreamError {
error: {
code: number;
message: string;
};
}
export declare interface OmniAppCommonResponse {
id: number;
event: RequestMethods;
namespaceKey: string;
result: any;
}
export declare interface OmniAppErrorResponse {
id: number;
event: RequestMethods;
error: {
code: number;
message: string;
data?: any;
};
}
export declare interface OmniAppRequest {
id: number;
namespaceKey: string;
method: RequestMethods;
payload?: any;
}
export declare type OmniAppResponse = OmniAppCommonResponse & OmniAppErrorResponse;
export declare class OmniConnect {
provider: Eip155Provider | SolanaProvider;
constructor(options: OmniConnectOptions);
initialize(options: OmniConnectOptions): Promise<void>;
}
export declare enum OmniConnectBridgeType {
Remote = "remote",
Injected = "injected"
}
export declare interface OmniConnection {
sessionKeyPair: KeyPair;
from: string;
}
export declare interface OmniConnectOptions {
bridgeUrl?: string;
deeplink?: string;
namespace: OmniNamespace;
metadata: OmniMetadata;
}
export declare interface OmniMetadata {
name: string;
iconUrl: string;
url: string;
privacyPolicyUrl?: string;
termsOfUseUrl?: string;
}
export declare type OmniNamespace = Partial<Eip155Namespace & TonNamespace & SolNamespace>;
export declare function overrideWindowOpen(): boolean;
export declare enum PreventType {
Open = "PreventOpen",
Close = "PreventClose"
}
export declare enum RequestMethods {
Connect = "Connect",
SignMessage = "SignMessage",
SignTransaction = "SignTransaction",
SendTransaction = "SendTransaction",
Disconnect = "Disconnect"
}
export declare type SigningMessageOptions = Partial<Eip155SigningMessageOptions & SolSigningMessageOptions>;
export declare type SigningTxOptions = Partial<Eip155SigningMessageOptions & SolSigningTxOptions>;
export declare interface SignMessageParams {
type: Eip155SigningMethods;
params: Array<any>;
}
export declare class SolanaProvider extends BaseProvider {
chains?: Array<string>;
constructor(options: any);
connect(opt: any): Promise<{
account: any;
}>;
signMessage(options: SolSigningMessageOptions): Promise<any>;
signTransaction(options: SolSigningTxOptions): Promise<any>;
restoreConnection(): Promise<{
account: any;
}>;
}
export declare interface SolNamespace {
solana: {
chains?: Array<string>;
chainId?: string | number;
};
}
export declare interface SolSigningMessageOptions {
message: string;
chain?: string;
settings?: {
preventPopup?: PreventType;
};
}
export declare interface SolSigningTxOptions {
transaction: SolTransaction;
settings?: {
preventPopup?: PreventType;
};
}
export declare type SolTransaction = Partial<Transaction & VersionedTransaction>;
export declare type StreamProps = MessageStream & MessageStreamError;
export declare interface TonNamespace {
ton: {};
}
export declare interface TransactionParams {
nonce?: string;
from: string;
to?: string;
value: string;
data: string;
gasLimit: string;
gasPrice?: string;
maxPriorityFeePerGas?: string;
maxFeePerGas?: string;
chainId: string | number;
}
export declare const TransactionVersion: {
legacy: string;
versioned: string;
};
export declare const validateNamespace: (namespace: OmniNamespace) => void;
export declare const validateSignMessageParams: ({ method, params, }: {
method: Eip155SigningMethods;
params: Array<any>;
}) => string | null;
export declare const validateTransactionParams: (params: TransactionParams) => string;
export declare const validateTypedDataParams: (data: any) => string | null;
export declare const validateTypedDataVParams: (data: any) => string | null;
export declare interface WalletInfo {
namespaceKey: string;
connected: boolean;
result: Record<any, any>;
from?: string;
}
export { }