blob: 3a50dfa1798c16d28d74f2a0f8c21d7b646013e0 (
plain) (
blame)
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
|
/**
* 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: 'buffer' }): Buffer;
export function fromBigInt(bigint: bigint, options: FromBigIntOptions): Uint8ArrayBuffer | 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;
|