@keyringnetwork/keyring-connect-sdk 2.2.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.d.ts +9 -1
- package/dist/main.js +100 -38
- package/dist/types.d.ts +5 -10
- package/package.json +9 -9
- package/dist/constants/datasources.json +0 -645
- package/dist/constants/index.d.ts +0 -1
- package/dist/constants/index.js +0 -4
package/dist/main.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { ExtensionSDKConfig, ExtensionState } from "./types";
|
|
|
3
3
|
* Class for interacting with the Keyring Connect browser extension
|
|
4
4
|
*/
|
|
5
5
|
export declare class KeyringConnect {
|
|
6
|
+
private static readonly EXTENSION_TIMEOUT;
|
|
7
|
+
private static readonly EXTENSION_ID;
|
|
6
8
|
private static keyringConnectUrl;
|
|
7
9
|
/**
|
|
8
10
|
* Tries to launch the Keyring Connect Extension with the provided configuration.
|
|
@@ -32,7 +34,13 @@ export declare class KeyringConnect {
|
|
|
32
34
|
private static validateClientConfig;
|
|
33
35
|
private static validateCredentialConfig;
|
|
34
36
|
private static validateProofConfig;
|
|
35
|
-
private static validateDatasource;
|
|
36
37
|
private static validateConfigData;
|
|
37
38
|
private static convertToLaunchConfig;
|
|
39
|
+
private static isChromeRuntimeAvailable;
|
|
40
|
+
private static get communicationMethod();
|
|
41
|
+
private static sendChromeMessage;
|
|
42
|
+
private static launchExtensionViaChromeAPI;
|
|
43
|
+
private static launchExtensionViaPostMessage;
|
|
44
|
+
private static getExtensionStateViaChromeAPI;
|
|
45
|
+
private static getExtensionStateViaPostMessage;
|
|
38
46
|
}
|
package/dist/main.js
CHANGED
|
@@ -8,14 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.KeyringConnect = void 0;
|
|
16
13
|
const contracts_abi_1 = require("@keyringnetwork/contracts-abi");
|
|
17
|
-
const constants_1 = require("./constants");
|
|
18
|
-
const datasources_json_1 = __importDefault(require("./constants/datasources.json"));
|
|
19
14
|
const types_1 = require("./types");
|
|
20
15
|
/**
|
|
21
16
|
* Class for interacting with the Keyring Connect browser extension
|
|
@@ -42,8 +37,12 @@ class KeyringConnect {
|
|
|
42
37
|
}
|
|
43
38
|
const validatedConfig = this.validateConfigData(data);
|
|
44
39
|
const launchConfig = this.convertToLaunchConfig(validatedConfig);
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
if (this.communicationMethod === "chromeApi") {
|
|
41
|
+
yield this.launchExtensionViaChromeAPI(launchConfig);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
yield this.launchExtensionViaPostMessage(launchConfig);
|
|
45
|
+
}
|
|
47
46
|
});
|
|
48
47
|
}
|
|
49
48
|
/**
|
|
@@ -67,16 +66,15 @@ class KeyringConnect {
|
|
|
67
66
|
static getExtensionState() {
|
|
68
67
|
return __awaiter(this, void 0, void 0, function* () {
|
|
69
68
|
const timeout = new Promise((resolve) => {
|
|
70
|
-
setTimeout(() => resolve(null),
|
|
71
|
-
});
|
|
72
|
-
const extensionResponse = new Promise((resolve) => {
|
|
73
|
-
window.addEventListener("message", (event) => {
|
|
74
|
-
if (event.data.type === types_1.EVENT_ACTIONS.KEYRING_CONNECT_STATUS) {
|
|
75
|
-
resolve(event.data.data);
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
window.postMessage({ type: types_1.EVENT_ACTIONS.GET_STATUS }, "*");
|
|
69
|
+
setTimeout(() => resolve(null), this.EXTENSION_TIMEOUT);
|
|
79
70
|
});
|
|
71
|
+
let extensionResponse;
|
|
72
|
+
if (this.communicationMethod === "chromeApi") {
|
|
73
|
+
extensionResponse = this.getExtensionStateViaChromeAPI();
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
extensionResponse = this.getExtensionStateViaPostMessage();
|
|
77
|
+
}
|
|
80
78
|
return Promise.race([timeout, extensionResponse]);
|
|
81
79
|
});
|
|
82
80
|
}
|
|
@@ -166,29 +164,11 @@ class KeyringConnect {
|
|
|
166
164
|
}
|
|
167
165
|
}
|
|
168
166
|
}
|
|
169
|
-
static validateDatasource(config) {
|
|
170
|
-
var _a, _b;
|
|
171
|
-
if (!((_a = config.proof_config) === null || _a === void 0 ? void 0 : _a.datasource)) {
|
|
172
|
-
return config;
|
|
173
|
-
}
|
|
174
|
-
const datasource = datasources_json_1.default.find((datasource) => { var _a, _b; return datasource.id === ((_b = (_a = config.proof_config) === null || _a === void 0 ? void 0 : _a.datasource) === null || _b === void 0 ? void 0 : _b.id); });
|
|
175
|
-
const knownDatasources = datasources_json_1.default
|
|
176
|
-
.map((datasource) => datasource.name)
|
|
177
|
-
.join(", ");
|
|
178
|
-
if (!datasource) {
|
|
179
|
-
throw new Error(`Unsupported datasource. Connect to either of the supported datasources: ${knownDatasources}`);
|
|
180
|
-
}
|
|
181
|
-
return Object.assign(Object.assign({}, config), { proof_config: {
|
|
182
|
-
entity_type: (_b = config.proof_config) === null || _b === void 0 ? void 0 : _b.entity_type,
|
|
183
|
-
datasource,
|
|
184
|
-
} });
|
|
185
|
-
}
|
|
186
167
|
static validateConfigData(config) {
|
|
187
|
-
|
|
188
|
-
this.
|
|
189
|
-
this.
|
|
190
|
-
|
|
191
|
-
return validatedConfig;
|
|
168
|
+
this.validateClientConfig(config);
|
|
169
|
+
this.validateProofConfig(config);
|
|
170
|
+
this.validateCredentialConfig(config);
|
|
171
|
+
return config;
|
|
192
172
|
}
|
|
193
173
|
static convertToLaunchConfig(config) {
|
|
194
174
|
var _a, _b;
|
|
@@ -218,6 +198,88 @@ class KeyringConnect {
|
|
|
218
198
|
};
|
|
219
199
|
return launchConfig;
|
|
220
200
|
}
|
|
201
|
+
static isChromeRuntimeAvailable() {
|
|
202
|
+
var _a;
|
|
203
|
+
return typeof ((_a = chrome === null || chrome === void 0 ? void 0 : chrome.runtime) === null || _a === void 0 ? void 0 : _a.sendMessage) === "function";
|
|
204
|
+
}
|
|
205
|
+
static get communicationMethod() {
|
|
206
|
+
if (this.isChromeRuntimeAvailable()) {
|
|
207
|
+
return "chromeApi";
|
|
208
|
+
}
|
|
209
|
+
return "postMessage";
|
|
210
|
+
}
|
|
211
|
+
static sendChromeMessage(message) {
|
|
212
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
213
|
+
return new Promise((resolve, reject) => {
|
|
214
|
+
if (!this.isChromeRuntimeAvailable()) {
|
|
215
|
+
reject(new Error("Chrome runtime not available"));
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
// Timeout handler
|
|
219
|
+
const timeoutId = setTimeout(() => {
|
|
220
|
+
reject(new Error(`Chrome runtime message timeout after ${this.EXTENSION_TIMEOUT}ms`));
|
|
221
|
+
}, this.EXTENSION_TIMEOUT);
|
|
222
|
+
try {
|
|
223
|
+
chrome.runtime.sendMessage(this.EXTENSION_ID, message, (response) => {
|
|
224
|
+
clearTimeout(timeoutId);
|
|
225
|
+
// Check for chrome.runtime.lastError
|
|
226
|
+
if (chrome.runtime.lastError) {
|
|
227
|
+
reject(new Error(`Chrome runtime error: ${chrome.runtime.lastError.message}`));
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
// Validate response structure
|
|
231
|
+
if (!response) {
|
|
232
|
+
reject(new Error("No response received from extension"));
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
if (response.error) {
|
|
236
|
+
reject(new Error(`Extension error: ${response.error}`));
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
resolve(response === null || response === void 0 ? void 0 : response.data);
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
clearTimeout(timeoutId);
|
|
244
|
+
reject(error);
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
static launchExtensionViaChromeAPI(launchConfig) {
|
|
250
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
251
|
+
return this.sendChromeMessage({
|
|
252
|
+
type: types_1.EVENT_ACTIONS.LAUNCH_KEYRING_CONNECT,
|
|
253
|
+
data: launchConfig,
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
static launchExtensionViaPostMessage(launchConfig) {
|
|
258
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
259
|
+
window.postMessage({ type: types_1.EVENT_ACTIONS.LAUNCH_KEYRING_CONNECT, data: launchConfig }, "*");
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
static getExtensionStateViaChromeAPI() {
|
|
263
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
264
|
+
return this.sendChromeMessage({
|
|
265
|
+
type: types_1.EVENT_ACTIONS.GET_STATUS,
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
static getExtensionStateViaPostMessage() {
|
|
270
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
271
|
+
return new Promise((resolve) => {
|
|
272
|
+
window.addEventListener("message", (event) => {
|
|
273
|
+
if (event.data.type === types_1.EVENT_ACTIONS.KEYRING_CONNECT_STATUS) {
|
|
274
|
+
resolve(event.data.data);
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
window.postMessage({ type: types_1.EVENT_ACTIONS.GET_STATUS }, "*");
|
|
278
|
+
});
|
|
279
|
+
});
|
|
280
|
+
}
|
|
221
281
|
}
|
|
222
282
|
exports.KeyringConnect = KeyringConnect;
|
|
283
|
+
KeyringConnect.EXTENSION_TIMEOUT = 2000;
|
|
284
|
+
KeyringConnect.EXTENSION_ID = "jgogeidclfccfoedhfjjaclnaojcllpi";
|
|
223
285
|
KeyringConnect.keyringConnectUrl = "https://app.keyring.network/connect";
|
package/dist/types.d.ts
CHANGED
|
@@ -4,12 +4,6 @@ export declare enum EVENT_ACTIONS {
|
|
|
4
4
|
GET_STATUS = "GET_STATUS",
|
|
5
5
|
KEYRING_CONNECT_STATUS = "KEYRING_CONNECT_STATUS"
|
|
6
6
|
}
|
|
7
|
-
export type PartialDataSource = Pick<DataSource, "id"> & Partial<DataSource>;
|
|
8
|
-
export type ValidatedConfig = ExtensionSDKConfig & {
|
|
9
|
-
proof_config: {
|
|
10
|
-
datasource?: DataSource;
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
7
|
export type ExtensionSDKConfig = {
|
|
14
8
|
/**
|
|
15
9
|
* The name of the client.
|
|
@@ -28,9 +22,9 @@ export type ExtensionSDKConfig = {
|
|
|
28
22
|
*/
|
|
29
23
|
policy_id: number;
|
|
30
24
|
/**
|
|
31
|
-
*
|
|
25
|
+
* The wallet address and chain ID of the user.
|
|
32
26
|
*/
|
|
33
|
-
credential_config
|
|
27
|
+
credential_config: {
|
|
34
28
|
chain_id: SupportedChainId;
|
|
35
29
|
wallet_address: string;
|
|
36
30
|
};
|
|
@@ -39,7 +33,7 @@ export type ExtensionSDKConfig = {
|
|
|
39
33
|
* @note should be used with caution as strict validation is applied to the proof config.
|
|
40
34
|
*/
|
|
41
35
|
proof_config?: {
|
|
42
|
-
datasource?:
|
|
36
|
+
datasource?: DataSource;
|
|
43
37
|
entity_type?: string;
|
|
44
38
|
};
|
|
45
39
|
/**
|
|
@@ -64,7 +58,7 @@ export type ExtensionLaunchConfig = {
|
|
|
64
58
|
client_policy_id: number;
|
|
65
59
|
client_entity_id?: string;
|
|
66
60
|
isolate_proving?: boolean;
|
|
67
|
-
credential_config
|
|
61
|
+
credential_config: {
|
|
68
62
|
chain_id: SupportedChainId;
|
|
69
63
|
wallet_address: string;
|
|
70
64
|
};
|
|
@@ -84,6 +78,7 @@ export type ExtensionLaunchConfig = {
|
|
|
84
78
|
access_token?: string;
|
|
85
79
|
};
|
|
86
80
|
};
|
|
81
|
+
export type ExtensionCommunicationMethod = "chromeApi" | "postMessage";
|
|
87
82
|
export type ExtensionStatus = "idle" | "mounted" | "proving" | "prove_error" | "prove_success" | "error";
|
|
88
83
|
export type AttestationStatus = "onboarding_required" | "onboarding_pending" | "attestation_ready" | "non_compliant";
|
|
89
84
|
export type CredentialStatus = "expired" | "valid" | "none";
|
package/package.json
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keyringnetwork/keyring-connect-sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "An SDK for interacting with Keyring Connect browser extension",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"build": "rm -rf dist && pnpm get:datasources && tsc",
|
|
9
|
-
"dev": "pnpm get:datasources && tsc --watch",
|
|
10
|
-
"build_and_publish": "pnpm build && npm publish",
|
|
11
|
-
"get:datasources": "node ../../scripts/parseDatasource.js -o src/constants/datasources.json"
|
|
12
|
-
},
|
|
13
7
|
"files": [
|
|
14
8
|
"dist"
|
|
15
9
|
],
|
|
@@ -17,10 +11,16 @@
|
|
|
17
11
|
"author": "",
|
|
18
12
|
"license": "ISC",
|
|
19
13
|
"dependencies": {
|
|
20
|
-
"@keyringnetwork/contracts-abi": "2.
|
|
14
|
+
"@keyringnetwork/contracts-abi": "2.4.0"
|
|
21
15
|
},
|
|
22
16
|
"devDependencies": {
|
|
17
|
+
"@types/chrome": "^0.0.268",
|
|
23
18
|
"ts-node": "^10.9.2",
|
|
24
19
|
"typescript": "^5.6.3"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "rm -rf dist && tsc",
|
|
23
|
+
"dev": "tsc --watch",
|
|
24
|
+
"build_and_publish": "pnpm build && npm publish"
|
|
25
25
|
}
|
|
26
|
-
}
|
|
26
|
+
}
|
|
@@ -1,645 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"id": "tlsn-binance",
|
|
4
|
-
"image": "https://main.cdn.krnprod.net/logos/binance.png",
|
|
5
|
-
"label": "binance",
|
|
6
|
-
"link": "https://www.binance.com",
|
|
7
|
-
"login_url": "https://accounts.binance.com/login",
|
|
8
|
-
"name": "Binance",
|
|
9
|
-
"proof_sources": [
|
|
10
|
-
{
|
|
11
|
-
"claims": [
|
|
12
|
-
{
|
|
13
|
-
"entity_type": "individual",
|
|
14
|
-
"id": "binance_kyc_level",
|
|
15
|
-
"label": "KYC Level >= INTERMEDIATE",
|
|
16
|
-
"rule_id": "binance_kyc_level"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"entity_type": "individual",
|
|
20
|
-
"id": "binance_kyc_not_in_fatf_tlsn-binance-kyc",
|
|
21
|
-
"label": "User POA Country not on FATF",
|
|
22
|
-
"rule_id": "binance_kyc_not_in_fatf_tlsn-binance-kyc"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"entity_type": "individual",
|
|
26
|
-
"id": "binance_kyc_account_type",
|
|
27
|
-
"label": "User Account Type",
|
|
28
|
-
"rule_id": "binance_kyc_account_type"
|
|
29
|
-
}
|
|
30
|
-
],
|
|
31
|
-
"endpoint": {
|
|
32
|
-
"body": null,
|
|
33
|
-
"data_bounds": null,
|
|
34
|
-
"disclosable_fields": [
|
|
35
|
-
{
|
|
36
|
-
"label": "kyc level",
|
|
37
|
-
"path": "data.passKycLevel",
|
|
38
|
-
"key": "kyc_level"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"label": "country of primary address",
|
|
42
|
-
"path": "data.fillInfo.residenceCountry",
|
|
43
|
-
"key": "country"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"label": "account type",
|
|
47
|
-
"path": "data.type",
|
|
48
|
-
"key": "account_type"
|
|
49
|
-
}
|
|
50
|
-
],
|
|
51
|
-
"headers": [
|
|
52
|
-
"clienttype",
|
|
53
|
-
"csrftoken",
|
|
54
|
-
"cookie",
|
|
55
|
-
"user-agent"
|
|
56
|
-
],
|
|
57
|
-
"method": "POST",
|
|
58
|
-
"required_cookies": [
|
|
59
|
-
"p20t"
|
|
60
|
-
],
|
|
61
|
-
"url": "https://www.binance.com/bapi/kyc/v2/private/certificate/user-kyc/current-kyc-status"
|
|
62
|
-
},
|
|
63
|
-
"id": "tlsn-binance-kyc",
|
|
64
|
-
"label": "KYC from Binance"
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"claims": [
|
|
68
|
-
{
|
|
69
|
-
"entity_type": "business",
|
|
70
|
-
"id": "binance_kyb_verified",
|
|
71
|
-
"label": "KYB Verified",
|
|
72
|
-
"rule_id": "binance_kyb_verified"
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"entity_type": "business",
|
|
76
|
-
"id": "binance_kyb_not_in_fatf_tlsn-binance-kyb",
|
|
77
|
-
"label": "Business POA Country not on FATF",
|
|
78
|
-
"rule_id": "binance_kyb_not_in_fatf_tlsn-binance-kyb"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"entity_type": "business",
|
|
82
|
-
"id": "binance_kyb_account_type",
|
|
83
|
-
"label": "Business Account Type",
|
|
84
|
-
"rule_id": "binance_kyb_account_type"
|
|
85
|
-
}
|
|
86
|
-
],
|
|
87
|
-
"endpoint": {
|
|
88
|
-
"body": null,
|
|
89
|
-
"data_bounds": null,
|
|
90
|
-
"disclosable_fields": [
|
|
91
|
-
{
|
|
92
|
-
"label": "kyb status",
|
|
93
|
-
"path": "data.kycStatus",
|
|
94
|
-
"key": "kyc_status"
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"label": "country of primary address",
|
|
98
|
-
"path": "data.fillInfo.residenceCountry",
|
|
99
|
-
"key": "country"
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
"label": "account type",
|
|
103
|
-
"path": "data.type",
|
|
104
|
-
"key": "account_type"
|
|
105
|
-
}
|
|
106
|
-
],
|
|
107
|
-
"headers": [
|
|
108
|
-
"clienttype",
|
|
109
|
-
"csrftoken",
|
|
110
|
-
"cookie",
|
|
111
|
-
"user-agent"
|
|
112
|
-
],
|
|
113
|
-
"method": "POST",
|
|
114
|
-
"required_cookies": [
|
|
115
|
-
"p20t"
|
|
116
|
-
],
|
|
117
|
-
"url": "https://www.binance.com/bapi/kyc/v2/private/certificate/user-kyc/current-kyc-status"
|
|
118
|
-
},
|
|
119
|
-
"id": "tlsn-binance-kyb",
|
|
120
|
-
"label": "KYB from Binance"
|
|
121
|
-
}
|
|
122
|
-
],
|
|
123
|
-
"target_url": null,
|
|
124
|
-
"user_actions": [
|
|
125
|
-
"Login",
|
|
126
|
-
"Navigate to your Dashboard",
|
|
127
|
-
"The verification process will start automatically"
|
|
128
|
-
]
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
"id": "tlsn-kraken",
|
|
132
|
-
"image": "https://main.cdn.krnprod.net/logos/kraken.jpg",
|
|
133
|
-
"label": "Kraken",
|
|
134
|
-
"link": "https://www.kraken.com",
|
|
135
|
-
"login_url": "https://www.kraken.com/sign-in",
|
|
136
|
-
"name": "Kraken",
|
|
137
|
-
"proof_sources": [
|
|
138
|
-
{
|
|
139
|
-
"claims": [
|
|
140
|
-
{
|
|
141
|
-
"entity_type": "business",
|
|
142
|
-
"id": "kraken_kyb_not_in_fatf_tlsn-kraken-kyb",
|
|
143
|
-
"label": "KYB Tier 4 (Full KYB)",
|
|
144
|
-
"rule_id": "kraken_kyb_not_in_fatf_tlsn-kraken-kyb"
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
"entity_type": "business",
|
|
148
|
-
"id": "kraken_kyb_not_in_fatf_tlsn-kraken-kyb",
|
|
149
|
-
"label": "Business Country not on FATF",
|
|
150
|
-
"rule_id": "kraken_kyb_not_in_fatf_tlsn-kraken-kyb"
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
"entity_type": "business",
|
|
154
|
-
"id": "kraken_kyb_account_type",
|
|
155
|
-
"label": "Pro Business Account Type",
|
|
156
|
-
"rule_id": "kraken_kyb_account_type"
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
"entity_type": "business",
|
|
160
|
-
"id": "kraken_kyb_verified_address",
|
|
161
|
-
"label": "Verified Address",
|
|
162
|
-
"rule_id": "kraken_kyb_verified_address"
|
|
163
|
-
}
|
|
164
|
-
],
|
|
165
|
-
"endpoint": {
|
|
166
|
-
"body": null,
|
|
167
|
-
"data_bounds": null,
|
|
168
|
-
"disclosable_fields": [
|
|
169
|
-
{
|
|
170
|
-
"label": "user kyc",
|
|
171
|
-
"path": "result.access.user_kyc",
|
|
172
|
-
"key": "user_kyc"
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
"label": "country of primary address",
|
|
176
|
-
"path": "result.country",
|
|
177
|
-
"key": "country"
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
"label": "tier bucket",
|
|
181
|
-
"path": "result.tier_bucket",
|
|
182
|
-
"key": "tier_bucket"
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
"label": "tier verified",
|
|
186
|
-
"path": "result.tier_verified",
|
|
187
|
-
"key": "tier_verified"
|
|
188
|
-
}
|
|
189
|
-
],
|
|
190
|
-
"headers": [
|
|
191
|
-
"accept",
|
|
192
|
-
"accept-language",
|
|
193
|
-
"cookie",
|
|
194
|
-
"referer",
|
|
195
|
-
"user-agent"
|
|
196
|
-
],
|
|
197
|
-
"method": "GET",
|
|
198
|
-
"required_cookies": [
|
|
199
|
-
"SESSID"
|
|
200
|
-
],
|
|
201
|
-
"url": "https://iapi.kraken.com/api/internal/account/profile"
|
|
202
|
-
},
|
|
203
|
-
"id": "tlsn-kraken-kyb",
|
|
204
|
-
"label": "Profile information from Kraken"
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
"claims": [
|
|
208
|
-
{
|
|
209
|
-
"entity_type": "individual",
|
|
210
|
-
"id": "kraken_kyc_tier",
|
|
211
|
-
"label": "KYB Tier 3+ (Verified ID)",
|
|
212
|
-
"rule_id": "kraken_kyc_tier"
|
|
213
|
-
},
|
|
214
|
-
{
|
|
215
|
-
"entity_type": "individual",
|
|
216
|
-
"id": "kraken_kyc_not_in_fatf_tlsn-kraken-kyc",
|
|
217
|
-
"label": "Country not on FATF",
|
|
218
|
-
"rule_id": "kraken_kyc_not_in_fatf_tlsn-kraken-kyc"
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
"entity_type": "individual",
|
|
222
|
-
"id": "kraken_kyc_account_type",
|
|
223
|
-
"label": "Retail Account Type",
|
|
224
|
-
"rule_id": "kraken_kyc_account_type"
|
|
225
|
-
}
|
|
226
|
-
],
|
|
227
|
-
"endpoint": {
|
|
228
|
-
"body": null,
|
|
229
|
-
"data_bounds": null,
|
|
230
|
-
"disclosable_fields": [
|
|
231
|
-
{
|
|
232
|
-
"label": "user kyc",
|
|
233
|
-
"path": "result.access.user_kyc",
|
|
234
|
-
"key": "user_kyc"
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
"label": "country of primary address",
|
|
238
|
-
"path": "result.country",
|
|
239
|
-
"key": "country"
|
|
240
|
-
},
|
|
241
|
-
{
|
|
242
|
-
"label": "tier bucket",
|
|
243
|
-
"path": "result.tier_bucket",
|
|
244
|
-
"key": "tier_bucket"
|
|
245
|
-
},
|
|
246
|
-
{
|
|
247
|
-
"label": "tier verified",
|
|
248
|
-
"path": "result.tier_verified",
|
|
249
|
-
"key": "tier_verified"
|
|
250
|
-
}
|
|
251
|
-
],
|
|
252
|
-
"headers": [
|
|
253
|
-
"accept",
|
|
254
|
-
"accept-language",
|
|
255
|
-
"cookie",
|
|
256
|
-
"referer",
|
|
257
|
-
"user-agent"
|
|
258
|
-
],
|
|
259
|
-
"method": "GET",
|
|
260
|
-
"required_cookies": [
|
|
261
|
-
"SESSID"
|
|
262
|
-
],
|
|
263
|
-
"url": "https://iapi.kraken.com/api/internal/account/profile"
|
|
264
|
-
},
|
|
265
|
-
"id": "tlsn-kraken-kyc",
|
|
266
|
-
"label": "Profile information from Kraken"
|
|
267
|
-
}
|
|
268
|
-
],
|
|
269
|
-
"target_url": "https://www.kraken.com/",
|
|
270
|
-
"user_actions": [
|
|
271
|
-
"Log in",
|
|
272
|
-
"Navigate to your Profile page",
|
|
273
|
-
"The verification process will start automatically"
|
|
274
|
-
]
|
|
275
|
-
},
|
|
276
|
-
{
|
|
277
|
-
"id": "tlsn-binance-us",
|
|
278
|
-
"image": "https://main.cdn.krnprod.net/logos/binance-us.svg",
|
|
279
|
-
"label": "binance-us",
|
|
280
|
-
"link": "https://www.binance.us",
|
|
281
|
-
"login_url": "https://accounts.binance.us/login",
|
|
282
|
-
"name": "Binance US",
|
|
283
|
-
"proof_sources": [
|
|
284
|
-
{
|
|
285
|
-
"claims": [
|
|
286
|
-
{
|
|
287
|
-
"entity_type": "individual",
|
|
288
|
-
"id": "75eebf24-5dfe-4b3d-b651-f21fff1786c4",
|
|
289
|
-
"label": "KYC Verified",
|
|
290
|
-
"rule_id": "binance_us_kyc_verified"
|
|
291
|
-
},
|
|
292
|
-
{
|
|
293
|
-
"entity_type": "individual",
|
|
294
|
-
"id": "18e9f113-5110-4abb-b6e9-da07dcfeb41f",
|
|
295
|
-
"label": "User POA Country not on FATF",
|
|
296
|
-
"rule_id": "binance_us_kyc_not_in_fatf_tlsn-binance-us-kyc"
|
|
297
|
-
},
|
|
298
|
-
{
|
|
299
|
-
"entity_type": "individual",
|
|
300
|
-
"id": "2a5d69a3-1ead-4be6-9112-760b6432c3d8",
|
|
301
|
-
"label": "Individual Account Type",
|
|
302
|
-
"rule_id": "binance_us_kyc_account_type"
|
|
303
|
-
}
|
|
304
|
-
],
|
|
305
|
-
"endpoint": {
|
|
306
|
-
"body": null,
|
|
307
|
-
"data_bounds": null,
|
|
308
|
-
"disclosable_fields": [
|
|
309
|
-
{
|
|
310
|
-
"label": "country of primary address",
|
|
311
|
-
"path": "data.userDetails.country",
|
|
312
|
-
"key": "country"
|
|
313
|
-
},
|
|
314
|
-
{
|
|
315
|
-
"label": "kyc level",
|
|
316
|
-
"path": "data.userKycStatus.kycLevel",
|
|
317
|
-
"key": "kyc_level"
|
|
318
|
-
},
|
|
319
|
-
{
|
|
320
|
-
"label": "kyc type",
|
|
321
|
-
"path": "data.userKycStatus.kycType",
|
|
322
|
-
"key": "kyc_type"
|
|
323
|
-
}
|
|
324
|
-
],
|
|
325
|
-
"headers": [
|
|
326
|
-
"clienttype",
|
|
327
|
-
"cookie",
|
|
328
|
-
"user-agent",
|
|
329
|
-
"csrftoken"
|
|
330
|
-
],
|
|
331
|
-
"method": "GET",
|
|
332
|
-
"required_cookies": [
|
|
333
|
-
"p20t"
|
|
334
|
-
],
|
|
335
|
-
"url": "https://www.binance.us/gateway/entry/private/v1/web-home/user-details"
|
|
336
|
-
},
|
|
337
|
-
"id": "tlsn-binance-us-kyc",
|
|
338
|
-
"label": "KYC from Binance US"
|
|
339
|
-
},
|
|
340
|
-
{
|
|
341
|
-
"claims": [
|
|
342
|
-
{
|
|
343
|
-
"entity_type": "business",
|
|
344
|
-
"id": "26db829e-ded2-4046-9626-7a1867d5be06",
|
|
345
|
-
"label": "KYB Verified",
|
|
346
|
-
"rule_id": "binance_us_kyb_verified"
|
|
347
|
-
},
|
|
348
|
-
{
|
|
349
|
-
"entity_type": "business",
|
|
350
|
-
"id": "81d4d669-f626-4dfb-9966-c783d2f3dddb",
|
|
351
|
-
"label": "Business POA Country not on FATF",
|
|
352
|
-
"rule_id": "binance_us_kyb_not_in_fatf_tlsn-binance-us-kyb"
|
|
353
|
-
},
|
|
354
|
-
{
|
|
355
|
-
"entity_type": "business",
|
|
356
|
-
"id": "a99d0cf5-ee75-4ddf-b3e2-aabb794450f2",
|
|
357
|
-
"label": "Business Account Type",
|
|
358
|
-
"rule_id": "binance_us_kyb_account_type"
|
|
359
|
-
}
|
|
360
|
-
],
|
|
361
|
-
"endpoint": {
|
|
362
|
-
"body": null,
|
|
363
|
-
"data_bounds": null,
|
|
364
|
-
"disclosable_fields": [
|
|
365
|
-
{
|
|
366
|
-
"label": "country of primary address",
|
|
367
|
-
"path": "data.userDetails.country",
|
|
368
|
-
"key": "country"
|
|
369
|
-
},
|
|
370
|
-
{
|
|
371
|
-
"label": "kyc level",
|
|
372
|
-
"path": "data.userKycStatus.kycLevel",
|
|
373
|
-
"key": "kyc_level"
|
|
374
|
-
},
|
|
375
|
-
{
|
|
376
|
-
"label": "kyc type",
|
|
377
|
-
"path": "data.userKycStatus.kycType",
|
|
378
|
-
"key": "kyc_type"
|
|
379
|
-
}
|
|
380
|
-
],
|
|
381
|
-
"headers": [
|
|
382
|
-
"clienttype",
|
|
383
|
-
"cookie",
|
|
384
|
-
"user-agent",
|
|
385
|
-
"csrftoken"
|
|
386
|
-
],
|
|
387
|
-
"method": "GET",
|
|
388
|
-
"required_cookies": [
|
|
389
|
-
"p20t"
|
|
390
|
-
],
|
|
391
|
-
"url": "https://www.binance.us/gateway/entry/private/v1/web-home/user-details"
|
|
392
|
-
},
|
|
393
|
-
"id": "tlsn-binance-us-kyb",
|
|
394
|
-
"label": "KYB from Binance US"
|
|
395
|
-
}
|
|
396
|
-
],
|
|
397
|
-
"target_url": null,
|
|
398
|
-
"user_actions": [
|
|
399
|
-
"Login",
|
|
400
|
-
"Navigate to your dashboard",
|
|
401
|
-
"The verification process will start automatically"
|
|
402
|
-
]
|
|
403
|
-
},
|
|
404
|
-
{
|
|
405
|
-
"id": "tlsn-fidelity",
|
|
406
|
-
"image": "https://main.cdn.krnprod.net/logos/fidelity.jpg",
|
|
407
|
-
"label": "fidelity",
|
|
408
|
-
"link": "https://www.fidelity.com",
|
|
409
|
-
"login_url": "https://digital.fidelity.com/ftgw/digital/profile",
|
|
410
|
-
"name": "Fidelity",
|
|
411
|
-
"proof_sources": [
|
|
412
|
-
{
|
|
413
|
-
"claims": [
|
|
414
|
-
{
|
|
415
|
-
"entity_type": "individual",
|
|
416
|
-
"id": "fidelity_kyc_verified",
|
|
417
|
-
"label": "KYC Verified",
|
|
418
|
-
"rule_id": "fidelity_kyc_verified"
|
|
419
|
-
}
|
|
420
|
-
],
|
|
421
|
-
"endpoint": {
|
|
422
|
-
"body": "{\"dpIdCache\":null}",
|
|
423
|
-
"data_bounds": null,
|
|
424
|
-
"disclosable_fields": [
|
|
425
|
-
{
|
|
426
|
-
"label": "mailing address",
|
|
427
|
-
"path": "customer.addresses.mailing",
|
|
428
|
-
"key": "mailing_address"
|
|
429
|
-
}
|
|
430
|
-
],
|
|
431
|
-
"headers": [
|
|
432
|
-
"Accept",
|
|
433
|
-
"Content-Type",
|
|
434
|
-
"X-xsrf-token",
|
|
435
|
-
"Cookie",
|
|
436
|
-
"User-Agent"
|
|
437
|
-
],
|
|
438
|
-
"method": "POST",
|
|
439
|
-
"required_cookies": [
|
|
440
|
-
"ap126386_session",
|
|
441
|
-
"FC",
|
|
442
|
-
"MC",
|
|
443
|
-
"RC",
|
|
444
|
-
"SC",
|
|
445
|
-
"ATC"
|
|
446
|
-
],
|
|
447
|
-
"url": "https://digital.fidelity.com/ftgw/digital/profile/api/personal/info"
|
|
448
|
-
},
|
|
449
|
-
"id": "tlsn-fidelity-kyc",
|
|
450
|
-
"label": "Profile information from Fidelity"
|
|
451
|
-
}
|
|
452
|
-
],
|
|
453
|
-
"target_url": null,
|
|
454
|
-
"user_actions": [
|
|
455
|
-
"Login",
|
|
456
|
-
"Navigate to your profile page",
|
|
457
|
-
"The verification process will start automatically"
|
|
458
|
-
]
|
|
459
|
-
},
|
|
460
|
-
{
|
|
461
|
-
"id": "tlsn-coinbase",
|
|
462
|
-
"image": "https://main.cdn.krnprod.net/logos/coinbase.svg",
|
|
463
|
-
"label": "Coinbase",
|
|
464
|
-
"link": "https://www.coinbase.com",
|
|
465
|
-
"login_url": "https://login.coinbase.com/signin",
|
|
466
|
-
"name": "Coinbase",
|
|
467
|
-
"proof_sources": [
|
|
468
|
-
{
|
|
469
|
-
"claims": [
|
|
470
|
-
{
|
|
471
|
-
"entity_type": "individual",
|
|
472
|
-
"id": "coinbase_kyc_verified",
|
|
473
|
-
"label": "KYC Verified",
|
|
474
|
-
"rule_id": "coinbase_kyc_verified"
|
|
475
|
-
},
|
|
476
|
-
{
|
|
477
|
-
"entity_type": "individual",
|
|
478
|
-
"id": "coinbase_kyc_not_in_fatf_tlsn-coinbase-kyc",
|
|
479
|
-
"label": "Coinbase Residence country is not on FATF BList",
|
|
480
|
-
"rule_id": "coinbase_kyc_not_in_fatf_tlsn-coinbase-kyc"
|
|
481
|
-
}
|
|
482
|
-
],
|
|
483
|
-
"endpoint": {
|
|
484
|
-
"body": null,
|
|
485
|
-
"data_bounds": null,
|
|
486
|
-
"disclosable_fields": [
|
|
487
|
-
{
|
|
488
|
-
"label": "no remaining kyc requirements",
|
|
489
|
-
"path": "data.viewer.userProperties.nextRequirement",
|
|
490
|
-
"key": "next_requirement"
|
|
491
|
-
},
|
|
492
|
-
{
|
|
493
|
-
"label": "country of primary address",
|
|
494
|
-
"path": "data.viewer.userProperties.country.code",
|
|
495
|
-
"key": "country"
|
|
496
|
-
}
|
|
497
|
-
],
|
|
498
|
-
"headers": [
|
|
499
|
-
"Content-Type",
|
|
500
|
-
"Cookie"
|
|
501
|
-
],
|
|
502
|
-
"method": "GET",
|
|
503
|
-
"required_cookies": [
|
|
504
|
-
"unified-session-manager-cookie"
|
|
505
|
-
],
|
|
506
|
-
"url": "https://www.coinbase.com/graphql/query?operationName=userQuery&query=query+userQuery%7Bviewer%7BuserProperties%7BnextRequirement+country%7Bcode%7D%7D%7D%7D&variables=%7B%7D"
|
|
507
|
-
},
|
|
508
|
-
"id": "tlsn-coinbase-kyc",
|
|
509
|
-
"label": "User information from Coinbase"
|
|
510
|
-
}
|
|
511
|
-
],
|
|
512
|
-
"target_url": "https://www.coinbase.com/graphql/query?&operationName=userQuery&*",
|
|
513
|
-
"user_actions": [
|
|
514
|
-
"Login",
|
|
515
|
-
"Navigate to your profile page",
|
|
516
|
-
"The verification process will start automatically"
|
|
517
|
-
]
|
|
518
|
-
},
|
|
519
|
-
{
|
|
520
|
-
"id": "tlsn-revolut",
|
|
521
|
-
"image": "https://main.cdn.krnprod.net/logos/revolut.svg",
|
|
522
|
-
"label": "Revolut",
|
|
523
|
-
"link": "https://www.revolut.com",
|
|
524
|
-
"login_url": "https://app.revolut.com/start",
|
|
525
|
-
"name": "Revolut",
|
|
526
|
-
"proof_sources": [
|
|
527
|
-
{
|
|
528
|
-
"claims": [
|
|
529
|
-
{
|
|
530
|
-
"entity_type": "individual",
|
|
531
|
-
"id": "revolut_kyc_verified",
|
|
532
|
-
"label": "KYC Verified",
|
|
533
|
-
"rule_id": "revolut_kyc_verified"
|
|
534
|
-
},
|
|
535
|
-
{
|
|
536
|
-
"entity_type": "individual",
|
|
537
|
-
"id": "revolut_kyc_not_under_review",
|
|
538
|
-
"label": "KYC Not Under Review",
|
|
539
|
-
"rule_id": "revolut_kyc_not_under_review"
|
|
540
|
-
},
|
|
541
|
-
{
|
|
542
|
-
"entity_type": "individual",
|
|
543
|
-
"id": "revolut_kyc_user_status_active",
|
|
544
|
-
"label": "KYC User Status Active",
|
|
545
|
-
"rule_id": "revolut_kyc_user_status_active"
|
|
546
|
-
},
|
|
547
|
-
{
|
|
548
|
-
"entity_type": "individual",
|
|
549
|
-
"id": "revolut_kyc_not_in_fatf_tlsn-revolut-kyc",
|
|
550
|
-
"label": "Revolut Residence Country not on FATF",
|
|
551
|
-
"rule_id": "revolut_kyc_not_in_fatf_tlsn-revolut-kyc"
|
|
552
|
-
}
|
|
553
|
-
],
|
|
554
|
-
"endpoint": {
|
|
555
|
-
"body": null,
|
|
556
|
-
"data_bounds": null,
|
|
557
|
-
"disclosable_fields": [
|
|
558
|
-
{
|
|
559
|
-
"label": "country of primary address",
|
|
560
|
-
"path": "user.address.country",
|
|
561
|
-
"key": "country"
|
|
562
|
-
},
|
|
563
|
-
{
|
|
564
|
-
"label": "user status",
|
|
565
|
-
"path": "user.state",
|
|
566
|
-
"key": "user_state"
|
|
567
|
-
},
|
|
568
|
-
{
|
|
569
|
-
"label": "user kyc",
|
|
570
|
-
"path": "user.kyc",
|
|
571
|
-
"key": "user_kyc"
|
|
572
|
-
},
|
|
573
|
-
{
|
|
574
|
-
"label": "account under review",
|
|
575
|
-
"path": "user.underReview",
|
|
576
|
-
"key": "under_review"
|
|
577
|
-
}
|
|
578
|
-
],
|
|
579
|
-
"headers": [
|
|
580
|
-
"Cookie",
|
|
581
|
-
"User-Agent",
|
|
582
|
-
"x-device-id",
|
|
583
|
-
"x-client-version"
|
|
584
|
-
],
|
|
585
|
-
"method": "GET",
|
|
586
|
-
"required_cookies": null,
|
|
587
|
-
"url": "https://app.revolut.com/api/retail/user/current"
|
|
588
|
-
},
|
|
589
|
-
"id": "tlsn-revolut-kyc",
|
|
590
|
-
"label": "User information from revolut"
|
|
591
|
-
}
|
|
592
|
-
],
|
|
593
|
-
"target_url": null,
|
|
594
|
-
"user_actions": [
|
|
595
|
-
"Login",
|
|
596
|
-
"Navigate to your profile page",
|
|
597
|
-
"The verification process will start automatically"
|
|
598
|
-
]
|
|
599
|
-
},
|
|
600
|
-
{
|
|
601
|
-
"id": "tlsn-keyring-connect",
|
|
602
|
-
"image": "https://uploads-ssl.webflow.com/65df8e71bab45b70f5433fba/664359927ac82d0c110ff6be_Keyring%20Icon%20Square.svg",
|
|
603
|
-
"label": "keyring-connect",
|
|
604
|
-
"link": "https://app.keyringdev.network",
|
|
605
|
-
"login_url": "https://app.keyringdev.network/login",
|
|
606
|
-
"name": "Keyring Connect",
|
|
607
|
-
"proof_sources": [
|
|
608
|
-
{
|
|
609
|
-
"claims": [
|
|
610
|
-
{
|
|
611
|
-
"entity_type": "individual",
|
|
612
|
-
"id": "keyring_connect_kyc",
|
|
613
|
-
"label": "KYC from Keyring Connect",
|
|
614
|
-
"rule_id": "keyring_connect_kyc"
|
|
615
|
-
}
|
|
616
|
-
],
|
|
617
|
-
"endpoint": {
|
|
618
|
-
"body": null,
|
|
619
|
-
"data_bounds": null,
|
|
620
|
-
"disclosable_fields": [
|
|
621
|
-
{
|
|
622
|
-
"label": "user id",
|
|
623
|
-
"path": "id",
|
|
624
|
-
"key": "user_id"
|
|
625
|
-
}
|
|
626
|
-
],
|
|
627
|
-
"headers": [
|
|
628
|
-
"user-agent",
|
|
629
|
-
"authorization"
|
|
630
|
-
],
|
|
631
|
-
"method": "GET",
|
|
632
|
-
"required_cookies": null,
|
|
633
|
-
"url": "https://main.api.keyring-backend.krndev.net/api/v1/onboarding/users/me"
|
|
634
|
-
},
|
|
635
|
-
"id": "tlsn-keyring-connect-kyc",
|
|
636
|
-
"label": "KYC from Keyring Connect"
|
|
637
|
-
}
|
|
638
|
-
],
|
|
639
|
-
"target_url": "https://app.keyringdev.network/",
|
|
640
|
-
"user_actions": [
|
|
641
|
-
"Make sure you have logged in",
|
|
642
|
-
"Navigate to the marketplace"
|
|
643
|
-
]
|
|
644
|
-
}
|
|
645
|
-
]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const EXTENSION_TIMEOUT = 2000;
|
package/dist/constants/index.js
DELETED