INNER CODE UNIT · TypeScript
evaluate
privy-io/shamir-secret-sharing · src/index.ts:132
function evaluate(coefficients: Uint8Array, x: number, degree: number) {
if (x === 0) {
throw new Error('cannot evaluate secret polynomial at zero');
}
let result = coefficients[degree]!;
for (let i = degree - 1; i >= 0; i--) {
const coefficient = coefficients[i]!;
result = add(mult(result, x), coefficient);
}
return result;
}
// Creates a pseudo-random set of coefficients for a polynomial.
function newCoefficients(intercept: number, degree: number): Readonly<Uint8Array> {
const coefficients = new Uint8Array(degree + 1);