- web/: Vue 3 + Vite + UnoCSS + Pinia, dark tactical theme (amber/#0d1117) - AppNav, ListingCard, SearchView with filters/sort, composables (useSnipeMode, useKonamiCode, useMotion), Pinia search store - Steal shimmer, auction countdown, Snipe Mode easter egg all native in Vue - docker/web/: nginx + multi-stage Dockerfile (node build → nginx serve) - compose.yml: api (8510) + web (8509) services - Dockerfile CMD updated to uvicorn for upcoming FastAPI layer - Clean build: 0 TS errors, 380 modules
76 lines
2.4 KiB
TypeScript
76 lines
2.4 KiB
TypeScript
/**
|
|
* Implements bech32 and bech32m from
|
|
* [BIP-0173](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#specification)
|
|
* and [BIP-0350](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki#specification).
|
|
*
|
|
* ```js
|
|
* import { fromBech32, toBech32 } from '@exodus/bytes/bech32.js'
|
|
* import { fromBech32m, toBech32m } from '@exodus/bytes/bech32.js'
|
|
* import { getPrefix } from '@exodus/bytes/bech32.js'
|
|
* ```
|
|
*
|
|
* @module @exodus/bytes/bech32.js
|
|
*/
|
|
|
|
/// <reference types="node" />
|
|
|
|
import type { Uint8ArrayBuffer } from './array.js';
|
|
|
|
/**
|
|
* Result of decoding a bech32 or bech32m string
|
|
*/
|
|
export interface Bech32DecodeResult {
|
|
/** The human-readable prefix */
|
|
prefix: string;
|
|
/** The decoded bytes */
|
|
bytes: Uint8ArrayBuffer;
|
|
}
|
|
|
|
/**
|
|
* Encode bytes to a bech32 string
|
|
*
|
|
* @param prefix - The human-readable prefix (e.g., 'bc' for Bitcoin)
|
|
* @param bytes - The input bytes to encode
|
|
* @param limit - Maximum length of the encoded string (default: 90)
|
|
* @returns The bech32 encoded string
|
|
*/
|
|
export function toBech32(prefix: string, bytes: Uint8Array, limit?: number): string;
|
|
|
|
/**
|
|
* Decode a bech32 string to bytes
|
|
*
|
|
* @param string - The bech32 encoded string
|
|
* @param limit - Maximum length of the input string (default: 90)
|
|
* @returns The decoded prefix and bytes
|
|
*/
|
|
export function fromBech32(string: string, limit?: number): Bech32DecodeResult;
|
|
|
|
/**
|
|
* Encode bytes to a bech32m string
|
|
*
|
|
* @param prefix - The human-readable prefix (e.g., 'bc' for Bitcoin)
|
|
* @param bytes - The input bytes to encode
|
|
* @param limit - Maximum length of the encoded string (default: 90)
|
|
* @returns The bech32m encoded string
|
|
*/
|
|
export function toBech32m(prefix: string, bytes: Uint8Array, limit?: number): string;
|
|
|
|
/**
|
|
* Decode a bech32m string to bytes
|
|
*
|
|
* @param string - The bech32m encoded string
|
|
* @param limit - Maximum length of the input string (default: 90)
|
|
* @returns The decoded prefix and bytes
|
|
*/
|
|
export function fromBech32m(string: string, limit?: number): Bech32DecodeResult;
|
|
|
|
/**
|
|
* Extract the prefix from a bech32 or bech32m string without full validation
|
|
*
|
|
* This is a quick check that skips most validation.
|
|
*
|
|
* @param string - The bech32/bech32m encoded string
|
|
* @param limit - Maximum length of the input string (default: 90)
|
|
* @returns The lowercase prefix
|
|
*/
|
|
export function getPrefix(string: string, limit?: number): string;
|