mirror of
https://github.com/logos-messaging/js-rln.git
synced 2026-01-02 13:43:06 +00:00
fix: build uint256 instead of uint64 for commitment id
This commit is contained in:
parent
6b20df5257
commit
25607793e7
@ -1,4 +1,4 @@
|
||||
import { buildBigIntFromUint8Array } from "./utils/index.js";
|
||||
import { uint256FromBytes } from "./utils/bytes.js";
|
||||
|
||||
export class IdentityCredential {
|
||||
constructor(
|
||||
@ -14,7 +14,7 @@ export class IdentityCredential {
|
||||
const idNullifier = memKeys.subarray(32, 64);
|
||||
const idSecretHash = memKeys.subarray(64, 96);
|
||||
const idCommitment = memKeys.subarray(96);
|
||||
const idCommitmentBigInt = buildBigIntFromUint8Array(idCommitment, 96);
|
||||
const idCommitmentBigInt = uint256FromBytes(idCommitment);
|
||||
|
||||
return new IdentityCredential(
|
||||
idTrapdoor,
|
||||
|
||||
@ -14,7 +14,7 @@ import {
|
||||
import _ from "lodash";
|
||||
import { v4 as uuidV4 } from "uuid";
|
||||
|
||||
import { buildBigIntFromUint8Array } from "../utils/bytes.js";
|
||||
import { uint256FromBytes } from "../utils/bytes.js";
|
||||
|
||||
import { decryptEipKeystore, keccak256Checksum } from "./cipher.js";
|
||||
import { isCredentialValid, isKeystoreValid } from "./schema_validator.js";
|
||||
@ -262,7 +262,7 @@ export class Keystore {
|
||||
IDNullifier: Keystore.fromArraylikeToBytes(
|
||||
_.get(obj, "identityCredential.idNullifier", [])
|
||||
),
|
||||
IDCommitmentBigInt: buildBigIntFromUint8Array(
|
||||
IDCommitmentBigInt: uint256FromBytes(
|
||||
Keystore.fromArraylikeToBytes(
|
||||
_.get(obj, "identityCredential.idCommitment", [])
|
||||
)
|
||||
|
||||
@ -69,6 +69,19 @@ export function buildBigIntFromUint8Array(
|
||||
return dataView.getBigUint64(byteOffset, true);
|
||||
}
|
||||
|
||||
export function uint256FromBytes(bytes: Uint8Array): bigint {
|
||||
if (bytes.length !== 32) {
|
||||
throw new Error("Invalid uint256 byte length");
|
||||
}
|
||||
|
||||
let value = BigInt(0);
|
||||
for (let i = 0; i < 32; i++) {
|
||||
value |= BigInt(bytes[i]) << BigInt(i * 8);
|
||||
}
|
||||
|
||||
return value as bigint;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fills with zeros to set length
|
||||
* @param array little endian Uint8Array
|
||||
|
||||
@ -119,7 +119,7 @@ export class Zerokit {
|
||||
"zerokit/rln/010203040506070809"
|
||||
);
|
||||
|
||||
const fetchUrl = `${process.env.MERKLE_PROOF_SERVICE_URL || "http://localhost:8645/debug/v1/merkleProof"}/${idCommitment}`;
|
||||
const fetchUrl = `http://localhost:8645/debug/v1/merkleProof/${idCommitment}`;
|
||||
const response = await fetch(fetchUrl);
|
||||
|
||||
const proofData = await response.json();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user