@cardano-sdk/cardano-services-client 0.21.7 → 0.22.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/AssetInfoProvider/BlockfrostAssetProvider.d.ts +19 -0
- package/dist/cjs/AssetInfoProvider/BlockfrostAssetProvider.d.ts.map +1 -0
- package/dist/cjs/AssetInfoProvider/BlockfrostAssetProvider.js +144 -0
- package/dist/cjs/AssetInfoProvider/BlockfrostAssetProvider.js.map +1 -0
- package/dist/cjs/AssetInfoProvider/index.d.ts +1 -0
- package/dist/cjs/AssetInfoProvider/index.d.ts.map +1 -1
- package/dist/cjs/AssetInfoProvider/index.js +1 -0
- package/dist/cjs/AssetInfoProvider/index.js.map +1 -1
- package/dist/cjs/blockfrost/BlockfrostClient.d.ts +26 -0
- package/dist/cjs/blockfrost/BlockfrostClient.d.ts.map +1 -0
- package/dist/cjs/blockfrost/BlockfrostClient.js +49 -0
- package/dist/cjs/blockfrost/BlockfrostClient.js.map +1 -0
- package/dist/cjs/blockfrost/BlockfrostProvider.d.ts +12 -0
- package/dist/cjs/blockfrost/BlockfrostProvider.d.ts.map +1 -0
- package/dist/cjs/blockfrost/BlockfrostProvider.js +74 -0
- package/dist/cjs/blockfrost/BlockfrostProvider.js.map +1 -0
- package/dist/cjs/blockfrost/const.d.ts +14 -0
- package/dist/cjs/blockfrost/const.d.ts.map +1 -0
- package/dist/cjs/blockfrost/const.js +17 -0
- package/dist/cjs/blockfrost/const.js.map +1 -0
- package/dist/cjs/blockfrost/index.d.ts +4 -0
- package/dist/cjs/blockfrost/index.d.ts.map +1 -0
- package/dist/cjs/blockfrost/index.js +20 -0
- package/dist/cjs/blockfrost/index.js.map +1 -0
- package/dist/cjs/blockfrost/util.d.ts +8 -0
- package/dist/cjs/blockfrost/util.d.ts.map +1 -0
- package/dist/cjs/blockfrost/util.js +27 -0
- package/dist/cjs/blockfrost/util.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/AssetInfoProvider/BlockfrostAssetProvider.d.ts +19 -0
- package/dist/esm/AssetInfoProvider/BlockfrostAssetProvider.d.ts.map +1 -0
- package/dist/esm/AssetInfoProvider/BlockfrostAssetProvider.js +137 -0
- package/dist/esm/AssetInfoProvider/BlockfrostAssetProvider.js.map +1 -0
- package/dist/esm/AssetInfoProvider/index.d.ts +1 -0
- package/dist/esm/AssetInfoProvider/index.d.ts.map +1 -1
- package/dist/esm/AssetInfoProvider/index.js +1 -0
- package/dist/esm/AssetInfoProvider/index.js.map +1 -1
- package/dist/esm/blockfrost/BlockfrostClient.d.ts +26 -0
- package/dist/esm/blockfrost/BlockfrostClient.d.ts.map +1 -0
- package/dist/esm/blockfrost/BlockfrostClient.js +44 -0
- package/dist/esm/blockfrost/BlockfrostClient.js.map +1 -0
- package/dist/esm/blockfrost/BlockfrostProvider.d.ts +12 -0
- package/dist/esm/blockfrost/BlockfrostProvider.d.ts.map +1 -0
- package/dist/esm/blockfrost/BlockfrostProvider.js +70 -0
- package/dist/esm/blockfrost/BlockfrostProvider.js.map +1 -0
- package/dist/esm/blockfrost/const.d.ts +14 -0
- package/dist/esm/blockfrost/const.d.ts.map +1 -0
- package/dist/esm/blockfrost/const.js +14 -0
- package/dist/esm/blockfrost/const.js.map +1 -0
- package/dist/esm/blockfrost/index.d.ts +4 -0
- package/dist/esm/blockfrost/index.d.ts.map +1 -0
- package/dist/esm/blockfrost/index.js +4 -0
- package/dist/esm/blockfrost/index.js.map +1 -0
- package/dist/esm/blockfrost/util.d.ts +8 -0
- package/dist/esm/blockfrost/util.d.ts.map +1 -0
- package/dist/esm/blockfrost/util.js +23 -0
- package/dist/esm/blockfrost/util.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/package.json +10 -4
- package/package.json +10 -4
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Asset, AssetProvider, GetAssetArgs, GetAssetsArgs } from '@cardano-sdk/core';
|
|
2
|
+
import { BlockfrostClient } from '../blockfrost/BlockfrostClient';
|
|
3
|
+
import { BlockfrostProvider } from '../blockfrost/BlockfrostProvider';
|
|
4
|
+
import { Logger } from 'ts-log';
|
|
5
|
+
export declare class BlockfrostAssetProvider extends BlockfrostProvider implements AssetProvider {
|
|
6
|
+
constructor(client: BlockfrostClient, logger: Logger);
|
|
7
|
+
private mapNftMetadata;
|
|
8
|
+
private asString;
|
|
9
|
+
private metadatumToString;
|
|
10
|
+
private objToMetadatum;
|
|
11
|
+
private mapNftMetadataVersion;
|
|
12
|
+
private mapFileMetadataOtherProperties;
|
|
13
|
+
private mapNftMetadataOtherProperties;
|
|
14
|
+
private mapOtherProperties;
|
|
15
|
+
private mapTokenMetadata;
|
|
16
|
+
getAsset({ assetId, extraData }: GetAssetArgs): Promise<Asset.AssetInfo>;
|
|
17
|
+
getAssets({ assetIds, extraData }: GetAssetsArgs): Promise<Asset.AssetInfo[]>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=BlockfrostAssetProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockfrostAssetProvider.d.ts","sourceRoot":"","sources":["../../../src/AssetInfoProvider/BlockfrostAssetProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAW,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,qBAAa,uBAAwB,SAAQ,kBAAmB,YAAW,aAAa;gBAC1E,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAIpD,OAAO,CAAC,cAAc;IA8CtB,OAAO,CAAC,QAAQ,CAAmF;IAEnG,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,8BAA8B;IAMtC,OAAO,CAAC,6BAA6B;IAMrC,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,gBAAgB;IAiBlB,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;IAsB9E,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;CAG9E"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BlockfrostAssetProvider = void 0;
|
|
7
|
+
const core_1 = require("@cardano-sdk/core");
|
|
8
|
+
const BlockfrostProvider_1 = require("../blockfrost/BlockfrostProvider");
|
|
9
|
+
const util_1 = require("@cardano-sdk/util");
|
|
10
|
+
const omit_js_1 = __importDefault(require("lodash/omit.js"));
|
|
11
|
+
class BlockfrostAssetProvider extends BlockfrostProvider_1.BlockfrostProvider {
|
|
12
|
+
constructor(client, logger) {
|
|
13
|
+
super(client, logger);
|
|
14
|
+
this.asString = (metadatum) => (typeof metadatum === 'string' ? metadatum : undefined);
|
|
15
|
+
}
|
|
16
|
+
mapNftMetadata(asset) {
|
|
17
|
+
const image = this.metadatumToString(asset.onchain_metadata?.image || asset.metadata?.logo);
|
|
18
|
+
const name = asset.onchain_metadata?.name || asset.metadata?.name;
|
|
19
|
+
if (!image || !name)
|
|
20
|
+
return null;
|
|
21
|
+
try {
|
|
22
|
+
return {
|
|
23
|
+
description: this.metadatumToString(asset.onchain_metadata?.description || asset.metadata?.description),
|
|
24
|
+
files: Array.isArray(asset.onchain_metadata?.files)
|
|
25
|
+
? asset
|
|
26
|
+
.onchain_metadata.files.map((file) => {
|
|
27
|
+
const mediaType = file.mediaType;
|
|
28
|
+
const fileName = file.name;
|
|
29
|
+
const src = this.metadatumToString(file.src);
|
|
30
|
+
if (!src || !mediaType)
|
|
31
|
+
return null;
|
|
32
|
+
try {
|
|
33
|
+
return {
|
|
34
|
+
mediaType: core_1.Asset.MediaType(mediaType),
|
|
35
|
+
name: fileName,
|
|
36
|
+
otherProperties: this.mapFileMetadataOtherProperties(file),
|
|
37
|
+
src: core_1.Asset.Uri(src)
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
this.logger.warn('Failed to parse onchain_metadata file', file, error);
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
.filter(util_1.isNotNil)
|
|
46
|
+
: undefined,
|
|
47
|
+
image: core_1.Asset.Uri(image),
|
|
48
|
+
mediaType: asset.onchain_metadata?.mediaType
|
|
49
|
+
? core_1.Asset.ImageMediaType(asset.onchain_metadata.mediaType)
|
|
50
|
+
: undefined,
|
|
51
|
+
name,
|
|
52
|
+
otherProperties: this.mapNftMetadataOtherProperties(asset.onchain_metadata),
|
|
53
|
+
version: this.mapNftMetadataVersion(asset.onchain_metadata)
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
this.logger.warn('Failed to parse nft metadata', asset, error);
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
metadatumToString(metadatum) {
|
|
62
|
+
let stringMetadatum;
|
|
63
|
+
if (Array.isArray(metadatum)) {
|
|
64
|
+
const result = metadatum.map((metadata) => this.asString(metadata)).filter(util_1.isNotNil);
|
|
65
|
+
stringMetadatum = result.join('');
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
stringMetadatum = this.asString(metadatum);
|
|
69
|
+
}
|
|
70
|
+
return stringMetadatum;
|
|
71
|
+
}
|
|
72
|
+
objToMetadatum(obj) {
|
|
73
|
+
if (typeof obj === 'string')
|
|
74
|
+
return obj;
|
|
75
|
+
if (typeof obj === 'number')
|
|
76
|
+
return BigInt(obj);
|
|
77
|
+
if (typeof obj === 'object') {
|
|
78
|
+
if (obj === null)
|
|
79
|
+
return '';
|
|
80
|
+
if (Array.isArray(obj)) {
|
|
81
|
+
return obj.map((item) => this.objToMetadatum(item));
|
|
82
|
+
}
|
|
83
|
+
return new Map(Object.entries(obj).map(([key, value]) => [key, this.objToMetadatum(value)]));
|
|
84
|
+
}
|
|
85
|
+
return '';
|
|
86
|
+
}
|
|
87
|
+
mapNftMetadataVersion(metadata) {
|
|
88
|
+
return typeof metadata?.version === 'string' ? metadata.version : '1.0';
|
|
89
|
+
}
|
|
90
|
+
mapFileMetadataOtherProperties(metadata) {
|
|
91
|
+
return this.mapOtherProperties(metadata, ['name', 'mediaType', 'src']);
|
|
92
|
+
}
|
|
93
|
+
mapNftMetadataOtherProperties(metadata) {
|
|
94
|
+
return this.mapOtherProperties(metadata, ['name', 'image', 'description', 'mediaType', 'files', 'version']);
|
|
95
|
+
}
|
|
96
|
+
mapOtherProperties(metadata, mainProperties) {
|
|
97
|
+
if (!metadata) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const otherProperties = Object.entries((0, omit_js_1.default)(metadata, mainProperties));
|
|
101
|
+
if (otherProperties.length === 0)
|
|
102
|
+
return;
|
|
103
|
+
return new Map(otherProperties.map(([key, value]) => [key, this.objToMetadatum(value)]));
|
|
104
|
+
}
|
|
105
|
+
mapTokenMetadata(assetId, asset) {
|
|
106
|
+
return {
|
|
107
|
+
assetId,
|
|
108
|
+
decimals: asset.metadata?.decimals || undefined,
|
|
109
|
+
desc: this.metadatumToString(asset.metadata?.description || asset.onchain_metadata?.description),
|
|
110
|
+
icon: this.metadatumToString(asset.metadata?.logo || asset.onchain_metadata?.image),
|
|
111
|
+
name: asset.metadata?.name || asset.onchain_metadata?.name,
|
|
112
|
+
ticker: asset.metadata?.ticker || undefined,
|
|
113
|
+
url: asset.metadata?.url || undefined,
|
|
114
|
+
version: '1.0'
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
async getAsset({ assetId, extraData }) {
|
|
118
|
+
try {
|
|
119
|
+
const response = await this.request(`assets/${assetId.toString()}`);
|
|
120
|
+
const name = core_1.Cardano.AssetId.getAssetName(assetId);
|
|
121
|
+
const policyId = core_1.Cardano.PolicyId(response.policy_id);
|
|
122
|
+
const quantity = BigInt(response.quantity);
|
|
123
|
+
return {
|
|
124
|
+
assetId,
|
|
125
|
+
fingerprint: core_1.Cardano.AssetFingerprint(response.fingerprint),
|
|
126
|
+
name,
|
|
127
|
+
nftMetadata: extraData?.nftMetadata ? this.mapNftMetadata(response) : null,
|
|
128
|
+
policyId,
|
|
129
|
+
quantity,
|
|
130
|
+
supply: quantity,
|
|
131
|
+
tokenMetadata: extraData?.tokenMetadata ? this.mapTokenMetadata(assetId, response) : null
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
this.logger.error('getAsset failed', assetId, extraData);
|
|
136
|
+
throw this.toProviderError(error);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
getAssets({ assetIds, extraData }) {
|
|
140
|
+
return Promise.all(assetIds.map((assetId) => this.getAsset({ assetId, extraData })));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.BlockfrostAssetProvider = BlockfrostAssetProvider;
|
|
144
|
+
//# sourceMappingURL=BlockfrostAssetProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockfrostAssetProvider.js","sourceRoot":"","sources":["../../../src/AssetInfoProvider/BlockfrostAssetProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/AssetInfoProvider/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/AssetInfoProvider/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC"}
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./assetInfoHttpProvider"), exports);
|
|
18
|
+
__exportStar(require("./BlockfrostAssetProvider"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/AssetInfoProvider/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/AssetInfoProvider/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,4DAA0C"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { CustomError } from 'ts-custom-error';
|
|
2
|
+
export declare type BlockfrostClientConfig = {
|
|
3
|
+
projectId?: string;
|
|
4
|
+
baseUrl: string;
|
|
5
|
+
apiVersion?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare type RateLimiter = {
|
|
8
|
+
schedule: <T>(task: () => Promise<T>) => Promise<T>;
|
|
9
|
+
};
|
|
10
|
+
export declare type BlockfrostClientDependencies = {
|
|
11
|
+
rateLimiter: RateLimiter;
|
|
12
|
+
};
|
|
13
|
+
export declare class BlockfrostError extends CustomError {
|
|
14
|
+
status?: number | undefined;
|
|
15
|
+
body?: string | undefined;
|
|
16
|
+
innerError?: unknown;
|
|
17
|
+
constructor(status?: number | undefined, body?: string | undefined, innerError?: unknown);
|
|
18
|
+
}
|
|
19
|
+
export declare class BlockfrostClient {
|
|
20
|
+
private rateLimiter;
|
|
21
|
+
private baseUrl;
|
|
22
|
+
private requestInit;
|
|
23
|
+
constructor({ apiVersion, projectId, baseUrl }: BlockfrostClientConfig, { rateLimiter }: BlockfrostClientDependencies);
|
|
24
|
+
request<T>(endpoint: string): Promise<T>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=BlockfrostClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockfrostClient.d.ts","sourceRoot":"","sources":["../../../src/blockfrost/BlockfrostClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,oBAAY,sBAAsB,GAAG;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC;AAEF,oBAAY,4BAA4B,GAAG;IAWzC,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,qBAAa,eAAgB,SAAQ,WAAW;IAC3B,MAAM,CAAC;IAAiB,IAAI,CAAC;IAAiB,UAAU,CAAC;gBAAzD,MAAM,CAAC,oBAAQ,EAAS,IAAI,CAAC,oBAAQ,EAAS,UAAU,CAAC,SAAS;CAKtF;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAc;gBAG/B,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,sBAAsB,EAC1D,EAAE,WAAW,EAAE,EAAE,4BAA4B;IAWxC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CA6BhD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BlockfrostClient = exports.BlockfrostError = void 0;
|
|
4
|
+
const ts_custom_error_1 = require("ts-custom-error");
|
|
5
|
+
const rxjs_1 = require("rxjs");
|
|
6
|
+
const fetch_1 = require("rxjs/fetch");
|
|
7
|
+
class BlockfrostError extends ts_custom_error_1.CustomError {
|
|
8
|
+
constructor(status, body, innerError) {
|
|
9
|
+
const message = body || innerError?.message;
|
|
10
|
+
super(`Blockfrost error with status '${status}': ${message}`);
|
|
11
|
+
this.status = status;
|
|
12
|
+
this.body = body;
|
|
13
|
+
this.innerError = innerError;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.BlockfrostError = BlockfrostError;
|
|
17
|
+
class BlockfrostClient {
|
|
18
|
+
constructor({ apiVersion, projectId, baseUrl }, { rateLimiter }) {
|
|
19
|
+
this.rateLimiter = rateLimiter;
|
|
20
|
+
this.requestInit = projectId ? { headers: { project_id: projectId } } : {};
|
|
21
|
+
this.baseUrl = apiVersion ? `${baseUrl}/api/${apiVersion}` : `${baseUrl}`;
|
|
22
|
+
}
|
|
23
|
+
request(endpoint) {
|
|
24
|
+
return this.rateLimiter.schedule(() => (0, rxjs_1.firstValueFrom)((0, fetch_1.fromFetch)(`${this.baseUrl}/${endpoint}`, this.requestInit).pipe((0, rxjs_1.switchMap)(async (response) => {
|
|
25
|
+
if (response.ok) {
|
|
26
|
+
try {
|
|
27
|
+
return await response.json();
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
throw new BlockfrostError(response.status, 'Failed to parse json');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
const body = await response.text();
|
|
35
|
+
throw new BlockfrostError(response.status, body);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
throw new BlockfrostError(response.status);
|
|
39
|
+
}
|
|
40
|
+
}), (0, rxjs_1.catchError)((err) => {
|
|
41
|
+
if (err instanceof BlockfrostError) {
|
|
42
|
+
return (0, rxjs_1.throwError)(() => err);
|
|
43
|
+
}
|
|
44
|
+
return (0, rxjs_1.throwError)(() => new BlockfrostError(undefined, undefined, err));
|
|
45
|
+
}))));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.BlockfrostClient = BlockfrostClient;
|
|
49
|
+
//# sourceMappingURL=BlockfrostClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockfrostClient.js","sourceRoot":"","sources":["../../../src/blockfrost/BlockfrostClient.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAC9C,+BAAyE;AACzE,sCAAuC;AA0BvC,MAAa,eAAgB,SAAQ,6BAAW;IAC9C,YAAmB,MAAe,EAAS,IAAa,EAAS,UAAoB;QAEnF,MAAM,OAAO,GAAkB,IAAI,IAAK,UAAkB,EAAE,OAAO,CAAC;QACpE,KAAK,CAAC,iCAAiC,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QAH7C,WAAM,GAAN,MAAM,CAAS;QAAS,SAAI,GAAJ,IAAI,CAAS;QAAS,eAAU,GAAV,UAAU,CAAU;IAIrF,CAAC;CACF;AAND,0CAMC;AAED,MAAa,gBAAgB;IAK3B,YACE,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAA0B,EAC1D,EAAE,WAAW,EAAgC;QAE7C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC;IAC5E,CAAC;IAMM,OAAO,CAAI,QAAgB;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CACpC,IAAA,qBAAc,EACZ,IAAA,iBAAS,EAAC,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAC7D,IAAA,gBAAS,EAAC,KAAK,EAAE,QAAQ,EAAc,EAAE;YACvC,IAAI,QAAQ,CAAC,EAAE,EAAE;gBACf,IAAI;oBACF,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;iBAC9B;gBAAC,MAAM;oBACN,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;iBACpE;aACF;YACD,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;aAClD;YAAC,MAAM;gBACN,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAC5C;QACH,CAAC,CAAC,EACF,IAAA,iBAAU,EAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,GAAG,YAAY,eAAe,EAAE;gBAClC,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;aAC9B;YACD,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CACH,CACF,CACF,CAAC;IACJ,CAAC;CACF;AA/CD,4CA+CC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BlockfrostClient } from './BlockfrostClient';
|
|
2
|
+
import { HealthCheckResponse, Provider, ProviderError } from '@cardano-sdk/core';
|
|
3
|
+
import { Logger } from 'ts-log';
|
|
4
|
+
export declare abstract class BlockfrostProvider implements Provider {
|
|
5
|
+
#private;
|
|
6
|
+
protected logger: Logger;
|
|
7
|
+
constructor(client: BlockfrostClient, logger: Logger);
|
|
8
|
+
protected request<T>(endpoint: string): Promise<T>;
|
|
9
|
+
healthCheck(): Promise<HealthCheckResponse>;
|
|
10
|
+
protected toProviderError(error: unknown): ProviderError;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=BlockfrostProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockfrostProvider.d.ts","sourceRoot":"","sources":["../../../src/blockfrost/BlockfrostProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAyBhC,8BAAsB,kBAAmB,YAAW,QAAQ;;IAC1D,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGb,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;cASpC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAYlD,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;IASjD,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa;CAMzD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _BlockfrostProvider_client;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.BlockfrostProvider = void 0;
|
|
16
|
+
const BlockfrostClient_1 = require("./BlockfrostClient");
|
|
17
|
+
const core_1 = require("@cardano-sdk/core");
|
|
18
|
+
const util_1 = require("@cardano-sdk/util");
|
|
19
|
+
const toProviderFailure = (status) => {
|
|
20
|
+
switch (status) {
|
|
21
|
+
case 400:
|
|
22
|
+
return core_1.ProviderFailure.BadRequest;
|
|
23
|
+
case 403:
|
|
24
|
+
return core_1.ProviderFailure.Forbidden;
|
|
25
|
+
case 404:
|
|
26
|
+
return core_1.ProviderFailure.NotFound;
|
|
27
|
+
case 402:
|
|
28
|
+
case 418:
|
|
29
|
+
case 425:
|
|
30
|
+
case 429:
|
|
31
|
+
return core_1.ProviderFailure.ServerUnavailable;
|
|
32
|
+
case 500:
|
|
33
|
+
return core_1.ProviderFailure.Unhealthy;
|
|
34
|
+
default:
|
|
35
|
+
return core_1.ProviderFailure.Unknown;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
class BlockfrostProvider {
|
|
39
|
+
constructor(client, logger) {
|
|
40
|
+
_BlockfrostProvider_client.set(this, void 0);
|
|
41
|
+
__classPrivateFieldSet(this, _BlockfrostProvider_client, client, "f");
|
|
42
|
+
this.logger = (0, util_1.contextLogger)(logger, this.constructor.name);
|
|
43
|
+
}
|
|
44
|
+
async request(endpoint) {
|
|
45
|
+
try {
|
|
46
|
+
this.logger.debug('request', endpoint);
|
|
47
|
+
const response = await __classPrivateFieldGet(this, _BlockfrostProvider_client, "f").request(endpoint);
|
|
48
|
+
this.logger.debug('response', response);
|
|
49
|
+
return response;
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
this.logger.error('error', error);
|
|
53
|
+
throw this.toProviderError(error);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async healthCheck() {
|
|
57
|
+
try {
|
|
58
|
+
const result = await __classPrivateFieldGet(this, _BlockfrostProvider_client, "f").request('health');
|
|
59
|
+
return { ok: result.is_healthy };
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
return { ok: false, reason: this.toProviderError(error).message };
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
toProviderError(error) {
|
|
66
|
+
if (error instanceof BlockfrostClient_1.BlockfrostError) {
|
|
67
|
+
return new core_1.ProviderError(toProviderFailure(error.status), error);
|
|
68
|
+
}
|
|
69
|
+
return new core_1.ProviderError(core_1.ProviderFailure.Unknown, error);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.BlockfrostProvider = BlockfrostProvider;
|
|
73
|
+
_BlockfrostProvider_client = new WeakMap();
|
|
74
|
+
//# sourceMappingURL=BlockfrostProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockfrostProvider.js","sourceRoot":"","sources":["../../../src/blockfrost/BlockfrostProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yDAAuE;AACvE,4CAAkG;AAElG,4CAAkD;AAIlD,MAAM,iBAAiB,GAAG,CAAC,MAA0B,EAAmB,EAAE;IACxE,QAAQ,MAAM,EAAE;QACd,KAAK,GAAG;YACN,OAAO,sBAAe,CAAC,UAAU,CAAC;QACpC,KAAK,GAAG;YACN,OAAO,sBAAe,CAAC,SAAS,CAAC;QACnC,KAAK,GAAG;YACN,OAAO,sBAAe,CAAC,QAAQ,CAAC;QAClC,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,sBAAe,CAAC,iBAAiB,CAAC;QAC3C,KAAK,GAAG;YACN,OAAO,sBAAe,CAAC,SAAS,CAAC;QACnC;YACE,OAAO,sBAAe,CAAC,OAAO,CAAC;KAClC;AACH,CAAC,CAAC;AAEF,MAAsB,kBAAkB;IAItC,YAAY,MAAwB,EAAE,MAAc;QAFpD,6CAA0B;QAGxB,uBAAA,IAAI,8BAAW,MAAM,MAAA,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAA,oBAAa,EAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAMS,KAAK,CAAC,OAAO,CAAI,QAAgB;QACzC,IAAI;YACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,uBAAA,IAAI,kCAAQ,CAAC,OAAO,CAAI,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC;SACjB;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,uBAAA,IAAI,kCAAQ,CAAC,OAAO,CAA2C,QAAQ,CAAC,CAAC;YAC9F,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;SAClC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SACnE;IACH,CAAC;IAES,eAAe,CAAC,KAAc;QACtC,IAAI,KAAK,YAAY,kCAAe,EAAE;YACpC,OAAO,IAAI,oBAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;SAClE;QACD,OAAO,IAAI,oBAAa,CAAC,sBAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;CACF;AAxCD,gDAwCC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Milliseconds } from '@cardano-sdk/core';
|
|
2
|
+
export declare const DEFAULT_BLOCKFROST_API_VERSION = "v0";
|
|
3
|
+
export declare const DEFAULT_BLOCKFROST_RATE_LIMIT_CONFIG: {
|
|
4
|
+
increaseAmount: number;
|
|
5
|
+
increaseInterval: Milliseconds;
|
|
6
|
+
size: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const DEFAULT_BLOCKFROST_URLS: {
|
|
9
|
+
mainnet: string;
|
|
10
|
+
preprod: string;
|
|
11
|
+
preview: string;
|
|
12
|
+
sanchonet: string;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=const.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../src/blockfrost/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,8BAA8B,OAAO,CAAC;AAEnD,eAAO,MAAM,oCAAoC;;;;CAIhD,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;CAKnC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_BLOCKFROST_URLS = exports.DEFAULT_BLOCKFROST_RATE_LIMIT_CONFIG = exports.DEFAULT_BLOCKFROST_API_VERSION = void 0;
|
|
4
|
+
const core_1 = require("@cardano-sdk/core");
|
|
5
|
+
exports.DEFAULT_BLOCKFROST_API_VERSION = 'v0';
|
|
6
|
+
exports.DEFAULT_BLOCKFROST_RATE_LIMIT_CONFIG = {
|
|
7
|
+
increaseAmount: 10,
|
|
8
|
+
increaseInterval: (0, core_1.Milliseconds)(1000),
|
|
9
|
+
size: 500
|
|
10
|
+
};
|
|
11
|
+
exports.DEFAULT_BLOCKFROST_URLS = {
|
|
12
|
+
mainnet: 'https://cardano-mainnet.blockfrost.io',
|
|
13
|
+
preprod: 'https://cardano-preprod.blockfrost.io',
|
|
14
|
+
preview: 'https://cardano-preview.blockfrost.io',
|
|
15
|
+
sanchonet: 'https://cardano-sanchonet.blockfrost.io'
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/blockfrost/const.ts"],"names":[],"mappings":";;;AAAA,4CAAiD;AAEpC,QAAA,8BAA8B,GAAG,IAAI,CAAC;AAEtC,QAAA,oCAAoC,GAAG;IAClD,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,IAAA,mBAAY,EAAC,IAAI,CAAC;IACpC,IAAI,EAAE,GAAG;CACV,CAAC;AAEW,QAAA,uBAAuB,GAAG;IACrC,OAAO,EAAE,uCAAuC;IAChD,OAAO,EAAE,uCAAuC;IAChD,OAAO,EAAE,uCAAuC;IAChD,SAAS,EAAE,yCAAyC;CACrD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blockfrost/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./BlockfrostProvider"), exports);
|
|
18
|
+
__exportStar(require("./BlockfrostClient"), exports);
|
|
19
|
+
__exportStar(require("./const"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blockfrost/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,qDAAmC;AACnC,0CAAwB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PaginationOptions } from '@blockfrost/blockfrost-js/lib/types';
|
|
2
|
+
export declare const fetchSequentially: <Item, Arg, Response_1>(props: {
|
|
3
|
+
request: (queryString: string) => Promise<Response_1[]>;
|
|
4
|
+
responseTranslator?: ((response: Response_1[]) => Item[]) | undefined;
|
|
5
|
+
haveEnoughItems?: ((items: Item[]) => boolean) | undefined;
|
|
6
|
+
paginationOptions?: PaginationOptions | undefined;
|
|
7
|
+
}, page?: number, accumulated?: Item[]) => Promise<Item[]>;
|
|
8
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/blockfrost/util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAK7E,eAAO,MAAM,iBAAiB;2BAEH,MAAM;;0CAKQ,OAAO;;0DAuB/C,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchSequentially = void 0;
|
|
4
|
+
const core_1 = require("@cardano-sdk/core");
|
|
5
|
+
const isNotFoundError = (error) => error instanceof core_1.ProviderError && error.reason === core_1.ProviderFailure.NotFound;
|
|
6
|
+
const fetchSequentially = async (props, page = 1, accumulated = []) => {
|
|
7
|
+
const count = props.paginationOptions?.count || 100;
|
|
8
|
+
const order = props.paginationOptions?.order || 'asc';
|
|
9
|
+
try {
|
|
10
|
+
const response = await props.request(`count=${count}&page=${page}&order=${order}`);
|
|
11
|
+
const maybeTranslatedResponse = props.responseTranslator ? props.responseTranslator(response) : response;
|
|
12
|
+
const newAccumulatedItems = [...accumulated, ...maybeTranslatedResponse];
|
|
13
|
+
const haveEnoughItems = props.haveEnoughItems?.(newAccumulatedItems);
|
|
14
|
+
if (response.length === count && !haveEnoughItems) {
|
|
15
|
+
return (0, exports.fetchSequentially)(props, page + 1, newAccumulatedItems);
|
|
16
|
+
}
|
|
17
|
+
return newAccumulatedItems;
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
if (isNotFoundError(error)) {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
exports.fetchSequentially = fetchSequentially;
|
|
27
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/blockfrost/util.ts"],"names":[],"mappings":";;;AAAA,4CAAmE;AAGnE,MAAM,eAAe,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,YAAY,oBAAa,IAAI,KAAK,CAAC,MAAM,KAAK,sBAAe,CAAC,QAAQ,CAAC;AAGjH,MAAM,iBAAiB,GAAG,KAAK,EACpC,KAQC,EACD,IAAI,GAAG,CAAC,EACR,cAAsB,EAAE,EACP,EAAE;IACnB,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAiB,EAAE,KAAK,IAAI,GAAG,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAiB,EAAE,KAAK,IAAI,KAAK,CAAC;IACtD,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,CAAC,CAAC;QACnF,MAAM,uBAAuB,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzG,MAAM,mBAAmB,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,uBAAuB,CAAW,CAAC;QACnF,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC,mBAAmB,CAAC,CAAC;QACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,eAAe,EAAE;YACjD,OAAO,IAAA,yBAAiB,EAAsB,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAC;SACrF;QACD,OAAO,mBAAmB,CAAC;KAC5B;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;YAC1B,OAAO,EAAE,CAAC;SACX;QACD,MAAM,KAAK,CAAC;KACb;AACH,CAAC,CAAC;AA9BW,QAAA,iBAAiB,qBA8B5B"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -9,4 +9,6 @@ export * from './RewardsProvider';
|
|
|
9
9
|
export * from './HandleProvider';
|
|
10
10
|
export * from './version';
|
|
11
11
|
export * from './WebSocket';
|
|
12
|
+
export { BlockfrostClient, BlockfrostError, DEFAULT_BLOCKFROST_API_VERSION, DEFAULT_BLOCKFROST_RATE_LIMIT_CONFIG, DEFAULT_BLOCKFROST_URLS } from './blockfrost';
|
|
13
|
+
export type { BlockfrostClientConfig, BlockfrostClientDependencies, RateLimiter } from './blockfrost';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,8BAA8B,EAC9B,oCAAoC,EACpC,uBAAuB,EACxB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.DEFAULT_BLOCKFROST_URLS = exports.DEFAULT_BLOCKFROST_RATE_LIMIT_CONFIG = exports.DEFAULT_BLOCKFROST_API_VERSION = exports.BlockfrostError = exports.BlockfrostClient = void 0;
|
|
17
18
|
__exportStar(require("./AssetInfoProvider"), exports);
|
|
18
19
|
__exportStar(require("./HttpProvider"), exports);
|
|
19
20
|
__exportStar(require("./TxSubmitProvider"), exports);
|
|
@@ -25,4 +26,10 @@ __exportStar(require("./RewardsProvider"), exports);
|
|
|
25
26
|
__exportStar(require("./HandleProvider"), exports);
|
|
26
27
|
__exportStar(require("./version"), exports);
|
|
27
28
|
__exportStar(require("./WebSocket"), exports);
|
|
29
|
+
var blockfrost_1 = require("./blockfrost");
|
|
30
|
+
Object.defineProperty(exports, "BlockfrostClient", { enumerable: true, get: function () { return blockfrost_1.BlockfrostClient; } });
|
|
31
|
+
Object.defineProperty(exports, "BlockfrostError", { enumerable: true, get: function () { return blockfrost_1.BlockfrostError; } });
|
|
32
|
+
Object.defineProperty(exports, "DEFAULT_BLOCKFROST_API_VERSION", { enumerable: true, get: function () { return blockfrost_1.DEFAULT_BLOCKFROST_API_VERSION; } });
|
|
33
|
+
Object.defineProperty(exports, "DEFAULT_BLOCKFROST_RATE_LIMIT_CONFIG", { enumerable: true, get: function () { return blockfrost_1.DEFAULT_BLOCKFROST_RATE_LIMIT_CONFIG; } });
|
|
34
|
+
Object.defineProperty(exports, "DEFAULT_BLOCKFROST_URLS", { enumerable: true, get: function () { return blockfrost_1.DEFAULT_BLOCKFROST_URLS; } });
|
|
28
35
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,iDAA+B;AAC/B,qDAAmC;AACnC,sDAAoC;AACpC,iDAA+B;AAC/B,yDAAuC;AACvC,wDAAsC;AACtC,oDAAkC;AAClC,mDAAiC;AACjC,4CAA0B;AAC1B,8CAA4B;AAC5B,2CAMsB;AALpB,8GAAA,gBAAgB,OAAA;AAChB,6GAAA,eAAe,OAAA;AACf,4HAAA,8BAA8B,OAAA;AAC9B,kIAAA,oCAAoC,OAAA;AACpC,qHAAA,uBAAuB,OAAA"}
|