@beraji/wallet-sdk
Version:
Beraji: Distributed Secret Sharing.
368 lines (367 loc) • 11.5 kB
TypeScript
import BN, { ReductionContext } from 'bn.js';
import { RedBN } from './utils';
export declare class FiniteField {
readonly red: BN;
readonly en: BN.Endianness;
readonly r: ReductionContext;
constructor(red: BN, en: BN.Endianness);
static fromString: (red: string, en: BN.Endianness) => FiniteField;
static fromNumber: (red: number, en: BN.Endianness) => FiniteField;
static fromBigInt: (red: BigInt, en: BN.Endianness) => FiniteField;
encode: (r: Uint8Array) => RedBN;
decode: (r: BN | RedBN, len?: number) => Uint8Array;
numberToRedBN: (r: number) => {
fromRed(): BN;
redAdd(b: any): any;
redIAdd(b: any): any;
redSub(b: any): any;
redISub(b: any): any;
redShl(num: number): any;
redMul(b: any): any;
redIMul(b: any): any;
redSqr(): any;
redISqr(): any;
redSqrt(): any;
redInvm(): any;
redNeg(): any;
redPow(b: BN): any;
copy(dest: BN): void;
clone(): BN;
toString(base?: number | "hex", length?: number): string;
toNumber(): number;
toJSON(): string;
toArray(endian?: BN.Endianness, length?: number): number[];
toArrayLike(ArrayType: typeof Buffer, endian?: BN.Endianness, length?: number): Buffer;
toArrayLike(ArrayType: any[], endian?: BN.Endianness, length?: number): any[];
toBuffer(endian?: BN.Endianness, length?: number): Buffer;
bitLength(): number;
zeroBits(): number;
byteLength(): number;
isNeg(): boolean;
isEven(): boolean;
isOdd(): boolean;
isZero(): boolean;
cmp(b: BN): -1 | 0 | 1;
ucmp(b: BN): -1 | 0 | 1;
cmpn(b: number): -1 | 0 | 1;
lt(b: BN): boolean;
ltn(b: number): boolean;
lte(b: BN): boolean;
lten(b: number): boolean;
gt(b: BN): boolean;
gtn(b: number): boolean;
gte(b: BN): boolean;
gten(b: number): boolean;
eq(b: BN): boolean;
eqn(b: number): boolean;
toTwos(width: number): BN;
fromTwos(width: number): BN;
neg(): BN;
ineg(): BN;
abs(): BN;
iabs(): BN;
add(b: BN): BN;
iadd(b: BN): BN;
addn(b: number): BN;
iaddn(b: number): BN;
sub(b: BN): BN;
isub(b: BN): BN;
subn(b: number): BN;
isubn(b: number): BN;
mul(b: BN): BN;
imul(b: BN): BN;
muln(b: number): BN;
imuln(b: number): BN;
sqr(): BN;
isqr(): BN;
pow(b: BN): BN;
div(b: BN): BN;
divn(b: number): BN;
idivn(b: number): BN;
divmod(b: BN, mode?: "div" | "mod", positive?: boolean): {
div: BN;
mod: BN;
};
mod(b: BN): BN;
umod(b: BN): BN;
modn(b: number): number;
modrn(b: number): number;
divRound(b: BN): BN;
or(b: BN): BN;
ior(b: BN): BN;
uor(b: BN): BN;
iuor(b: BN): BN;
and(b: BN): BN;
iand(b: BN): BN;
uand(b: BN): BN;
iuand(b: BN): BN;
andln(b: number): BN;
xor(b: BN): BN;
ixor(b: BN): BN;
uxor(b: BN): BN;
iuxor(b: BN): BN;
setn(b: number, value: boolean | 0 | 1): BN;
shln(b: number): BN;
ishln(b: number): BN;
ushln(b: number): BN;
iushln(b: number): BN;
shrn(b: number): BN;
ishrn(b: number): BN;
ushrn(b: number): BN;
iushrn(b: number): BN;
testn(b: number): boolean;
maskn(b: number): BN;
imaskn(b: number): BN;
bincn(b: number): BN;
notn(w: number): BN;
inotn(w: number): BN;
gcd(b: BN): BN;
egcd(b: BN): {
a: BN;
b: BN;
gcd: BN;
};
invm(b: BN): BN;
toRed(reductionContext: BN.ReductionContext): any;
};
get ZERO(): {
fromRed(): BN;
redAdd(b: any): any;
redIAdd(b: any): any;
redSub(b: any): any;
redISub(b: any): any;
redShl(num: number): any;
redMul(b: any): any;
redIMul(b: any): any;
redSqr(): any;
redISqr(): any;
redSqrt(): any;
redInvm(): any;
redNeg(): any;
redPow(b: BN): any;
copy(dest: BN): void;
clone(): BN;
toString(base?: number | "hex", length?: number): string;
toNumber(): number;
toJSON(): string;
toArray(endian?: BN.Endianness, length?: number): number[];
toArrayLike(ArrayType: typeof Buffer, endian?: BN.Endianness, length?: number): Buffer;
toArrayLike(ArrayType: any[], endian?: BN.Endianness, length?: number): any[];
toBuffer(endian?: BN.Endianness, length?: number): Buffer;
bitLength(): number;
zeroBits(): number;
byteLength(): number;
isNeg(): boolean;
isEven(): boolean;
isOdd(): boolean;
isZero(): boolean;
cmp(b: BN): -1 | 0 | 1;
ucmp(b: BN): -1 | 0 | 1;
cmpn(b: number): -1 | 0 | 1;
lt(b: BN): boolean;
ltn(b: number): boolean;
lte(b: BN): boolean;
lten(b: number): boolean;
gt(b: BN): boolean;
gtn(b: number): boolean;
gte(b: BN): boolean;
gten(b: number): boolean;
eq(b: BN): boolean;
eqn(b: number): boolean;
toTwos(width: number): BN;
fromTwos(width: number): BN;
neg(): BN;
ineg(): BN;
abs(): BN;
iabs(): BN;
add(b: BN): BN;
iadd(b: BN): BN;
addn(b: number): BN;
iaddn(b: number): BN;
sub(b: BN): BN;
isub(b: BN): BN;
subn(b: number): BN;
isubn(b: number): BN;
mul(b: BN): BN;
imul(b: BN): BN;
muln(b: number): BN;
imuln(b: number): BN;
sqr(): BN;
isqr(): BN;
pow(b: BN): BN;
div(b: BN): BN;
divn(b: number): BN;
idivn(b: number): BN;
divmod(b: BN, mode?: "div" | "mod", positive?: boolean): {
div: BN;
mod: BN;
};
mod(b: BN): BN;
umod(b: BN): BN;
modn(b: number): number;
modrn(b: number): number;
divRound(b: BN): BN;
or(b: BN): BN;
ior(b: BN): BN;
uor(b: BN): BN;
iuor(b: BN): BN;
and(b: BN): BN;
iand(b: BN): BN;
uand(b: BN): BN;
iuand(b: BN): BN;
andln(b: number): BN;
xor(b: BN): BN;
ixor(b: BN): BN;
uxor(b: BN): BN;
iuxor(b: BN): BN;
setn(b: number, value: boolean | 0 | 1): BN;
shln(b: number): BN;
ishln(b: number): BN;
ushln(b: number): BN;
iushln(b: number): BN;
shrn(b: number): BN;
ishrn(b: number): BN;
ushrn(b: number): BN;
iushrn(b: number): BN;
testn(b: number): boolean;
maskn(b: number): BN;
imaskn(b: number): BN;
bincn(b: number): BN;
notn(w: number): BN;
inotn(w: number): BN;
gcd(b: BN): BN;
egcd(b: BN): {
a: BN;
b: BN;
gcd: BN;
};
invm(b: BN): BN;
toRed(reductionContext: BN.ReductionContext): any;
};
get ONE(): {
fromRed(): BN;
redAdd(b: any): any;
redIAdd(b: any): any;
redSub(b: any): any;
redISub(b: any): any;
redShl(num: number): any;
redMul(b: any): any;
redIMul(b: any): any;
redSqr(): any;
redISqr(): any;
redSqrt(): any;
redInvm(): any;
redNeg(): any;
redPow(b: BN): any;
copy(dest: BN): void;
clone(): BN;
toString(base?: number | "hex", length?: number): string;
toNumber(): number;
toJSON(): string;
toArray(endian?: BN.Endianness, length?: number): number[];
toArrayLike(ArrayType: typeof Buffer, endian?: BN.Endianness, length?: number): Buffer;
toArrayLike(ArrayType: any[], endian?: BN.Endianness, length?: number): any[];
toBuffer(endian?: BN.Endianness, length?: number): Buffer;
bitLength(): number;
zeroBits(): number;
byteLength(): number;
isNeg(): boolean;
isEven(): boolean;
isOdd(): boolean;
isZero(): boolean;
cmp(b: BN): -1 | 0 | 1;
ucmp(b: BN): -1 | 0 | 1;
cmpn(b: number): -1 | 0 | 1;
lt(b: BN): boolean;
ltn(b: number): boolean;
lte(b: BN): boolean;
lten(b: number): boolean;
gt(b: BN): boolean;
gtn(b: number): boolean;
gte(b: BN): boolean;
gten(b: number): boolean;
eq(b: BN): boolean;
eqn(b: number): boolean;
toTwos(width: number): BN;
fromTwos(width: number): BN;
neg(): BN;
ineg(): BN;
abs(): BN;
iabs(): BN;
add(b: BN): BN;
iadd(b: BN): BN;
addn(b: number): BN;
iaddn(b: number): BN;
sub(b: BN): BN;
isub(b: BN): BN;
subn(b: number): BN;
isubn(b: number): BN;
mul(b: BN): BN;
imul(b: BN): BN;
muln(b: number): BN;
imuln(b: number): BN;
sqr(): BN;
isqr(): BN;
pow(b: BN): BN;
div(b: BN): BN;
divn(b: number): BN;
idivn(b: number): BN;
divmod(b: BN, mode?: "div" | "mod", positive?: boolean): {
div: BN;
mod: BN;
};
mod(b: BN): BN;
umod(b: BN): BN;
modn(b: number): number;
modrn(b: number): number;
divRound(b: BN): BN;
or(b: BN): BN;
ior(b: BN): BN;
uor(b: BN): BN;
iuor(b: BN): BN;
and(b: BN): BN;
iand(b: BN): BN;
uand(b: BN): BN;
iuand(b: BN): BN;
andln(b: number): BN;
xor(b: BN): BN;
ixor(b: BN): BN;
uxor(b: BN): BN;
iuxor(b: BN): BN;
setn(b: number, value: boolean | 0 | 1): BN;
shln(b: number): BN;
ishln(b: number): BN;
ushln(b: number): BN;
iushln(b: number): BN;
shrn(b: number): BN;
ishrn(b: number): BN;
ushrn(b: number): BN;
iushrn(b: number): BN;
testn(b: number): boolean;
maskn(b: number): BN;
imaskn(b: number): BN;
bincn(b: number): BN;
notn(w: number): BN;
inotn(w: number): BN;
gcd(b: BN): BN;
egcd(b: BN): {
a: BN;
b: BN;
gcd: BN;
};
invm(b: BN): BN;
toRed(reductionContext: BN.ReductionContext): any;
};
norm: (a: Uint8Array) => Uint8Array<ArrayBufferLike>;
rand: () => Uint8Array<ArrayBufferLike>;
add: (a: Uint8Array, b: Uint8Array) => Uint8Array<ArrayBufferLike>;
neg: (a: Uint8Array) => Uint8Array<ArrayBufferLike>;
sub: (a: Uint8Array, b: Uint8Array) => Uint8Array<ArrayBufferLike>;
mul: (a: Uint8Array, b: Uint8Array) => Uint8Array<ArrayBufferLike>;
inv: (a: Uint8Array) => Uint8Array<ArrayBufferLike>;
div: (a: Uint8Array, b: Uint8Array) => Uint8Array<ArrayBufferLike>;
sqr: (a: Uint8Array) => Uint8Array<ArrayBufferLike>;
sqrt: (a: Uint8Array) => Uint8Array<ArrayBufferLike>;
pow: (a: Uint8Array, b: number) => Uint8Array<ArrayBufferLike>;
equal: (a: Uint8Array, b: Uint8Array) => boolean;
}