@waku/rln 0.1.6 → 0.1.7-36f6884.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/index.js +2 -2
- package/bundle/packages/core/dist/lib/connection_manager/connection_limiter.js +17 -0
- package/bundle/packages/core/dist/lib/connection_manager/connection_manager.js +9 -5
- package/bundle/packages/core/dist/lib/connection_manager/dialer.js +17 -0
- package/bundle/packages/core/dist/lib/connection_manager/discovery_dialer.js +17 -0
- package/bundle/packages/core/dist/lib/connection_manager/keep_alive_manager.js +2 -2
- package/bundle/packages/core/dist/lib/connection_manager/shard_reader.js +17 -0
- package/bundle/packages/core/dist/lib/filter/filter.js +3 -3
- package/bundle/packages/core/dist/lib/light_push/light_push.js +2 -2
- package/bundle/packages/core/dist/lib/message/version_0.js +1 -1
- package/bundle/packages/core/dist/lib/metadata/metadata.js +2 -2
- package/bundle/packages/core/dist/lib/store/store.js +2 -2
- package/bundle/packages/interfaces/dist/connection_manager.js +2 -12
- package/bundle/packages/interfaces/dist/{health_indicator.js → health_status.js} +10 -5
- package/bundle/packages/proto/dist/generated/light_push.js +160 -1
- package/bundle/packages/rln/dist/codec.js +2 -2
- package/bundle/packages/rln/dist/contract/abi/price_calculator.js +95 -0
- package/bundle/packages/rln/dist/contract/constants.js +15 -3
- package/bundle/packages/rln/dist/contract/rln_base_contract.js +25 -6
- package/bundle/packages/rln/dist/contract/rln_contract.js +4 -4
- package/bundle/packages/rln/dist/credentials_manager.js +25 -21
- package/bundle/packages/rln/dist/identity.js +8 -6
- package/bundle/packages/rln/dist/keystore/keystore.js +40 -13
- package/bundle/packages/rln/dist/message.js +1 -1
- package/bundle/packages/rln/dist/proof.js +2 -2
- package/bundle/packages/rln/dist/rln.js +2 -2
- package/bundle/packages/rln/dist/utils/bytes.js +103 -58
- package/bundle/packages/rln/dist/utils/epoch.js +2 -2
- package/bundle/packages/rln/dist/utils/hash.js +3 -3
- package/bundle/packages/rln/dist/zerokit.js +17 -17
- package/bundle/packages/utils/dist/common/sharding/index.js +1 -1
- package/bundle/packages/utils/dist/{logger/index.js → logger.js} +3 -3
- package/dist/.tsbuildinfo +1 -1
- package/dist/contract/abi/price_calculator.d.ts +46 -0
- package/dist/contract/abi/price_calculator.js +94 -0
- package/dist/contract/abi/price_calculator.js.map +1 -0
- package/dist/contract/{abi.js → abi/rln.js} +1 -1
- package/dist/contract/abi/rln.js.map +1 -0
- package/dist/contract/constants.d.ts +57 -1
- package/dist/contract/constants.js +14 -2
- package/dist/contract/constants.js.map +1 -1
- package/dist/contract/rln_base_contract.d.ts +9 -0
- package/dist/contract/rln_base_contract.js +23 -4
- package/dist/contract/rln_base_contract.js.map +1 -1
- package/dist/contract/rln_contract.js +2 -2
- package/dist/contract/rln_contract.js.map +1 -1
- package/dist/contract/{test-setup.d.ts → test_setup.d.ts} +4 -4
- package/dist/contract/{test-setup.js → test_setup.js} +4 -4
- package/dist/contract/{test-setup.js.map → test_setup.js.map} +1 -1
- package/dist/contract/{test-utils.js → test_utils.js} +10 -10
- package/dist/contract/{test-utils.js.map → test_utils.js.map} +1 -1
- package/dist/credentials_manager.d.ts +4 -0
- package/dist/credentials_manager.js +24 -19
- package/dist/credentials_manager.js.map +1 -1
- package/dist/identity.d.ts +5 -2
- package/dist/identity.js +8 -5
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/keystore/keystore.js +38 -11
- package/dist/keystore/keystore.js.map +1 -1
- package/dist/proof.js +2 -2
- package/dist/proof.js.map +1 -1
- package/dist/utils/bytes.d.ts +42 -20
- package/dist/utils/bytes.js +102 -57
- package/dist/utils/bytes.js.map +1 -1
- package/dist/utils/hash.js +5 -5
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/zerokit.js +17 -17
- package/dist/zerokit.js.map +1 -1
- package/package.json +1 -93
- package/src/contract/abi/price_calculator.ts +93 -0
- package/src/contract/constants.ts +18 -2
- package/src/contract/rln_base_contract.ts +38 -5
- package/src/contract/rln_contract.ts +5 -2
- package/src/contract/{test-setup.ts → test_setup.ts} +4 -4
- package/src/contract/{test-utils.ts → test_utils.ts} +9 -9
- package/src/credentials_manager.ts +41 -27
- package/src/identity.ts +11 -7
- package/src/index.ts +3 -3
- package/src/keystore/keystore.ts +52 -23
- package/src/proof.ts +2 -2
- package/src/utils/bytes.ts +118 -72
- package/src/utils/hash.ts +15 -5
- package/src/utils/index.ts +1 -6
- package/src/zerokit.ts +30 -22
- package/dist/contract/abi.js.map +0 -1
- /package/bundle/packages/rln/dist/contract/{abi.js → abi/rln.js} +0 -0
- /package/dist/contract/{abi.d.ts → abi/rln.d.ts} +0 -0
- /package/dist/contract/{test-utils.d.ts → test_utils.d.ts} +0 -0
- /package/src/contract/{abi.ts → abi/rln.ts} +0 -0
@@ -1,11 +1,12 @@
|
|
1
1
|
import { hmac } from "@noble/hashes/hmac";
|
2
|
-
import { sha256 } from "@noble/hashes/
|
2
|
+
import { sha256 } from "@noble/hashes/sha2";
|
3
3
|
import { Logger } from "@waku/utils";
|
4
|
-
import {
|
4
|
+
import { RLN_CONTRACT, RLN_Q } from "./contract/constants.js";
|
5
5
|
import { RLNBaseContract } from "./contract/rln_base_contract.js";
|
6
6
|
import { IdentityCredential } from "./identity.js";
|
7
7
|
import { Keystore } from "./keystore/index.js";
|
8
|
-
import {
|
8
|
+
import { BytesUtils } from "./utils/bytes.js";
|
9
|
+
import { extractMetaMaskSigner } from "./utils/index.js";
|
9
10
|
const log = new Logger("waku:credentials");
|
10
11
|
/**
|
11
12
|
* Manages credentials for RLN
|
@@ -78,7 +79,7 @@ export class RLNCredentialsManager {
|
|
78
79
|
}
|
79
80
|
else {
|
80
81
|
log.info("Using local implementation to generate identity");
|
81
|
-
identity = this.generateSeededIdentityCredential(options.signature);
|
82
|
+
identity = await this.generateSeededIdentityCredential(options.signature);
|
82
83
|
}
|
83
84
|
}
|
84
85
|
if (!identity) {
|
@@ -107,9 +108,9 @@ export class RLNCredentialsManager {
|
|
107
108
|
let chainId = credentials?.membership.chainId;
|
108
109
|
const address = credentials?.membership.address ||
|
109
110
|
options.address ||
|
110
|
-
|
111
|
-
if (address ===
|
112
|
-
chainId =
|
111
|
+
RLN_CONTRACT.address;
|
112
|
+
if (address === RLN_CONTRACT.address) {
|
113
|
+
chainId = RLN_CONTRACT.chainId.toString();
|
113
114
|
log.info(`Using Linea contract with chainId: ${chainId}`);
|
114
115
|
}
|
115
116
|
const signer = options.signer || (await extractMetaMaskSigner());
|
@@ -174,24 +175,28 @@ export class RLNCredentialsManager {
|
|
174
175
|
* @param seed A string seed to generate the identity from
|
175
176
|
* @returns IdentityCredential
|
176
177
|
*/
|
177
|
-
generateSeededIdentityCredential(seed) {
|
178
|
+
async generateSeededIdentityCredential(seed) {
|
178
179
|
log.info("Generating seeded identity credential");
|
179
180
|
// Convert the seed to bytes
|
180
181
|
const encoder = new TextEncoder();
|
181
182
|
const seedBytes = encoder.encode(seed);
|
182
183
|
// Generate deterministic values using HMAC-SHA256
|
183
184
|
// We use different context strings for each component to ensure they're different
|
184
|
-
const
|
185
|
-
const
|
186
|
-
|
187
|
-
const
|
188
|
-
const
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
185
|
+
const idTrapdoorBE = hmac(sha256, seedBytes, encoder.encode("IDTrapdoor"));
|
186
|
+
const idNullifierBE = hmac(sha256, seedBytes, encoder.encode("IDNullifier"));
|
187
|
+
const combinedBytes = new Uint8Array([...idTrapdoorBE, ...idNullifierBE]);
|
188
|
+
const idSecretHashBE = sha256(combinedBytes);
|
189
|
+
const idCommitmentRawBE = sha256(idSecretHashBE);
|
190
|
+
const idCommitmentBE = this.reduceIdCommitment(idCommitmentRawBE);
|
191
|
+
log.info("Successfully generated identity credential, storing in Big Endian format");
|
192
|
+
return new IdentityCredential(idTrapdoorBE, idNullifierBE, idSecretHashBE, idCommitmentBE);
|
193
|
+
}
|
194
|
+
/**
|
195
|
+
* Helper: take 32-byte BE, reduce mod Q, return 32-byte BE
|
196
|
+
*/
|
197
|
+
reduceIdCommitment(bytesBE, limit = RLN_Q) {
|
198
|
+
const nBE = BytesUtils.buildBigIntFromUint8ArrayBE(bytesBE);
|
199
|
+
return BytesUtils.bigIntToUint8Array32BE(nBE % limit);
|
195
200
|
}
|
196
201
|
}
|
197
202
|
//# sourceMappingURL=credentials_manager.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"credentials_manager.js","sourceRoot":"","sources":["../src/credentials_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"credentials_manager.js","sourceRoot":"","sources":["../src/credentials_manager.ts"],"names":[],"mappings":"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"}
|
package/dist/identity.d.ts
CHANGED
@@ -3,7 +3,10 @@ export declare class IdentityCredential {
|
|
3
3
|
readonly IDNullifier: Uint8Array;
|
4
4
|
readonly IDSecretHash: Uint8Array;
|
5
5
|
readonly IDCommitment: Uint8Array;
|
6
|
-
|
7
|
-
|
6
|
+
IDCommitmentBigInt: bigint;
|
7
|
+
/**
|
8
|
+
* All variables are in little-endian format
|
9
|
+
*/
|
10
|
+
constructor(IDTrapdoor: Uint8Array, IDNullifier: Uint8Array, IDSecretHash: Uint8Array, IDCommitment: Uint8Array);
|
8
11
|
static fromBytes(memKeys: Uint8Array): IdentityCredential;
|
9
12
|
}
|
package/dist/identity.js
CHANGED
@@ -1,16 +1,20 @@
|
|
1
|
-
import {
|
1
|
+
import { BytesUtils } from "./utils/bytes.js";
|
2
2
|
export class IdentityCredential {
|
3
3
|
IDTrapdoor;
|
4
4
|
IDNullifier;
|
5
5
|
IDSecretHash;
|
6
6
|
IDCommitment;
|
7
7
|
IDCommitmentBigInt;
|
8
|
-
|
8
|
+
/**
|
9
|
+
* All variables are in little-endian format
|
10
|
+
*/
|
11
|
+
constructor(IDTrapdoor, IDNullifier, IDSecretHash, IDCommitment) {
|
9
12
|
this.IDTrapdoor = IDTrapdoor;
|
10
13
|
this.IDNullifier = IDNullifier;
|
11
14
|
this.IDSecretHash = IDSecretHash;
|
12
15
|
this.IDCommitment = IDCommitment;
|
13
|
-
this.IDCommitmentBigInt =
|
16
|
+
this.IDCommitmentBigInt =
|
17
|
+
BytesUtils.buildBigIntFromUint8ArrayBE(IDCommitment);
|
14
18
|
}
|
15
19
|
static fromBytes(memKeys) {
|
16
20
|
if (memKeys.length < 128) {
|
@@ -20,8 +24,7 @@ export class IdentityCredential {
|
|
20
24
|
const idNullifier = memKeys.subarray(32, 64);
|
21
25
|
const idSecretHash = memKeys.subarray(64, 96);
|
22
26
|
const idCommitment = memKeys.subarray(96, 128);
|
23
|
-
|
24
|
-
return new IdentityCredential(idTrapdoor, idNullifier, idSecretHash, idCommitment, idCommitmentBigInt);
|
27
|
+
return new IdentityCredential(idTrapdoor, idNullifier, idSecretHash, idCommitment);
|
25
28
|
}
|
26
29
|
}
|
27
30
|
//# sourceMappingURL=identity.js.map
|
package/dist/identity.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,kBAAkB;IAMX;IACA;IACA;IACA;IARX,kBAAkB,CAAS;IAClC;;OAEG;IACH,YACkB,UAAsB,EACtB,WAAuB,EACvB,YAAwB,EACxB,YAAwB;QAHxB,eAAU,GAAV,UAAU,CAAY;QACtB,gBAAW,GAAX,WAAW,CAAY;QACvB,iBAAY,GAAZ,YAAY,CAAY;QACxB,iBAAY,GAAZ,YAAY,CAAY;QAExC,IAAI,CAAC,kBAAkB;YACrB,UAAU,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,OAAmB;QACzC,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAE/C,OAAO,IAAI,kBAAkB,CAC3B,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,CACb,CAAC;IACJ,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { RLNDecoder, RLNEncoder } from "./codec.js";
|
2
|
-
import { RLN_ABI } from "./contract/abi.js";
|
3
|
-
import {
|
2
|
+
import { RLN_ABI } from "./contract/abi/rln.js";
|
3
|
+
import { RLN_CONTRACT, RLNContract } from "./contract/index.js";
|
4
4
|
import { RLNBaseContract } from "./contract/rln_base_contract.js";
|
5
5
|
import { createRLN } from "./create.js";
|
6
6
|
import { RLNCredentialsManager } from "./credentials_manager.js";
|
@@ -10,6 +10,6 @@ import { Proof } from "./proof.js";
|
|
10
10
|
import { RLNInstance } from "./rln.js";
|
11
11
|
import { MerkleRootTracker } from "./root_tracker.js";
|
12
12
|
import { extractMetaMaskSigner } from "./utils/index.js";
|
13
|
-
export { RLNCredentialsManager, RLNBaseContract, createRLN, Keystore, RLNInstance, IdentityCredential, Proof, RLNEncoder, RLNDecoder, MerkleRootTracker, RLNContract,
|
13
|
+
export { RLNCredentialsManager, RLNBaseContract, createRLN, Keystore, RLNInstance, IdentityCredential, Proof, RLNEncoder, RLNDecoder, MerkleRootTracker, RLNContract, RLN_CONTRACT, extractMetaMaskSigner, RLN_ABI };
|
14
14
|
export type { DecryptedCredentials, EncryptedCredentials, Keccak256Hash, KeystoreEntity, MembershipHash, KeystoreMembershipInfo, Password, Sha256Hash } from "./keystore/types.js";
|
15
15
|
export * from "./contract/index.js";
|
package/dist/index.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { RLNDecoder, RLNEncoder } from "./codec.js";
|
2
|
-
import { RLN_ABI } from "./contract/abi.js";
|
3
|
-
import {
|
2
|
+
import { RLN_ABI } from "./contract/abi/rln.js";
|
3
|
+
import { RLN_CONTRACT, RLNContract } from "./contract/index.js";
|
4
4
|
import { RLNBaseContract } from "./contract/rln_base_contract.js";
|
5
5
|
import { createRLN } from "./create.js";
|
6
6
|
import { RLNCredentialsManager } from "./credentials_manager.js";
|
@@ -10,6 +10,6 @@ import { Proof } from "./proof.js";
|
|
10
10
|
import { RLNInstance } from "./rln.js";
|
11
11
|
import { MerkleRootTracker } from "./root_tracker.js";
|
12
12
|
import { extractMetaMaskSigner } from "./utils/index.js";
|
13
|
-
export { RLNCredentialsManager, RLNBaseContract, createRLN, Keystore, RLNInstance, IdentityCredential, Proof, RLNEncoder, RLNDecoder, MerkleRootTracker, RLNContract,
|
13
|
+
export { RLNCredentialsManager, RLNBaseContract, createRLN, Keystore, RLNInstance, IdentityCredential, Proof, RLNEncoder, RLNDecoder, MerkleRootTracker, RLNContract, RLN_CONTRACT, extractMetaMaskSigner, RLN_ABI };
|
14
14
|
export * from "./contract/index.js";
|
15
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,SAAS,EACT,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,OAAO,EACR,CAAC;AAaF,cAAc,qBAAqB,CAAC"}
|
@@ -4,7 +4,7 @@ import { sha256 } from "ethereum-cryptography/sha256";
|
|
4
4
|
import { bytesToHex, bytesToUtf8, utf8ToBytes } from "ethereum-cryptography/utils";
|
5
5
|
import _ from "lodash";
|
6
6
|
import { v4 as uuidV4 } from "uuid";
|
7
|
-
import {
|
7
|
+
import { BytesUtils } from "../utils/bytes.js";
|
8
8
|
import { decryptEipKeystore, keccak256Checksum } from "./cipher.js";
|
9
9
|
import { isCredentialValid, isKeystoreValid } from "./schema_validator.js";
|
10
10
|
const log = new Logger("waku:rln:keystore");
|
@@ -147,14 +147,24 @@ export class Keystore {
|
|
147
147
|
try {
|
148
148
|
const str = bytesToUtf8(bytes);
|
149
149
|
const obj = JSON.parse(str);
|
150
|
-
//
|
150
|
+
// Little Endian
|
151
|
+
const idCommitmentLE = Keystore.fromArraylikeToBytes(_.get(obj, "identityCredential.idCommitment", []));
|
152
|
+
const idTrapdoorLE = Keystore.fromArraylikeToBytes(_.get(obj, "identityCredential.idTrapdoor", []));
|
153
|
+
const idNullifierLE = Keystore.fromArraylikeToBytes(_.get(obj, "identityCredential.idNullifier", []));
|
154
|
+
const idSecretHashLE = Keystore.fromArraylikeToBytes(_.get(obj, "identityCredential.idSecretHash", []));
|
155
|
+
// Big Endian
|
156
|
+
const idCommitmentBE = BytesUtils.switchEndianness(idCommitmentLE);
|
157
|
+
const idTrapdoorBE = BytesUtils.switchEndianness(idTrapdoorLE);
|
158
|
+
const idNullifierBE = BytesUtils.switchEndianness(idNullifierLE);
|
159
|
+
const idSecretHashBE = BytesUtils.switchEndianness(idSecretHashLE);
|
160
|
+
const idCommitmentBigInt = BytesUtils.buildBigIntFromUint8ArrayBE(idCommitmentBE);
|
151
161
|
return {
|
152
162
|
identity: {
|
153
|
-
IDCommitment:
|
154
|
-
IDTrapdoor:
|
155
|
-
IDNullifier:
|
156
|
-
|
157
|
-
|
163
|
+
IDCommitment: idCommitmentBE,
|
164
|
+
IDTrapdoor: idTrapdoorBE,
|
165
|
+
IDNullifier: idNullifierBE,
|
166
|
+
IDSecretHash: idSecretHashBE,
|
167
|
+
IDCommitmentBigInt: idCommitmentBigInt
|
158
168
|
},
|
159
169
|
membership: {
|
160
170
|
treeIndex: _.get(obj, "treeIndex"),
|
@@ -190,14 +200,31 @@ export class Keystore {
|
|
190
200
|
}
|
191
201
|
// follows nwaku implementation
|
192
202
|
// https://github.com/waku-org/nwaku/blob/f05528d4be3d3c876a8b07f9bb7dfaae8aa8ec6e/waku/waku_keystore/protocol_types.nim#L98
|
203
|
+
// IdentityCredential is stored in Big Endian format => switch to Little Endian
|
193
204
|
static fromIdentityToBytes(options) {
|
205
|
+
const { IDCommitment, IDNullifier, IDSecretHash, IDTrapdoor } = options.identity;
|
206
|
+
const idCommitmentLE = BytesUtils.switchEndianness(IDCommitment);
|
207
|
+
const idNullifierLE = BytesUtils.switchEndianness(IDNullifier);
|
208
|
+
const idSecretHashLE = BytesUtils.switchEndianness(IDSecretHash);
|
209
|
+
const idTrapdoorLE = BytesUtils.switchEndianness(IDTrapdoor);
|
210
|
+
// eslint-disable-next-line no-console
|
211
|
+
console.log({
|
212
|
+
idCommitmentBE: IDCommitment,
|
213
|
+
idCommitmentLE,
|
214
|
+
idNullifierBE: IDNullifier,
|
215
|
+
idNullifierLE,
|
216
|
+
idSecretHashBE: IDSecretHash,
|
217
|
+
idSecretHashLE,
|
218
|
+
idTrapdoorBE: IDTrapdoor,
|
219
|
+
idTrapdoorLE
|
220
|
+
});
|
194
221
|
return utf8ToBytes(JSON.stringify({
|
195
222
|
treeIndex: options.membership.treeIndex,
|
196
223
|
identityCredential: {
|
197
|
-
idCommitment: Array.from(
|
198
|
-
idNullifier: Array.from(
|
199
|
-
idSecretHash: Array.from(
|
200
|
-
idTrapdoor: Array.from(
|
224
|
+
idCommitment: Array.from(idCommitmentLE),
|
225
|
+
idNullifier: Array.from(idNullifierLE),
|
226
|
+
idSecretHash: Array.from(idSecretHashLE),
|
227
|
+
idTrapdoor: Array.from(idTrapdoorLE)
|
201
228
|
},
|
202
229
|
membershipContract: {
|
203
230
|
chainId: options.membership.chainId,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../src/keystore/keystore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../src/keystore/keystore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAU3E,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAiC5C,MAAM,OAAO,QAAQ;IACX,IAAI,CAAgB;IAE5B,YAAoB,OAA8C;QAChE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CACvB;YACE,WAAW,EAAE,gBAAgB;YAC7B,aAAa,EAAE,mBAAmB;YAClC,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,EAAE;SAChB,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,UAAiC,EAAE;QACtD,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,0DAA0D;IAC1D,sHAAsH;IAC/G,MAAM,CAAC,UAAU,CAAC,GAAW;QAClC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE5B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;YAED,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,GAAkB;QACzC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,OAAuB,EACvB,QAAkB;QAElB,MAAM,cAAc,GAAmB,QAAQ,CAAC,qBAAqB,CACnE,OAAO,CAAC,UAAU,CACnB,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;QAED,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAErD,MAAM,WAAW,GAAG,MAAM,iBAAiB,CACzC,QAAQ,EACR,MAAM,EACN,UAAU,EACV,QAAQ,CACT,CAAC;QACF,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAChE,MAAM,eAAe,GAAG,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAE5E,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC;QACxD,OAAO,cAAc,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,cAA8B,EAC9B,QAAkB;QAElB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAE9D,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAE9D,OAAO,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEM,gBAAgB,CAAC,IAAoB;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;OAGG;IACI,IAAI;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,GAAY;QAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;aACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;aAChC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAChC,UAA2B;QAE3B,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;QACtC,MAAM,SAAS,GAA2B;YACxC,GAAG,EAAE;gBACH,QAAQ,EAAE,WAAW,CAAC,GAAG;gBACzB,MAAM,EAAE,WAAW,CAAC,SAAS;gBAC7B,OAAO,EAAE,EAAE;aACZ;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,WAAW,CAAC,MAAM;gBAC5B,MAAM,EAAE,WAAW,CAAC,YAAY;gBAChC,OAAO,EAAE,WAAW,CAAC,UAAU;aAChC;YACD,QAAQ,EAAE;gBACR,+CAA+C;gBAC/C,2BAA2B;gBAC3B,sHAAsH;gBACtH,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,WAAW,CAAC,GAAG;aACzB;SACF,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,MAAM,EAAE;YACd,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,2CAA2C;YACjD,MAAM,EAAE,2CAA2C;YACnD,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAChC,WAAyB,EACzB,QAAuB;QAEvB,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;QACrC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAuB,CAAC;QACjD,OAAO;YACL,MAAM,EAAE;gBACN,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ;gBACjC,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM;gBACrC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO;gBACpC,GAAG,EAAE,MAAM,CAAC,QAAQ;gBACpB,SAAS,EAAE,MAAM,CAAC,MAAM;gBACxB,gDAAgD;gBAChD,2BAA2B;gBAC3B,sHAAsH;gBACtH,GAAG,EAAE,QAAQ;aACd;SACF,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAChC,KAAiB;QAEjB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE5B,gBAAgB;YAChB,MAAM,cAAc,GAAG,QAAQ,CAAC,oBAAoB,CAClD,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,iCAAiC,EAAE,EAAE,CAAC,CAClD,CAAC;YACF,MAAM,YAAY,GAAG,QAAQ,CAAC,oBAAoB,CAChD,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,+BAA+B,EAAE,EAAE,CAAC,CAChD,CAAC;YACF,MAAM,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CACjD,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,gCAAgC,EAAE,EAAE,CAAC,CACjD,CAAC;YACF,MAAM,cAAc,GAAG,QAAQ,CAAC,oBAAoB,CAClD,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,iCAAiC,EAAE,EAAE,CAAC,CAClD,CAAC;YAEF,aAAa;YACb,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;YACnE,MAAM,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;YACjE,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;YACnE,MAAM,kBAAkB,GACtB,UAAU,CAAC,2BAA2B,CAAC,cAAc,CAAC,CAAC;YAEzD,OAAO;gBACL,QAAQ,EAAE;oBACR,YAAY,EAAE,cAAc;oBAC5B,UAAU,EAAE,YAAY;oBACxB,WAAW,EAAE,aAAa;oBAC1B,YAAY,EAAE,cAAc;oBAC5B,kBAAkB,EAAE,kBAAkB;iBACvC;gBACD,UAAU,EAAE;oBACV,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC;oBAClC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,4BAA4B,CAAC;oBACjD,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,4BAA4B,CAAC;oBACjD,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC;iBAC1C;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,oBAAoB,CACjC,GAIK;QAEL,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QAE7B,OAAO,WAAW,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,KAAK,IAAI,CAAC,CAAC;YACX,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,+BAA+B;IAC/B,6HAA6H;IACrH,MAAM,CAAC,qBAAqB,CAClC,IAA4B;QAE5B,OAAO,UAAU,CACf,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CACvE,CAAC,WAAW,EAAE,CAAC;IAClB,CAAC;IAED,+BAA+B;IAC/B,4HAA4H;IAC5H,+EAA+E;IACvE,MAAM,CAAC,mBAAmB,CAAC,OAAuB;QACxD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,GAC3D,OAAO,CAAC,QAAQ,CAAC;QACnB,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAE7D,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC;YACV,cAAc,EAAE,YAAY;YAC5B,cAAc;YACd,aAAa,EAAE,WAAW;YAC1B,aAAa;YACb,cAAc,EAAE,YAAY;YAC5B,cAAc;YACd,YAAY,EAAE,UAAU;YACxB,YAAY;SACb,CAAC,CAAC;QAEH,OAAO,WAAW,CAChB,IAAI,CAAC,SAAS,CAAC;YACb,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS;YACvC,kBAAkB,EAAE;gBAClB,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;gBACxC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;gBACtC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;gBACxC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;aACrC;YACD,kBAAkB,EAAE;gBAClB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO;gBACnC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO;aACpC;YACD,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS;SAC/C,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
|
package/dist/proof.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { BytesUtils, poseidonHash } from "./utils/index.js";
|
2
2
|
const proofOffset = 128;
|
3
3
|
const rootOffset = proofOffset + 32;
|
4
4
|
const epochOffset = rootOffset + 32;
|
@@ -45,6 +45,6 @@ export class Proof {
|
|
45
45
|
}
|
46
46
|
}
|
47
47
|
export function proofToBytes(p) {
|
48
|
-
return concatenate(p.proof, p.merkleRoot, p.epoch, p.shareX, p.shareY, p.nullifier, p.rlnIdentifier);
|
48
|
+
return BytesUtils.concatenate(p.proof, p.merkleRoot, p.epoch, p.shareX, p.shareY, p.nullifier, p.rlnIdentifier);
|
49
49
|
}
|
50
50
|
//# sourceMappingURL=proof.js.map
|
package/dist/proof.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"proof.js","sourceRoot":"","sources":["../src/proof.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"proof.js","sourceRoot":"","sources":["../src/proof.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,UAAU,GAAG,WAAW,GAAG,EAAE,CAAC;AACpC,MAAM,WAAW,GAAG,UAAU,GAAG,EAAE,CAAC;AACpC,MAAM,YAAY,GAAG,WAAW,GAAG,EAAE,CAAC;AACtC,MAAM,YAAY,GAAG,YAAY,GAAG,EAAE,CAAC;AACvC,MAAM,eAAe,GAAG,YAAY,GAAG,EAAE,CAAC;AAC1C,MAAM,mBAAmB,GAAG,eAAe,GAAG,EAAE,CAAC;AAEjD,MAAM,aAAa;IAEC;IACA;IACA;IACA;IAJlB,YACkB,SAAqB,EACrB,MAAkB,EAClB,MAAkB,EAClB,iBAA6B;QAH7B,cAAS,GAAT,SAAS,CAAY;QACrB,WAAM,GAAN,MAAM,CAAY;QAClB,WAAM,GAAN,MAAM,CAAY;QAClB,sBAAiB,GAAjB,iBAAiB,CAAY;IAC5C,CAAC;CACL;AAED,MAAM,OAAO,KAAK;IACA,KAAK,CAAa;IAClB,UAAU,CAAa;IACvB,KAAK,CAAa;IAClB,MAAM,CAAa;IACnB,MAAM,CAAa;IACnB,SAAS,CAAa;IACtB,aAAa,CAAa;IAE1C,YAAmB,UAAsB;QACvC,IAAI,UAAU,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QACD,wHAAwH;QACxH,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QACpE,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,QAAQ,CACtC,eAAe,EACf,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAEM,eAAe;QACpB,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACvE,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,iBAAiB,CAClB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAAC,CAAkB;IAC7C,OAAO,UAAU,CAAC,WAAW,CAC3B,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,UAAU,EACZ,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,aAAa,CAChB,CAAC;AACJ,CAAC"}
|
package/dist/utils/bytes.d.ts
CHANGED
@@ -1,20 +1,42 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
1
|
+
export declare class BytesUtils {
|
2
|
+
/**
|
3
|
+
* Switches endianness of a byte array
|
4
|
+
*/
|
5
|
+
static switchEndianness(bytes: Uint8Array): Uint8Array;
|
6
|
+
/**
|
7
|
+
* Builds a BigInt from a big-endian Uint8Array
|
8
|
+
* @param bytes The big-endian bytes to convert
|
9
|
+
* @returns The resulting BigInt in big-endian format
|
10
|
+
*/
|
11
|
+
static buildBigIntFromUint8ArrayBE(bytes: Uint8Array): bigint;
|
12
|
+
/**
|
13
|
+
* Switches endianness of a bigint value
|
14
|
+
* @param value The bigint value to switch endianness for
|
15
|
+
* @returns The bigint value with reversed endianness
|
16
|
+
*/
|
17
|
+
static switchEndiannessBigInt(value: bigint): bigint;
|
18
|
+
/**
|
19
|
+
* Converts a big-endian bigint to a 32-byte big-endian Uint8Array
|
20
|
+
* @param value The big-endian bigint to convert
|
21
|
+
* @returns A 32-byte big-endian Uint8Array
|
22
|
+
*/
|
23
|
+
static bigIntToUint8Array32BE(value: bigint): Uint8Array;
|
24
|
+
/**
|
25
|
+
* Writes an unsigned integer to a buffer in little-endian format
|
26
|
+
*/
|
27
|
+
static writeUIntLE(buf: Uint8Array, value: number, offset: number, byteLength: number, noAssert?: boolean): Uint8Array;
|
28
|
+
/**
|
29
|
+
* Fills with zeros to set length
|
30
|
+
* @param array little endian Uint8Array
|
31
|
+
* @param length amount to pad
|
32
|
+
* @returns little endian Uint8Array padded with zeros to set length
|
33
|
+
*/
|
34
|
+
static zeroPadLE(array: Uint8Array, length: number): Uint8Array;
|
35
|
+
static checkInt(buf: Uint8Array, value: number, offset: number, ext: number, max: number, min: number): void;
|
36
|
+
/**
|
37
|
+
* Concatenate Uint8Arrays
|
38
|
+
* @param input
|
39
|
+
* @returns concatenation of all Uint8Array received as input
|
40
|
+
*/
|
41
|
+
static concatenate(...input: Uint8Array[]): Uint8Array;
|
42
|
+
}
|
package/dist/utils/bytes.js
CHANGED
@@ -1,64 +1,109 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
let totalLength = 0;
|
8
|
-
for (const arr of input) {
|
9
|
-
totalLength += arr.length;
|
1
|
+
export class BytesUtils {
|
2
|
+
/**
|
3
|
+
* Switches endianness of a byte array
|
4
|
+
*/
|
5
|
+
static switchEndianness(bytes) {
|
6
|
+
return new Uint8Array([...bytes].reverse());
|
10
7
|
}
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
8
|
+
/**
|
9
|
+
* Builds a BigInt from a big-endian Uint8Array
|
10
|
+
* @param bytes The big-endian bytes to convert
|
11
|
+
* @returns The resulting BigInt in big-endian format
|
12
|
+
*/
|
13
|
+
static buildBigIntFromUint8ArrayBE(bytes) {
|
14
|
+
let result = 0n;
|
15
|
+
for (let i = 0; i < bytes.length; i++) {
|
16
|
+
result = (result << 8n) + BigInt(bytes[i]);
|
17
|
+
}
|
18
|
+
return result;
|
16
19
|
}
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
20
|
+
/**
|
21
|
+
* Switches endianness of a bigint value
|
22
|
+
* @param value The bigint value to switch endianness for
|
23
|
+
* @returns The bigint value with reversed endianness
|
24
|
+
*/
|
25
|
+
static switchEndiannessBigInt(value) {
|
26
|
+
// Convert bigint to byte array
|
27
|
+
const bytes = [];
|
28
|
+
let tempValue = value;
|
29
|
+
while (tempValue > 0n) {
|
30
|
+
bytes.push(Number(tempValue & 0xffn));
|
31
|
+
tempValue >>= 8n;
|
32
|
+
}
|
33
|
+
// Reverse bytes and convert back to bigint
|
34
|
+
return bytes
|
35
|
+
.reverse()
|
36
|
+
.reduce((acc, byte) => (acc << 8n) + BigInt(byte), 0n);
|
33
37
|
}
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
38
|
+
/**
|
39
|
+
* Converts a big-endian bigint to a 32-byte big-endian Uint8Array
|
40
|
+
* @param value The big-endian bigint to convert
|
41
|
+
* @returns A 32-byte big-endian Uint8Array
|
42
|
+
*/
|
43
|
+
static bigIntToUint8Array32BE(value) {
|
44
|
+
const bytes = new Uint8Array(32);
|
45
|
+
for (let i = 31; i >= 0; i--) {
|
46
|
+
bytes[i] = Number(value & 0xffn);
|
47
|
+
value >>= 8n;
|
48
|
+
}
|
49
|
+
return bytes;
|
39
50
|
}
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
}
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
51
|
+
/**
|
52
|
+
* Writes an unsigned integer to a buffer in little-endian format
|
53
|
+
*/
|
54
|
+
static writeUIntLE(buf, value, offset, byteLength, noAssert) {
|
55
|
+
value = +value;
|
56
|
+
offset = offset >>> 0;
|
57
|
+
byteLength = byteLength >>> 0;
|
58
|
+
if (!noAssert) {
|
59
|
+
const maxBytes = Math.pow(2, 8 * byteLength) - 1;
|
60
|
+
BytesUtils.checkInt(buf, value, offset, byteLength, maxBytes, 0);
|
61
|
+
}
|
62
|
+
let mul = 1;
|
63
|
+
let i = 0;
|
64
|
+
buf[offset] = value & 0xff;
|
65
|
+
while (++i < byteLength && (mul *= 0x100)) {
|
66
|
+
buf[offset + i] = (value / mul) & 0xff;
|
67
|
+
}
|
68
|
+
return buf;
|
69
|
+
}
|
70
|
+
/**
|
71
|
+
* Fills with zeros to set length
|
72
|
+
* @param array little endian Uint8Array
|
73
|
+
* @param length amount to pad
|
74
|
+
* @returns little endian Uint8Array padded with zeros to set length
|
75
|
+
*/
|
76
|
+
static zeroPadLE(array, length) {
|
77
|
+
const result = new Uint8Array(length);
|
78
|
+
for (let i = 0; i < length; i++) {
|
79
|
+
result[i] = array[i] || 0;
|
80
|
+
}
|
81
|
+
return result;
|
82
|
+
}
|
83
|
+
// Adapted from https://github.com/feross/buffer
|
84
|
+
static checkInt(buf, value, offset, ext, max, min) {
|
85
|
+
if (value > max || value < min)
|
86
|
+
throw new RangeError('"value" argument is out of bounds');
|
87
|
+
if (offset + ext > buf.length)
|
88
|
+
throw new RangeError("Index out of range");
|
89
|
+
}
|
90
|
+
/**
|
91
|
+
* Concatenate Uint8Arrays
|
92
|
+
* @param input
|
93
|
+
* @returns concatenation of all Uint8Array received as input
|
94
|
+
*/
|
95
|
+
static concatenate(...input) {
|
96
|
+
let totalLength = 0;
|
97
|
+
for (const arr of input) {
|
98
|
+
totalLength += arr.length;
|
99
|
+
}
|
100
|
+
const result = new Uint8Array(totalLength);
|
101
|
+
let offset = 0;
|
102
|
+
for (const arr of input) {
|
103
|
+
result.set(arr, offset);
|
104
|
+
offset += arr.length;
|
105
|
+
}
|
106
|
+
return result;
|
61
107
|
}
|
62
|
-
return result;
|
63
108
|
}
|
64
109
|
//# sourceMappingURL=bytes.js.map
|
package/dist/utils/bytes.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/utils/bytes.ts"],"names":[],"mappings":"AAAA
|
1
|
+
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/utils/bytes.ts"],"names":[],"mappings":"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"}
|