UNPKG

@lens-protocol/react

Version:

Interacting with the Lens Protocol API using React.

63 lines (62 loc) 3.51 kB
import { TypedDataSigner, Signer } from '@ethersproject/abstract-signer'; import { TransactionRequest } from '@ethersproject/providers'; import { TypedData } from '@lens-protocol/blockchain-bindings'; import { AnyTransactionRequestModel, InsufficientGasError, ISignedProtocolCall, IUnsignedProtocolCall, NativeTransaction, PendingSigningRequestError, ProtocolTransactionRequestModel, Signature, SignedFrameAction, UnsignedFrameAction, UnsignedTransaction, UserRejectedError, Wallet, WalletConnectionError } from '@lens-protocol/domain/entities'; import { AnyTransactionRequest } from '@lens-protocol/domain/use-cases/transactions'; import { ChainType, EvmAddress, PromiseResult } from '@lens-protocol/shared-kernel'; import { z } from 'zod'; import { ITransactionFactory } from "../../transactions/adapters/ITransactionFactory.js"; export type RequiredSigner = Signer & TypedDataSigner; export type CreateSignerConfig = { address: EvmAddress; chainType?: ChainType; }; export interface ISignerFactory { createSigner(config: CreateSignerConfig): PromiseResult<RequiredSigner, WalletConnectionError>; } export declare const WalletDataSchema: z.ZodObject<{ address: z.ZodString; }, "strip", z.ZodTypeAny, { address: string; }, { address: string; }>; export type WalletDataSchema = z.infer<typeof WalletDataSchema>; export declare class UnsignedProtocolCall<T extends ProtocolTransactionRequestModel> implements IUnsignedProtocolCall<T> { readonly id: string; readonly request: T; readonly typedData: TypedData; private constructor(); get nonce(): number; static create<T extends ProtocolTransactionRequestModel>({ id, request, typedData, }: { id: string; request: T; typedData: TypedData; }): UnsignedProtocolCall<T>; } export declare class SignedProtocolCall<T extends ProtocolTransactionRequestModel> implements ISignedProtocolCall<T> { readonly id: string; readonly request: T; readonly signature: Signature; readonly nonce: number; private constructor(); static create<T extends ProtocolTransactionRequestModel>({ unsignedCall, signature, }: { unsignedCall: UnsignedProtocolCall<T>; signature: string; }): SignedProtocolCall<T>; } export interface ITransactionRequest { get transactionRequest(): TransactionRequest; } export declare class ConcreteWallet extends Wallet { private readonly signerFactory; private readonly transactionFactory; private signingInProgress; private constructor(); signProtocolCall<T extends ProtocolTransactionRequestModel>(unsignedCall: UnsignedProtocolCall<T>): PromiseResult<ISignedProtocolCall<T>, PendingSigningRequestError | UserRejectedError | WalletConnectionError>; signFrameAction<TData>(unsignedAction: UnsignedFrameAction<TData>): PromiseResult<SignedFrameAction<TData>, PendingSigningRequestError | UserRejectedError | WalletConnectionError>; signMessage(message: string): PromiseResult<Signature, PendingSigningRequestError | WalletConnectionError | UserRejectedError>; sendTransaction<T extends AnyTransactionRequestModel>(unsignedTransaction: UnsignedTransaction<T> & ITransactionRequest): PromiseResult<NativeTransaction<T>, InsufficientGasError | PendingSigningRequestError | UserRejectedError | WalletConnectionError>; toWalletData(): WalletDataSchema; static create(address: EvmAddress, signerFactory: ISignerFactory, transactionFactory: ITransactionFactory<AnyTransactionRequest>): ConcreteWallet; }