@shocknet/clink-sdk
Version:
sdk client for clink
52 lines (51 loc) • 1.53 kB
TypeScript
export declare const utf8Decoder: TextDecoder;
export declare const utf8Encoder: TextEncoder;
export type Noffer = `noffer1${string}`;
export type Ndebit = `ndebit1${string}`;
export type Nmanage = `nmanage1${string}`;
export declare const Bech32MaxSize = 5000;
/**
* Bech32 regex.
* @see https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki#bech32
*/
export declare const BECH32_REGEX: RegExp;
export type ManagePointer = {
pubkey: string;
relay: string;
pointer?: string;
};
export type OfferPointer = {
pubkey: string;
relay: string;
offer: string;
priceType: OfferPriceType;
price?: number;
};
export declare enum OfferPriceType {
Fixed = 0,
Variable = 1,
Spontaneous = 2
}
export type DebitPointer = {
pubkey: string;
relay: string;
pointer?: string;
};
type Prefixes = {
noffer: OfferPointer;
ndebit: DebitPointer;
nmanage: ManagePointer;
};
type DecodeValue<Prefix extends keyof Prefixes> = {
type: Prefix;
data: Prefixes[Prefix];
};
export type DecodeResult = {
[P in keyof Prefixes]: DecodeValue<P>;
}[keyof Prefixes];
export declare function decodeBech32<Prefix extends keyof Prefixes>(nip19: `${Prefix}1${string}`): DecodeValue<Prefix>;
export declare function decodeBech32(nip19: string): DecodeResult;
export declare const nofferEncode: (offer: OfferPointer) => string;
export declare const ndebitEncode: (debit: DebitPointer) => string;
export declare const nmanageEncode: (manage: ManagePointer) => string;
export {};