@safe-global/protocol-kit
Version:
SDK that facilitates the interaction with Safe Smart Accounts
79 lines • 3.4 kB
TypeScript
import { SafeVersion } from '@safe-global/types-kit';
import { SafeProviderConfig } from './safeProvider';
import { ContractNetworksConfig } from './contracts';
export type SafeAccountConfig = {
owners: string[];
threshold: number;
to?: string;
data?: string;
fallbackHandler?: string;
paymentToken?: string;
payment?: number;
paymentReceiver?: string;
};
export type DeploymentType = 'canonical' | 'eip155' | 'zksync';
export type SafeDeploymentConfig = {
saltNonce?: string;
safeVersion?: SafeVersion;
deploymentType?: DeploymentType;
};
export type PredictedSafeProps = {
safeAccountConfig: SafeAccountConfig;
safeDeploymentConfig?: SafeDeploymentConfig;
};
type SafeConfigWithSafeAddressProps = {
/** safeAddress - The address of the Safe account to use */
safeAddress: string;
/** predictedSafe - The configuration of the Safe that is not yet deployed */
predictedSafe?: never;
};
type SafeConfigWithPredictedSafeProps = {
/** safeAddress - The address of the Safe account to use */
safeAddress?: never;
/** predictedSafe - The configuration of the Safe that is not yet deployed */
predictedSafe: PredictedSafeProps;
};
export type OnchainAnalyticsProps = {
/** project - The project that is using the SDK */
project?: string;
/** platform - The platform that is using the SDK */
platform?: string;
};
export type SafeConfigProps = {
provider: SafeProviderConfig['provider'];
signer?: SafeProviderConfig['signer'];
/** isL1SafeSingleton - Forces to use the Safe L1 version of the contract instead of the L2 version */
isL1SafeSingleton?: boolean;
/** contractNetworks - Contract network configuration */
contractNetworks?: ContractNetworksConfig;
onchainAnalytics?: OnchainAnalyticsProps;
};
export type SafeConfigWithSafeAddress = SafeConfigProps & SafeConfigWithSafeAddressProps;
export type SafeConfigWithPredictedSafe = SafeConfigProps & SafeConfigWithPredictedSafeProps;
export type SafeConfig = SafeConfigWithSafeAddress | SafeConfigWithPredictedSafe;
type ConnectSafeConfigWithSafeAddressProps = {
/** safeAddress - The address of the Safe account to use */
safeAddress?: string;
/** predictedSafe - The configuration of the Safe that is not yet deployed */
predictedSafe?: never;
};
type ConnectSafeConfigWithPredictedSafeProps = {
/** safeAddress - The address of the Safe account to use */
safeAddress?: never;
/** predictedSafe - The configuration of the Safe that is not yet deployed */
predictedSafe?: PredictedSafeProps;
};
type ConnectSafeConfigProps = {
provider?: SafeProviderConfig['provider'];
signer?: SafeProviderConfig['signer'];
/** isL1SafeSingleton - Forces to use the Safe L1 version of the contract instead of the L2 version */
isL1SafeSingleton?: boolean;
/** contractNetworks - Contract network configuration */
contractNetworks?: ContractNetworksConfig;
onchainAnalytics?: OnchainAnalyticsProps;
};
export type ConnectSafeConfigWithSafeAddress = ConnectSafeConfigProps & ConnectSafeConfigWithSafeAddressProps;
export type ConnectSafeConfigWithPredictedSafe = ConnectSafeConfigProps & ConnectSafeConfigWithPredictedSafeProps;
export type ConnectSafeConfig = ConnectSafeConfigWithSafeAddress | ConnectSafeConfigWithPredictedSafe;
export {};
//# sourceMappingURL=safeConfig.d.ts.map