UNPKG

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
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 { }