Spaces:
Paused
Paused
File size: 1,518 Bytes
3401f26 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | /**
* Convert between BigInt and Uint8Array
*
* ```js
* import { fromBigInt, toBigInt } from '@exodus/bytes/bigint.js'
* ```
*
* @module @exodus/bytes/bigint.js
*/
/// <reference types="node" />
import type { OutputFormat, Uint8ArrayBuffer } from './array.js';
/**
* Options for converting BigInt to bytes
*/
export interface FromBigIntOptions {
/** The length in bytes of the output array */
length: number;
/** Output format (default: 'uint8') */
format?: OutputFormat;
}
/**
* Convert a BigInt to a Uint8Array or Buffer
*
* The output bytes are in big-endian format.
*
* Throws if the BigInt is negative or cannot fit into the specified length.
*
* @param bigint - The BigInt to convert (must be non-negative)
* @param options - Conversion options
* @returns The converted bytes in big-endian format
*/
export function fromBigInt(bigint: bigint, options: { length: number; format?: 'uint8' }): Uint8ArrayBuffer;
export function fromBigInt(bigint: bigint, options: { length: number; format: 'arraybuffer' }): ArrayBuffer;
export function fromBigInt(bigint: bigint, options: { length: number; format: 'buffer' }): Buffer;
export function fromBigInt(bigint: bigint, options: FromBigIntOptions): Uint8ArrayBuffer | ArrayBuffer | Buffer;
/**
* Convert a Uint8Array or Buffer to a BigInt
*
* The bytes are interpreted as a big-endian unsigned integer.
*
* @param arr - The bytes to convert
* @returns The BigInt representation
*/
export function toBigInt(arr: Uint8Array): bigint;
|