@prosopo/keyring 2.9.60 → 2.9.62

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 (82) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +21 -19
  2. package/.turbo/turbo-build$colon$tsc.log +11 -11
  3. package/.turbo/turbo-build.log +23 -20
  4. package/CHANGELOG.md +18 -0
  5. package/dist/_virtual/_rolldown/runtime.js +3 -0
  6. package/dist/accounts/getPair.js +28 -38
  7. package/dist/accounts/getPair.test.d.ts +2 -0
  8. package/dist/accounts/getPair.test.d.ts.map +1 -0
  9. package/dist/accounts/getPair.test.js +86 -0
  10. package/dist/accounts/getPair.test.js.map +1 -0
  11. package/dist/accounts/index.js +1 -7
  12. package/dist/accounts/mnemonic.js +17 -13
  13. package/dist/accounts/mnemonic.test.d.ts +2 -0
  14. package/dist/accounts/mnemonic.test.d.ts.map +1 -0
  15. package/dist/accounts/mnemonic.test.js +64 -0
  16. package/dist/accounts/mnemonic.test.js.map +1 -0
  17. package/dist/accounts/testAccounts.js +36 -42
  18. package/dist/accounts/testAccounts.test.d.ts +2 -0
  19. package/dist/accounts/testAccounts.test.d.ts.map +1 -0
  20. package/dist/accounts/testAccounts.test.js +66 -0
  21. package/dist/accounts/testAccounts.test.js.map +1 -0
  22. package/dist/cjs/accounts/getPair.cjs +30 -40
  23. package/dist/cjs/accounts/index.cjs +8 -10
  24. package/dist/cjs/accounts/mnemonic.cjs +19 -14
  25. package/dist/cjs/accounts/testAccounts.cjs +36 -41
  26. package/dist/cjs/index.cjs +15 -18
  27. package/dist/cjs/keyring/index.cjs +5 -7
  28. package/dist/cjs/keyring/keyring.cjs +257 -266
  29. package/dist/cjs/keyring/pairs.cjs +23 -27
  30. package/dist/cjs/pair/decode.cjs +31 -29
  31. package/dist/cjs/pair/defaults.cjs +28 -28
  32. package/dist/cjs/pair/encode.cjs +14 -15
  33. package/dist/cjs/pair/index.cjs +191 -167
  34. package/dist/cjs/pair/toJson.cjs +8 -11
  35. package/dist/index.js +4 -15
  36. package/dist/keyring/index.js +2 -6
  37. package/dist/keyring/keyring.js +254 -265
  38. package/dist/keyring/keyring.test.d.ts +2 -0
  39. package/dist/keyring/keyring.test.d.ts.map +1 -0
  40. package/dist/keyring/keyring.test.js +239 -0
  41. package/dist/keyring/keyring.test.js.map +1 -0
  42. package/dist/keyring/pairs.js +22 -26
  43. package/dist/keyring/pairs.test.d.ts +2 -0
  44. package/dist/keyring/pairs.test.d.ts.map +1 -0
  45. package/dist/keyring/pairs.test.js +84 -0
  46. package/dist/keyring/pairs.test.js.map +1 -0
  47. package/dist/keyring/testing.test.d.ts +2 -0
  48. package/dist/keyring/testing.test.d.ts.map +1 -0
  49. package/dist/keyring/testing.test.js +97 -0
  50. package/dist/keyring/testing.test.js.map +1 -0
  51. package/dist/keyring.test-d.d.ts +2 -0
  52. package/dist/keyring.test-d.d.ts.map +1 -0
  53. package/dist/keyring.test-d.js +66 -0
  54. package/dist/keyring.test-d.js.map +1 -0
  55. package/dist/pair/decode.js +29 -29
  56. package/dist/pair/decode.spec.js +1 -1
  57. package/dist/pair/decode.spec.js.map +1 -1
  58. package/dist/pair/defaults.js +29 -30
  59. package/dist/pair/encode.js +14 -15
  60. package/dist/pair/encode.spec.js +1 -1
  61. package/dist/pair/encode.spec.js.map +1 -1
  62. package/dist/pair/index.js +188 -165
  63. package/dist/pair/nobody.test.d.ts +2 -0
  64. package/dist/pair/nobody.test.d.ts.map +1 -0
  65. package/dist/pair/nobody.test.js +77 -0
  66. package/dist/pair/nobody.test.js.map +1 -0
  67. package/dist/pair/toJson.js +8 -11
  68. package/dist/pair/toJson.spec.js +1 -1
  69. package/dist/pair/toJson.spec.js.map +1 -1
  70. package/package.json +8 -8
  71. package/src/accounts/getPair.test.ts +142 -0
  72. package/src/accounts/mnemonic.test.ts +103 -0
  73. package/src/accounts/testAccounts.test.ts +100 -0
  74. package/src/keyring/keyring.test.ts +373 -0
  75. package/src/keyring/pairs.test.ts +133 -0
  76. package/src/keyring/testing.test.ts +146 -0
  77. package/src/keyring.test-d.ts +134 -0
  78. package/src/pair/decode.spec.ts +3 -1
  79. package/src/pair/encode.spec.ts +9 -3
  80. package/src/pair/nobody.test.ts +127 -0
  81. package/src/pair/toJson.spec.ts +18 -12
  82. package/tsconfig.tsbuildinfo +1 -1
@@ -1,5 +1,5 @@
1
1
 
2
- > @prosopo/keyring@2.9.60 build:cjs
2
+ > @prosopo/keyring@2.9.62 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -23,23 +23,25 @@ ViteCommonJSConfig: .
23
23
  '@prosopo/util-crypto'
24
24
  ]
25
25
  }
26
- vite v6.4.1 building SSR bundle for production...
26
+ The plugin "vite-tsconfig-paths" is detected. Vite now supports tsconfig paths resolution natively via the resolve.tsconfigPaths option. You can remove the plugin and set resolve.tsconfigPaths: true in your Vite config instead.
27
+ vite v8.1.5 building ssr environment for production...
27
28
  Bundle build started
28
- transforming...
29
- Build end
30
- ✓ 13 modules transformed.
29
+ 
30
+ 14 modules transformed.
31
31
  rendering chunks...
32
- dist/cjs/keyring/index.cjs  0.27 kB
33
- dist/cjs/pair/toJson.cjs  0.43 kB
34
- dist/cjs/accounts/index.cjs  0.50 kB
35
- dist/cjs/pair/defaults.cjs  0.56 kB
36
- dist/cjs/accounts/mnemonic.cjs  0.77 kB
37
- dist/cjs/pair/encode.cjs  0.80 kB
38
- dist/cjs/keyring/pairs.cjs  0.83 kB
39
- dist/cjs/index.cjs  0.87 kB
40
- dist/cjs/accounts/testAccounts.cjs  1.39 kB
41
- dist/cjs/accounts/getPair.cjs  1.48 kB
42
- dist/cjs/pair/decode.cjs  1.49 kB
43
- dist/cjs/pair/index.cjs  5.24 kB
44
- dist/cjs/keyring/keyring.cjs 10.59 kB
45
- ✓ built in 318ms
32
+ computing gzip size...
33
+ dist/cjs/keyring/index.cjs 0.22 kB │ gzip: 0.11 kB
34
+ dist/cjs/pair/toJson.cjs 0.40 kB │ gzip: 0.25 kB
35
+ dist/cjs/pair/defaults.cjs 0.45 kB │ gzip: 0.25 kB
36
+ dist/cjs/accounts/index.cjs 0.47 kB │ gzip: 0.17 kB
37
+ dist/cjs/keyring/pairs.cjs 0.86 kB │ gzip: 0.38 kB
38
+ dist/cjs/index.cjs 0.91 kB │ gzip: 0.31 kB
39
+ dist/cjs/pair/encode.cjs 0.91 kB │ gzip: 0.44 kB
40
+ dist/cjs/accounts/mnemonic.cjs 0.95 kB │ gzip: 0.38 kB
41
+ dist/cjs/accounts/testAccounts.cjs 1.31 kB │ gzip: 0.63 kB
42
+ dist/cjs/accounts/getPair.cjs 1.41 kB │ gzip: 0.60 kB
43
+ dist/cjs/pair/decode.cjs 1.77 kB │ gzip: 0.70 kB
44
+ dist/cjs/pair/index.cjs 7.26 kB │ gzip: 2.12 kB
45
+ dist/cjs/keyring/keyring.cjs 11.14 kB gzip: 3.05 kB
46
+
47
+ ✓ built in 59ms
@@ -1,8 +1,8 @@
1
1
 
2
- > @prosopo/keyring@2.9.60 build:tsc
2
+ > @prosopo/keyring@2.9.62 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 10:22:25 PM - Projects in this build:
5
+ 11:40:45 PM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../locale/tsconfig.json
8
8
  * ../util/tsconfig.json
@@ -12,21 +12,21 @@
12
12
  * ../common/tsconfig.json
13
13
  * tsconfig.json
14
14
 
15
- 10:22:25 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
15
+ 11:40:45 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
16
16
 
17
- 10:22:25 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
17
+ 11:40:45 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
18
18
 
19
- 10:22:25 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
19
+ 11:40:45 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
20
20
 
21
- 10:22:25 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
21
+ 11:40:45 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
22
22
 
23
- 10:22:25 PM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
23
+ 11:40:45 PM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
24
24
 
25
- 10:22:26 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/procaptcha/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
25
+ 11:40:45 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/procaptcha/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
26
26
 
27
- 10:22:26 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/error.ts' is older than output '../common/tsconfig.tsbuildinfo'
27
+ 11:40:45 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/error.ts' is older than output '../common/tsconfig.tsbuildinfo'
28
28
 
29
- 10:22:26 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
29
+ 11:40:45 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
30
30
 
31
- 10:22:26 PM - Building project '/home/runner/work/captcha/captcha/packages/keyring/tsconfig.json'...
31
+ 11:40:45 PM - Building project '/home/runner/work/captcha/captcha/packages/keyring/tsconfig.json'...
32
32
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/keyring@2.9.60 build
2
+ > @prosopo/keyring@2.9.62 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/keyring@2.9.60 build:cross-env
6
+ > @prosopo/keyring@2.9.62 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -27,23 +27,26 @@ ViteEsmConfig: .
27
27
  '@prosopo/util-crypto'
28
28
  ]
29
29
  }
30
- vite v6.4.1 building SSR bundle for production...
30
+ The plugin "vite-tsconfig-paths" is detected. Vite now supports tsconfig paths resolution natively via the resolve.tsconfigPaths option. You can remove the plugin and set resolve.tsconfigPaths: true in your Vite config instead.
31
+ vite v8.1.5 building ssr environment for production...
31
32
  Bundle build started
32
- transforming...
33
- Build end
34
- ✓ 13 modules transformed.
33
+ 
34
+ 14 modules transformed.
35
35
  rendering chunks...
36
- dist/keyring/index.js  0.13 kB
37
- dist/accounts/index.js  0.30 kB
38
- dist/pair/toJson.js  0.33 kB
39
- dist/pair/defaults.js  0.37 kB
40
- dist/index.js  0.58 kB
41
- dist/accounts/mnemonic.js  0.63 kB
42
- dist/pair/encode.js  0.68 kB
43
- dist/keyring/pairs.js  0.70 kB
44
- dist/accounts/testAccounts.js  1.23 kB
45
- dist/pair/decode.js  1.31 kB
46
- dist/accounts/getPair.js  1.34 kB
47
- dist/pair/index.js  5.18 kB
48
- dist/keyring/keyring.js 10.45 kB
49
- ✓ built in 326ms
36
+ computing gzip size...
37
+ dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
38
+ dist/keyring/index.js 0.12 kB │ gzip: 0.09 kB
39
+ dist/accounts/index.js 0.28 kB │ gzip: 0.14 kB
40
+ dist/pair/toJson.js 0.34 kB │ gzip: 0.22 kB
41
+ dist/pair/defaults.js 0.42 kB │ gzip: 0.25 kB
42
+ dist/index.js 0.54 kB │ gzip: 0.23 kB
43
+ dist/keyring/pairs.js 0.71 kB │ gzip: 0.36 kB
44
+ dist/pair/encode.js 0.77 kB │ gzip: 0.41 kB
45
+ dist/accounts/mnemonic.js 0.84 kB │ gzip: 0.36 kB
46
+ dist/accounts/testAccounts.js 1.14 kB │ gzip: 0.60 kB
47
+ dist/accounts/getPair.js 1.24 kB │ gzip: 0.56 kB
48
+ dist/pair/decode.js 1.48 kB │ gzip: 0.66 kB
49
+ dist/pair/index.js 6.96 kB gzip: 2.09 kB
50
+ dist/keyring/keyring.js 10.74 kB │ gzip: 2.99 kB
51
+
52
+ ✓ built in 71ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @prosopo/keyring
2
2
 
3
+ ## 2.9.62
4
+ ### Patch Changes
5
+
6
+ - 71a5952: Add unit and type tests for the keyring: pair encode/decode, mnemonic handling, account derivation, the testing keyring and the nobody pair. No behaviour changes.
7
+
8
+ ## 2.9.61
9
+ ### Patch Changes
10
+
11
+ - e14fce6: chore(deps): bump vite to 6.4.3 and mongoose to 8.24.1, and adjust types for the mongoose 8.24 Document/ObjectId changes
12
+ - Updated dependencies [2c47bb7]
13
+ - Updated dependencies [0e1171c]
14
+ - Updated dependencies [103318c]
15
+ - Updated dependencies [270a8d8]
16
+ - Updated dependencies [e14fce6]
17
+ - @prosopo/util@3.3.5
18
+ - @prosopo/types@4.10.0
19
+ - @prosopo/common@3.1.48
20
+
3
21
  ## 2.9.60
4
22
  ### Patch Changes
5
23
 
@@ -0,0 +1,3 @@
1
+ import "node:module";
2
+ //#endregion
3
+ export {};
@@ -1,43 +1,33 @@
1
+ import { Keyring } from "../keyring/keyring.js";
2
+ import { mnemonicValidate } from "@prosopo/util-crypto";
1
3
  import { hexToU8a } from "@polkadot/util/hex";
2
4
  import { isHex } from "@polkadot/util/is";
3
5
  import { ProsopoEnvError } from "@prosopo/common";
4
- import { mnemonicValidate } from "@prosopo/util-crypto";
5
- import { Keyring } from "../keyring/keyring.js";
6
+ //#region src/accounts/getPair.ts
6
7
  function getPair(secret, account, pairType, ss58Format) {
7
- pairType = pairType || "sr25519";
8
- ss58Format = ss58Format || 42;
9
- const keyring = new Keyring({ type: pairType, ss58Format });
10
- if (!secret && account) {
11
- return keyring.addFromAddress(account);
12
- }
13
- if (secret && typeof secret === "string") {
14
- if (mnemonicValidate(secret)) {
15
- return keyring.addFromMnemonic(secret);
16
- }
17
- if (isHex(secret)) {
18
- return keyring.addFromSeed(hexToU8a(secret));
19
- }
20
- if (secret.includes("//")) {
21
- return keyring.addFromUri(secret);
22
- }
23
- try {
24
- const json = JSON.parse(secret);
25
- const {
26
- encoding: { content }
27
- } = json;
28
- const keyring2 = new Keyring({ type: content[1], ss58Format });
29
- return keyring2.addFromJson(json);
30
- } catch (e) {
31
- throw new ProsopoEnvError("GENERAL.MISSING_SECRET_KEY", {
32
- context: { error: e }
33
- });
34
- }
35
- } else if (typeof secret === "object") {
36
- return keyring.addFromJson(secret);
37
- } else {
38
- throw new ProsopoEnvError("GENERAL.MISSING_SECRET_KEY");
39
- }
8
+ pairType = pairType || "sr25519";
9
+ ss58Format = ss58Format || 42;
10
+ const keyring = new Keyring({
11
+ type: pairType,
12
+ ss58Format
13
+ });
14
+ if (!secret && account) return keyring.addFromAddress(account);
15
+ if (secret && typeof secret === "string") {
16
+ if (mnemonicValidate(secret)) return keyring.addFromMnemonic(secret);
17
+ if (isHex(secret)) return keyring.addFromSeed(hexToU8a(secret));
18
+ if (secret.includes("//")) return keyring.addFromUri(secret);
19
+ try {
20
+ const json = JSON.parse(secret);
21
+ const { encoding: { content } } = json;
22
+ return new Keyring({
23
+ type: content[1],
24
+ ss58Format
25
+ }).addFromJson(json);
26
+ } catch (e) {
27
+ throw new ProsopoEnvError("GENERAL.MISSING_SECRET_KEY", { context: { error: e } });
28
+ }
29
+ } else if (typeof secret === "object") return keyring.addFromJson(secret);
30
+ else throw new ProsopoEnvError("GENERAL.MISSING_SECRET_KEY");
40
31
  }
41
- export {
42
- getPair
43
- };
32
+ //#endregion
33
+ export { getPair };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getPair.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPair.test.d.ts","sourceRoot":"","sources":["../../src/accounts/getPair.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,86 @@
1
+ import { u8aToHex } from "@polkadot/util";
2
+ import { encodeAddress, sr25519FromSeed } from "@prosopo/util-crypto";
3
+ import { describe, expect, it } from "vitest";
4
+ import { DEV_PHRASE, Keyring } from "../keyring/index.js";
5
+ import { getPair } from "./getPair.js";
6
+ const SEED_32 = new Uint8Array(32).fill(7);
7
+ const SEED_HEX = u8aToHex(SEED_32);
8
+ const ALICE_PUBLIC = "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d";
9
+ const pairJson = (overrides = {}) => ({
10
+ address: encodeAddress(new Uint8Array(32).fill(8), 42),
11
+ encoded: "0x00",
12
+ encoding: { content: ["pkcs8", "sr25519"], type: ["none"], version: "3" },
13
+ meta: {},
14
+ ...overrides,
15
+ });
16
+ const SLOW = { timeout: 60000 };
17
+ describe("getPair secret handling", SLOW, () => {
18
+ it("derives from a mnemonic", () => {
19
+ expect(getPair(DEV_PHRASE).address).toBe(new Keyring({ ss58Format: 42 }).addFromMnemonic(DEV_PHRASE).address);
20
+ });
21
+ it("derives from a hex seed", () => {
22
+ expect(u8aToHex(getPair(SEED_HEX).publicKey)).toBe(u8aToHex(sr25519FromSeed(SEED_32).publicKey));
23
+ });
24
+ it("derives from a suri with a hard derivation path", () => {
25
+ expect(u8aToHex(getPair(`${DEV_PHRASE}//Alice`).publicKey)).toBe(ALICE_PUBLIC);
26
+ });
27
+ it("prefers the mnemonic branch over the suri branch", () => {
28
+ const suri = `${DEV_PHRASE}//1`;
29
+ expect(getPair(suri).address).not.toBe(getPair(DEV_PHRASE).address);
30
+ });
31
+ it("parses a JSON string, taking the crypto type from its encoding", () => {
32
+ const pair = getPair(JSON.stringify(pairJson()));
33
+ expect(pair.type).toBe("sr25519");
34
+ expect(u8aToHex(pair.publicKey)).toBe(u8aToHex(new Uint8Array(32).fill(8)));
35
+ });
36
+ it("accepts a JSON object directly", () => {
37
+ expect(getPair(pairJson()).type).toBe("sr25519");
38
+ });
39
+ it("reports a missing secret when the string is neither key nor JSON", () => {
40
+ expect(() => getPair("this is not a secret")).toThrow();
41
+ });
42
+ it("reports a missing secret for JSON without an encoding block", () => {
43
+ expect(() => getPair('{"address":"x"}')).toThrow();
44
+ });
45
+ it("throws when neither a secret nor an account is given", () => {
46
+ expect(() => getPair()).toThrow();
47
+ });
48
+ it("throws when the secret is an empty string and no account is given", () => {
49
+ expect(() => getPair("")).toThrow();
50
+ });
51
+ });
52
+ describe("getPair account handling", SLOW, () => {
53
+ it("builds a watch-only pair from an address when no secret is given", () => {
54
+ const address = getPair(DEV_PHRASE).address;
55
+ const watchOnly = getPair(undefined, address);
56
+ expect(watchOnly.address).toBe(address);
57
+ expect(watchOnly.isLocked).toBe(true);
58
+ });
59
+ it("accepts a raw public key as the account", () => {
60
+ const pair = getPair(DEV_PHRASE);
61
+ expect(getPair(undefined, pair.publicKey).address).toBe(pair.address);
62
+ });
63
+ it("ignores the account once a secret is supplied", () => {
64
+ const other = getPair(`${DEV_PHRASE}//other`).address;
65
+ expect(getPair(DEV_PHRASE, other).address).toBe(getPair(DEV_PHRASE).address);
66
+ });
67
+ });
68
+ describe("getPair defaults", SLOW, () => {
69
+ it("defaults to sr25519 and ss58 format 42", () => {
70
+ const pair = getPair(DEV_PHRASE);
71
+ expect(pair.type).toBe("sr25519");
72
+ expect(pair.address).toBe(encodeAddress(pair.publicKey, 42));
73
+ });
74
+ it("honours an explicit ss58 format", () => {
75
+ const pair = getPair(DEV_PHRASE, undefined, "sr25519", 2);
76
+ expect(pair.address).toBe(encodeAddress(pair.publicKey, 2));
77
+ });
78
+ it("rejects a pair type the keyring does not support", () => {
79
+ expect(() => getPair(DEV_PHRASE, undefined, "ed25519")).toThrow("Expected a keyring type of either 'sr25519'");
80
+ });
81
+ it("treats ss58 format 0 as unset, because it is falsy", () => {
82
+ const pair = getPair(DEV_PHRASE, undefined, "sr25519", 0);
83
+ expect(pair.address).toBe(encodeAddress(pair.publicKey, 42));
84
+ });
85
+ });
86
+ //# sourceMappingURL=getPair.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPair.test.js","sourceRoot":"","sources":["../../src/accounts/getPair.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,4 @@
1
1
  import { generateMiniSecret, generateMnemonic } from "./mnemonic.js";
2
2
  import { getPair } from "./getPair.js";
3
3
  import { getDefaultProviders, getDefaultSiteKeys } from "./testAccounts.js";
4
- export {
5
- generateMiniSecret,
6
- generateMnemonic,
7
- getDefaultProviders,
8
- getDefaultSiteKeys,
9
- getPair
10
- };
4
+ export { generateMiniSecret, generateMnemonic, getDefaultProviders, getDefaultSiteKeys, getPair };
@@ -1,18 +1,22 @@
1
- import { mnemonicGenerate, mnemonicToMiniSecret } from "@prosopo/util-crypto";
2
1
  import { Keyring } from "../keyring/keyring.js";
2
+ import { mnemonicGenerate, mnemonicToMiniSecret } from "@prosopo/util-crypto";
3
+ //#region src/accounts/mnemonic.ts
4
+ /** Generate a mnemonic, returning the mnemonic and associated address
5
+ * @param keyring
6
+ * @param pairType
7
+ */
3
8
  async function generateMnemonic(keyring, pairType) {
4
- if (!keyring) {
5
- keyring = new Keyring({ type: pairType || "sr25519" });
6
- }
7
- const mnemonic = mnemonicGenerate();
8
- const account = keyring.addFromMnemonic(mnemonic);
9
- return [mnemonic, account.address];
9
+ if (!keyring) keyring = new Keyring({ type: pairType || "sr25519" });
10
+ const mnemonic = mnemonicGenerate();
11
+ return [mnemonic, keyring.addFromMnemonic(mnemonic).address];
10
12
  }
13
+ /** Generate a secret, returning the secret and associated address
14
+ * @param keyring
15
+ * @param pairType
16
+ */
11
17
  async function generateMiniSecret(keyring, pairType) {
12
- const [mnemonic, address] = await generateMnemonic(keyring, pairType);
13
- return [mnemonicToMiniSecret(mnemonic), address];
18
+ const [mnemonic, address] = await generateMnemonic(keyring, pairType);
19
+ return [mnemonicToMiniSecret(mnemonic), address];
14
20
  }
15
- export {
16
- generateMiniSecret,
17
- generateMnemonic
18
- };
21
+ //#endregion
22
+ export { generateMiniSecret, generateMnemonic };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mnemonic.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mnemonic.test.d.ts","sourceRoot":"","sources":["../../src/accounts/mnemonic.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ import { u8aToHex } from "@polkadot/util";
2
+ import { mnemonicToMiniSecret, mnemonicValidate, sr25519FromSeed, } from "@prosopo/util-crypto";
3
+ import { describe, expect, it } from "vitest";
4
+ import { Keyring } from "../keyring/index.js";
5
+ import { generateMiniSecret, generateMnemonic } from "./mnemonic.js";
6
+ const SLOW = { timeout: 60000 };
7
+ describe("generateMnemonic", SLOW, () => {
8
+ it("returns a valid twelve word mnemonic and its address", async () => {
9
+ const [mnemonic, address] = await generateMnemonic();
10
+ expect(mnemonic.split(" ")).toHaveLength(12);
11
+ expect(mnemonicValidate(mnemonic)).toBe(true);
12
+ expect(address).toBe(new Keyring().addFromMnemonic(mnemonic).address);
13
+ });
14
+ it("generates a fresh mnemonic each call", async () => {
15
+ const [first] = await generateMnemonic();
16
+ const [second] = await generateMnemonic();
17
+ expect(second).not.toBe(first);
18
+ });
19
+ it("adds the account to a keyring it is given", async () => {
20
+ const keyring = new Keyring();
21
+ const [, address] = await generateMnemonic(keyring);
22
+ expect(keyring.getPairs()).toHaveLength(1);
23
+ expect(keyring.getPair(address).address).toBe(address);
24
+ });
25
+ it("uses a fresh keyring when none is passed, leaving no shared state", async () => {
26
+ const keyring = new Keyring();
27
+ await generateMnemonic();
28
+ expect(keyring.getPairs()).toEqual([]);
29
+ });
30
+ it("honours the requested pair type when it creates the keyring", async () => {
31
+ const [, address] = await generateMnemonic(undefined, "sr25519");
32
+ expect(typeof address).toBe("string");
33
+ await expect(generateMnemonic(undefined, "ed25519")).rejects.toThrow("Expected a keyring type of either 'sr25519'");
34
+ });
35
+ it("ignores the pair type when a keyring is supplied", async () => {
36
+ const keyring = new Keyring({ type: "sr25519" });
37
+ await expect(generateMnemonic(keyring, "ed25519")).resolves.toBeDefined();
38
+ });
39
+ });
40
+ describe("generateMiniSecret", SLOW, () => {
41
+ it("returns the 32 byte mini secret for the generated mnemonic", async () => {
42
+ const keyring = new Keyring();
43
+ const [secret, address] = await generateMiniSecret(keyring);
44
+ expect(secret).toHaveLength(32);
45
+ expect(u8aToHex(sr25519FromSeed(secret).publicKey)).toBe(u8aToHex(keyring.getPair(address).publicKey));
46
+ });
47
+ it("derives the secret from the same mnemonic it registered", async () => {
48
+ const keyring = new Keyring();
49
+ const [secret] = await generateMiniSecret(keyring);
50
+ const registered = keyring.getPairs()[0];
51
+ expect(registered).toBeDefined();
52
+ expect(u8aToHex(secret)).not.toBe(u8aToHex(new Uint8Array(32)));
53
+ });
54
+ it("agrees with mnemonicToMiniSecret for a known phrase", async () => {
55
+ const phrase = "bottom drive obey lake curtain smoke basket hold race lonely fit walk";
56
+ expect(u8aToHex(mnemonicToMiniSecret(phrase))).toHaveLength(66);
57
+ });
58
+ it("generates a fresh secret each call", async () => {
59
+ const [first] = await generateMiniSecret();
60
+ const [second] = await generateMiniSecret();
61
+ expect(u8aToHex(second)).not.toBe(u8aToHex(first));
62
+ });
63
+ });
64
+ //# sourceMappingURL=mnemonic.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mnemonic.test.js","sourceRoot":"","sources":["../../src/accounts/mnemonic.test.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACN,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIrE,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAEhC,QAAQ,CAAC,kBAAkB,EAAE,IAAI,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACrD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QAErD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,gBAAgB,EAAE,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACnE,6CAA6C,CAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAGjE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACjD,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3E,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,IAAI,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CACvD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,MAAM,GACX,uEAAuE,CAAC;QACzE,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC5C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,47 +1,41 @@
1
- import { CaptchaType, ClientSettingsSchema } from "@prosopo/types";
2
- import "../keyring/index.js";
3
- import { getPair } from "./getPair.js";
4
1
  import { DEV_PHRASE } from "../keyring/keyring.js";
2
+ import { getPair } from "./getPair.js";
3
+ import { CaptchaType, ClientSettingsSchema } from "@prosopo/types";
4
+ //#region src/accounts/testAccounts.ts
5
5
  function getDefaultSiteKeys() {
6
- const captchaTypes = [
7
- CaptchaType.image,
8
- CaptchaType.pow,
9
- CaptchaType.frictionless,
10
- CaptchaType.puzzle
11
- ];
12
- const sites = [];
13
- for (const captchaType of captchaTypes) {
14
- const secret = `${DEV_PHRASE}//${captchaType}`;
15
- const pair = getPair(secret);
16
- sites.push({
17
- pair,
18
- address: pair.address,
19
- secret,
20
- settings: ClientSettingsSchema.parse({
21
- captchaType,
22
- domains: ["localhost"],
23
- imageMaxRounds: 2,
24
- frictionlessThreshold: 0.8
25
- })
26
- });
27
- }
28
- return sites;
6
+ const captchaTypes = [
7
+ CaptchaType.image,
8
+ CaptchaType.pow,
9
+ CaptchaType.frictionless,
10
+ CaptchaType.puzzle
11
+ ];
12
+ const sites = [];
13
+ for (const captchaType of captchaTypes) {
14
+ const secret = `${DEV_PHRASE}//${captchaType}`;
15
+ const pair = getPair(secret);
16
+ sites.push({
17
+ pair,
18
+ address: pair.address,
19
+ secret,
20
+ settings: ClientSettingsSchema.parse({
21
+ captchaType,
22
+ domains: ["localhost"],
23
+ imageMaxRounds: 2,
24
+ frictionlessThreshold: .8
25
+ })
26
+ });
27
+ }
28
+ return sites;
29
29
  }
30
30
  function getDefaultProviders() {
31
- const pair = getPair(
32
- "puppy cream effort carbon despair leg pyramid cotton endorse immense drill peasant"
33
- );
34
- return [
35
- {
36
- url: "https://localhost:9229",
37
- pair,
38
- address: pair.address,
39
- datasetFile: "./dev/data/captchas.json",
40
- captchaDatasetId: "0x3e067b8f6aeae82fdbe2b2557b9c2d90aaabff241df651bf0f36667d2ab0018d"
41
- }
42
- ];
31
+ const pair = getPair("puppy cream effort carbon despair leg pyramid cotton endorse immense drill peasant");
32
+ return [{
33
+ url: "https://localhost:9229",
34
+ pair,
35
+ address: pair.address,
36
+ datasetFile: "./dev/data/captchas.json",
37
+ captchaDatasetId: "0x3e067b8f6aeae82fdbe2b2557b9c2d90aaabff241df651bf0f36667d2ab0018d"
38
+ }];
43
39
  }
44
- export {
45
- getDefaultProviders,
46
- getDefaultSiteKeys
47
- };
40
+ //#endregion
41
+ export { getDefaultProviders, getDefaultSiteKeys };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=testAccounts.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testAccounts.test.d.ts","sourceRoot":"","sources":["../../src/accounts/testAccounts.test.ts"],"names":[],"mappings":""}