@txnlab/use-wallet-react
Version:
React library for integrating Algorand wallets into decentralized applications
49 lines (46 loc) • 2.09 kB
TypeScript
import * as _txnlab_use_wallet from '@txnlab/use-wallet';
import { WalletManager, NetworkId, AlgodConfig, WalletId, WalletMetadata, WalletAccount, SignMetadata, SignDataResponse } from '@txnlab/use-wallet';
export * from '@txnlab/use-wallet';
import algosdk from 'algosdk';
import * as React from 'react';
interface WalletProviderProps {
manager: WalletManager;
children: React.ReactNode;
}
declare const WalletProvider: ({ manager, children }: WalletProviderProps) => JSX.Element;
declare const useNetwork: () => {
activeNetwork: string;
networkConfig: Record<string, _txnlab_use_wallet.NetworkConfig>;
activeNetworkConfig: _txnlab_use_wallet.NetworkConfig;
setActiveNetwork: (networkId: NetworkId | string) => Promise<void>;
updateAlgodConfig: (networkId: string, config: Partial<AlgodConfig>) => void;
resetNetworkConfig: (networkId: string) => void;
};
interface Wallet {
id: WalletId;
metadata: WalletMetadata;
accounts: WalletAccount[];
activeAccount: WalletAccount | null;
isConnected: boolean;
isActive: boolean;
canSignData: boolean;
connect: (args?: Record<string, any>) => Promise<WalletAccount[]>;
disconnect: () => Promise<void>;
setActive: () => void;
setActiveAccount: (address: string) => void;
}
declare const useWallet: () => {
wallets: Wallet[];
isReady: boolean;
algodClient: algosdk.Algodv2;
setAlgodClient: React.Dispatch<React.SetStateAction<algosdk.Algodv2>>;
activeWallet: Wallet | null;
activeWalletAccounts: WalletAccount[] | null;
activeWalletAddresses: string[] | null;
activeAccount: WalletAccount | null;
activeAddress: string | null;
signData: (data: string, metadata: SignMetadata) => Promise<SignDataResponse>;
signTransactions: <T extends algosdk.Transaction[] | Uint8Array[]>(txnGroup: T | T[], indexesToSign?: number[]) => Promise<(Uint8Array | null)[]>;
transactionSigner: (txnGroup: algosdk.Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
};
export { type Wallet, WalletProvider, useNetwork, useWallet };