@kamino-finance/klend-sdk 5.13.24 → 5.14.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/classes/shared.d.ts +1 -0
- package/dist/classes/shared.d.ts.map +1 -1
- package/dist/classes/shared.js.map +1 -1
- package/dist/utils/api.d.ts +5 -1
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/api.js +15 -6
- package/dist/utils/api.js.map +1 -1
- package/dist/utils/constants.d.ts +1 -1
- package/dist/utils/constants.js +1 -1
- package/package.json +1 -1
- package/src/classes/shared.ts +1 -0
- package/src/utils/api.ts +20 -6
- package/src/utils/constants.ts +1 -1
package/dist/classes/shared.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/classes/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAEjD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/classes/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAEjD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,SAAS,CAAC;IACvB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,4BAA4B,EAAE,MAAM,CAAC;IACrC,2BAA2B,EAAE,MAAM,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,OAAO,CAAC;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB,CAAC;AAEF,oBAAY,cAAc;IACxB,SAAS,cAAc;IACvB,SAAS,cAAc;CACxB;AAED,MAAM,MAAM,IAAI,GAAG;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/classes/shared.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/classes/shared.ts"],"names":[],"mappings":";;;AAsBA,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;IACrB,kCAAiB,CAAA;AACnB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAiCD,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,yCAAuB,CAAA;AACzB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB"}
|
package/dist/utils/api.d.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { PublicKey } from '@solana/web3.js';
|
|
2
2
|
import { ConfigType } from '../classes';
|
|
3
3
|
import { IBackOffOptions } from 'exponential-backoff';
|
|
4
|
+
export type ApiFilterOptions = {
|
|
5
|
+
includeCurated?: boolean;
|
|
6
|
+
};
|
|
4
7
|
/**
|
|
5
8
|
* Fetch config from the API
|
|
6
9
|
* A good place to start to find active klend markets without expensive RPC calls
|
|
7
10
|
*
|
|
8
11
|
* @param programId - The program id to retrieve config for
|
|
9
12
|
* @param source - CDN is a json file hosted in the cloud, API is a webserver
|
|
13
|
+
* @param filterOptions - Config options to filter markets by
|
|
10
14
|
*/
|
|
11
|
-
export declare function getMarketsFromApi(programId?: PublicKey, source?: 'API' | 'CDN'): Promise<ConfigType>;
|
|
15
|
+
export declare function getMarketsFromApi(programId?: PublicKey, source?: 'API' | 'CDN', filterOptions?: ApiFilterOptions): Promise<ConfigType>;
|
|
12
16
|
export declare const KAMINO_CDN_RETRY: Partial<IBackOffOptions>;
|
|
13
17
|
export declare const KAMINO_API_RETRY: Partial<IBackOffOptions>;
|
|
14
18
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/utils/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAW,MAAM,qBAAqB,CAAC;AAG/D
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAW,MAAM,qBAAqB,CAAC;AAG/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,GAAE,SAAsB,EACjC,MAAM,GAAE,KAAK,GAAG,KAAa,EAC7B,aAAa,GAAE,gBAAqB,GACnC,OAAO,CAAC,UAAU,CAAC,CAqBrB;AAED,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,eAAe,CAYrD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,eAAe,CAYrD,CAAC"}
|
package/dist/utils/api.js
CHANGED
|
@@ -16,17 +16,26 @@ const lib_1 = require("../lib");
|
|
|
16
16
|
*
|
|
17
17
|
* @param programId - The program id to retrieve config for
|
|
18
18
|
* @param source - CDN is a json file hosted in the cloud, API is a webserver
|
|
19
|
+
* @param filterOptions - Config options to filter markets by
|
|
19
20
|
*/
|
|
20
|
-
async function getMarketsFromApi(programId = lib_1.PROGRAM_ID, source = 'CDN') {
|
|
21
|
-
|
|
21
|
+
async function getMarketsFromApi(programId = lib_1.PROGRAM_ID, source = 'CDN', filterOptions = {}) {
|
|
22
|
+
const defaultedFilterOptions = {
|
|
23
|
+
includeCurated: filterOptions.includeCurated || true
|
|
24
|
+
};
|
|
25
|
+
let unfilteredConfigs = {};
|
|
22
26
|
if (source === 'CDN') {
|
|
23
|
-
|
|
27
|
+
unfilteredConfigs = (await (0, exponential_backoff_1.backOff)(() => axios_1.default.get(utils_1.CDN_ENDPOINT), exports.KAMINO_CDN_RETRY)).data[programId.toString()];
|
|
24
28
|
}
|
|
25
|
-
if (!
|
|
29
|
+
if (!unfilteredConfigs || (0, classes_1.isEmptyObject)(unfilteredConfigs)) {
|
|
26
30
|
const API_ENDPOINT = (0, utils_1.getApiEndpoint)(programId);
|
|
27
|
-
|
|
31
|
+
unfilteredConfigs = (await (0, exponential_backoff_1.backOff)(() => axios_1.default.get(API_ENDPOINT), exports.KAMINO_API_RETRY)).data;
|
|
28
32
|
}
|
|
29
|
-
return
|
|
33
|
+
return unfilteredConfigs.filter((c) => {
|
|
34
|
+
if (!defaultedFilterOptions.includeCurated) {
|
|
35
|
+
return !c.isCurated;
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
});
|
|
30
39
|
}
|
|
31
40
|
exports.KAMINO_CDN_RETRY = {
|
|
32
41
|
maxDelay: 1000,
|
package/dist/utils/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":";;;;;;AAmBA,8CAyBC;AA3CD,kDAA0B;AAC1B,wCAAuD;AACvD,oCAAwD;AACxD,6DAA+D;AAC/D,gCAAoC;AAMpC;;;;;;;GAOG;AACI,KAAK,UAAU,iBAAiB,CACrC,YAAuB,gBAAU,EACjC,SAAwB,KAAK,EAC7B,gBAAkC,EAAE;IAEpC,MAAM,sBAAsB,GAA+B;QACzD,cAAc,EAAE,aAAa,CAAC,cAAc,IAAI,IAAI;KACrD,CAAC;IAEF,IAAI,iBAAiB,GAAe,EAAgB,CAAC;IACrD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,iBAAiB,GAAG,CAAC,MAAM,IAAA,6BAAO,EAAC,GAAG,EAAE,CAAC,eAAK,CAAC,GAAG,CAAC,oBAAY,CAAC,EAAE,wBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAe,CAAC;IAChI,CAAC;IAED,IAAI,CAAC,iBAAiB,IAAI,IAAA,uBAAa,EAAC,iBAAiB,CAAC,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,IAAA,sBAAc,EAAC,SAAS,CAAC,CAAC;QAC/C,iBAAiB,GAAG,CAAC,MAAM,IAAA,6BAAO,EAAC,GAAG,EAAE,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,wBAAgB,CAAC,CAAC,CAAC,IAAkB,CAAC;IAC1G,CAAC;IAED,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,CAAC;YAC3C,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,gBAAgB,GAA6B;IACxD,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,CAAC,CAAM,EAAE,aAAqB,EAAE,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC;YACX,aAAa;YACb,OAAO,EAAE,8DAA8D;SACxE,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEW,QAAA,gBAAgB,GAA6B;IACxD,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,CAAC,CAAM,EAAE,aAAqB,EAAE,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC;YACX,aAAa;YACb,OAAO,EAAE,sEAAsE;SAChF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
|
|
@@ -10,7 +10,7 @@ export declare const TOTAL_NUMBER_OF_IDS_TO_CHECK = 25;
|
|
|
10
10
|
export type ENV = 'mainnet-beta' | 'devnet' | 'localnet';
|
|
11
11
|
export declare function isENV(value: any): value is ENV;
|
|
12
12
|
export declare function getApiEndpoint(programId: PublicKey): string;
|
|
13
|
-
export declare const CDN_ENDPOINT = "https://cdn.kamino.finance/
|
|
13
|
+
export declare const CDN_ENDPOINT = "https://cdn.kamino.finance/kamino_lend_config_v3.json";
|
|
14
14
|
export declare const ONE_HUNDRED_PCT_IN_BPS = 10000;
|
|
15
15
|
export declare function getProgramId(env?: 'mainnet-beta' | 'staging'): PublicKey;
|
|
16
16
|
/**
|
package/dist/utils/constants.js
CHANGED
|
@@ -29,7 +29,7 @@ function getApiEndpoint(programId) {
|
|
|
29
29
|
return `https://api.hubbleprotocol.io/v2/kamino-market/?programId=${programId.toString()}`;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
exports.CDN_ENDPOINT = 'https://cdn.kamino.finance/
|
|
32
|
+
exports.CDN_ENDPOINT = 'https://cdn.kamino.finance/kamino_lend_config_v3.json';
|
|
33
33
|
exports.ONE_HUNDRED_PCT_IN_BPS = 10_000;
|
|
34
34
|
function getProgramId(env = 'mainnet-beta') {
|
|
35
35
|
if (env === 'mainnet-beta') {
|
package/package.json
CHANGED
package/src/classes/shared.ts
CHANGED
package/src/utils/api.ts
CHANGED
|
@@ -5,29 +5,43 @@ import { CDN_ENDPOINT, getApiEndpoint } from '../utils';
|
|
|
5
5
|
import { IBackOffOptions, backOff } from 'exponential-backoff';
|
|
6
6
|
import { PROGRAM_ID } from '../lib';
|
|
7
7
|
|
|
8
|
+
export type ApiFilterOptions = {
|
|
9
|
+
includeCurated?: boolean;
|
|
10
|
+
};
|
|
11
|
+
|
|
8
12
|
/**
|
|
9
13
|
* Fetch config from the API
|
|
10
14
|
* A good place to start to find active klend markets without expensive RPC calls
|
|
11
15
|
*
|
|
12
16
|
* @param programId - The program id to retrieve config for
|
|
13
17
|
* @param source - CDN is a json file hosted in the cloud, API is a webserver
|
|
18
|
+
* @param filterOptions - Config options to filter markets by
|
|
14
19
|
*/
|
|
15
20
|
export async function getMarketsFromApi(
|
|
16
21
|
programId: PublicKey = PROGRAM_ID,
|
|
17
|
-
source: 'API' | 'CDN' = 'CDN'
|
|
22
|
+
source: 'API' | 'CDN' = 'CDN',
|
|
23
|
+
filterOptions: ApiFilterOptions = {},
|
|
18
24
|
): Promise<ConfigType> {
|
|
19
|
-
|
|
25
|
+
const defaultedFilterOptions: Required<ApiFilterOptions> = {
|
|
26
|
+
includeCurated: filterOptions.includeCurated || true
|
|
27
|
+
};
|
|
20
28
|
|
|
29
|
+
let unfilteredConfigs: ConfigType = {} as ConfigType;
|
|
21
30
|
if (source === 'CDN') {
|
|
22
|
-
|
|
31
|
+
unfilteredConfigs = (await backOff(() => axios.get(CDN_ENDPOINT), KAMINO_CDN_RETRY)).data[programId.toString()] as ConfigType;
|
|
23
32
|
}
|
|
24
33
|
|
|
25
|
-
if (!
|
|
34
|
+
if (!unfilteredConfigs || isEmptyObject(unfilteredConfigs)) {
|
|
26
35
|
const API_ENDPOINT = getApiEndpoint(programId);
|
|
27
|
-
|
|
36
|
+
unfilteredConfigs = (await backOff(() => axios.get(API_ENDPOINT), KAMINO_API_RETRY)).data as ConfigType;
|
|
28
37
|
}
|
|
29
38
|
|
|
30
|
-
return
|
|
39
|
+
return unfilteredConfigs.filter((c) => {
|
|
40
|
+
if (!defaultedFilterOptions.includeCurated) {
|
|
41
|
+
return !c.isCurated;
|
|
42
|
+
}
|
|
43
|
+
return true;
|
|
44
|
+
});
|
|
31
45
|
}
|
|
32
46
|
|
|
33
47
|
export const KAMINO_CDN_RETRY: Partial<IBackOffOptions> = {
|
package/src/utils/constants.ts
CHANGED
|
@@ -27,7 +27,7 @@ export function getApiEndpoint(programId: PublicKey) {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
export const CDN_ENDPOINT = 'https://cdn.kamino.finance/
|
|
30
|
+
export const CDN_ENDPOINT = 'https://cdn.kamino.finance/kamino_lend_config_v3.json';
|
|
31
31
|
|
|
32
32
|
export const ONE_HUNDRED_PCT_IN_BPS = 10_000;
|
|
33
33
|
|