@pushchain/ui-kit
Version:
## Overview
47 lines (46 loc) • 1.65 kB
TypeScript
import { BaseWalletProvider } from '../BaseWalletProvider';
import { ChainType, ITypedData } from '../../../types/wallet.types';
import { Transaction } from '@solana/web3.js';
declare global {
interface Window {
phantom?: {
ethereum?: {
isConnected?: boolean;
request: (args: {
method: string;
params?: any[];
}) => Promise<any>;
};
solana?: {
isConnected?: boolean;
chainId?: number;
connect: () => Promise<{
publicKey: {
toString: () => string;
};
}>;
disconnect: () => Promise<void>;
signMessage: (message: Uint8Array, encoding: string) => Promise<{
signature: Uint8Array;
}>;
signAndSendTransaction: (txn: Transaction) => Promise<string>;
};
};
ethereum?: any;
}
}
export declare class PhantomProvider extends BaseWalletProvider {
constructor();
private connectedChainType;
isInstalled: () => Promise<boolean>;
private connectEthereum;
private connectSolana;
connect: (chainType?: ChainType) => Promise<{
caipAddress: string;
}>;
getChainId: (chainType?: ChainType) => Promise<number>;
signMessage: (message: Uint8Array) => Promise<Uint8Array>;
signAndSendTransaction: (txn: Uint8Array) => Promise<Uint8Array>;
signTypedData: (typedData: ITypedData) => Promise<Uint8Array>;
disconnect: () => Promise<void>;
}