/** * Encode a bigint as 8 bytes, little-endian (u64). * This is the wire format used in the AliasAccounts proof message. */ declare const u64LeBytes: (v: bigint) => Uint8Array; /** * Build the 32-byte blake2_256 message that the ring-VRF proof must be built * against, as required by AliasAccounts after individuality#955. * * Wire layout of the pre-image (54 bytes): * ALIAS_PROOF_TAG — 14 raw bytes ("alias-accounts", no length prefix) * accountPub — 32 raw bytes (AccountId32 / SS58 public key) * u64LE(proofValidAt) — 8 little-endian bytes * * Throws if accountPub is not exactly 32 bytes (wrong key or truncation would * silently misalign the u64 at the end, producing an undetectable BadProof). */ declare const buildAliasProofMessage: (accountPub: Uint8Array, proofValidAt: bigint) => Uint8Array; type TimestampNowQuery = { query: { Timestamp: { Now: { getValue: (opts?: { at: string; }) => Promise; }; }; }; }; /** * Read the current chain timestamp from Asset Hub and return it in seconds * (as a bigint) suitable for passing as `proof_valid_at`. * * `Timestamp.Now` returns milliseconds; dividing by 1000n converts to seconds. * * Do NOT cache this value across retries — the ProofValidityWindow is 300s. * Re-call on every tx attempt so the timestamp stays within the window. */ declare const getProofValidAtSec: (ahApi: TimestampNowQuery) => Promise; export { buildAliasProofMessage, getProofValidAtSec, u64LeBytes };