@windoge98/pnp-okx
Version:
OKX multi-chain wallet adapter for Plug-n-Play
66 lines • 2.53 kB
TypeScript
import { BaseMultiChainAdapter, NetworkDetection, MultiChainConfig, BaseAdapter, AdapterConstructorArgs, Wallet } from '@windoge98/plug-n-play';
import { WalletAdapterNetwork } from '@solana/wallet-adapter-base';
import { PublicKey } from '@solana/web3.js';
declare global {
interface Window {
okxwallet?: {
request?: (args: {
method: string;
params?: any[];
}) => Promise<any>;
isConnected?: () => boolean;
selectedAddress?: string;
chainId?: string;
solana?: {
isConnected: boolean;
publicKey?: PublicKey;
connect: () => Promise<{
publicKey: PublicKey;
}>;
disconnect: () => Promise<void>;
signMessage: (message: Uint8Array) => Promise<Uint8Array>;
signTransaction: (transaction: any) => Promise<any>;
signAllTransactions: (transactions: any[]) => Promise<any[]>;
on: (event: string, handler: Function) => void;
off: (event: string, handler: Function) => void;
};
bitcoin?: {
connect: () => Promise<void>;
getAccounts: () => Promise<string[]>;
};
};
}
}
/**
* OKX-specific configuration extending multi-chain config
*/
export interface OkxMultiChainConfig extends MultiChainConfig {
solanaNetwork?: WalletAdapterNetwork;
siwsProviderCanisterId?: string;
siweProviderCanisterId?: string;
}
/**
* OKX Multi-Chain Adapter implementation
* Supports Ethereum and Solana networks with automatic detection
*/
export declare class OkxMultiChainAdapter extends BaseMultiChainAdapter<OkxMultiChainConfig> {
protected networkAdapters: Map<string, BaseAdapter>;
constructor(args: AdapterConstructorArgs<OkxMultiChainConfig>);
/**
* Override connect to add OKX-specific error handling
*/
connect(): Promise<Wallet.Account>;
/**
* Detect which network OKX wallet is currently connected to
*/
detectNetwork(): Promise<NetworkDetection>;
/**
* Get or create the appropriate network-specific adapter
*/
protected getNetworkAdapter(network: NetworkDetection): Promise<BaseAdapter>;
/**
* Switch network (OKX supports programmatic network switching for EVM chains)
*/
switchNetwork(targetNetwork: string): Promise<void>;
}
//# sourceMappingURL=OkxMultiChainAdapter.d.ts.map