@keetanetwork/anchor 0.0.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/.done +0 -0
- package/LICENSE +35 -0
- package/client/index.d.ts +10 -0
- package/client/index.d.ts.map +1 -0
- package/client/index.js +11 -0
- package/client/index.js.map +1 -0
- package/config.d.ts +10 -0
- package/config.d.ts.map +1 -0
- package/config.js +36 -0
- package/config.js.map +1 -0
- package/lib/certificates.d.ts +106 -0
- package/lib/certificates.d.ts.map +1 -0
- package/lib/certificates.js +463 -0
- package/lib/certificates.js.map +1 -0
- package/lib/encrypted-container.d.ts +106 -0
- package/lib/encrypted-container.d.ts.map +1 -0
- package/lib/encrypted-container.js +594 -0
- package/lib/encrypted-container.js.map +1 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/lib/log/common.d.ts +35 -0
- package/lib/log/common.d.ts.map +1 -0
- package/lib/log/common.js +19 -0
- package/lib/log/common.js.map +1 -0
- package/lib/log/index.d.ts +59 -0
- package/lib/log/index.d.ts.map +1 -0
- package/lib/log/index.js +207 -0
- package/lib/log/index.js.map +1 -0
- package/lib/log/target_console.d.ts +13 -0
- package/lib/log/target_console.d.ts.map +1 -0
- package/lib/log/target_console.js +44 -0
- package/lib/log/target_console.js.map +1 -0
- package/lib/resolver.d.ts +308 -0
- package/lib/resolver.d.ts.map +1 -0
- package/lib/resolver.js +1429 -0
- package/lib/resolver.js.map +1 -0
- package/lib/utils/array.d.ts +10 -0
- package/lib/utils/array.d.ts.map +1 -0
- package/lib/utils/array.js +12 -0
- package/lib/utils/array.js.map +1 -0
- package/lib/utils/asn1.d.ts +13 -0
- package/lib/utils/asn1.d.ts.map +1 -0
- package/lib/utils/asn1.js +8 -0
- package/lib/utils/asn1.js.map +1 -0
- package/lib/utils/buffer.d.ts +4 -0
- package/lib/utils/buffer.d.ts.map +1 -0
- package/lib/utils/buffer.js +3 -0
- package/lib/utils/buffer.js.map +1 -0
- package/lib/utils/crypto.d.ts +4 -0
- package/lib/utils/crypto.d.ts.map +1 -0
- package/lib/utils/crypto.js +4 -0
- package/lib/utils/crypto.js.map +1 -0
- package/lib/utils/index.d.ts +5 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +5 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/json.d.ts +8 -0
- package/lib/utils/json.d.ts.map +1 -0
- package/lib/utils/json.js +164 -0
- package/lib/utils/json.js.map +1 -0
- package/lib/utils/never.d.ts +8 -0
- package/lib/utils/never.d.ts.map +1 -0
- package/lib/utils/never.js +14 -0
- package/lib/utils/never.js.map +1 -0
- package/npm-shrinkwrap.json +16517 -0
- package/package.json +42 -0
- package/services/kyc/client.d.ts +139 -0
- package/services/kyc/client.d.ts.map +1 -0
- package/services/kyc/client.js +390 -0
- package/services/kyc/client.js.map +1 -0
- package/services/kyc/common.d.ts +65 -0
- package/services/kyc/common.d.ts.map +1 -0
- package/services/kyc/common.js +2 -0
- package/services/kyc/common.js.map +1 -0
package/.done
ADDED
|
File without changes
|
package/LICENSE
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { KeetaKYCAnchorClientConfig } from '../services/kyc/client.ts';
|
|
2
|
+
import KeetaKYCAnchorClient from '../services/kyc/client.js';
|
|
3
|
+
import * as lib from '../lib/index.js';
|
|
4
|
+
import * as KeetaNet from '@keetanetwork/keetanet-client';
|
|
5
|
+
export declare namespace KYC {
|
|
6
|
+
type ClientConfig = KeetaKYCAnchorClientConfig;
|
|
7
|
+
const Client: typeof KeetaKYCAnchorClient;
|
|
8
|
+
}
|
|
9
|
+
export { lib, KeetaNet };
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,0BAA0B,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAC;AAI1D,yBAAiB,GAAG,CAAC;IACpB,KAAY,YAAY,GAAG,0BAA0B,CAAC;IAC/C,MAAM,MAAM,EAAE,OAAO,oBAA2C,CAAC;CACxE;AAED,OAAO,EACN,GAAG,EACH,QAAQ,EACR,CAAC"}
|
package/client/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import KeetaKYCAnchorClient from '../services/kyc/client.js';
|
|
2
|
+
import * as lib from '../lib/index.js';
|
|
3
|
+
import * as KeetaNet from '@keetanetwork/keetanet-client';
|
|
4
|
+
// TODO: Determine how we want to export the client
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
6
|
+
export var KYC;
|
|
7
|
+
(function (KYC) {
|
|
8
|
+
KYC.Client = KeetaKYCAnchorClient;
|
|
9
|
+
})(KYC || (KYC = {}));
|
|
10
|
+
export { lib, KeetaNet };
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAGA,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAC;AAE1D,mDAAmD;AACnD,2DAA2D;AAC3D,MAAM,KAAW,GAAG,CAGnB;AAHD,WAAiB,GAAG;IAEN,UAAM,GAAgC,oBAAoB,CAAC;AACzE,CAAC,EAHgB,GAAG,KAAH,GAAG,QAGnB;AAED,OAAO,EACN,GAAG,EACH,QAAQ,EACR,CAAC","sourcesContent":["import type {\n\tKeetaKYCAnchorClientConfig\n} from '../services/kyc/client.ts';\nimport KeetaKYCAnchorClient from '../services/kyc/client.js';\nimport * as lib from '../lib/index.js';\nimport * as KeetaNet from '@keetanetwork/keetanet-client';\n\n// TODO: Determine how we want to export the client\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace KYC {\n\texport type ClientConfig = KeetaKYCAnchorClientConfig;\n\texport const Client: typeof KeetaKYCAnchorClient = KeetaKYCAnchorClient;\n}\n\nexport {\n\tlib,\n\tKeetaNet\n};\n"]}
|
package/config.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Resolver from './lib/resolver.js';
|
|
2
|
+
import type { Client as KeetaNetClient, UserClient as KeetaNetUserClient } from '@keetanetwork/keetanet-client';
|
|
3
|
+
import KeetaNet from '@keetanetwork/keetanet-client';
|
|
4
|
+
type KeetaNetNetworks = typeof KeetaNet.Client.Config.networksArray[number];
|
|
5
|
+
type ResolverOptions = Partial<Omit<ConstructorParameters<typeof Resolver>[0], 'client'>> & {
|
|
6
|
+
network?: bigint | KeetaNetNetworks | string | undefined;
|
|
7
|
+
};
|
|
8
|
+
export declare function getDefaultResolver(client: KeetaNetClient | KeetaNetUserClient, options?: ResolverOptions): Resolver;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=config.d.ts.map
|
package/config.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,KAAK,EACX,MAAM,IAAI,cAAc,EACxB,UAAU,IAAI,kBAAkB,EAChC,MAAM,+BAA+B,CAAC;AACvC,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AAErD,KAAK,gBAAgB,GAAG,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5E,KAAK,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG;IAE3F,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAC;CACzD,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,EAAE,OAAO,GAAE,eAAoB,GAAG,QAAQ,CAkCvH"}
|
package/config.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import Resolver from './lib/resolver.js';
|
|
2
|
+
import KeetaNet from '@keetanetwork/keetanet-client';
|
|
3
|
+
export function getDefaultResolver(client, options = {}) {
|
|
4
|
+
/**
|
|
5
|
+
* The default Root account for the resolver is the network account, so
|
|
6
|
+
* we need to look it up from what the user provided.
|
|
7
|
+
*/
|
|
8
|
+
if (options.network === undefined) {
|
|
9
|
+
if ('network' in client && client.network !== undefined) {
|
|
10
|
+
options.network = client.network;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
if (options.network === undefined) {
|
|
14
|
+
throw (new Error('Network must be specified in options or a UserClient must be provided with a network'));
|
|
15
|
+
}
|
|
16
|
+
let networkID;
|
|
17
|
+
if (typeof options.network === 'string') {
|
|
18
|
+
if (!KeetaNet.Client.Config.isNetwork(options.network)) {
|
|
19
|
+
throw (new Error(`Invalid network: ${options.network}`));
|
|
20
|
+
}
|
|
21
|
+
const networkAlias = KeetaNet.Client.Config.getNetworkAlias(options.network);
|
|
22
|
+
const defaultConfig = KeetaNet.Client.Config.getDefaultConfig(networkAlias);
|
|
23
|
+
networkID = defaultConfig.network;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
networkID = options.network;
|
|
27
|
+
}
|
|
28
|
+
const networkAccount = KeetaNet.lib.Account.generateNetworkAddress(networkID);
|
|
29
|
+
return (new Resolver({
|
|
30
|
+
client: client,
|
|
31
|
+
root: networkAccount,
|
|
32
|
+
trustedCAs: [],
|
|
33
|
+
...options
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=config.js.map
|
package/config.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAKzC,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AAQrD,MAAM,UAAU,kBAAkB,CAAC,MAA2C,EAAE,UAA2B,EAAE;IAC5G;;;OAGG;IACH,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACzD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAClC,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,MAAK,CAAC,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,SAAiB,CAAC;IACtB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,MAAK,CAAC,IAAI,KAAK,CAAC,oBAAoB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC5E,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC;IACnC,CAAC;SAAM,CAAC;QACP,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAC7B,CAAC;IACD,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAE9E,OAAM,CAAC,IAAI,QAAQ,CAAC;QACnB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,cAAc;QACpB,UAAU,EAAE,EAAE;QACd,GAAG,OAAO;KACV,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import Resolver from './lib/resolver.js';\nimport type {\n\tClient as KeetaNetClient,\n\tUserClient as KeetaNetUserClient\n} from '@keetanetwork/keetanet-client';\nimport KeetaNet from '@keetanetwork/keetanet-client';\n\ntype KeetaNetNetworks = typeof KeetaNet.Client.Config.networksArray[number];\ntype ResolverOptions = Partial<Omit<ConstructorParameters<typeof Resolver>[0], 'client'>> & {\n\t// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n\tnetwork?: bigint | KeetaNetNetworks | string | undefined;\n};\n\nexport function getDefaultResolver(client: KeetaNetClient | KeetaNetUserClient, options: ResolverOptions = {}): Resolver {\n\t/**\n\t * The default Root account for the resolver is the network account, so\n\t * we need to look it up from what the user provided.\n\t */\n\tif (options.network === undefined) {\n\t\tif ('network' in client && client.network !== undefined) {\n\t\t\toptions.network = client.network;\n\t\t}\n\t}\n\n\tif (options.network === undefined) {\n\t\tthrow(new Error('Network must be specified in options or a UserClient must be provided with a network'));\n\t}\n\n\tlet networkID: bigint;\n\tif (typeof options.network === 'string') {\n\t\tif (!KeetaNet.Client.Config.isNetwork(options.network)) {\n\t\t\tthrow(new Error(`Invalid network: ${options.network}`));\n\t\t}\n\t\tconst networkAlias = KeetaNet.Client.Config.getNetworkAlias(options.network);\n\t\tconst defaultConfig = KeetaNet.Client.Config.getDefaultConfig(networkAlias);\n\t\tnetworkID = defaultConfig.network;\n\t} else {\n\t\tnetworkID = options.network;\n\t}\n\tconst networkAccount = KeetaNet.lib.Account.generateNetworkAddress(networkID);\n\n\treturn(new Resolver({\n\t\tclient: client,\n\t\troot: networkAccount,\n\t\ttrustedCAs: [],\n\t\t...options\n\t}));\n}\n"]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import * as KeetaNetClient from '@keetanetwork/keetanet-client';
|
|
2
|
+
import { Buffer } from './utils/buffer.js';
|
|
3
|
+
type AccountKeyAlgorithm = InstanceType<typeof KeetaNetClient.lib.Account>['keyType'];
|
|
4
|
+
/**
|
|
5
|
+
* An alias for the KeetaNetAccount type
|
|
6
|
+
*/
|
|
7
|
+
type KeetaNetAccount = ReturnType<typeof KeetaNetClient.lib.Account.fromSeed<AccountKeyAlgorithm>>;
|
|
8
|
+
declare class SensitiveAttribute {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(account: KeetaNetAccount, data: Buffer | ArrayBuffer);
|
|
11
|
+
private decode;
|
|
12
|
+
/**
|
|
13
|
+
* Get the value of the sensitive attribute
|
|
14
|
+
*
|
|
15
|
+
* This will decrypt the value using the account's private key
|
|
16
|
+
* and return the value as an ArrayBuffer
|
|
17
|
+
*
|
|
18
|
+
* Since sensitive attributes are binary blobs, this returns an
|
|
19
|
+
* ArrayBuffer
|
|
20
|
+
*/
|
|
21
|
+
get(): Promise<ArrayBuffer>;
|
|
22
|
+
/**
|
|
23
|
+
* Get the value of the sensitive attribute as a string after being
|
|
24
|
+
* interpreted as UTF-8 ( @see SensitiveAttribute.get for more information)
|
|
25
|
+
*/
|
|
26
|
+
getString(): Promise<string>;
|
|
27
|
+
/**
|
|
28
|
+
* Generate a proof that a sensitive attribute is a given value,
|
|
29
|
+
* which can be validated by a third party using the certificate
|
|
30
|
+
* and the `validateProof` method
|
|
31
|
+
*/
|
|
32
|
+
proove(): Promise<{
|
|
33
|
+
value: string;
|
|
34
|
+
hash: {
|
|
35
|
+
salt: string;
|
|
36
|
+
};
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Validate the proof that a sensitive attribute is a given value
|
|
40
|
+
*/
|
|
41
|
+
validateProof(proof: Awaited<ReturnType<this['proove']>>): Promise<boolean>;
|
|
42
|
+
toJSON(): unknown;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Database of attributes
|
|
46
|
+
*/
|
|
47
|
+
declare const CertificateAttributeOIDDB: {
|
|
48
|
+
fullName: string;
|
|
49
|
+
dateOfBirth: string;
|
|
50
|
+
address: string;
|
|
51
|
+
email: string;
|
|
52
|
+
phoneNumber: string;
|
|
53
|
+
};
|
|
54
|
+
type CertificateAttributeNames = keyof typeof CertificateAttributeOIDDB;
|
|
55
|
+
type BaseCertificateBuilderParams = NonNullable<ConstructorParameters<typeof KeetaNetClient.lib.Utils.Certificate.CertificateBuilder>[0]>;
|
|
56
|
+
type CertificateBuilderParams = Required<Pick<BaseCertificateBuilderParams, 'issuer' | 'validFrom' | 'validTo' | 'serial' | 'hashLib' | 'issuerDN' | 'subjectDN' | 'isCA'> & {
|
|
57
|
+
/**
|
|
58
|
+
* The key of the subject -- used for Sensitive Attributes as well
|
|
59
|
+
* as the certificate Subject
|
|
60
|
+
*/
|
|
61
|
+
subject: BaseCertificateBuilderParams['subjectPublicKey'];
|
|
62
|
+
}>;
|
|
63
|
+
export declare class CertificateBuilder extends KeetaNetClient.lib.Utils.Certificate.CertificateBuilder {
|
|
64
|
+
#private;
|
|
65
|
+
/**
|
|
66
|
+
* Map the parameters from the public interface to the internal
|
|
67
|
+
* (Certificate library) interface
|
|
68
|
+
*/
|
|
69
|
+
private static mapParams;
|
|
70
|
+
constructor(params?: Partial<CertificateBuilderParams>);
|
|
71
|
+
/**
|
|
72
|
+
* Set a KYC Attribute to a given value
|
|
73
|
+
*/
|
|
74
|
+
setAttribute(name: CertificateAttributeNames, sensitive: boolean, value: ArrayBuffer | string): void;
|
|
75
|
+
protected addExtensions(...args: Parameters<InstanceType<typeof KeetaNetClient.lib.Utils.Certificate.CertificateBuilder>['addExtensions']>): ReturnType<InstanceType<typeof KeetaNetClient.lib.Utils.Certificate.CertificateBuilder>['addExtensions']>;
|
|
76
|
+
/**
|
|
77
|
+
* Create a Certificate object from the builder
|
|
78
|
+
*
|
|
79
|
+
* The parameters passed in are merged with the parameters passed in
|
|
80
|
+
* when constructing the builder
|
|
81
|
+
*/
|
|
82
|
+
build(params?: Partial<CertificateBuilderParams>): Promise<Certificate>;
|
|
83
|
+
}
|
|
84
|
+
export declare class Certificate extends KeetaNetClient.lib.Utils.Certificate.Certificate {
|
|
85
|
+
private readonly subjectKey;
|
|
86
|
+
static readonly Builder: typeof CertificateBuilder;
|
|
87
|
+
/**
|
|
88
|
+
* User KYC Attributes
|
|
89
|
+
*/
|
|
90
|
+
readonly attributes: {
|
|
91
|
+
[name: string]: {
|
|
92
|
+
sensitive: true;
|
|
93
|
+
value: SensitiveAttribute;
|
|
94
|
+
} | {
|
|
95
|
+
sensitive: false;
|
|
96
|
+
value: ArrayBuffer;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
constructor(input: ConstructorParameters<typeof KeetaNetClient.lib.Utils.Certificate.Certificate>[0], options?: ConstructorParameters<typeof KeetaNetClient.lib.Utils.Certificate.Certificate>[1] & {
|
|
100
|
+
subjectKey?: KeetaNetAccount;
|
|
101
|
+
});
|
|
102
|
+
protected finalizeConstruction(): void;
|
|
103
|
+
protected processExtension(id: string, value: ArrayBuffer): boolean;
|
|
104
|
+
}
|
|
105
|
+
export {};
|
|
106
|
+
//# sourceMappingURL=certificates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"certificates.d.ts","sourceRoot":"","sources":["../../src/lib/certificates.ts"],"names":[],"mappings":"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"}
|