@keetanetwork/anchor 0.0.3 → 0.0.5
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/client/index.d.ts +6 -0
- package/client/index.d.ts.map +1 -1
- package/client/index.js +7 -0
- package/client/index.js.map +1 -1
- package/lib/error.d.ts +14 -0
- package/lib/error.d.ts.map +1 -0
- package/lib/error.js +38 -0
- package/lib/error.js.map +1 -0
- package/lib/resolver.d.ts +159 -60
- package/lib/resolver.d.ts.map +1 -1
- package/lib/resolver.js +3519 -384
- package/lib/resolver.js.map +1 -1
- package/lib/utils/brand.d.ts +12 -0
- package/lib/utils/brand.d.ts.map +1 -0
- package/lib/utils/brand.js +2 -0
- package/lib/utils/brand.js.map +1 -0
- package/lib/utils/never.d.ts +4 -0
- package/lib/utils/never.d.ts.map +1 -1
- package/lib/utils/never.js.map +1 -1
- package/lib/utils/signing.d.ts +17 -0
- package/lib/utils/signing.d.ts.map +1 -0
- package/lib/utils/signing.js +73 -0
- package/lib/utils/signing.js.map +1 -0
- package/lib/utils/url.d.ts +2 -0
- package/lib/utils/url.d.ts.map +1 -0
- package/lib/utils/url.js +8 -0
- package/lib/utils/url.js.map +1 -0
- package/npm-shrinkwrap.json +13 -6
- package/package.json +4 -2
- package/services/fx/client.d.ts +137 -0
- package/services/fx/client.d.ts.map +1 -0
- package/services/fx/client.js +519 -0
- package/services/fx/client.js.map +1 -0
- package/services/fx/common.d.ts +133 -0
- package/services/fx/common.d.ts.map +1 -0
- package/services/fx/common.js +45 -0
- package/services/fx/common.js.map +1 -0
- package/services/fx/server.d.ts +77 -0
- package/services/fx/server.d.ts.map +1 -0
- package/services/fx/server.js +693 -0
- package/services/fx/server.js.map +1 -0
- package/services/kyc/client.d.ts +1 -1
- package/services/kyc/client.d.ts.map +1 -1
- package/services/kyc/client.js +7 -53
- package/services/kyc/client.js.map +1 -1
package/client/index.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import type { KeetaKYCAnchorClientConfig } from '../services/kyc/client.ts';
|
|
2
|
+
import type { KeetaFXAnchorClientConfig } from '../services/fx/client.ts';
|
|
2
3
|
import KeetaKYCAnchorClient from '../services/kyc/client.js';
|
|
4
|
+
import KeetaFXAnchorClient from '../services/fx/client.js';
|
|
3
5
|
import * as lib from '../lib/index.js';
|
|
4
6
|
import * as KeetaNet from '@keetanetwork/keetanet-client';
|
|
5
7
|
export declare namespace KYC {
|
|
6
8
|
type ClientConfig = KeetaKYCAnchorClientConfig;
|
|
7
9
|
const Client: typeof KeetaKYCAnchorClient;
|
|
8
10
|
}
|
|
11
|
+
export declare namespace FX {
|
|
12
|
+
type ClientConfig = KeetaFXAnchorClientConfig;
|
|
13
|
+
const Client: typeof KeetaFXAnchorClient;
|
|
14
|
+
}
|
|
9
15
|
export { lib, KeetaNet };
|
|
10
16
|
//# sourceMappingURL=index.d.ts.map
|
package/client/index.d.ts.map
CHANGED
|
@@ -1 +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"}
|
|
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,KAAK,EACX,yBAAyB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,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;AAGD,yBAAiB,EAAE,CAAC;IACnB,KAAY,YAAY,GAAG,yBAAyB,CAAC;IAC9C,MAAM,MAAM,EAAE,OAAO,mBAAyC,CAAC;CACtE;AAED,OAAO,EACN,GAAG,EACH,QAAQ,EACR,CAAC"}
|
package/client/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import KeetaKYCAnchorClient from '../services/kyc/client.js';
|
|
2
|
+
import KeetaFXAnchorClient from '../services/fx/client.js';
|
|
2
3
|
import * as lib from '../lib/index.js';
|
|
3
4
|
import * as KeetaNet from '@keetanetwork/keetanet-client';
|
|
4
5
|
// TODO: Determine how we want to export the client
|
|
@@ -7,5 +8,11 @@ export var KYC;
|
|
|
7
8
|
(function (KYC) {
|
|
8
9
|
KYC.Client = KeetaKYCAnchorClient;
|
|
9
10
|
})(KYC || (KYC = {}));
|
|
11
|
+
// TODO: Determine how we want to export the client
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
13
|
+
export var FX;
|
|
14
|
+
(function (FX) {
|
|
15
|
+
FX.Client = KeetaFXAnchorClient;
|
|
16
|
+
})(FX || (FX = {}));
|
|
10
17
|
export { lib, KeetaNet };
|
|
11
18
|
//# sourceMappingURL=index.js.map
|
package/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAMA,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,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;AACD,mDAAmD;AACnD,2DAA2D;AAC3D,MAAM,KAAW,EAAE,CAGlB;AAHD,WAAiB,EAAE;IAEL,SAAM,GAA+B,mBAAmB,CAAC;AACvE,CAAC,EAHgB,EAAE,KAAF,EAAE,QAGlB;AAED,OAAO,EACN,GAAG,EACH,QAAQ,EACR,CAAC","sourcesContent":["import type {\n\tKeetaKYCAnchorClientConfig\n} from '../services/kyc/client.ts';\nimport type {\n\tKeetaFXAnchorClientConfig\n} from '../services/fx/client.ts';\nimport KeetaKYCAnchorClient from '../services/kyc/client.js';\nimport KeetaFXAnchorClient from '../services/fx/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// TODO: Determine how we want to export the client\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace FX {\n\texport type ClientConfig = KeetaFXAnchorClientConfig;\n\texport const Client: typeof KeetaFXAnchorClient = KeetaFXAnchorClient;\n}\n\nexport {\n\tlib,\n\tKeetaNet\n};\n"]}
|
package/lib/error.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare class KeetaAnchorUserError extends Error {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
protected statusCode: number;
|
|
4
|
+
protected keetaAnchorUserErrorObjectTypeID: string;
|
|
5
|
+
private static readonly keetaAnchorUserErrorObjectTypeID;
|
|
6
|
+
static isInstance(input: unknown): input is KeetaAnchorUserError;
|
|
7
|
+
constructor(message: string);
|
|
8
|
+
asErrorResponse(contentType: 'text/plain' | 'application/json'): {
|
|
9
|
+
error: string;
|
|
10
|
+
statusCode: number;
|
|
11
|
+
contentType: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/lib/error.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,UAAU,SAAO;IAC3B,SAAS,CAAC,gCAAgC,EAAG,MAAM,CAAC;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAA0C;IAElG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB;gBAgBpD,OAAO,EAAE,MAAM;IAU3B,eAAe,CAAC,WAAW,EAAE,YAAY,GAAG,kBAAkB,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;CAY3H"}
|
package/lib/error.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export class KeetaAnchorUserError extends Error {
|
|
2
|
+
name;
|
|
3
|
+
statusCode = 400;
|
|
4
|
+
keetaAnchorUserErrorObjectTypeID;
|
|
5
|
+
static keetaAnchorUserErrorObjectTypeID = 'a1e64819-14b6-45ac-a1ec-b9c0bdd51e7b';
|
|
6
|
+
static isInstance(input) {
|
|
7
|
+
if (typeof input !== 'object' || input === null) {
|
|
8
|
+
return (false);
|
|
9
|
+
}
|
|
10
|
+
if (!('keetaAnchorUserErrorObjectTypeID' in input)) {
|
|
11
|
+
return (false);
|
|
12
|
+
}
|
|
13
|
+
if (input.keetaAnchorUserErrorObjectTypeID !== KeetaAnchorUserError.keetaAnchorUserErrorObjectTypeID) {
|
|
14
|
+
return (false);
|
|
15
|
+
}
|
|
16
|
+
return (true);
|
|
17
|
+
}
|
|
18
|
+
constructor(message) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.name = 'KeetaAnchorUserError';
|
|
21
|
+
Object.defineProperty(this, 'keetaAnchorUserErrorObjectTypeID', {
|
|
22
|
+
value: KeetaAnchorUserError.keetaAnchorUserErrorObjectTypeID,
|
|
23
|
+
enumerable: false
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
asErrorResponse(contentType) {
|
|
27
|
+
let message = this.message;
|
|
28
|
+
if (contentType === 'application/json') {
|
|
29
|
+
message = JSON.stringify({ ok: false, error: this.message });
|
|
30
|
+
}
|
|
31
|
+
return ({
|
|
32
|
+
error: message,
|
|
33
|
+
statusCode: this.statusCode,
|
|
34
|
+
contentType: contentType
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=error.js.map
|
package/lib/error.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/lib/error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACrC,IAAI,CAAS;IACZ,UAAU,GAAG,GAAG,CAAC;IACjB,gCAAgC,CAAU;IAC5C,MAAM,CAAU,gCAAgC,GAAG,sCAAsC,CAAC;IAElG,MAAM,CAAC,UAAU,CAAC,KAAc;QAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjD,OAAM,CAAC,KAAK,CAAC,CAAC;QACf,CAAC;QAED,IAAI,CAAC,CAAC,kCAAkC,IAAI,KAAK,CAAC,EAAE,CAAC;YACpD,OAAM,CAAC,KAAK,CAAC,CAAC;QACf,CAAC;QAED,IAAI,KAAK,CAAC,gCAAgC,KAAK,oBAAoB,CAAC,gCAAgC,EAAE,CAAC;YACtG,OAAM,CAAC,KAAK,CAAC,CAAC;QACf,CAAC;QAED,OAAM,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QAEnC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kCAAkC,EAAE;YAC/D,KAAK,EAAE,oBAAoB,CAAC,gCAAgC;YAC5D,UAAU,EAAE,KAAK;SACjB,CAAC,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,WAA8C;QAC7D,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,WAAW,KAAK,kBAAkB,EAAE,CAAC;YACxC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,OAAM,CAAC;YACN,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,WAAW;SACxB,CAAC,CAAC;IACJ,CAAC","sourcesContent":["export class KeetaAnchorUserError extends Error {\n\treadonly name: string;\n\tprotected statusCode = 400;\n\tprotected keetaAnchorUserErrorObjectTypeID!: string;\n\tprivate static readonly keetaAnchorUserErrorObjectTypeID = 'a1e64819-14b6-45ac-a1ec-b9c0bdd51e7b';\n\n\tstatic isInstance(input: unknown): input is KeetaAnchorUserError {\n\t\tif (typeof input !== 'object' || input === null) {\n\t\t\treturn(false);\n\t\t}\n\n\t\tif (!('keetaAnchorUserErrorObjectTypeID' in input)) {\n\t\t\treturn(false);\n\t\t}\n\n\t\tif (input.keetaAnchorUserErrorObjectTypeID !== KeetaAnchorUserError.keetaAnchorUserErrorObjectTypeID) {\n\t\t\treturn(false);\n\t\t}\n\n\t\treturn(true);\n\t}\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = 'KeetaAnchorUserError';\n\n\t\tObject.defineProperty(this, 'keetaAnchorUserErrorObjectTypeID', {\n\t\t\tvalue: KeetaAnchorUserError.keetaAnchorUserErrorObjectTypeID,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tasErrorResponse(contentType: 'text/plain' | 'application/json'): { error: string; statusCode: number; contentType: string } {\n\t\tlet message = this.message;\n\t\tif (contentType === 'application/json') {\n\t\t\tmessage = JSON.stringify({ ok: false, error: this.message });\n\t\t}\n\n\t\treturn({\n\t\t\terror: message,\n\t\t\tstatusCode: this.statusCode,\n\t\t\tcontentType: contentType\n\t\t});\n\t}\n}\n"]}
|
package/lib/resolver.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as KeetaNetClient from '@keetanetwork/keetanet-client';
|
|
2
|
-
import CurrencyInfo from '@keetanetwork/currency-info';
|
|
2
|
+
import * as CurrencyInfo from '@keetanetwork/currency-info';
|
|
3
3
|
import type { Logger } from './log/index.ts';
|
|
4
4
|
import type { JSONSerializable } from './utils/json.ts';
|
|
5
5
|
type ExternalURL = {
|
|
@@ -7,25 +7,33 @@ type ExternalURL = {
|
|
|
7
7
|
url: string;
|
|
8
8
|
};
|
|
9
9
|
type KeetaNetAccount = InstanceType<typeof KeetaNetClient.lib.Account>;
|
|
10
|
-
|
|
11
|
-
type
|
|
10
|
+
declare const KeetaNetAccount: typeof KeetaNetClient.lib.Account;
|
|
11
|
+
type KeetaNetAccountTokenPublicKeyString = ReturnType<InstanceType<typeof KeetaNetClient.lib.Account<typeof KeetaNetAccount.AccountKeyAlgorithm.TOKEN>>['publicKeyString']['get']>;
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Canonical form of a currency code for use in the ServiceMetadata
|
|
14
|
+
* Which is either the ISO currency code (e.g. "USD", "EUR", "JPY")
|
|
15
|
+
* or a cryptocurrency code prefixed with a dollar sign (e.g. "$BTC", "$ETH")
|
|
14
16
|
*/
|
|
15
|
-
type
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}>;
|
|
17
|
+
type ServiceMetadataCurrencyCodeCanonical = CurrencyInfo.ISOCurrencyCode | `$${string}`;
|
|
18
|
+
/**
|
|
19
|
+
* Input types which can be used to search for which token represents
|
|
20
|
+
* a given currency or cryptocurrency.
|
|
21
|
+
*/
|
|
22
|
+
type CurrencySearchInput = ServiceMetadataCurrencyCodeCanonical | CurrencyInfo.ISOCurrencyNumber | CurrencyInfo.Currency;
|
|
23
|
+
type CurrencySearchCanonical = ServiceMetadataCurrencyCodeCanonical;
|
|
24
|
+
type CountrySearchInput = CurrencyInfo.ISOCountryCode | CurrencyInfo.ISOCountryNumber | CurrencyInfo.Country;
|
|
24
25
|
/**
|
|
25
26
|
* Service Metadata General Structure
|
|
26
27
|
*/
|
|
27
28
|
type ServiceMetadata = {
|
|
28
29
|
version: number;
|
|
30
|
+
/**
|
|
31
|
+
* Map of the currency code to the token public key which
|
|
32
|
+
* represents that currency.
|
|
33
|
+
*/
|
|
34
|
+
currencyMap: {
|
|
35
|
+
[currencyCode in ServiceMetadataCurrencyCodeCanonical]?: KeetaNetAccountTokenPublicKeyString;
|
|
36
|
+
};
|
|
29
37
|
services: {
|
|
30
38
|
banking?: {
|
|
31
39
|
[id: string]: {
|
|
@@ -78,23 +86,82 @@ type ServiceMetadata = {
|
|
|
78
86
|
ca: string;
|
|
79
87
|
};
|
|
80
88
|
};
|
|
89
|
+
/**
|
|
90
|
+
* Foreign Exchange (FX) services
|
|
91
|
+
*
|
|
92
|
+
* This is used to identify service providers which
|
|
93
|
+
* can convert currency from one currency to another.
|
|
94
|
+
*/
|
|
81
95
|
fx?: {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Provider ID which identifies the FX provider
|
|
98
|
+
*/
|
|
99
|
+
[id: string]: {
|
|
100
|
+
operations: {
|
|
101
|
+
/**
|
|
102
|
+
* Get an estimate for a currency
|
|
103
|
+
* conversion (optional)
|
|
104
|
+
*/
|
|
105
|
+
getEstimate?: string;
|
|
106
|
+
/**
|
|
107
|
+
* Get a quote for a currency
|
|
108
|
+
* conversion
|
|
109
|
+
*/
|
|
110
|
+
getQuote: string;
|
|
111
|
+
/**
|
|
112
|
+
* Create an exchange to convert
|
|
113
|
+
* currency
|
|
114
|
+
*/
|
|
115
|
+
createExchange: string;
|
|
116
|
+
/**
|
|
117
|
+
* Get the status of an exchange
|
|
118
|
+
* which was previously created
|
|
119
|
+
*/
|
|
120
|
+
getExchangeStatus: string;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Path for which can be used to identify which
|
|
124
|
+
* currencies this FX provider can convert
|
|
125
|
+
* between.
|
|
126
|
+
*/
|
|
127
|
+
from: {
|
|
128
|
+
/**
|
|
129
|
+
* Currency code which this FX provider can
|
|
130
|
+
* convert from
|
|
131
|
+
*/
|
|
132
|
+
currencyCodes: KeetaNetAccountTokenPublicKeyString[];
|
|
133
|
+
/**
|
|
134
|
+
* Currency codes which this FX provider can
|
|
135
|
+
* convert to from the `from.currencyCode`
|
|
136
|
+
*/
|
|
137
|
+
to: KeetaNetAccountTokenPublicKeyString[];
|
|
138
|
+
/**
|
|
139
|
+
* KYC providers which this FX provider
|
|
140
|
+
* supports (DN) -- if not specified,
|
|
141
|
+
* then it does not require KYC.
|
|
142
|
+
*/
|
|
143
|
+
kycProviders?: string[];
|
|
144
|
+
}[];
|
|
145
|
+
};
|
|
86
146
|
};
|
|
87
147
|
inbound?: {
|
|
88
|
-
|
|
148
|
+
[id: string]: {
|
|
149
|
+
workInProgress?: true;
|
|
150
|
+
};
|
|
89
151
|
};
|
|
90
152
|
outbound?: {
|
|
91
|
-
|
|
153
|
+
[id: string]: {
|
|
154
|
+
workInProgress?: true;
|
|
155
|
+
};
|
|
92
156
|
};
|
|
93
157
|
cards?: {
|
|
94
|
-
|
|
158
|
+
[id: string]: {
|
|
159
|
+
workInProgress?: true;
|
|
160
|
+
};
|
|
95
161
|
};
|
|
96
162
|
};
|
|
97
163
|
};
|
|
164
|
+
type ServiceMetadataExternalizable = ToJSONValuizable<ServiceMetadata>;
|
|
98
165
|
/**
|
|
99
166
|
* Types of services which can be resolved
|
|
100
167
|
*/
|
|
@@ -126,12 +193,17 @@ type ServiceSearchCriteria<T extends Services> = {
|
|
|
126
193
|
* Search for a provider which can convert from the following
|
|
127
194
|
* input currency
|
|
128
195
|
*/
|
|
129
|
-
inputCurrencyCode
|
|
196
|
+
inputCurrencyCode?: CurrencySearchInput | KeetaNetAccountTokenPublicKeyString;
|
|
130
197
|
/**
|
|
131
198
|
* Search for a provider which can convert to the following
|
|
132
199
|
* output currency
|
|
133
200
|
*/
|
|
134
|
-
outputCurrencyCode
|
|
201
|
+
outputCurrencyCode?: CurrencySearchInput | KeetaNetAccountTokenPublicKeyString;
|
|
202
|
+
/**
|
|
203
|
+
* Search for a provider which supports ANY of the following
|
|
204
|
+
* KYC providers
|
|
205
|
+
*/
|
|
206
|
+
kycProviders?: string[];
|
|
135
207
|
};
|
|
136
208
|
'kyc': {
|
|
137
209
|
/**
|
|
@@ -150,34 +222,14 @@ type ServiceSearchCriteria<T extends Services> = {
|
|
|
150
222
|
workInProgress: true;
|
|
151
223
|
};
|
|
152
224
|
}[T];
|
|
153
|
-
type
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
* A KeetaNet Client to access the network using.
|
|
162
|
-
*/
|
|
163
|
-
client: KeetaNetClient.Client | KeetaNetClient.UserClient;
|
|
164
|
-
/**
|
|
165
|
-
* A list of trusted Certificate Authorities to use when connecting to
|
|
166
|
-
* external HTTPS services.
|
|
167
|
-
*/
|
|
168
|
-
trustedCAs: string[];
|
|
169
|
-
/**
|
|
170
|
-
* Logger to use for debugging
|
|
171
|
-
*/
|
|
172
|
-
logger?: Logger;
|
|
173
|
-
/**
|
|
174
|
-
* ID for this instance of the resolver
|
|
175
|
-
*/
|
|
176
|
-
id?: string;
|
|
177
|
-
/**
|
|
178
|
-
* Caching Parameters
|
|
179
|
-
*/
|
|
180
|
-
cache?: Omit<NonNullable<MetadataConfig['cache']>, 'instance'>;
|
|
225
|
+
type ResolverLookupServiceResults<Service extends Services> = {
|
|
226
|
+
[id: string]: ToValuizableObject<NonNullable<ServiceMetadata['services'][Service]>[string]>;
|
|
227
|
+
};
|
|
228
|
+
type ServicesMetadataLookupMap = {
|
|
229
|
+
[Service in Services]: {
|
|
230
|
+
criteria: ServiceSearchCriteria<Service>;
|
|
231
|
+
results: ResolverLookupServiceResults<Service>;
|
|
232
|
+
};
|
|
181
233
|
};
|
|
182
234
|
type JSONSerializablePrimitive = Exclude<JSONSerializable, object>;
|
|
183
235
|
type ValuizeInput = JSONSerializablePrimitive | ValuizableObject | ValuizableArray;
|
|
@@ -220,6 +272,47 @@ type ToJSONValuizableObject<T extends object> = {
|
|
|
220
272
|
type ToJSONValuizable<T> = ToJSONValuizableObject<{
|
|
221
273
|
tmp: T;
|
|
222
274
|
}>['tmp'];
|
|
275
|
+
/**
|
|
276
|
+
* A cache object
|
|
277
|
+
*/
|
|
278
|
+
type URLCacheObject = Map<string, {
|
|
279
|
+
pass: true;
|
|
280
|
+
value: JSONSerializable;
|
|
281
|
+
expires: Date;
|
|
282
|
+
} | {
|
|
283
|
+
pass: false;
|
|
284
|
+
error: unknown;
|
|
285
|
+
expires: Date;
|
|
286
|
+
}>;
|
|
287
|
+
type ResolverConfig = {
|
|
288
|
+
/**
|
|
289
|
+
* The "root" account to use as the basis for all lookups. It should
|
|
290
|
+
* contain the authoritative information for resolving in its
|
|
291
|
+
* Metadata.
|
|
292
|
+
*/
|
|
293
|
+
root: KeetaNetAccount;
|
|
294
|
+
/**
|
|
295
|
+
* A KeetaNet Client to access the network using.
|
|
296
|
+
*/
|
|
297
|
+
client: KeetaNetClient.Client | KeetaNetClient.UserClient;
|
|
298
|
+
/**
|
|
299
|
+
* A list of trusted Certificate Authorities to use when connecting to
|
|
300
|
+
* external HTTPS services.
|
|
301
|
+
*/
|
|
302
|
+
trustedCAs: string[];
|
|
303
|
+
/**
|
|
304
|
+
* Logger to use for debugging
|
|
305
|
+
*/
|
|
306
|
+
logger?: Logger;
|
|
307
|
+
/**
|
|
308
|
+
* ID for this instance of the resolver
|
|
309
|
+
*/
|
|
310
|
+
id?: string;
|
|
311
|
+
/**
|
|
312
|
+
* Caching Parameters
|
|
313
|
+
*/
|
|
314
|
+
cache?: Omit<NonNullable<MetadataConfig['cache']>, 'instance'>;
|
|
315
|
+
};
|
|
223
316
|
type MetadataConfig = {
|
|
224
317
|
trustedCAs: ResolverConfig['trustedCAs'];
|
|
225
318
|
client: KeetaNetClient.Client;
|
|
@@ -251,7 +344,11 @@ declare class Metadata implements ValuizableInstance {
|
|
|
251
344
|
* Assert that the supplied value is a valid Metadata Root Object
|
|
252
345
|
*/
|
|
253
346
|
static assertMetadata(value: unknown): asserts value is ToJSONValuizable<ServiceMetadata>;
|
|
347
|
+
static isValuizable(value: unknown): value is ValuizableMethod;
|
|
254
348
|
constructor(url: string | URL, config: MetadataConfig);
|
|
349
|
+
/**
|
|
350
|
+
* @param metadata Metadata to parse -- base64 encoded string or ArrayBuffer
|
|
351
|
+
*/
|
|
255
352
|
private parseMetadata;
|
|
256
353
|
private readKeetaNetURL;
|
|
257
354
|
private readHTTPSURL;
|
|
@@ -284,25 +381,27 @@ type ResolverStats = {
|
|
|
284
381
|
miss: number;
|
|
285
382
|
};
|
|
286
383
|
};
|
|
287
|
-
type ResolverLookupBankingResults = {
|
|
288
|
-
[id: string]: ToValuizableObject<NonNullable<ServiceMetadata['services']['banking']>[string]>;
|
|
289
|
-
};
|
|
290
|
-
type ResolverLookupKYCResults = {
|
|
291
|
-
[id: string]: ToValuizableObject<NonNullable<ServiceMetadata['services']['kyc']>[string]>;
|
|
292
|
-
};
|
|
293
384
|
declare class Resolver {
|
|
294
385
|
#private;
|
|
295
386
|
readonly id: string;
|
|
296
387
|
static readonly Metadata: typeof Metadata;
|
|
388
|
+
private readonly lookupMap;
|
|
297
389
|
constructor(config: ResolverConfig);
|
|
298
390
|
get stats(): ResolverStats;
|
|
299
391
|
private lookupBankingServices;
|
|
300
392
|
private lookupKYCServices;
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
393
|
+
private lookupFXServices;
|
|
394
|
+
listTokens(): Promise<{
|
|
395
|
+
token: KeetaNetAccountTokenPublicKeyString;
|
|
396
|
+
currency: CurrencySearchCanonical;
|
|
397
|
+
}[]>;
|
|
398
|
+
lookupToken(currencyCode: CurrencySearchInput | KeetaNetAccountTokenPublicKeyString): Promise<{
|
|
399
|
+
token: KeetaNetAccountTokenPublicKeyString;
|
|
400
|
+
currency: CurrencySearchCanonical;
|
|
401
|
+
} | null>;
|
|
402
|
+
lookup<T extends keyof ServicesMetadataLookupMap>(service: T, criteria: ServicesMetadataLookupMap[T]['criteria']): Promise<ServicesMetadataLookupMap[T]['results'] | undefined>;
|
|
304
403
|
clearCache(): void;
|
|
305
404
|
}
|
|
306
405
|
export default Resolver;
|
|
307
|
-
export type { ServiceMetadata, ServiceSearchCriteria, Services };
|
|
406
|
+
export type { ServiceMetadata, ServiceMetadataExternalizable, ServiceSearchCriteria, Services };
|
|
308
407
|
//# sourceMappingURL=resolver.d.ts.map
|
package/lib/resolver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/lib/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,+BAA+B,CAAC;AAChE,OAAO,YAAY,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/lib/resolver.ts"],"names":[],"mappings":"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"}
|