interface IAuthKeysRepository {
    deleteAll: () => MaybePromise<void>;
    deleteByDc: (dc: number) => MaybePromise<void>;
    get: (dc: number) => MaybePromise<null | Uint8Array>;
    getTemp: (
        dc: number,
        idx: number,
        now: number,
    ) => MaybePromise<null | Uint8Array>;
    set: (dc: number, key: null | Uint8Array) => MaybePromise<void>;
    setTemp: (
        dc: number,
        idx: number,
        key: null | Uint8Array,
        expires: number,
    ) => MaybePromise<void>;
}

Implemented by

Properties

deleteAll: () => MaybePromise<void>

Delete all stored auth keys, including both permanent and temp keys

MUST be applied immediately, without batching

deleteByDc: (dc: number) => MaybePromise<void>

Delete all stored auth keys for the given DC, including both permanent and temp keys

MUST be applied immediately, without batching

get: (dc: number) => MaybePromise<null | Uint8Array>

Get auth_key for the given DC

getTemp: (
    dc: number,
    idx: number,
    now: number,
) => MaybePromise<null | Uint8Array>

Given the DC id, idx and point in time (in seconds), return the temp_auth_key that should be used for the next request (such that now < key.expires), or null if no such key exists

set: (dc: number, key: null | Uint8Array) => MaybePromise<void>

Store auth_key for the given DC

If key is null, the key should be deleted instead

MUST be applied immediately, without batching

setTemp: (
    dc: number,
    idx: number,
    key: null | Uint8Array,
    expires: number,
) => MaybePromise<void>

Store temp_auth_key for the given DC and idx, along with its expiration date (in seconds)

If key is null, the key should be deleted instead

MUST be applied immediately, without batching

MMNEPVFCICPMFPCPTTAAATR