@waku/rln 0.1.7-7a9850d.0 → 0.1.7-7f9828a.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.
Files changed (95) hide show
  1. package/bundle/index.js +2 -2
  2. package/bundle/packages/core/dist/lib/connection_manager/connection_limiter.js +17 -0
  3. package/bundle/packages/core/dist/lib/connection_manager/connection_manager.js +9 -5
  4. package/bundle/packages/core/dist/lib/connection_manager/dialer.js +17 -0
  5. package/bundle/packages/core/dist/lib/connection_manager/discovery_dialer.js +17 -0
  6. package/bundle/packages/core/dist/lib/connection_manager/keep_alive_manager.js +2 -2
  7. package/bundle/packages/core/dist/lib/connection_manager/shard_reader.js +17 -0
  8. package/bundle/packages/core/dist/lib/filter/filter.js +3 -3
  9. package/bundle/packages/core/dist/lib/light_push/light_push.js +2 -2
  10. package/bundle/packages/core/dist/lib/message/version_0.js +1 -1
  11. package/bundle/packages/core/dist/lib/metadata/metadata.js +2 -2
  12. package/bundle/packages/core/dist/lib/store/store.js +2 -2
  13. package/bundle/packages/interfaces/dist/connection_manager.js +2 -12
  14. package/bundle/packages/interfaces/dist/{health_indicator.js → health_status.js} +10 -5
  15. package/bundle/packages/proto/dist/generated/light_push.js +160 -1
  16. package/bundle/packages/rln/dist/codec.js +2 -2
  17. package/bundle/packages/rln/dist/contract/abi/price_calculator.js +95 -0
  18. package/bundle/packages/rln/dist/contract/constants.js +15 -3
  19. package/bundle/packages/rln/dist/contract/rln_base_contract.js +25 -6
  20. package/bundle/packages/rln/dist/contract/rln_contract.js +4 -4
  21. package/bundle/packages/rln/dist/credentials_manager.js +25 -21
  22. package/bundle/packages/rln/dist/identity.js +8 -6
  23. package/bundle/packages/rln/dist/keystore/keystore.js +40 -13
  24. package/bundle/packages/rln/dist/message.js +1 -1
  25. package/bundle/packages/rln/dist/proof.js +2 -2
  26. package/bundle/packages/rln/dist/rln.js +2 -2
  27. package/bundle/packages/rln/dist/utils/bytes.js +103 -58
  28. package/bundle/packages/rln/dist/utils/epoch.js +2 -2
  29. package/bundle/packages/rln/dist/utils/hash.js +3 -3
  30. package/bundle/packages/rln/dist/zerokit.js +17 -17
  31. package/bundle/packages/utils/dist/common/sharding/index.js +1 -1
  32. package/bundle/packages/utils/dist/{logger/index.js → logger.js} +3 -3
  33. package/dist/.tsbuildinfo +1 -1
  34. package/dist/contract/abi/price_calculator.d.ts +46 -0
  35. package/dist/contract/abi/price_calculator.js +94 -0
  36. package/dist/contract/abi/price_calculator.js.map +1 -0
  37. package/dist/contract/{abi.js → abi/rln.js} +1 -1
  38. package/dist/contract/abi/rln.js.map +1 -0
  39. package/dist/contract/constants.d.ts +57 -1
  40. package/dist/contract/constants.js +14 -2
  41. package/dist/contract/constants.js.map +1 -1
  42. package/dist/contract/rln_base_contract.d.ts +9 -0
  43. package/dist/contract/rln_base_contract.js +23 -4
  44. package/dist/contract/rln_base_contract.js.map +1 -1
  45. package/dist/contract/rln_contract.js +2 -2
  46. package/dist/contract/rln_contract.js.map +1 -1
  47. package/dist/contract/{test-setup.d.ts → test_setup.d.ts} +4 -4
  48. package/dist/contract/{test-setup.js → test_setup.js} +4 -4
  49. package/dist/contract/{test-setup.js.map → test_setup.js.map} +1 -1
  50. package/dist/contract/{test-utils.js → test_utils.js} +10 -10
  51. package/dist/contract/{test-utils.js.map → test_utils.js.map} +1 -1
  52. package/dist/credentials_manager.d.ts +4 -0
  53. package/dist/credentials_manager.js +24 -19
  54. package/dist/credentials_manager.js.map +1 -1
  55. package/dist/identity.d.ts +5 -2
  56. package/dist/identity.js +8 -5
  57. package/dist/identity.js.map +1 -1
  58. package/dist/index.d.ts +3 -3
  59. package/dist/index.js +3 -3
  60. package/dist/index.js.map +1 -1
  61. package/dist/keystore/keystore.js +38 -11
  62. package/dist/keystore/keystore.js.map +1 -1
  63. package/dist/proof.js +2 -2
  64. package/dist/proof.js.map +1 -1
  65. package/dist/utils/bytes.d.ts +42 -20
  66. package/dist/utils/bytes.js +102 -57
  67. package/dist/utils/bytes.js.map +1 -1
  68. package/dist/utils/hash.js +5 -5
  69. package/dist/utils/hash.js.map +1 -1
  70. package/dist/utils/index.d.ts +1 -1
  71. package/dist/utils/index.js +1 -1
  72. package/dist/utils/index.js.map +1 -1
  73. package/dist/zerokit.js +17 -17
  74. package/dist/zerokit.js.map +1 -1
  75. package/package.json +1 -1
  76. package/src/contract/abi/price_calculator.ts +93 -0
  77. package/src/contract/constants.ts +18 -2
  78. package/src/contract/rln_base_contract.ts +38 -5
  79. package/src/contract/rln_contract.ts +5 -2
  80. package/src/contract/{test-setup.ts → test_setup.ts} +4 -4
  81. package/src/contract/{test-utils.ts → test_utils.ts} +9 -9
  82. package/src/credentials_manager.ts +41 -27
  83. package/src/identity.ts +11 -7
  84. package/src/index.ts +3 -3
  85. package/src/keystore/keystore.ts +52 -23
  86. package/src/proof.ts +2 -2
  87. package/src/utils/bytes.ts +118 -72
  88. package/src/utils/hash.ts +15 -5
  89. package/src/utils/index.ts +1 -6
  90. package/src/zerokit.ts +30 -22
  91. package/dist/contract/abi.js.map +0 -1
  92. /package/bundle/packages/rln/dist/contract/{abi.js → abi/rln.js} +0 -0
  93. /package/dist/contract/{abi.d.ts → abi/rln.d.ts} +0 -0
  94. /package/dist/contract/{test-utils.d.ts → test_utils.d.ts} +0 -0
  95. /package/src/contract/{abi.ts → abi/rln.ts} +0 -0
@@ -41,4 +41,8 @@ export declare class RLNCredentialsManager {
41
41
  * @returns IdentityCredential
42
42
  */
43
43
  private generateSeededIdentityCredential;
44
+ /**
45
+ * Helper: take 32-byte BE, reduce mod Q, return 32-byte BE
46
+ */
47
+ private reduceIdCommitment;
44
48
  }
@@ -1,11 +1,12 @@
1
1
  import { hmac } from "@noble/hashes/hmac";
2
- import { sha256 } from "@noble/hashes/sha256";
2
+ import { sha256 } from "@noble/hashes/sha2";
3
3
  import { Logger } from "@waku/utils";
4
- import { LINEA_CONTRACT } from "./contract/constants.js";
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 { buildBigIntFromUint8Array, extractMetaMaskSigner } from "./utils/index.js";
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
- LINEA_CONTRACT.address;
111
- if (address === LINEA_CONTRACT.address) {
112
- chainId = LINEA_CONTRACT.chainId.toString();
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 idTrapdoor = hmac(sha256, seedBytes, encoder.encode("IDTrapdoor"));
185
- const idNullifier = hmac(sha256, seedBytes, encoder.encode("IDNullifier"));
186
- // Generate IDSecretHash as a hash of IDTrapdoor and IDNullifier
187
- const combinedBytes = new Uint8Array([...idTrapdoor, ...idNullifier]);
188
- const idSecretHash = sha256(combinedBytes);
189
- // Generate IDCommitment as a hash of IDSecretHash
190
- const idCommitment = sha256(idSecretHash);
191
- // Convert IDCommitment to BigInt
192
- const idCommitmentBigInt = buildBigIntFromUint8Array(idCommitment);
193
- log.info("Successfully generated identity credential");
194
- return new IdentityCredential(idTrapdoor, idNullifier, idSecretHash, idCommitment, idCommitmentBigInt);
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":"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"}
1
+ {"version":3,"file":"credentials_manager.js","sourceRoot":"","sources":["../src/credentials_manager.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,10 @@ export declare class IdentityCredential {
3
3
  readonly IDNullifier: Uint8Array;
4
4
  readonly IDSecretHash: Uint8Array;
5
5
  readonly IDCommitment: Uint8Array;
6
- readonly IDCommitmentBigInt: bigint;
7
- constructor(IDTrapdoor: Uint8Array, IDNullifier: Uint8Array, IDSecretHash: Uint8Array, IDCommitment: Uint8Array, IDCommitmentBigInt: bigint);
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 { buildBigIntFromUint8Array } from "./utils/index.js";
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
- constructor(IDTrapdoor, IDNullifier, IDSecretHash, IDCommitment, IDCommitmentBigInt) {
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 = 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
- const idCommitmentBigInt = buildBigIntFromUint8Array(idCommitment, 32);
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
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,OAAO,kBAAkB;IAEX;IACA;IACA;IACA;IACA;IALlB,YACkB,UAAsB,EACtB,WAAuB,EACvB,YAAwB,EACxB,YAAwB,EACxB,kBAA0B;QAJ1B,eAAU,GAAV,UAAU,CAAY;QACtB,gBAAW,GAAX,WAAW,CAAY;QACvB,iBAAY,GAAZ,YAAY,CAAY;QACxB,iBAAY,GAAZ,YAAY,CAAY;QACxB,uBAAkB,GAAlB,kBAAkB,CAAQ;IACzC,CAAC;IAEG,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;QAC/C,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAEvE,OAAO,IAAI,kBAAkB,CAC3B,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,kBAAkB,CACnB,CAAC;IACJ,CAAC;CACF"}
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 { LINEA_CONTRACT, RLNContract } from "./contract/index.js";
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, LINEA_CONTRACT, extractMetaMaskSigner, RLN_ABI };
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 { LINEA_CONTRACT, RLNContract } from "./contract/index.js";
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, LINEA_CONTRACT, extractMetaMaskSigner, RLN_ABI };
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,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClE,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,cAAc,EACd,qBAAqB,EACrB,OAAO,EACR,CAAC;AAaF,cAAc,qBAAqB,CAAC"}
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 { buildBigIntFromUint8Array } from "../utils/bytes.js";
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
- // TODO: add runtime validation of nwaku credentials
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: Keystore.fromArraylikeToBytes(_.get(obj, "identityCredential.idCommitment", [])),
154
- IDTrapdoor: Keystore.fromArraylikeToBytes(_.get(obj, "identityCredential.idTrapdoor", [])),
155
- IDNullifier: Keystore.fromArraylikeToBytes(_.get(obj, "identityCredential.idNullifier", [])),
156
- IDCommitmentBigInt: buildBigIntFromUint8Array(Keystore.fromArraylikeToBytes(_.get(obj, "identityCredential.idCommitment", []))),
157
- IDSecretHash: Keystore.fromArraylikeToBytes(_.get(obj, "identityCredential.idSecretHash", []))
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(options.identity.IDCommitment),
198
- idNullifier: Array.from(options.identity.IDNullifier),
199
- idSecretHash: Array.from(options.identity.IDSecretHash),
200
- idTrapdoor: Array.from(options.identity.IDTrapdoor)
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":"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"}
1
+ {"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../src/keystore/keystore.ts"],"names":[],"mappings":"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"}
package/dist/proof.js CHANGED
@@ -1,4 +1,4 @@
1
- import { concatenate, poseidonHash } from "./utils/index.js";
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,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE7D,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,WAAW,CAChB,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"}
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"}
@@ -1,20 +1,42 @@
1
- /**
2
- * Concatenate Uint8Arrays
3
- * @param input
4
- * @returns concatenation of all Uint8Array received as input
5
- */
6
- export declare function concatenate(...input: Uint8Array[]): Uint8Array;
7
- export declare function writeUIntLE(buf: Uint8Array, value: number, offset: number, byteLength: number, noAssert?: boolean): Uint8Array;
8
- /**
9
- * Transforms Uint8Array into BigInt
10
- * @param array: Uint8Array
11
- * @returns BigInt
12
- */
13
- export declare function buildBigIntFromUint8Array(array: Uint8Array, byteOffset?: number): bigint;
14
- /**
15
- * Fills with zeros to set length
16
- * @param array little endian Uint8Array
17
- * @param length amount to pad
18
- * @returns little endian Uint8Array padded with zeros to set length
19
- */
20
- export declare function zeroPadLE(array: Uint8Array, length: number): Uint8Array;
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
+ }
@@ -1,64 +1,109 @@
1
- /**
2
- * Concatenate Uint8Arrays
3
- * @param input
4
- * @returns concatenation of all Uint8Array received as input
5
- */
6
- export function concatenate(...input) {
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
- const result = new Uint8Array(totalLength);
12
- let offset = 0;
13
- for (const arr of input) {
14
- result.set(arr, offset);
15
- offset += arr.length;
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
- return result;
18
- }
19
- // Adapted from https://github.com/feross/buffer
20
- function checkInt(buf, value, offset, ext, max, min) {
21
- if (value > max || value < min)
22
- throw new RangeError('"value" argument is out of bounds');
23
- if (offset + ext > buf.length)
24
- throw new RangeError("Index out of range");
25
- }
26
- export function writeUIntLE(buf, value, offset, byteLength, noAssert) {
27
- value = +value;
28
- offset = offset >>> 0;
29
- byteLength = byteLength >>> 0;
30
- if (!noAssert) {
31
- const maxBytes = Math.pow(2, 8 * byteLength) - 1;
32
- checkInt(buf, value, offset, byteLength, maxBytes, 0);
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
- let mul = 1;
35
- let i = 0;
36
- buf[offset] = value & 0xff;
37
- while (++i < byteLength && (mul *= 0x100)) {
38
- buf[offset + i] = (value / mul) & 0xff;
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
- return buf;
41
- }
42
- /**
43
- * Transforms Uint8Array into BigInt
44
- * @param array: Uint8Array
45
- * @returns BigInt
46
- */
47
- export function buildBigIntFromUint8Array(array, byteOffset = 0) {
48
- const dataView = new DataView(array.buffer);
49
- return dataView.getBigUint64(byteOffset, true);
50
- }
51
- /**
52
- * Fills with zeros to set length
53
- * @param array little endian Uint8Array
54
- * @param length amount to pad
55
- * @returns little endian Uint8Array padded with zeros to set length
56
- */
57
- export function zeroPadLE(array, length) {
58
- const result = new Uint8Array(length);
59
- for (let i = 0; i < length; i++) {
60
- result[i] = array[i] || 0;
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
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/utils/bytes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAG,KAAmB;IAChD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gDAAgD;AAChD,SAAS,QAAQ,CACf,GAAe,EACf,KAAa,EACb,MAAc,EACd,GAAW,EACX,GAAW,EACX,GAAW;IAEX,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG;QAC5B,MAAM,IAAI,UAAU,CAAC,mCAAmC,CAAC,CAAC;IAC5D,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM;QAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,GAAe,EACf,KAAa,EACb,MAAc,EACd,UAAkB,EAClB,QAAkB;IAElB,KAAK,GAAG,CAAC,KAAK,CAAC;IACf,MAAM,GAAG,MAAM,KAAK,CAAC,CAAC;IACtB,UAAU,GAAG,UAAU,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACjD,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,CAAC,GAAG,UAAU,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;IACzC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAiB,EACjB,aAAqB,CAAC;IAEtB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAiB,EAAE,MAAc;IACzD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/utils/bytes.ts"],"names":[],"mappings":"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"}