UNPKG

@safe-global/safe-react-hooks

Version:

A collection of React Hooks that facilitates the interaction of React apps with Safe Smart Accounts

73 lines (72 loc) 3.13 kB
import { SafeMultisigTransactionResponse, SafeOperationResponse, ListResponse } from '@safe-global/types-kit'; import type { SdkStarterKitConfig } from '@safe-global/sdk-starter-kit'; import type { PaymasterOptions } from '@safe-global/relay-kit'; import type { Address, CustomTransport, HttpTransport } from 'viem'; import type { Chain as ChainType } from 'viem/chains'; import { ConfirmSafeOperationProps, SafeClient as SafeClientType, SafeClientResult, SendSafeOperationProps } from '@safe-global/sdk-starter-kit'; import { ListOptions } from '@safe-global/api-kit'; type BundlerOptions = { bundlerUrl: string; }; export * from './guards.js'; export type EIP1193Provider = Exclude<SdkStarterKitConfig['provider'], string>; type SafeOperationsClient = { sendSafeOperation?: (props: SendSafeOperationProps) => Promise<SafeClientResult>; confirmSafeOperation?: (props: ConfirmSafeOperationProps) => Promise<SafeClientResult>; getPendingSafeOperations?: (options?: ListOptions) => Promise<ListResponse<SafeOperationResponse>>; }; export type SafeClient = SafeClientType & SafeOperationsClient; export type SafeOperationOptions = BundlerOptions & PaymasterOptions; export type CreateConfigParams<Provider extends SdkStarterKitConfig['provider'] = SdkStarterKitConfig['provider'], Signer extends SdkStarterKitConfig['signer'] = SdkStarterKitConfig['signer'], Chain extends ChainType = ChainType> = { chain: Chain; provider: Provider; signer: Signer; safeOperationOptions?: SafeOperationOptions; } & SdkStarterKitConfig; export type SafeConfig<Provider extends SdkStarterKitConfig['provider'] = SdkStarterKitConfig['provider'], Signer extends SdkStarterKitConfig['signer'] = SdkStarterKitConfig['signer'], Chain extends ChainType = ChainType> = SdkStarterKitConfig & { chain: Chain; provider: Provider; signer: Signer; safeOperationOptions?: SafeOperationOptions; } & (Provider extends string ? { transport: HttpTransport; } : { transport: CustomTransport; }); export type SafeConfigWithSigner = SafeConfig & { signer: string; }; export type ConfigParam<Config extends SafeConfig = SafeConfig> = { config?: Config; }; export type SafeInfo = { address: Address; isDeployed: boolean; nonce: number; owners: Address[]; threshold: number; }; export type SafeModuleTransaction = { readonly created?: string; readonly executionDate: string; readonly blockNumber?: number; readonly isSuccessful?: boolean; readonly transactionHash?: string; readonly safe: string; readonly module: string; readonly to: string; readonly value: string; readonly data: string; readonly operation: number; readonly dataDecoded?: string; }; export type SafeMultisigTransaction = SafeMultisigTransactionResponse; export type EthereumTransaction = { readonly executionDate: string; readonly to: string; readonly data: string; readonly txHash: string; readonly blockNumber?: number; readonly from: string; }; export type Transaction = SafeModuleTransaction | SafeMultisigTransaction | EthereumTransaction;