@upcoming/bee-js 10.1.2 → 11.1.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/README.md +2 -2
- package/dist/cjs/bee.js +89 -12
- package/dist/cjs/chunk/bmt.js +1 -2
- package/dist/cjs/chunk/cac.js +27 -32
- package/dist/cjs/chunk/soc.js +39 -31
- package/dist/cjs/feed/identifier.js +1 -2
- package/dist/cjs/feed/index.js +29 -19
- package/dist/cjs/feed/retrievable.js +1 -2
- package/dist/cjs/index.js +17 -7
- package/dist/cjs/manifest/manifest.js +19 -2
- package/dist/cjs/modules/bytes.js +4 -5
- package/dist/cjs/modules/bzz.js +4 -5
- package/dist/cjs/modules/chunk.js +2 -3
- package/dist/cjs/modules/debug/balance.js +4 -5
- package/dist/cjs/modules/debug/chequebook.js +8 -9
- package/dist/cjs/modules/debug/connectivity.js +7 -8
- package/dist/cjs/modules/debug/settlements.js +2 -3
- package/dist/cjs/modules/debug/stake.js +6 -7
- package/dist/cjs/modules/debug/stamps.js +23 -77
- package/dist/cjs/modules/debug/states.js +6 -6
- package/dist/cjs/modules/debug/status.js +9 -9
- package/dist/cjs/modules/debug/transactions.js +4 -5
- package/dist/cjs/modules/envelope.js +1 -2
- package/dist/cjs/modules/feed.js +3 -4
- package/dist/cjs/modules/grantee.js +3 -4
- package/dist/cjs/modules/gsoc.js +2 -3
- package/dist/cjs/modules/pinning.js +4 -5
- package/dist/cjs/modules/pss.js +2 -3
- package/dist/cjs/modules/rchash.js +1 -2
- package/dist/cjs/modules/soc.js +1 -2
- package/dist/cjs/modules/status.js +2 -3
- package/dist/cjs/modules/stewardship.js +2 -3
- package/dist/cjs/modules/tag.js +5 -6
- package/dist/cjs/types/debug.js +3 -3
- package/dist/cjs/types/index.js +2 -2
- package/dist/cjs/utils/bytes.js +2 -2
- package/dist/cjs/utils/chunk-size.js +1 -2
- package/dist/cjs/utils/chunk-stream.browser.js +30 -6
- package/dist/cjs/utils/chunk-stream.js +3 -4
- package/dist/cjs/utils/cid.js +3 -3
- package/dist/cjs/utils/collection.browser.js +2 -3
- package/dist/cjs/utils/collection.js +5 -6
- package/dist/cjs/utils/collection.node.js +2 -3
- package/dist/cjs/utils/data.browser.js +1 -2
- package/dist/cjs/utils/data.js +1 -2
- package/dist/cjs/utils/expose.js +4 -1
- package/dist/cjs/utils/file.js +2 -3
- package/dist/cjs/utils/headers.js +2 -3
- package/dist/cjs/utils/http.js +25 -5
- package/dist/cjs/utils/pss.js +1 -2
- package/dist/cjs/utils/redundancy.js +3 -4
- package/dist/cjs/utils/stamps.js +60 -11
- package/dist/cjs/utils/tar-uploader.browser.js +1 -2
- package/dist/cjs/utils/tar-uploader.js +1 -2
- package/dist/cjs/utils/tar-writer.browser.js +1 -2
- package/dist/cjs/utils/tar-writer.js +1 -2
- package/dist/cjs/utils/type.js +35 -25
- package/dist/cjs/utils/url.js +3 -4
- package/dist/cjs/utils/workaround.js +7 -5
- package/dist/index.browser.min.js +1 -1
- package/dist/index.browser.min.js.map +1 -1
- package/dist/mjs/bee.js +73 -8
- package/dist/mjs/chunk/cac.js +21 -30
- package/dist/mjs/chunk/soc.js +16 -17
- package/dist/mjs/feed/index.js +7 -6
- package/dist/mjs/manifest/manifest.js +19 -2
- package/dist/mjs/modules/debug/stamps.js +37 -110
- package/dist/mjs/modules/debug/states.js +3 -0
- package/dist/mjs/modules/debug/status.js +1 -1
- package/dist/mjs/utils/chunk-stream.browser.js +29 -5
- package/dist/mjs/utils/expose.js +1 -1
- package/dist/mjs/utils/http.js +25 -3
- package/dist/mjs/utils/stamps.js +48 -0
- package/dist/mjs/utils/type.js +2 -1
- package/dist/mjs/utils/workaround.js +5 -2
- package/dist/types/bee.d.ts +55 -4
- package/dist/types/chunk/cac.d.ts +27 -13
- package/dist/types/chunk/soc.d.ts +43 -11
- package/dist/types/index.d.ts +3 -0
- package/dist/types/modules/bzz.d.ts +0 -1
- package/dist/types/modules/debug/status.d.ts +1 -1
- package/dist/types/modules/gsoc.d.ts +0 -1
- package/dist/types/modules/pss.d.ts +0 -1
- package/dist/types/types/debug.d.ts +1 -0
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/utils/constants.d.ts +3 -3
- package/dist/types/utils/error.d.ts +2 -2
- package/dist/types/utils/expose.d.ts +1 -1
- package/dist/types/utils/stamps.d.ts +15 -1
- package/dist/types/utils/tar.browser.d.ts +1 -1
- package/dist/types/utils/tar.d.ts +0 -1
- package/dist/types/utils/type.d.ts +0 -1
- package/package.json +10 -13
package/dist/cjs/utils/expose.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getStampUsage = exports.getStampTheoreticalBytes = exports.getStampEffectiveBytesBreakpoints = exports.getStampEffectiveBytes = exports.getStampDuration = exports.getStampCost = exports.getDepthForSize = exports.getAmountForDuration = exports.getRedundancyStats = exports.getRedundancyStat = exports.approximateOverheadForRedundancyLevel = exports.makeMaxTarget = exports.getFolderSize = exports.makeCollectionFromFileList = exports.getCollectionSize = void 0;
|
|
3
|
+
exports.unmapPostageBatch = exports.mapPostageBatch = exports.getStampUsage = exports.getStampTheoreticalBytes = exports.getStampEffectiveBytesBreakpoints = exports.getStampEffectiveBytes = exports.getStampDuration = exports.getStampCost = exports.getDepthForSize = exports.getAmountForDuration = exports.convertEnvelopeToMarshaledStamp = exports.getRedundancyStats = exports.getRedundancyStat = exports.approximateOverheadForRedundancyLevel = exports.makeMaxTarget = exports.getFolderSize = exports.makeCollectionFromFileList = exports.getCollectionSize = void 0;
|
|
4
4
|
var collection_1 = require("./collection");
|
|
5
5
|
Object.defineProperty(exports, "getCollectionSize", { enumerable: true, get: function () { return collection_1.getCollectionSize; } });
|
|
6
6
|
Object.defineProperty(exports, "makeCollectionFromFileList", { enumerable: true, get: function () { return collection_1.makeCollectionFromFileList; } });
|
|
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "approximateOverheadForRedundancyLevel", { enumer
|
|
|
13
13
|
Object.defineProperty(exports, "getRedundancyStat", { enumerable: true, get: function () { return redundancy_1.getRedundancyStat; } });
|
|
14
14
|
Object.defineProperty(exports, "getRedundancyStats", { enumerable: true, get: function () { return redundancy_1.getRedundancyStats; } });
|
|
15
15
|
var stamps_1 = require("./stamps");
|
|
16
|
+
Object.defineProperty(exports, "convertEnvelopeToMarshaledStamp", { enumerable: true, get: function () { return stamps_1.convertEnvelopeToMarshaledStamp; } });
|
|
16
17
|
Object.defineProperty(exports, "getAmountForDuration", { enumerable: true, get: function () { return stamps_1.getAmountForDuration; } });
|
|
17
18
|
Object.defineProperty(exports, "getDepthForSize", { enumerable: true, get: function () { return stamps_1.getDepthForSize; } });
|
|
18
19
|
Object.defineProperty(exports, "getStampCost", { enumerable: true, get: function () { return stamps_1.getStampCost; } });
|
|
@@ -21,3 +22,5 @@ Object.defineProperty(exports, "getStampEffectiveBytes", { enumerable: true, get
|
|
|
21
22
|
Object.defineProperty(exports, "getStampEffectiveBytesBreakpoints", { enumerable: true, get: function () { return stamps_1.getStampEffectiveBytesBreakpoints; } });
|
|
22
23
|
Object.defineProperty(exports, "getStampTheoreticalBytes", { enumerable: true, get: function () { return stamps_1.getStampTheoreticalBytes; } });
|
|
23
24
|
Object.defineProperty(exports, "getStampUsage", { enumerable: true, get: function () { return stamps_1.getStampUsage; } });
|
|
25
|
+
Object.defineProperty(exports, "mapPostageBatch", { enumerable: true, get: function () { return stamps_1.mapPostageBatch; } });
|
|
26
|
+
Object.defineProperty(exports, "unmapPostageBatch", { enumerable: true, get: function () { return stamps_1.unmapPostageBatch; } });
|
package/dist/cjs/utils/file.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isFile = isFile;
|
|
4
|
+
exports.fileArrayBuffer = fileArrayBuffer;
|
|
4
5
|
/**
|
|
5
6
|
* Compatibility functions for working with File API objects
|
|
6
7
|
*
|
|
@@ -17,7 +18,6 @@ function isFile(file) {
|
|
|
17
18
|
typeof f.name === 'string' &&
|
|
18
19
|
(typeof f.stream === 'function' || typeof f.arrayBuffer === 'function'));
|
|
19
20
|
}
|
|
20
|
-
exports.isFile = isFile;
|
|
21
21
|
/**
|
|
22
22
|
* Compatibility helper for browsers where the `arrayBuffer function is
|
|
23
23
|
* missing from `File` objects.
|
|
@@ -35,4 +35,3 @@ async function fileArrayBuffer(file) {
|
|
|
35
35
|
fr.readAsArrayBuffer(file);
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
-
exports.fileArrayBuffer = fileArrayBuffer;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.readFileHeaders = readFileHeaders;
|
|
4
|
+
exports.prepareRequestHeaders = prepareRequestHeaders;
|
|
4
5
|
const cafe_utility_1 = require("cafe-utility");
|
|
5
6
|
const error_1 = require("./error");
|
|
6
7
|
const stamps_1 = require("./stamps");
|
|
@@ -15,7 +16,6 @@ function readFileHeaders(headers) {
|
|
|
15
16
|
contentType,
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
|
-
exports.readFileHeaders = readFileHeaders;
|
|
19
19
|
function readContentDispositionFilename(header) {
|
|
20
20
|
if (!header) {
|
|
21
21
|
throw new error_1.BeeError('missing content-disposition header');
|
|
@@ -106,7 +106,6 @@ function prepareRequestHeaders(stamp, nullableOptions) {
|
|
|
106
106
|
}
|
|
107
107
|
return headers;
|
|
108
108
|
}
|
|
109
|
-
exports.prepareRequestHeaders = prepareRequestHeaders;
|
|
110
109
|
function isEnvelopeWithBatchId(value) {
|
|
111
110
|
if (!cafe_utility_1.Types.isObject(value)) {
|
|
112
111
|
return false;
|
package/dist/cjs/utils/http.js
CHANGED
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.DEFAULT_HTTP_CONFIG = void 0;
|
|
7
|
+
exports.http = http;
|
|
7
8
|
const axios_1 = __importDefault(require("axios"));
|
|
8
9
|
const cafe_utility_1 = require("cafe-utility");
|
|
9
10
|
const debug_1 = __importDefault(require("debug"));
|
|
@@ -14,6 +15,7 @@ const MAX_FAILED_ATTEMPTS = 100000;
|
|
|
14
15
|
const DELAY_FAST = 200;
|
|
15
16
|
const DELAY_SLOW = 1000;
|
|
16
17
|
const DELAY_THRESHOLD = cafe_utility_1.Dates.minutes(1) / DELAY_FAST;
|
|
18
|
+
const ABORT_ERROR_MESSAGE = 'Request aborted';
|
|
17
19
|
exports.DEFAULT_HTTP_CONFIG = {
|
|
18
20
|
headers: {
|
|
19
21
|
accept: 'application/json, text/plain, */*',
|
|
@@ -21,6 +23,11 @@ exports.DEFAULT_HTTP_CONFIG = {
|
|
|
21
23
|
maxBodyLength: Infinity,
|
|
22
24
|
maxContentLength: Infinity,
|
|
23
25
|
};
|
|
26
|
+
function throwIfAborted(signal, config, responseData, responseStatus) {
|
|
27
|
+
if (signal?.aborted) {
|
|
28
|
+
throw new index_1.BeeResponseError(config.method || 'get', config.url || '<unknown>', ABORT_ERROR_MESSAGE, responseData, responseStatus, 'ERR_CANCELED');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
24
31
|
/**
|
|
25
32
|
* Main function to make HTTP requests.
|
|
26
33
|
* @param options User defined settings
|
|
@@ -28,9 +35,11 @@ exports.DEFAULT_HTTP_CONFIG = {
|
|
|
28
35
|
*/
|
|
29
36
|
async function http(options, config) {
|
|
30
37
|
const requestConfig = cafe_utility_1.Objects.deepMerge3(exports.DEFAULT_HTTP_CONFIG, config, options);
|
|
31
|
-
if (
|
|
32
|
-
requestConfig.
|
|
38
|
+
if (options.signal) {
|
|
39
|
+
requestConfig.signal = options.signal;
|
|
40
|
+
throwIfAborted(options.signal, config);
|
|
33
41
|
}
|
|
42
|
+
maybeReplaceBodyBuffers(requestConfig);
|
|
34
43
|
if (requestConfig.params) {
|
|
35
44
|
const keys = Object.keys(requestConfig.params);
|
|
36
45
|
for (const key of keys) {
|
|
@@ -42,6 +51,7 @@ async function http(options, config) {
|
|
|
42
51
|
}
|
|
43
52
|
let failedAttempts = 0;
|
|
44
53
|
while (failedAttempts < MAX_FAILED_ATTEMPTS) {
|
|
54
|
+
throwIfAborted(options.signal, config);
|
|
45
55
|
try {
|
|
46
56
|
debug(`${requestConfig.method || 'get'} ${cafe_utility_1.Strings.joinUrl([
|
|
47
57
|
requestConfig.baseURL,
|
|
@@ -53,12 +63,15 @@ async function http(options, config) {
|
|
|
53
63
|
}
|
|
54
64
|
catch (e) {
|
|
55
65
|
if (e instanceof AxiosError) {
|
|
66
|
+
if (e.code === 'ERR_CANCELED') {
|
|
67
|
+
throwIfAborted({ aborted: true }, config, e.response?.data, e.response?.status);
|
|
68
|
+
}
|
|
56
69
|
if (e.code === 'ECONNABORTED' && options.endlesslyRetry) {
|
|
57
70
|
failedAttempts++;
|
|
58
71
|
await cafe_utility_1.System.sleepMillis(failedAttempts < DELAY_THRESHOLD ? DELAY_FAST : DELAY_SLOW);
|
|
59
72
|
}
|
|
60
73
|
else {
|
|
61
|
-
throw new index_1.BeeResponseError(config.method || 'get', config.url || '<unknown>', e.message, e.response?.data, e.response?.status, e.
|
|
74
|
+
throw new index_1.BeeResponseError(config.method || 'get', config.url || '<unknown>', e.message, e.response?.data, e.response?.status, e.response?.statusText);
|
|
62
75
|
}
|
|
63
76
|
}
|
|
64
77
|
else {
|
|
@@ -68,7 +81,6 @@ async function http(options, config) {
|
|
|
68
81
|
}
|
|
69
82
|
throw Error('Max number of failed attempts reached');
|
|
70
83
|
}
|
|
71
|
-
exports.http = http;
|
|
72
84
|
function maybeRunOnRequestHook(options, requestConfig) {
|
|
73
85
|
if (options.onRequest) {
|
|
74
86
|
options.onRequest({
|
|
@@ -79,3 +91,11 @@ function maybeRunOnRequestHook(options, requestConfig) {
|
|
|
79
91
|
});
|
|
80
92
|
}
|
|
81
93
|
}
|
|
94
|
+
function maybeReplaceBodyBuffers(config) {
|
|
95
|
+
if (config.data && config.data instanceof Uint8Array) {
|
|
96
|
+
config.data = config.data.buffer.slice(config.data.byteOffset, config.data.byteOffset + config.data.byteLength);
|
|
97
|
+
}
|
|
98
|
+
if (config.data && typeof Buffer !== 'undefined' && Buffer.isBuffer(config.data)) {
|
|
99
|
+
config.data = config.data.buffer.slice(config.data.byteOffset, config.data.byteOffset + config.data.byteLength);
|
|
100
|
+
}
|
|
101
|
+
}
|
package/dist/cjs/utils/pss.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeMaxTarget =
|
|
3
|
+
exports.makeMaxTarget = makeMaxTarget;
|
|
4
4
|
const types_1 = require("../types");
|
|
5
5
|
const typed_bytes_1 = require("./typed-bytes");
|
|
6
6
|
/**
|
|
@@ -14,4 +14,3 @@ function makeMaxTarget(target) {
|
|
|
14
14
|
target = new typed_bytes_1.PeerAddress(target);
|
|
15
15
|
return target.toHex().slice(0, types_1.PSS_TARGET_HEX_LENGTH_MAX);
|
|
16
16
|
}
|
|
17
|
-
exports.makeMaxTarget = makeMaxTarget;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.approximateOverheadForRedundancyLevel = approximateOverheadForRedundancyLevel;
|
|
4
|
+
exports.getRedundancyStats = getRedundancyStats;
|
|
5
|
+
exports.getRedundancyStat = getRedundancyStat;
|
|
4
6
|
const __1 = require("..");
|
|
5
7
|
const mediumTable = [
|
|
6
8
|
[94, 68, 46, 28, 14, 5, 1],
|
|
@@ -59,7 +61,6 @@ function approximateOverheadForRedundancyLevel(chunks, level, encrypted) {
|
|
|
59
61
|
}
|
|
60
62
|
return parities[parities.length - 1] / supportedChunks[supportedChunks.length - 1];
|
|
61
63
|
}
|
|
62
|
-
exports.approximateOverheadForRedundancyLevel = approximateOverheadForRedundancyLevel;
|
|
63
64
|
function selectTable(level, encrypted) {
|
|
64
65
|
switch (level) {
|
|
65
66
|
case __1.RedundancyLevel.MEDIUM:
|
|
@@ -102,7 +103,6 @@ function getRedundancyStats() {
|
|
|
102
103
|
paranoid,
|
|
103
104
|
};
|
|
104
105
|
}
|
|
105
|
-
exports.getRedundancyStats = getRedundancyStats;
|
|
106
106
|
function getRedundancyStat(level) {
|
|
107
107
|
if (typeof level === 'string') {
|
|
108
108
|
switch (level.toLowerCase()) {
|
|
@@ -131,4 +131,3 @@ function getRedundancyStat(level) {
|
|
|
131
131
|
throw new Error(`Unknown redundancy level '${level}'`);
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
exports.getRedundancyStat = getRedundancyStat;
|
package/dist/cjs/utils/stamps.js
CHANGED
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getStampUsage = getStampUsage;
|
|
4
|
+
exports.getStampTheoreticalBytes = getStampTheoreticalBytes;
|
|
5
|
+
exports.getStampEffectiveBytes = getStampEffectiveBytes;
|
|
6
|
+
exports.getStampEffectiveBytesBreakpoints = getStampEffectiveBytesBreakpoints;
|
|
7
|
+
exports.getStampCost = getStampCost;
|
|
8
|
+
exports.getStampDuration = getStampDuration;
|
|
9
|
+
exports.getAmountForDuration = getAmountForDuration;
|
|
10
|
+
exports.getDepthForSize = getDepthForSize;
|
|
11
|
+
exports.convertEnvelopeToMarshaledStamp = convertEnvelopeToMarshaledStamp;
|
|
12
|
+
exports.marshalStamp = marshalStamp;
|
|
13
|
+
exports.mapPostageBatch = mapPostageBatch;
|
|
14
|
+
exports.unmapPostageBatch = unmapPostageBatch;
|
|
4
15
|
const cafe_utility_1 = require("cafe-utility");
|
|
5
16
|
const types_1 = require("../types");
|
|
6
17
|
const bytes_1 = require("./bytes");
|
|
7
18
|
const duration_1 = require("./duration");
|
|
19
|
+
const size_1 = require("./size");
|
|
8
20
|
const tokens_1 = require("./tokens");
|
|
9
21
|
const type_1 = require("./type");
|
|
22
|
+
const typed_bytes_1 = require("./typed-bytes");
|
|
23
|
+
const workaround_1 = require("./workaround");
|
|
10
24
|
const MAX_UTILIZATION = 0.9;
|
|
11
25
|
/**
|
|
12
26
|
* Utility function that calculates usage of postage batch based on its utilization, depth and bucket depth.
|
|
@@ -18,7 +32,6 @@ const MAX_UTILIZATION = 0.9;
|
|
|
18
32
|
function getStampUsage(utilization, depth, bucketDepth) {
|
|
19
33
|
return utilization / Math.pow(2, depth - bucketDepth);
|
|
20
34
|
}
|
|
21
|
-
exports.getStampUsage = getStampUsage;
|
|
22
35
|
/**
|
|
23
36
|
* Utility function that calculates the theoritical maximum size of a postage batch based on its depth.
|
|
24
37
|
*
|
|
@@ -29,7 +42,6 @@ exports.getStampUsage = getStampUsage;
|
|
|
29
42
|
function getStampTheoreticalBytes(depth) {
|
|
30
43
|
return 4096 * 2 ** depth;
|
|
31
44
|
}
|
|
32
|
-
exports.getStampTheoreticalBytes = getStampTheoreticalBytes;
|
|
33
45
|
/**
|
|
34
46
|
* Based on https://docs.ethswarm.org/docs/learn/technology/contracts/postage-stamp/#effective-utilisation-table
|
|
35
47
|
* Optimised for encrypted, medium erasure coding
|
|
@@ -86,7 +98,6 @@ function getStampEffectiveBytes(depth, encryption, erasureCodeLevel) {
|
|
|
86
98
|
}
|
|
87
99
|
return Math.ceil(getStampTheoreticalBytes(depth) * MAX_UTILIZATION);
|
|
88
100
|
}
|
|
89
|
-
exports.getStampEffectiveBytes = getStampEffectiveBytes;
|
|
90
101
|
function getStampEffectiveBytesBreakpoints(encryption, erasureCodeLevel) {
|
|
91
102
|
const map = new Map();
|
|
92
103
|
for (let i = 17; i < 35; i++) {
|
|
@@ -94,14 +105,12 @@ function getStampEffectiveBytesBreakpoints(encryption, erasureCodeLevel) {
|
|
|
94
105
|
}
|
|
95
106
|
return map;
|
|
96
107
|
}
|
|
97
|
-
exports.getStampEffectiveBytesBreakpoints = getStampEffectiveBytesBreakpoints;
|
|
98
108
|
/**
|
|
99
109
|
* Utility function that calculates the cost of a postage batch based on its depth and amount.
|
|
100
110
|
*/
|
|
101
111
|
function getStampCost(depth, amount) {
|
|
102
112
|
return tokens_1.BZZ.fromPLUR(2n ** BigInt(depth) * BigInt(amount));
|
|
103
113
|
}
|
|
104
|
-
exports.getStampCost = getStampCost;
|
|
105
114
|
/**
|
|
106
115
|
* Utility function that calculates the TTL of a postage batch based on its amount, price per block and block time.
|
|
107
116
|
*
|
|
@@ -113,7 +122,6 @@ function getStampDuration(amount, pricePerBlock, blockTime) {
|
|
|
113
122
|
const amountBigInt = BigInt((0, type_1.asNumberString)(amount));
|
|
114
123
|
return duration_1.Duration.fromSeconds(Number((amountBigInt * BigInt(blockTime)) / BigInt(pricePerBlock)));
|
|
115
124
|
}
|
|
116
|
-
exports.getStampDuration = getStampDuration;
|
|
117
125
|
/**
|
|
118
126
|
* Get the postage batch `amount` required for a given `duration`.
|
|
119
127
|
*
|
|
@@ -124,7 +132,6 @@ exports.getStampDuration = getStampDuration;
|
|
|
124
132
|
function getAmountForDuration(duration, pricePerBlock, blockTime) {
|
|
125
133
|
return (BigInt(duration.toSeconds()) / BigInt(blockTime)) * BigInt(pricePerBlock) + 1n;
|
|
126
134
|
}
|
|
127
|
-
exports.getAmountForDuration = getAmountForDuration;
|
|
128
135
|
/**
|
|
129
136
|
* Utility function that calculates the depth required for a postage batch to achieve the specified effective size
|
|
130
137
|
*
|
|
@@ -151,11 +158,9 @@ function getDepthForSize(size, encryption, erasureCodeLevel) {
|
|
|
151
158
|
}
|
|
152
159
|
return 35;
|
|
153
160
|
}
|
|
154
|
-
exports.getDepthForSize = getDepthForSize;
|
|
155
161
|
function convertEnvelopeToMarshaledStamp(envelope) {
|
|
156
162
|
return marshalStamp(envelope.signature, envelope.batchId.toUint8Array(), envelope.timestamp, envelope.index);
|
|
157
163
|
}
|
|
158
|
-
exports.convertEnvelopeToMarshaledStamp = convertEnvelopeToMarshaledStamp;
|
|
159
164
|
function marshalStamp(signature, batchId, timestamp, index) {
|
|
160
165
|
if (signature.length !== 65) {
|
|
161
166
|
throw Error('invalid signature length');
|
|
@@ -171,4 +176,48 @@ function marshalStamp(signature, batchId, timestamp, index) {
|
|
|
171
176
|
}
|
|
172
177
|
return new bytes_1.Bytes(cafe_utility_1.Binary.concatBytes(batchId, index, timestamp, signature));
|
|
173
178
|
}
|
|
174
|
-
|
|
179
|
+
function mapPostageBatch(raw, encryption, erasureCodeLevel) {
|
|
180
|
+
const usage = getStampUsage(raw.utilization, raw.depth, raw.bucketDepth);
|
|
181
|
+
const batchTTL = (0, workaround_1.normalizeBatchTTL)(raw.batchTTL);
|
|
182
|
+
const duration = duration_1.Duration.fromSeconds(batchTTL);
|
|
183
|
+
const effectiveBytes = getStampEffectiveBytes(raw.depth, encryption, erasureCodeLevel);
|
|
184
|
+
return {
|
|
185
|
+
batchID: new typed_bytes_1.BatchId(raw.batchID),
|
|
186
|
+
utilization: raw.utilization,
|
|
187
|
+
usable: raw.usable,
|
|
188
|
+
label: raw.label,
|
|
189
|
+
depth: raw.depth,
|
|
190
|
+
amount: (0, type_1.asNumberString)(raw.amount),
|
|
191
|
+
bucketDepth: raw.bucketDepth,
|
|
192
|
+
blockNumber: raw.blockNumber,
|
|
193
|
+
immutableFlag: raw.immutableFlag,
|
|
194
|
+
usage,
|
|
195
|
+
usageText: `${Math.round(usage * 100)}%`,
|
|
196
|
+
size: size_1.Size.fromBytes(effectiveBytes),
|
|
197
|
+
remainingSize: size_1.Size.fromBytes(Math.ceil(effectiveBytes * (1 - usage))),
|
|
198
|
+
theoreticalSize: size_1.Size.fromBytes(getStampTheoreticalBytes(raw.depth)),
|
|
199
|
+
duration,
|
|
200
|
+
calculateSize(encryption, redundancyLevel) {
|
|
201
|
+
const effectiveBytes = getStampEffectiveBytes(raw.depth, encryption, redundancyLevel);
|
|
202
|
+
return size_1.Size.fromBytes(effectiveBytes);
|
|
203
|
+
},
|
|
204
|
+
calculateRemainingSize(encryption, redundancyLevel) {
|
|
205
|
+
const effectiveBytes = getStampEffectiveBytes(raw.depth, encryption, redundancyLevel);
|
|
206
|
+
return size_1.Size.fromBytes(Math.ceil(effectiveBytes * (1 - this.usage)));
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
function unmapPostageBatch(batch) {
|
|
211
|
+
return {
|
|
212
|
+
batchID: batch.batchID.toHex(),
|
|
213
|
+
utilization: batch.utilization,
|
|
214
|
+
usable: batch.usable,
|
|
215
|
+
label: batch.label,
|
|
216
|
+
depth: batch.depth,
|
|
217
|
+
amount: batch.amount,
|
|
218
|
+
bucketDepth: batch.bucketDepth,
|
|
219
|
+
blockNumber: batch.blockNumber,
|
|
220
|
+
immutableFlag: batch.immutableFlag,
|
|
221
|
+
batchTTL: batch.duration.toSeconds(),
|
|
222
|
+
};
|
|
223
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.uploadTar =
|
|
3
|
+
exports.uploadTar = uploadTar;
|
|
4
4
|
const headers_1 = require("./headers");
|
|
5
5
|
const http_1 = require("./http");
|
|
6
6
|
const tar_1 = require("./tar");
|
|
@@ -23,4 +23,3 @@ async function uploadTar(requestOptions, collection, postageBatchId, options) {
|
|
|
23
23
|
});
|
|
24
24
|
return response;
|
|
25
25
|
}
|
|
26
|
-
exports.uploadTar = uploadTar;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.uploadTar =
|
|
3
|
+
exports.uploadTar = uploadTar;
|
|
4
4
|
const headers_1 = require("./headers");
|
|
5
5
|
const http_1 = require("./http");
|
|
6
6
|
const tar_1 = require("./tar");
|
|
@@ -24,4 +24,3 @@ async function uploadTar(requestOptions, collection, postageBatchId, options) {
|
|
|
24
24
|
const response = await responsePromise;
|
|
25
25
|
return response;
|
|
26
26
|
}
|
|
27
|
-
exports.uploadTar = uploadTar;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.writeTar =
|
|
3
|
+
exports.writeTar = writeTar;
|
|
4
4
|
const file_1 = require("./file");
|
|
5
5
|
async function writeTar(collection, tarStream) {
|
|
6
6
|
for (const item of collection) {
|
|
@@ -14,4 +14,3 @@ async function writeTar(collection, tarStream) {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
exports.writeTar = writeTar;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.writeTar =
|
|
3
|
+
exports.writeTar = writeTar;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
async function writeTar(collection, tarStream) {
|
|
6
6
|
for (const item of collection) {
|
|
@@ -22,4 +22,3 @@ async function writeTar(collection, tarStream) {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
exports.writeTar = writeTar;
|
package/dist/cjs/utils/type.js
CHANGED
|
@@ -15,15 +15,41 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
36
|
+
exports.isReadable = isReadable;
|
|
37
|
+
exports.asNumberString = asNumberString;
|
|
38
|
+
exports.prepareBeeRequestOptions = prepareBeeRequestOptions;
|
|
39
|
+
exports.prepareDownloadOptions = prepareDownloadOptions;
|
|
40
|
+
exports.prepareUploadOptions = prepareUploadOptions;
|
|
41
|
+
exports.prepareRedundantUploadOptions = prepareRedundantUploadOptions;
|
|
42
|
+
exports.prepareFileUploadOptions = prepareFileUploadOptions;
|
|
43
|
+
exports.prepareCollectionUploadOptions = prepareCollectionUploadOptions;
|
|
44
|
+
exports.isTag = isTag;
|
|
45
|
+
exports.preparePssMessageHandler = preparePssMessageHandler;
|
|
46
|
+
exports.prepareGsocMessageHandler = prepareGsocMessageHandler;
|
|
47
|
+
exports.preparePostageBatchOptions = preparePostageBatchOptions;
|
|
48
|
+
exports.prepareTransactionOptions = prepareTransactionOptions;
|
|
49
|
+
exports.assertData = assertData;
|
|
50
|
+
exports.assertFileData = assertFileData;
|
|
51
|
+
exports.prepareAllTagsOptions = prepareAllTagsOptions;
|
|
52
|
+
exports.makeTagUid = makeTagUid;
|
|
27
53
|
const cafe_utility_1 = require("cafe-utility");
|
|
28
54
|
const stream = __importStar(require("stream"));
|
|
29
55
|
const types_1 = require("../types");
|
|
@@ -32,14 +58,12 @@ const typed_bytes_1 = require("./typed-bytes");
|
|
|
32
58
|
function isReadable(value) {
|
|
33
59
|
return typeof stream.Readable !== 'undefined' && value instanceof stream.Readable;
|
|
34
60
|
}
|
|
35
|
-
exports.isReadable = isReadable;
|
|
36
61
|
function asNumberString(value, options) {
|
|
37
62
|
if (typeof value === 'bigint') {
|
|
38
63
|
value = value.toString();
|
|
39
64
|
}
|
|
40
65
|
return cafe_utility_1.Types.asIntegerString(value, options);
|
|
41
66
|
}
|
|
42
|
-
exports.asNumberString = asNumberString;
|
|
43
67
|
function prepareBeeRequestOptions(value) {
|
|
44
68
|
const object = cafe_utility_1.Types.asObject(value, { name: 'BeeRequestOptions' });
|
|
45
69
|
return {
|
|
@@ -50,9 +74,9 @@ function prepareBeeRequestOptions(value) {
|
|
|
50
74
|
httpAgent: object.httpAgent,
|
|
51
75
|
httpsAgent: object.httpsAgent,
|
|
52
76
|
endlesslyRetry: cafe_utility_1.Types.asOptional(x => cafe_utility_1.Types.asBoolean(x, { name: 'endlesslyRetry' }), object.endlesslyRetry),
|
|
77
|
+
signal: object.signal,
|
|
53
78
|
};
|
|
54
79
|
}
|
|
55
|
-
exports.prepareBeeRequestOptions = prepareBeeRequestOptions;
|
|
56
80
|
function prepareDownloadOptions(value) {
|
|
57
81
|
const object = cafe_utility_1.Types.asObject(value, { name: 'DownloadOptions' });
|
|
58
82
|
return {
|
|
@@ -64,7 +88,6 @@ function prepareDownloadOptions(value) {
|
|
|
64
88
|
actTimestamp: cafe_utility_1.Types.asOptional(x => cafe_utility_1.Types.asNumber(x, { name: 'actTimestamp' }), object.actTimestamp),
|
|
65
89
|
};
|
|
66
90
|
}
|
|
67
|
-
exports.prepareDownloadOptions = prepareDownloadOptions;
|
|
68
91
|
function prepareUploadOptions(value, name = 'UploadOptions') {
|
|
69
92
|
const object = cafe_utility_1.Types.asObject(value, { name });
|
|
70
93
|
return {
|
|
@@ -76,7 +99,6 @@ function prepareUploadOptions(value, name = 'UploadOptions') {
|
|
|
76
99
|
tag: cafe_utility_1.Types.asOptional(x => cafe_utility_1.Types.asInteger(x, { name: 'tag', min: 0 }), object.tag),
|
|
77
100
|
};
|
|
78
101
|
}
|
|
79
|
-
exports.prepareUploadOptions = prepareUploadOptions;
|
|
80
102
|
function prepareRedundantUploadOptions(value, name = 'UploadOptions') {
|
|
81
103
|
const uploadOptions = prepareUploadOptions(value, name);
|
|
82
104
|
const object = cafe_utility_1.Types.asObject(value, { name });
|
|
@@ -85,7 +107,6 @@ function prepareRedundantUploadOptions(value, name = 'UploadOptions') {
|
|
|
85
107
|
redundancyLevel: cafe_utility_1.Types.asOptional(x => cafe_utility_1.Types.asInteger(x, { name: 'redundancyLevel', min: 0 }), object.redundancyLevel),
|
|
86
108
|
};
|
|
87
109
|
}
|
|
88
|
-
exports.prepareRedundantUploadOptions = prepareRedundantUploadOptions;
|
|
89
110
|
function prepareFileUploadOptions(value) {
|
|
90
111
|
const uploadOptions = prepareUploadOptions(value, 'FileUploadOptions');
|
|
91
112
|
const object = cafe_utility_1.Types.asObject(value, { name: 'FileUploadOptions' });
|
|
@@ -96,7 +117,6 @@ function prepareFileUploadOptions(value) {
|
|
|
96
117
|
redundancyLevel: cafe_utility_1.Types.asOptional(x => cafe_utility_1.Types.asInteger(x, { name: 'redundancyLevel', min: 0 }), object.redundancyLevel),
|
|
97
118
|
};
|
|
98
119
|
}
|
|
99
|
-
exports.prepareFileUploadOptions = prepareFileUploadOptions;
|
|
100
120
|
function prepareCollectionUploadOptions(value) {
|
|
101
121
|
const uploadOptions = prepareUploadOptions(value, 'CollectionUploadOptions');
|
|
102
122
|
const object = cafe_utility_1.Types.asObject(value, { name: 'CollectionUploadOptions' });
|
|
@@ -107,7 +127,6 @@ function prepareCollectionUploadOptions(value) {
|
|
|
107
127
|
redundancyLevel: cafe_utility_1.Types.asOptional(x => cafe_utility_1.Types.asInteger(x, { name: 'redundancyLevel', min: 0 }), object.redundancyLevel),
|
|
108
128
|
};
|
|
109
129
|
}
|
|
110
|
-
exports.prepareCollectionUploadOptions = prepareCollectionUploadOptions;
|
|
111
130
|
function isTag(value) {
|
|
112
131
|
try {
|
|
113
132
|
const object = cafe_utility_1.Types.asObject(value, { name: 'Tag' });
|
|
@@ -118,7 +137,6 @@ function isTag(value) {
|
|
|
118
137
|
return false;
|
|
119
138
|
}
|
|
120
139
|
}
|
|
121
|
-
exports.isTag = isTag;
|
|
122
140
|
function preparePssMessageHandler(value) {
|
|
123
141
|
const object = cafe_utility_1.Types.asObject(value, { name: 'PssMessageHandler' });
|
|
124
142
|
return {
|
|
@@ -127,7 +145,6 @@ function preparePssMessageHandler(value) {
|
|
|
127
145
|
onClose: cafe_utility_1.Types.asFunction(object.onClose, { name: 'onClose' }),
|
|
128
146
|
};
|
|
129
147
|
}
|
|
130
|
-
exports.preparePssMessageHandler = preparePssMessageHandler;
|
|
131
148
|
function prepareGsocMessageHandler(value) {
|
|
132
149
|
const object = cafe_utility_1.Types.asObject(value, { name: 'GsocMessageHandler' });
|
|
133
150
|
return {
|
|
@@ -136,7 +153,6 @@ function prepareGsocMessageHandler(value) {
|
|
|
136
153
|
onClose: cafe_utility_1.Types.asFunction(object.onClose, { name: 'onClose' }),
|
|
137
154
|
};
|
|
138
155
|
}
|
|
139
|
-
exports.prepareGsocMessageHandler = prepareGsocMessageHandler;
|
|
140
156
|
function preparePostageBatchOptions(value) {
|
|
141
157
|
const object = cafe_utility_1.Types.asObject(value, { name: 'PostageBatchOptions' });
|
|
142
158
|
return {
|
|
@@ -147,7 +163,6 @@ function preparePostageBatchOptions(value) {
|
|
|
147
163
|
waitForUsableTimeout: cafe_utility_1.Types.asOptional(x => cafe_utility_1.Types.asInteger(x, { name: 'waitForUsableTimeout', min: 0 }), object.waitForUsableTimeout),
|
|
148
164
|
};
|
|
149
165
|
}
|
|
150
|
-
exports.preparePostageBatchOptions = preparePostageBatchOptions;
|
|
151
166
|
function prepareTransactionOptions(value, name = 'TransactionOptions') {
|
|
152
167
|
const object = cafe_utility_1.Types.asObject(value, { name });
|
|
153
168
|
return {
|
|
@@ -155,7 +170,6 @@ function prepareTransactionOptions(value, name = 'TransactionOptions') {
|
|
|
155
170
|
gasPrice: cafe_utility_1.Types.asOptional(x => asNumberString(x, { name: 'gasPrice', min: 0n }), object.gasPrice),
|
|
156
171
|
};
|
|
157
172
|
}
|
|
158
|
-
exports.prepareTransactionOptions = prepareTransactionOptions;
|
|
159
173
|
/**
|
|
160
174
|
* Check whether the given parameter is valid data to upload
|
|
161
175
|
* @param value
|
|
@@ -166,7 +180,6 @@ function assertData(value) {
|
|
|
166
180
|
throw new TypeError('Data must be either string or Uint8Array!');
|
|
167
181
|
}
|
|
168
182
|
}
|
|
169
|
-
exports.assertData = assertData;
|
|
170
183
|
/**
|
|
171
184
|
* Check whether the given parameter is a correct file representation to file upload.
|
|
172
185
|
* @param value
|
|
@@ -177,7 +190,6 @@ function assertFileData(value) {
|
|
|
177
190
|
throw new TypeError('Data must be either string, Readable, Uint8Array or File!');
|
|
178
191
|
}
|
|
179
192
|
}
|
|
180
|
-
exports.assertFileData = assertFileData;
|
|
181
193
|
/**
|
|
182
194
|
* Checks whether optional options for AllTags query are valid
|
|
183
195
|
* @param options
|
|
@@ -189,7 +201,6 @@ function prepareAllTagsOptions(value) {
|
|
|
189
201
|
offset: cafe_utility_1.Types.asOptional(x => cafe_utility_1.Types.asInteger(x, { name: 'offset', min: 0 }), object.offset),
|
|
190
202
|
};
|
|
191
203
|
}
|
|
192
|
-
exports.prepareAllTagsOptions = prepareAllTagsOptions;
|
|
193
204
|
/**
|
|
194
205
|
* Utility functions that return Tag UID
|
|
195
206
|
* @param tagUid
|
|
@@ -206,4 +217,3 @@ function makeTagUid(tagUid) {
|
|
|
206
217
|
}
|
|
207
218
|
throw new TypeError(`Expected number | Tag | string from tagUid, got: ${tagUid}`);
|
|
208
219
|
}
|
|
209
|
-
exports.makeTagUid = makeTagUid;
|
package/dist/cjs/utils/url.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isValidBeeUrl = isValidBeeUrl;
|
|
4
|
+
exports.assertBeeUrl = assertBeeUrl;
|
|
5
|
+
exports.stripLastSlash = stripLastSlash;
|
|
4
6
|
const error_1 = require("./error");
|
|
5
7
|
/**
|
|
6
8
|
* Validates that passed string is valid URL of Bee.
|
|
@@ -21,7 +23,6 @@ function isValidBeeUrl(url) {
|
|
|
21
23
|
return false;
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
|
-
exports.isValidBeeUrl = isValidBeeUrl;
|
|
25
26
|
/**
|
|
26
27
|
* Validates that passed string is valid URL of Bee, if not it throws BeeArgumentError.
|
|
27
28
|
* We support only HTTP and HTTPS protocols.
|
|
@@ -33,7 +34,6 @@ function assertBeeUrl(url) {
|
|
|
33
34
|
throw new error_1.BeeArgumentError('URL is not valid!', url);
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
|
-
exports.assertBeeUrl = assertBeeUrl;
|
|
37
37
|
/**
|
|
38
38
|
* Removes trailing slash out of the given string.
|
|
39
39
|
* @param url
|
|
@@ -44,4 +44,3 @@ function stripLastSlash(url) {
|
|
|
44
44
|
}
|
|
45
45
|
return url;
|
|
46
46
|
}
|
|
47
|
-
exports.stripLastSlash = stripLastSlash;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// TODO: Remove this file after the issue is fixed
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
4
|
+
exports.normalizeBatchTTL = normalizeBatchTTL;
|
|
5
|
+
exports.normalizeCurrentPrice = normalizeCurrentPrice;
|
|
5
6
|
function normalizeBatchTTL(batchTTL) {
|
|
6
7
|
if (!Number.isInteger(batchTTL)) {
|
|
7
8
|
return 1;
|
|
@@ -9,12 +10,14 @@ function normalizeBatchTTL(batchTTL) {
|
|
|
9
10
|
if (batchTTL < 1) {
|
|
10
11
|
return 1;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
// Cap `batchTTL` (represents seconds) to 100 years.
|
|
14
|
+
// We can assume `storagePrice` is invalid (e.g. 1).
|
|
15
|
+
// This is needed to prevent Date objects breaking.
|
|
16
|
+
if (batchTTL > 3155695200) {
|
|
17
|
+
return 3155695200;
|
|
14
18
|
}
|
|
15
19
|
return batchTTL;
|
|
16
20
|
}
|
|
17
|
-
exports.normalizeBatchTTL = normalizeBatchTTL;
|
|
18
21
|
function normalizeCurrentPrice(currentPrice) {
|
|
19
22
|
if (!Number.isInteger(currentPrice)) {
|
|
20
23
|
return 24000;
|
|
@@ -24,4 +27,3 @@ function normalizeCurrentPrice(currentPrice) {
|
|
|
24
27
|
}
|
|
25
28
|
return currentPrice;
|
|
26
29
|
}
|
|
27
|
-
exports.normalizeCurrentPrice = normalizeCurrentPrice;
|