UNPKG

@byzantine/vault-sdk

Version:

Byzantine Vault SDK for creating and managing vaults on Ethereum for restaking strategies

123 lines (122 loc) 3.3 kB
export type ChainsOptions = 1 | 17000 | 11155111 | 560048; export interface NetworkConfig { name: string; byzantineFactoryAddress: string; scanLink: string; stETHAddress: string; wstETHAddress: string; osETHAddress?: string; mETHAddress?: string; ETHxAddress?: string; } /** * Client initialization options */ export interface ByzantineClientOptions { chainId: ChainsOptions; provider?: any; signer?: any; } export type RestakingProtocol = "EigenLayer" | "Symbiotic" | "SuperVault" | "Babylon"; export type RestakingType = "Native" | "ERC20"; export interface Metadata { name: string; description: string; image_url?: string; social_twitter?: string; social_discord?: string; social_telegram?: string; social_website?: string; social_github?: string; } export interface BaseParams { metadata: Metadata | string; token_address: string; is_deposit_limit: boolean; deposit_limit: bigint; is_private: boolean; is_tokenized: boolean; token_name: string; token_symbol: string; curator_fee: number; role_manager: string; role_version_manager: string; role_deposit_limit_manager: string; role_deposit_whitelist_manager: string; role_curator_fee_claimer: string; role_curator_fee_claimer_admin: string; } export interface NativeParams { byzVaultParams: BaseParams; operator_id: string; solo_staking_fee?: number; roles_validator_manager: string[]; } export declare enum DelegatorType { NETWORK_RESTAKE = 0,// 0 FULL_RESTAKE = 1,// 1 OPERATOR_SPECIFIC = 2,// 2 OPERATOR_NETWORK_SPECIFIC = 3 } export declare enum SlasherType { INSTANT = 0,// 0 VETO = 1 } export interface SymbioticParams { vault_version: number; vault_epoch_duration: number; slasher_type: SlasherType; slasher_veto_duration: number; slasher_number_epoch_to_set_delay: number; burner_delay_settings_applied: number; burner_global_receiver: string; burner_network_receiver?: { network: string; receiver: string; }[]; burner_operator_network_receiver?: { network: string; operator: string; receiver: string; }[]; delegator_type: DelegatorType; delegator_hook: string; delegator_operator: string; delegator_network: string; role_delegator_set_hook: string; role_delegator_set_network_limit: string[]; role_delegator_set_operator_network_limit: string[]; role_burner_owner_burner: string; } export interface SymbioticVault { base: BaseParams; symbiotic: SymbioticParams; } export interface EigenlayerParams { delegation_set_role_holder: string; operator: string; approver_signature_and_expiry: { signature: string; expiry: number; }; approver_salt: string; } export interface EigenpodParams { eigen_pod_manager: string; } export interface EigenlayerVault { base: BaseParams; eigenlayer: EigenlayerParams; } export interface NativeEigenlayerVault { base: NativeParams; eigenlayer: EigenlayerParams; eigenpod: EigenpodParams; } export interface SuperVault { base: BaseParams; symbiotic: SymbioticParams; eigenlayer: EigenlayerParams; ratio: number; curator: string; }