import _m0 from "protobufjs/minimal"; export declare const protobufPackage = "babylon.btcstaking.v1"; /** Params defines the parameters for the module. */ export interface Params { /** * PARAMETERS COVERING STAKING * covenant_pks is the list of public keys held by the covenant committee * each PK follows encoding in BIP-340 spec on Bitcoin */ covenantPks: Uint8Array[]; /** * covenant_quorum is the minimum number of signatures needed for the covenant * multisignature */ covenantQuorum: number; /** min_staking_value_sat is the minimum of satoshis locked in staking output */ minStakingValueSat: string; /** max_staking_value_sat is the maximum of satoshis locked in staking output */ maxStakingValueSat: string; /** * min_staking_time is the minimum lock time specified in staking output * script */ minStakingTimeBlocks: number; /** * max_staking_time_blocks is the maximum lock time time specified in staking * output script */ maxStakingTimeBlocks: number; /** * PARAMETERS COVERING SLASHING * slashing_pk_script is the pk_script expected in slashing output ie. the * first output of slashing transaction */ slashingPkScript: Uint8Array; /** * min_slashing_tx_fee_sat is the minimum amount of tx fee (quantified * in Satoshi) needed for the pre-signed slashing tx. It covers both: * staking slashing transaction and unbonding slashing transaction */ minSlashingTxFeeSat: string; /** * slashing_rate determines the portion of the staked amount to be slashed, * expressed as a decimal (e.g., 0.5 for 50%). Maximal precion is 2 decimal * places */ slashingRate: string; /** * PARAMETERS COVERING UNBONDING * unbonding_time is the exact unbonding time required from unbonding * transaction it must be larger than `checkpoint_finalization_timeout` from * `btccheckpoint` module */ unbondingTimeBlocks: number; /** unbonding_fee exact fee required for unbonding transaction */ unbondingFeeSat: string; /** * PARAMETERS COVERING FINALITY PROVIDERS * min_commission_rate is the chain-wide minimum commission rate that a * finality provider can charge their delegators expressed as a decimal (e.g., * 0.5 for 50%). Maximal precion is 2 decimal places */ minCommissionRate: string; /** base gas fee for delegation creation */ delegationCreationBaseGasFee: string; /** * allow_list_expiration_height is the height at which the allow list expires * i.e all staking transactions are allowed to enter Babylon chain afterwards * setting it to 0 means allow list is disabled */ allowListExpirationHeight: string; /** * btc_activation_height is the btc height from which parameters are activated * (inclusive) */ btcActivationHeight: number; } /** HeightVersionPair pairs a btc height with a version of the parameters */ export interface HeightVersionPair { /** * start_height is the height from which the parameters are activated * (inclusive) */ startHeight: string; /** version is the version of the parameters */ version: number; } /** HeightToVersionMap maps a btc height to a version of the parameters */ export interface HeightToVersionMap { /** * Pairs must be sorted by `start_height` in ascending order, without * duplicates */ pairs: HeightVersionPair[]; } /** StoredParams attach information about the version of stored parameters */ export interface StoredParams { /** * version of the stored parameters. Each parameters update * increments version number by 1 */ version: number; /** NOTE: Parameters must always be provided */ params: Params | undefined; } export declare const Params: { encode(message: Params, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Params; fromJSON(object: any): Params; toJSON(message: Params): unknown; fromPartial, never>) | undefined; covenantQuorum?: number | undefined; minStakingValueSat?: string | undefined; maxStakingValueSat?: string | undefined; minStakingTimeBlocks?: number | undefined; maxStakingTimeBlocks?: number | undefined; slashingPkScript?: Uint8Array | undefined; minSlashingTxFeeSat?: string | undefined; slashingRate?: string | undefined; unbondingTimeBlocks?: number | undefined; unbondingFeeSat?: string | undefined; minCommissionRate?: string | undefined; delegationCreationBaseGasFee?: string | undefined; allowListExpirationHeight?: string | undefined; btcActivationHeight?: number | undefined; } & Record, never>>(object: I): Params; }; export declare const HeightVersionPair: { encode(message: HeightVersionPair, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): HeightVersionPair; fromJSON(object: any): HeightVersionPair; toJSON(message: HeightVersionPair): unknown; fromPartial, never>>(object: I): HeightVersionPair; }; export declare const HeightToVersionMap: { encode(message: HeightToVersionMap, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): HeightToVersionMap; fromJSON(object: any): HeightToVersionMap; toJSON(message: HeightToVersionMap): unknown; fromPartial, never>)[] & Record, never>) | undefined; } & Record, never>>(object: I): HeightToVersionMap; }; export declare const StoredParams: { encode(message: StoredParams, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): StoredParams; fromJSON(object: any): StoredParams; toJSON(message: StoredParams): unknown; fromPartial, never>) | undefined; covenantQuorum?: number | undefined; minStakingValueSat?: string | undefined; maxStakingValueSat?: string | undefined; minStakingTimeBlocks?: number | undefined; maxStakingTimeBlocks?: number | undefined; slashingPkScript?: Uint8Array | undefined; minSlashingTxFeeSat?: string | undefined; slashingRate?: string | undefined; unbondingTimeBlocks?: number | undefined; unbondingFeeSat?: string | undefined; minCommissionRate?: string | undefined; delegationCreationBaseGasFee?: string | undefined; allowListExpirationHeight?: string | undefined; btcActivationHeight?: number | undefined; } & Record, never>) | undefined; } & Record, never>>(object: I): StoredParams; }; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; type KeysOfUnion = T extends T ? keyof T : never; export type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & Record>, never>; export {};