@prosopo/account 2.1.1 → 2.1.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/account",
3
- "version": "2.1.1",
3
+ "version": "2.1.2",
4
4
  "description": "Services and Utils for Prosopo account gen and management",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -37,14 +37,14 @@
37
37
  "@polkadot/keyring": "12.6.2",
38
38
  "@polkadot/util": "12.6.2",
39
39
  "@polkadot/util-crypto": "12.6.2",
40
- "@prosopo/common": "2.1.1",
41
- "@prosopo/detector": "2.1.1",
42
- "@prosopo/types": "2.1.1",
43
- "@prosopo/util": "2.1.1",
40
+ "@prosopo/common": "2.1.2",
41
+ "@prosopo/detector": "2.1.2",
42
+ "@prosopo/types": "2.1.2",
43
+ "@prosopo/util": "2.1.2",
44
44
  "react": "18.3.1"
45
45
  },
46
46
  "devDependencies": {
47
- "@prosopo/config": "2.1.1",
47
+ "@prosopo/config": "2.1.2",
48
48
  "@vitest/coverage-v8": "2.1.1",
49
49
  "concurrently": "9.0.1",
50
50
  "npm-run-all": "4.1.5",
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- class Extension {
4
- }
5
- exports.Extension = Extension;
@@ -1,86 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Signer = require("@polkadot/extension-base/page/Signer");
4
- const keyring = require("@polkadot/keyring");
5
- const utilCrypto = require("@polkadot/util-crypto");
6
- const bip39 = require("@polkadot/util-crypto/mnemonic/bip39");
7
- const string = require("@polkadot/util/string");
8
- const u8a = require("@polkadot/util/u8a");
9
- const common = require("@prosopo/common");
10
- const detector = require("@prosopo/detector");
11
- const util = require("@prosopo/util");
12
- const Extension = require("./Extension.cjs");
13
- class ExtensionWeb2 extends Extension.Extension {
14
- async getAccount(config) {
15
- const account = await this.createAccount(config);
16
- const extension = await this.createExtension(account);
17
- return {
18
- account,
19
- extension
20
- };
21
- }
22
- async createExtension(account) {
23
- const signer = new Signer(async () => {
24
- return;
25
- });
26
- signer.signRaw = async (payload) => {
27
- const signature = account.keypair.sign(payload.data);
28
- return {
29
- id: 1,
30
- // the id of the request to sign. This should be incremented each time and adjust the signature, but we're hacking around this. Hence the signature will always be the same given the same payload.
31
- signature: u8a.u8aToHex(signature)
32
- };
33
- };
34
- return {
35
- accounts: {
36
- get: async () => {
37
- return [account];
38
- },
39
- subscribe: () => {
40
- return () => {
41
- return;
42
- };
43
- }
44
- },
45
- name: "procaptcha-web2",
46
- version: util.version,
47
- signer
48
- };
49
- }
50
- async createAccount(config) {
51
- await utilCrypto.cryptoWaitReady();
52
- const params = {
53
- area: { width: 300, height: 300 },
54
- offsetParameter: 2001000001,
55
- multiplier: 15e3,
56
- fontSizeFactor: 1.5,
57
- maxShadowBlur: 50,
58
- numberOfRounds: 5,
59
- seed: 42
60
- };
61
- const browserEntropy = await detector.getFingerprint();
62
- const canvasEntropy = util.picassoCanvas(
63
- params.numberOfRounds,
64
- params.seed,
65
- params
66
- );
67
- const entropy = common.hexHash(
68
- [canvasEntropy, browserEntropy].join(""),
69
- 128
70
- ).slice(2);
71
- const u8Entropy = string.stringToU8a(entropy);
72
- const mnemonic = bip39.entropyToMnemonic(u8Entropy);
73
- const type = "sr25519";
74
- const keyring$1 = new keyring.Keyring({
75
- type
76
- });
77
- const keypair = keyring$1.addFromMnemonic(mnemonic);
78
- const address = keypair.address;
79
- return {
80
- address,
81
- name: address,
82
- keypair
83
- };
84
- }
85
- }
86
- exports.ExtensionWeb2 = ExtensionWeb2;
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const extensionDapp = require("@polkadot/extension-dapp");
4
- const common = require("@prosopo/common");
5
- const Extension = require("./Extension.cjs");
6
- class ExtensionWeb3 extends Extension.Extension {
7
- async getAccount(config) {
8
- const { dappName, userAccountAddress: address } = config;
9
- if (!address) {
10
- throw new common.ProsopoError("WIDGET.NO_ACCOUNTS_FOUND", {
11
- context: { error: "No account address provided" }
12
- });
13
- }
14
- const extensions = await extensionDapp.web3Enable(dappName);
15
- if (extensions.length === 0) {
16
- throw new common.ProsopoError("WIDGET.NO_EXTENSION_FOUND");
17
- }
18
- for (const extension of extensions) {
19
- const accounts = await extension.accounts.get();
20
- const account = accounts.find((account2) => account2.address === address);
21
- if (account) {
22
- return { account, extension };
23
- }
24
- }
25
- throw new common.ProsopoError("WIDGET.ACCOUNT_NOT_FOUND", {
26
- context: { error: `No account found matching ${address}` }
27
- });
28
- }
29
- }
30
- exports.ExtensionWeb3 = ExtensionWeb3;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Extension = require("./extension/Extension.cjs");
4
- const ExtensionWeb2 = require("./extension/ExtensionWeb2.cjs");
5
- const ExtensionWeb3 = require("./extension/ExtensionWeb3.cjs");
6
- exports.Extension = Extension.Extension;
7
- exports.ExtensionWeb2 = ExtensionWeb2.ExtensionWeb2;
8
- exports.ExtensionWeb3 = ExtensionWeb3.ExtensionWeb3;
@@ -1,5 +0,0 @@
1
- import type { Account, ProcaptchaClientConfigOutput } from "@prosopo/types";
2
- export declare abstract class Extension {
3
- abstract getAccount(config: ProcaptchaClientConfigOutput): Promise<Account>;
4
- }
5
- //# sourceMappingURL=Extension.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Extension.d.ts","sourceRoot":"","sources":["../../src/extension/Extension.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAK5E,8BAAsB,SAAS;aAOd,UAAU,CACzB,MAAM,EAAE,4BAA4B,GAClC,OAAO,CAAC,OAAO,CAAC;CACnB"}
@@ -1,3 +0,0 @@
1
- export class Extension {
2
- }
3
- //# sourceMappingURL=Extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Extension.js","sourceRoot":"","sources":["../../src/extension/Extension.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAgB,SAAS;CAU9B"}
@@ -1,8 +0,0 @@
1
- import type { Account, ProcaptchaClientConfigOutput } from "@prosopo/types";
2
- import { Extension } from "./Extension.js";
3
- export declare class ExtensionWeb2 extends Extension {
4
- getAccount(config: ProcaptchaClientConfigOutput): Promise<Account>;
5
- private createExtension;
6
- private createAccount;
7
- }
8
- //# sourceMappingURL=ExtensionWeb2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExtensionWeb2.d.ts","sourceRoot":"","sources":["../../src/extension/ExtensionWeb2.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAG5E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO3C,qBAAa,aAAc,SAAQ,SAAS;IAC9B,UAAU,CACtB,MAAM,EAAE,4BAA4B,GAClC,OAAO,CAAC,OAAO,CAAC;YAUL,eAAe;YAmCf,aAAa;CAsC3B"}
@@ -1,77 +0,0 @@
1
- import { default as Signer } from "@polkadot/extension-base/page/Signer";
2
- import { Keyring } from "@polkadot/keyring";
3
- import { cryptoWaitReady } from "@polkadot/util-crypto";
4
- import { entropyToMnemonic } from "@polkadot/util-crypto/mnemonic/bip39";
5
- import { stringToU8a } from "@polkadot/util/string";
6
- import { u8aToHex } from "@polkadot/util/u8a";
7
- import { hexHash } from "@prosopo/common";
8
- import { getFingerprint } from "@prosopo/detector";
9
- import { picassoCanvas } from "@prosopo/util";
10
- import { version } from "@prosopo/util";
11
- import { Extension } from "./Extension.js";
12
- export class ExtensionWeb2 extends Extension {
13
- async getAccount(config) {
14
- const account = await this.createAccount(config);
15
- const extension = await this.createExtension(account);
16
- return {
17
- account,
18
- extension,
19
- };
20
- }
21
- async createExtension(account) {
22
- const signer = new Signer(async () => {
23
- return;
24
- });
25
- signer.signRaw = async (payload) => {
26
- const signature = account.keypair.sign(payload.data);
27
- return {
28
- id: 1,
29
- signature: u8aToHex(signature),
30
- };
31
- };
32
- return {
33
- accounts: {
34
- get: async () => {
35
- return [account];
36
- },
37
- subscribe: () => {
38
- return () => {
39
- return;
40
- };
41
- },
42
- },
43
- name: "procaptcha-web2",
44
- version,
45
- signer,
46
- };
47
- }
48
- async createAccount(config) {
49
- await cryptoWaitReady();
50
- const params = {
51
- area: { width: 300, height: 300 },
52
- offsetParameter: 2001000001,
53
- multiplier: 15000,
54
- fontSizeFactor: 1.5,
55
- maxShadowBlur: 50,
56
- numberOfRounds: 5,
57
- seed: 42,
58
- };
59
- const browserEntropy = await getFingerprint();
60
- const canvasEntropy = picassoCanvas(params.numberOfRounds, params.seed, params);
61
- const entropy = hexHash([canvasEntropy, browserEntropy].join(""), 128).slice(2);
62
- const u8Entropy = stringToU8a(entropy);
63
- const mnemonic = entropyToMnemonic(u8Entropy);
64
- const type = "sr25519";
65
- const keyring = new Keyring({
66
- type,
67
- });
68
- const keypair = keyring.addFromMnemonic(mnemonic);
69
- const address = keypair.address;
70
- return {
71
- address,
72
- name: address,
73
- keypair,
74
- };
75
- }
76
- }
77
- //# sourceMappingURL=ExtensionWeb2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExtensionWeb2.js","sourceRoot":"","sources":["../../src/extension/ExtensionWeb2.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { Account, ProcaptchaClientConfigOutput } from "@prosopo/types";
2
- import { Extension } from "./Extension.js";
3
- export declare class ExtensionWeb3 extends Extension {
4
- getAccount(config: ProcaptchaClientConfigOutput): Promise<Account>;
5
- }
6
- //# sourceMappingURL=ExtensionWeb3.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExtensionWeb3.d.ts","sourceRoot":"","sources":["../../src/extension/ExtensionWeb3.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK3C,qBAAa,aAAc,SAAQ,SAAS;IAC9B,UAAU,CACtB,MAAM,EAAE,4BAA4B,GAClC,OAAO,CAAC,OAAO,CAAC;CA4BnB"}
@@ -1,28 +0,0 @@
1
- import { web3Enable } from "@polkadot/extension-dapp";
2
- import { ProsopoError } from "@prosopo/common";
3
- import { Extension } from "./Extension.js";
4
- export class ExtensionWeb3 extends Extension {
5
- async getAccount(config) {
6
- const { dappName, userAccountAddress: address } = config;
7
- if (!address) {
8
- throw new ProsopoError("WIDGET.NO_ACCOUNTS_FOUND", {
9
- context: { error: "No account address provided" },
10
- });
11
- }
12
- const extensions = await web3Enable(dappName);
13
- if (extensions.length === 0) {
14
- throw new ProsopoError("WIDGET.NO_EXTENSION_FOUND");
15
- }
16
- for (const extension of extensions) {
17
- const accounts = await extension.accounts.get();
18
- const account = accounts.find((account) => account.address === address);
19
- if (account) {
20
- return { account, extension };
21
- }
22
- }
23
- throw new ProsopoError("WIDGET.ACCOUNT_NOT_FOUND", {
24
- context: { error: `No account found matching ${address}` },
25
- });
26
- }
27
- }
28
- //# sourceMappingURL=ExtensionWeb3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExtensionWeb3.js","sourceRoot":"","sources":["../../src/extension/ExtensionWeb3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAe/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK3C,MAAM,OAAO,aAAc,SAAQ,SAAS;IACpC,KAAK,CAAC,UAAU,CACtB,MAAoC;QAEpC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAEzD,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,YAAY,CAAC,0BAA0B,EAAE;gBAClD,OAAO,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE;aACjD,CAAC,CAAC;QACJ,CAAC;QAGD,MAAM,UAAU,GAAwB,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAC;QACrD,CAAC;QAGD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;YACxE,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YAC/B,CAAC;QACF,CAAC;QAED,MAAM,IAAI,YAAY,CAAC,0BAA0B,EAAE;YAClD,OAAO,EAAE,EAAE,KAAK,EAAE,6BAA6B,OAAO,EAAE,EAAE;SAC1D,CAAC,CAAC;IACJ,CAAC;CACD"}
package/dist/index.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from "./extension/Extension.js";
2
- export * from "./extension/ExtensionWeb2.js";
3
- export * from "./extension/ExtensionWeb3.js";
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC"}