@prosopo/account 0.3.1
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/dist/cjs/common/dist/array.cjs +8 -0
- package/dist/cjs/common/dist/asyncFactory.cjs +13 -0
- package/dist/cjs/common/dist/custom.cjs +1 -0
- package/dist/cjs/common/dist/error.cjs +92 -0
- package/dist/cjs/common/dist/hash.cjs +14 -0
- package/dist/cjs/common/dist/i18n.cjs +29 -0
- package/dist/cjs/common/dist/index.cjs +40 -0
- package/dist/cjs/common/dist/locales/en.json.cjs +191 -0
- package/dist/cjs/common/dist/logger.cjs +91 -0
- package/dist/cjs/common/dist/node/UrlConverter.cjs +215 -0
- package/dist/cjs/common/dist/node/i18nMiddleware.cjs +8 -0
- package/dist/cjs/common/dist/node/index.cjs +4 -0
- package/dist/cjs/common/dist/react/index.cjs +4 -0
- package/dist/cjs/common/dist/react/useTranslation.cjs +8 -0
- package/dist/cjs/common/dist/string.cjs +6 -0
- package/dist/cjs/common/dist/utils.cjs +38 -0
- package/dist/cjs/extension/Extension.cjs +5 -0
- package/dist/cjs/extension/ExtensionWeb2.cjs +104 -0
- package/dist/cjs/index.cjs +6 -0
- package/dist/cjs/util/dist/canvas.cjs +326 -0
- package/dist/cjs/util/dist/index.cjs +26 -0
- package/dist/cjs/util/dist/isMain.cjs +13 -0
- package/dist/cjs/util/dist/lodash.cjs +35 -0
- package/dist/cjs/util/dist/ofLen.cjs +526 -0
- package/dist/cjs/util/dist/url.cjs +9 -0
- package/dist/cjs/util/dist/util.cjs +153 -0
- package/dist/extension/Extension.d.ts +5 -0
- package/dist/extension/Extension.d.ts.map +1 -0
- package/dist/extension/Extension.js +3 -0
- package/dist/extension/Extension.js.map +1 -0
- package/dist/extension/ExtensionWeb2.d.ts +18 -0
- package/dist/extension/ExtensionWeb2.d.ts.map +1 -0
- package/dist/extension/ExtensionWeb2.js +100 -0
- package/dist/extension/ExtensionWeb2.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/package.json +58 -0
- package/vite.cjs.config.ts +6 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { ApiPromise } from '@polkadot/api/promise/Api';
|
|
2
|
+
import { Extension } from './Extension.js';
|
|
3
|
+
import { Keyring } from '@polkadot/keyring';
|
|
4
|
+
import { ProsopoEnvError, hexHash } from '@prosopo/common';
|
|
5
|
+
import { WsProvider } from '@polkadot/rpc-provider/ws';
|
|
6
|
+
import { decodeAddress, encodeAddress } from '@polkadot/util-crypto/address';
|
|
7
|
+
import { entropyToMnemonic } from '@polkadot/util-crypto/mnemonic/bip39';
|
|
8
|
+
import { hashComponents, load } from '@fingerprintjs/fingerprintjs';
|
|
9
|
+
import { picassoCanvas } from '@prosopo/util';
|
|
10
|
+
import { stringToU8a } from '@polkadot/util/string';
|
|
11
|
+
import { u8aToHex } from '@polkadot/util/u8a';
|
|
12
|
+
import Signer from '@polkadot/extension-base/page/Signer';
|
|
13
|
+
export class ExtensionWeb2 extends Extension {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.getNetwork = (config) => {
|
|
17
|
+
const network = config.networks[config.defaultNetwork];
|
|
18
|
+
if (!network) {
|
|
19
|
+
throw new ProsopoEnvError('DEVELOPER.NETWORK_NOT_FOUND', {
|
|
20
|
+
context: { error: `No network found for environment ${config.defaultEnvironment}` },
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return network;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
async getAccount(config) {
|
|
27
|
+
const network = this.getNetwork(config);
|
|
28
|
+
const wsProvider = new WsProvider(network.endpoint);
|
|
29
|
+
const account = await this.createAccount(wsProvider);
|
|
30
|
+
const extension = await this.createExtension(account);
|
|
31
|
+
return {
|
|
32
|
+
account,
|
|
33
|
+
extension,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async createExtension(account) {
|
|
37
|
+
const signer = new Signer(async () => {
|
|
38
|
+
return;
|
|
39
|
+
});
|
|
40
|
+
signer.signRaw = async (payload) => {
|
|
41
|
+
const signature = account.keypair.sign(payload.data);
|
|
42
|
+
return {
|
|
43
|
+
id: 1,
|
|
44
|
+
signature: u8aToHex(signature),
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
return {
|
|
48
|
+
accounts: {
|
|
49
|
+
get: async () => {
|
|
50
|
+
return [account];
|
|
51
|
+
},
|
|
52
|
+
subscribe: () => {
|
|
53
|
+
return () => {
|
|
54
|
+
return;
|
|
55
|
+
};
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
name: 'procaptcha-web2',
|
|
59
|
+
version: '0.1.11',
|
|
60
|
+
signer,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
async createAccount(wsProvider) {
|
|
64
|
+
const params = {
|
|
65
|
+
area: { width: 300, height: 300 },
|
|
66
|
+
offsetParameter: 2001000001,
|
|
67
|
+
multiplier: 15000,
|
|
68
|
+
fontSizeFactor: 1.5,
|
|
69
|
+
maxShadowBlur: 50,
|
|
70
|
+
numberOfRounds: 5,
|
|
71
|
+
seed: 42,
|
|
72
|
+
};
|
|
73
|
+
const browserEntropy = await this.getFingerprint();
|
|
74
|
+
const canvasEntropy = picassoCanvas(params.numberOfRounds, params.seed, params);
|
|
75
|
+
const entropy = hexHash([canvasEntropy, browserEntropy].join(''), 128).slice(2);
|
|
76
|
+
const u8Entropy = stringToU8a(entropy);
|
|
77
|
+
const mnemonic = entropyToMnemonic(u8Entropy);
|
|
78
|
+
const api = await ApiPromise.create({ provider: wsProvider, initWasm: false });
|
|
79
|
+
const type = 'ed25519';
|
|
80
|
+
const keyring = new Keyring({ type, ss58Format: api.registry.chainSS58 });
|
|
81
|
+
const keypair = keyring.addFromMnemonic(mnemonic);
|
|
82
|
+
const address = keypair.address.length === 42
|
|
83
|
+
? keypair.address
|
|
84
|
+
: encodeAddress(decodeAddress(keypair.address), api.registry.chainSS58);
|
|
85
|
+
return {
|
|
86
|
+
address,
|
|
87
|
+
type,
|
|
88
|
+
name: address,
|
|
89
|
+
keypair,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
async getFingerprint() {
|
|
93
|
+
const fpPromise = load();
|
|
94
|
+
const fp = await fpPromise;
|
|
95
|
+
const result = await fp.get();
|
|
96
|
+
const { screenFrame, ...componentsReduced } = result.components;
|
|
97
|
+
return hashComponents(componentsReduced);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=ExtensionWeb2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionWeb2.js","sourceRoot":"","sources":["../../src/extension/ExtensionWeb2.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@prosopo/account",
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"description": "Services and Utils for Prosopo account gen and management",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=18",
|
|
9
|
+
"npm": ">=9"
|
|
10
|
+
},
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"require": "./dist/cjs/index.cjs"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"clean": "tsc --build --clean",
|
|
19
|
+
"build": "tsc --build --verbose tsconfig.json",
|
|
20
|
+
"build:cjs": "npx vite --config vite.cjs.config.ts build",
|
|
21
|
+
"eslint": "npx eslint . --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore",
|
|
22
|
+
"eslint:fix": "npm run eslint -- --fix",
|
|
23
|
+
"prettier": "npx prettier . --check --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore",
|
|
24
|
+
"prettier:fix": "npm run prettier -- --write",
|
|
25
|
+
"lint": "npm run eslint && npm run prettier",
|
|
26
|
+
"lint:fix": "npm run eslint:fix && npm run prettier:fix"
|
|
27
|
+
},
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "git+ssh://git@github.com/prosopo/types.git"
|
|
31
|
+
},
|
|
32
|
+
"author": "Prosopo Limited",
|
|
33
|
+
"license": "Apache-2.0",
|
|
34
|
+
"bugs": {
|
|
35
|
+
"url": "https://github.com/prosopo/captcha/issues"
|
|
36
|
+
},
|
|
37
|
+
"homepage": "https://github.com/prosopo/captcha#readme",
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"react": "^18.2.0",
|
|
40
|
+
"@fingerprintjs/fingerprintjs": "^3.3.6",
|
|
41
|
+
"@polkadot/api": "10.11.2",
|
|
42
|
+
"@polkadot/extension-base": "0.46.6",
|
|
43
|
+
"@polkadot/extension-inject": "0.46.6",
|
|
44
|
+
"@polkadot/keyring": "12.6.2",
|
|
45
|
+
"@polkadot/rpc-provider": "10.11.2",
|
|
46
|
+
"@polkadot/util": "12.6.2",
|
|
47
|
+
"@polkadot/util-crypto": "12.6.2",
|
|
48
|
+
"@prosopo/common": "0.3.1",
|
|
49
|
+
"@prosopo/types": "0.3.1",
|
|
50
|
+
"@prosopo/util": "0.3.1"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@prosopo/config": "0.3.1",
|
|
54
|
+
"tslib": "2.6.2",
|
|
55
|
+
"typescript": "5.1.6"
|
|
56
|
+
},
|
|
57
|
+
"sideEffects": false
|
|
58
|
+
}
|