@windoge98/pnp-phantom
Version:
Phantom wallet adapter for Plug-n-Play
65 lines • 2.42 kB
TypeScript
import { BaseSiwxAdapter, Adapter, Wallet } from '@windoge98/plug-n-play';
import { ActorSubclass } from '@dfinity/agent';
import { WalletAdapterNetwork } from '@solana/wallet-adapter-base';
import { Transaction } from '@solana/web3.js';
import { Ed25519KeyIdentity, DelegationChain } from '@dfinity/identity';
export interface PhantomAdapterConfig {
enabled: boolean;
solanaNetwork?: WalletAdapterNetwork;
siwsProviderCanisterId?: string;
providerCanisterId?: string;
rpcEndpoint?: string;
}
/**
* Phantom-specific SIWS adapter implementation
* Provides Sign-In with Solana functionality for Phantom wallet
*/
export declare class PhantomAdapter extends BaseSiwxAdapter<PhantomAdapterConfig> {
walletName: string;
logo: string;
readonly id: string;
static supportedChains: Adapter.Chain[];
private phantomAdapter;
private solanaConnection;
private solanaAddress;
private connectingPromise;
protected resolveProviderCanisterId(): string;
constructor(args: Adapter.ConstructorArgs & {
config: PhantomAdapterConfig;
});
private isBrowser;
private initializeConnection;
private initializePhantomAdapter;
private setupWalletListeners;
private removeWalletListeners;
private handlePhantomConnect;
private handlePhantomDisconnect;
private handlePhantomError;
destroy(): void;
isConnected(): Promise<boolean>;
connect(): Promise<Wallet.Account>;
private createSiwsProviderActor;
private signSiwsMessage;
private performSiwsLogin;
protected disconnectInternal(): Promise<void>;
getPrincipal(): Promise<string>;
getAccountId(): Promise<string>;
getSolanaAddress(): Promise<string>;
getAddresses(): Promise<Adapter.Addresses>;
protected createActorInternal<T>(canisterId: string, idl: any, options?: {
requiresSigning?: boolean;
}): ActorSubclass<T>;
getSolBalance(): Promise<{
amount: number;
usdValue?: number;
}>;
estimateTransactionFee(transaction: Transaction): Promise<number>;
getTransactionStatus(signature: string): Promise<{
confirmed: boolean;
slot?: number;
err?: any;
}>;
protected onStorageRestored(_sessionKey: Ed25519KeyIdentity, _delegationChain: DelegationChain): Promise<void>;
protected onClearStoredSession(): Promise<void>;
}
//# sourceMappingURL=PhantomAdapter.d.ts.map