@bigmi/core 0.5.2 → 0.5.4
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/CHANGELOG.md +9 -0
- package/dist/cjs/transports/blockchair/__mocks__/getBalance/zeroBalance.json +29 -0
- package/dist/cjs/transports/blockchair/getBalance.js.map +1 -1
- package/dist/cjs/transports/blockchair/getUTXOs.js +12 -1
- package/dist/cjs/transports/blockchair/getUTXOs.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/transports/blockchair/__mocks__/getBalance/zeroBalance.json +29 -0
- package/dist/esm/transports/blockchair/getBalance.js.map +1 -1
- package/dist/esm/transports/blockchair/getUTXOs.js +12 -1
- package/dist/esm/transports/blockchair/getUTXOs.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/transports/blockchair/getBalance.d.ts.map +1 -1
- package/dist/types/transports/blockchair/getUTXOs.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
- package/package.json.tmp +1 -1
- package/src/transports/blockchair/__mocks__/getBalance/zeroBalance.json +29 -0
- package/src/transports/blockchair/blockchair.spec.ts +16 -0
- package/src/transports/blockchair/getBalance.ts +2 -0
- package/src/transports/blockchair/getUTXOs.ts +15 -1
- package/src/transports/fallback.spec.ts +25 -0
- package/src/version.ts +1 -1
- package/dist/cjs/types/actions.d.ts +0 -17
- package/dist/cjs/types/actions.js +0 -3
- package/dist/cjs/types/actions.js.map +0 -1
- package/dist/cjs/types/storage.d.ts +0 -22
- package/dist/cjs/types/storage.js +0 -3
- package/dist/cjs/types/storage.js.map +0 -1
- package/dist/esm/types/actions.d.ts +0 -20
- package/dist/esm/types/actions.js +0 -2
- package/dist/esm/types/actions.js.map +0 -1
- package/dist/esm/types/storage.d.ts +0 -22
- package/dist/esm/types/storage.js +0 -2
- package/dist/esm/types/storage.js.map +0 -1
- package/dist/types/types/actions.d.ts +0 -21
- package/dist/types/types/actions.d.ts.map +0 -1
- package/dist/types/types/storage.d.ts +0 -23
- package/dist/types/types/storage.d.ts.map +0 -1
- package/src/types/actions.ts +0 -37
- package/src/types/storage.ts +0 -44
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.5.4](https://github.com/lifinance/bigmi/compare/v0.5.3...v0.5.4) (2025-09-29)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **blockchair:** handle zero balance addresses edge case ([#35](https://github.com/lifinance/bigmi/issues/35)) ([a57c5fd](https://github.com/lifinance/bigmi/commit/a57c5fd49ec22df2dd6165725ce2750d81f3267e))
|
|
11
|
+
|
|
12
|
+
### [0.5.3](https://github.com/lifinance/bigmi/compare/v0.5.2...v0.5.3) (2025-09-22)
|
|
13
|
+
|
|
5
14
|
### [0.5.2](https://github.com/lifinance/bigmi/compare/v0.5.1...v0.5.2) (2025-08-28)
|
|
6
15
|
|
|
7
16
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"data": [],
|
|
3
|
+
"context": {
|
|
4
|
+
"code": 200,
|
|
5
|
+
"source": "A",
|
|
6
|
+
"results": 0,
|
|
7
|
+
"state": 916465,
|
|
8
|
+
"market_price_usd": 109158,
|
|
9
|
+
"cache": {
|
|
10
|
+
"live": true,
|
|
11
|
+
"duration": 120,
|
|
12
|
+
"since": "2025-09-26 10:32:00",
|
|
13
|
+
"until": "2025-09-26 10:34:00",
|
|
14
|
+
"time": null
|
|
15
|
+
},
|
|
16
|
+
"api": {
|
|
17
|
+
"version": "2.0.95-ie",
|
|
18
|
+
"last_major_update": "2022-11-07 02:00:00",
|
|
19
|
+
"next_major_update": "2023-11-12 02:00:00",
|
|
20
|
+
"documentation": "https://blockchair.com/api/docs",
|
|
21
|
+
"notice": "Try out our new API v.3: https://3xpl.com/data"
|
|
22
|
+
},
|
|
23
|
+
"servers": "API4,BTC5",
|
|
24
|
+
"time": 1.4955880641937256,
|
|
25
|
+
"render_time": 0.014816761016845703,
|
|
26
|
+
"full_time": 1.5104048252105713,
|
|
27
|
+
"request_cost": 1.001
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../../../src/transports/blockchair/getBalance.ts"],"names":[],"mappings":";;;AAAA,gDAAkD;AAClD,+CAAkD;AAO3C,MAAM,UAAU,GAAmC,KAAK,EAC7D,MAAM,EACN,EAAE,OAAO,EAAE,MAAM,EAAE,EACnB,EAAE,OAAO,EAAE,EACX,EAAE;IACF,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,GAAG,OAAO,qBAAqB,EAAE;QAC5D,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,OAAO;KACnB,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;QACrC,GAAG,EAAE,MAAM;QACX,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;KAChC,CAAC,CAAgE,CAAA;
|
|
1
|
+
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../../../src/transports/blockchair/getBalance.ts"],"names":[],"mappings":";;;AAAA,gDAAkD;AAClD,+CAAkD;AAO3C,MAAM,UAAU,GAAmC,KAAK,EAC7D,MAAM,EACN,EAAE,OAAO,EAAE,MAAM,EAAE,EACnB,EAAE,OAAO,EAAE,EACX,EAAE;IACF,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,GAAG,OAAO,qBAAqB,EAAE;QAC5D,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,OAAO;KACnB,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;QACrC,GAAG,EAAE,MAAM;QACX,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;KAChC,CAAC,CAAgE,CAAA;IAElE,IACE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS;QACpC,QAAQ,CAAC,OAAO,CAAC,KAAK;QACtB,QAAQ,CAAC,OAAO,EAAE,IAAI,KAAK,GAAG,EAC9B,CAAC;QACD,OAAO;YACL,KAAK,EAAE;gBACL,IAAI,EACF,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG;oBAC3B,CAAC,CAAC,qBAAY,CAAC,aAAa;oBAC5B,CAAC,CAAC,qBAAY,CAAC,UAAU;gBAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK;aACjC;SACF,CAAA;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC,CAAA;AACH,CAAC,CAAA;AAjCY,QAAA,UAAU,cAiCtB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getUTXOs = void 0;
|
|
4
|
+
const base_js_1 = require("../../errors/base.js");
|
|
4
5
|
const request_js_1 = require("../../errors/request.js");
|
|
5
6
|
const rpc_js_1 = require("../../errors/rpc.js");
|
|
6
7
|
const utxo_js_1 = require("../../errors/utxo.js");
|
|
@@ -67,7 +68,17 @@ const getUTXOs = async (client, { baseUrl, apiKey }, { address, minValue }) => {
|
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
if (minValue) {
|
|
70
|
-
const { result: balance } = await (0, getBalance_js_1.getBalance)(client, { baseUrl, apiKey }, { address });
|
|
71
|
+
const { error, result: balance } = await (0, getBalance_js_1.getBalance)(client, { baseUrl, apiKey }, { address });
|
|
72
|
+
if (error) {
|
|
73
|
+
throw new base_js_1.BaseError('Error fetching balance', {
|
|
74
|
+
cause: error,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (balance === undefined) {
|
|
78
|
+
throw new base_js_1.BaseError('Balance is undefined', {
|
|
79
|
+
cause: new Error('Unable to determine balance'),
|
|
80
|
+
});
|
|
81
|
+
}
|
|
71
82
|
if (minValue > Number(balance)) {
|
|
72
83
|
throw new utxo_js_1.InsufficientUTXOBalanceError({
|
|
73
84
|
minValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUTXOs.js","sourceRoot":"","sources":["../../../../src/transports/blockchair/getUTXOs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getUTXOs.js","sourceRoot":"","sources":["../../../../src/transports/blockchair/getUTXOs.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const name = "@bigmi/core";
|
|
2
|
-
export declare const version = "0.5.
|
|
2
|
+
export declare const version = "0.5.4";
|
package/dist/cjs/version.js
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"data": [],
|
|
3
|
+
"context": {
|
|
4
|
+
"code": 200,
|
|
5
|
+
"source": "A",
|
|
6
|
+
"results": 0,
|
|
7
|
+
"state": 916465,
|
|
8
|
+
"market_price_usd": 109158,
|
|
9
|
+
"cache": {
|
|
10
|
+
"live": true,
|
|
11
|
+
"duration": 120,
|
|
12
|
+
"since": "2025-09-26 10:32:00",
|
|
13
|
+
"until": "2025-09-26 10:34:00",
|
|
14
|
+
"time": null
|
|
15
|
+
},
|
|
16
|
+
"api": {
|
|
17
|
+
"version": "2.0.95-ie",
|
|
18
|
+
"last_major_update": "2022-11-07 02:00:00",
|
|
19
|
+
"next_major_update": "2023-11-12 02:00:00",
|
|
20
|
+
"documentation": "https://blockchair.com/api/docs",
|
|
21
|
+
"notice": "Try out our new API v.3: https://3xpl.com/data"
|
|
22
|
+
},
|
|
23
|
+
"servers": "API4,BTC5",
|
|
24
|
+
"time": 1.4955880641937256,
|
|
25
|
+
"render_time": 0.014816761016845703,
|
|
26
|
+
"full_time": 1.5104048252105713,
|
|
27
|
+
"request_cost": 1.001
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../../../src/transports/blockchair/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAOlD,MAAM,CAAC,MAAM,UAAU,GAAmC,KAAK,EAC7D,MAAM,EACN,EAAE,OAAO,EAAE,MAAM,EAAE,EACnB,EAAE,OAAO,EAAE,EACX,EAAE;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,OAAO,qBAAqB,EAAE;QAC5D,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,OAAO;KACnB,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;QACrC,GAAG,EAAE,MAAM;QACX,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;KAChC,CAAC,CAAgE,CAAA;
|
|
1
|
+
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../../../src/transports/blockchair/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAOlD,MAAM,CAAC,MAAM,UAAU,GAAmC,KAAK,EAC7D,MAAM,EACN,EAAE,OAAO,EAAE,MAAM,EAAE,EACnB,EAAE,OAAO,EAAE,EACX,EAAE;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,OAAO,qBAAqB,EAAE;QAC5D,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,OAAO;KACnB,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;QACrC,GAAG,EAAE,MAAM;QACX,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;KAChC,CAAC,CAAgE,CAAA;IAElE,IACE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS;QACpC,QAAQ,CAAC,OAAO,CAAC,KAAK;QACtB,QAAQ,CAAC,OAAO,EAAE,IAAI,KAAK,GAAG,EAC9B,CAAC;QACD,OAAO;YACL,KAAK,EAAE;gBACL,IAAI,EACF,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG;oBAC3B,CAAC,CAAC,YAAY,CAAC,aAAa;oBAC5B,CAAC,CAAC,YAAY,CAAC,UAAU;gBAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK;aACjC;SACF,CAAA;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BaseError } from '../../errors/base.js';
|
|
1
2
|
import { RpcRequestError } from '../../errors/request.js';
|
|
2
3
|
import { RpcErrorCode } from '../../errors/rpc.js';
|
|
3
4
|
import { InsufficientUTXOBalanceError } from '../../errors/utxo.js';
|
|
@@ -64,7 +65,17 @@ export const getUTXOs = async (client, { baseUrl, apiKey }, { address, minValue
|
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
if (minValue) {
|
|
67
|
-
const { result: balance } = await getBalance(client, { baseUrl, apiKey }, { address });
|
|
68
|
+
const { error, result: balance } = await getBalance(client, { baseUrl, apiKey }, { address });
|
|
69
|
+
if (error) {
|
|
70
|
+
throw new BaseError('Error fetching balance', {
|
|
71
|
+
cause: error,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
if (balance === undefined) {
|
|
75
|
+
throw new BaseError('Balance is undefined', {
|
|
76
|
+
cause: new Error('Unable to determine balance'),
|
|
77
|
+
});
|
|
78
|
+
}
|
|
68
79
|
if (minValue > Number(balance)) {
|
|
69
80
|
throw new InsufficientUTXOBalanceError({
|
|
70
81
|
minValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUTXOs.js","sourceRoot":"","sources":["../../../../src/transports/blockchair/getUTXOs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getUTXOs.js","sourceRoot":"","sources":["../../../../src/transports/blockchair/getUTXOs.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const name = "@bigmi/core";
|
|
2
|
-
export declare const version = "0.5.
|
|
2
|
+
export declare const version = "0.5.4";
|
package/dist/esm/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../../../src/transports/blockchair/getBalance.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAMnD,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../../../src/transports/blockchair/getBalance.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAMnD,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAiCrD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUTXOs.d.ts","sourceRoot":"","sources":["../../../../src/transports/blockchair/getUTXOs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getUTXOs.d.ts","sourceRoot":"","sources":["../../../../src/transports/blockchair/getUTXOs.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAoBnD,eAAO,MAAM,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CA+GjD,CAAA"}
|
package/dist/types/version.d.ts
CHANGED
package/package.json
CHANGED
package/package.json.tmp
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"data": [],
|
|
3
|
+
"context": {
|
|
4
|
+
"code": 200,
|
|
5
|
+
"source": "A",
|
|
6
|
+
"results": 0,
|
|
7
|
+
"state": 916465,
|
|
8
|
+
"market_price_usd": 109158,
|
|
9
|
+
"cache": {
|
|
10
|
+
"live": true,
|
|
11
|
+
"duration": 120,
|
|
12
|
+
"since": "2025-09-26 10:32:00",
|
|
13
|
+
"until": "2025-09-26 10:34:00",
|
|
14
|
+
"time": null
|
|
15
|
+
},
|
|
16
|
+
"api": {
|
|
17
|
+
"version": "2.0.95-ie",
|
|
18
|
+
"last_major_update": "2022-11-07 02:00:00",
|
|
19
|
+
"next_major_update": "2023-11-12 02:00:00",
|
|
20
|
+
"documentation": "https://blockchair.com/api/docs",
|
|
21
|
+
"notice": "Try out our new API v.3: https://3xpl.com/data"
|
|
22
|
+
},
|
|
23
|
+
"servers": "API4,BTC5",
|
|
24
|
+
"time": 1.4955880641937256,
|
|
25
|
+
"render_time": 0.014816761016845703,
|
|
26
|
+
"full_time": 1.5104048252105713,
|
|
27
|
+
"request_cost": 1.001
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
import type { UTXOSchema } from '../types.js'
|
|
16
16
|
import getInvalidBalanceReponse from './__mocks__/getBalance/invalidAddress.json'
|
|
17
17
|
import getBalanceReponse from './__mocks__/getBalance/valid.json'
|
|
18
|
+
import getZeroBalanceReponse from './__mocks__/getBalance/zeroBalance.json'
|
|
18
19
|
import getTransactionFeeInvalidResponse from './__mocks__/getTransactionFee/invalid.json'
|
|
19
20
|
import getTransactionFeeValidResponse from './__mocks__/getTransactionFee/valid.json'
|
|
20
21
|
import getUTXOsInvalidResponse from './__mocks__/getUTXOs/invalidAddress.json'
|
|
@@ -74,6 +75,21 @@ describe('Blockchair Transport', () => {
|
|
|
74
75
|
})
|
|
75
76
|
})
|
|
76
77
|
|
|
78
|
+
it('should throw error for zero balance address', async () => {
|
|
79
|
+
if (USE_MOCK) {
|
|
80
|
+
vi.spyOn(global, 'fetch').mockResolvedValue(
|
|
81
|
+
createMockResponse(
|
|
82
|
+
getZeroBalanceReponse as BlockchairAddressBalanceData
|
|
83
|
+
)
|
|
84
|
+
)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const zeroBalanceAddress = '12LRT14SgNFFQ3hMRThAyXNao24BBy5cyU'
|
|
88
|
+
await expect(
|
|
89
|
+
getBalance(publicClient, { address: zeroBalanceAddress })
|
|
90
|
+
).rejects.toThrow()
|
|
91
|
+
})
|
|
92
|
+
|
|
77
93
|
describe('getUTXOs', () => {
|
|
78
94
|
it('should return utxos with correct structure', async () => {
|
|
79
95
|
if (USE_MOCK) {
|
|
@@ -19,6 +19,7 @@ export const getBalance: RpcMethodHandler<'getBalance'> = async (
|
|
|
19
19
|
url: apiUrl,
|
|
20
20
|
fetchOptions: { method: 'GET' },
|
|
21
21
|
})) as unknown as BlockchairResponse<BlockchairAddressBalanceData>
|
|
22
|
+
|
|
22
23
|
if (
|
|
23
24
|
response.data[address] === undefined ||
|
|
24
25
|
response.context.error ||
|
|
@@ -34,6 +35,7 @@ export const getBalance: RpcMethodHandler<'getBalance'> = async (
|
|
|
34
35
|
},
|
|
35
36
|
}
|
|
36
37
|
}
|
|
38
|
+
|
|
37
39
|
return {
|
|
38
40
|
result: BigInt(response.data[address]),
|
|
39
41
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BaseError } from '../../errors/base.js'
|
|
1
2
|
import { RpcRequestError } from '../../errors/request.js'
|
|
2
3
|
import { RpcErrorCode } from '../../errors/rpc.js'
|
|
3
4
|
import { InsufficientUTXOBalanceError } from '../../errors/utxo.js'
|
|
@@ -90,11 +91,24 @@ export const getUTXOs: RpcMethodHandler<'getUTXOs'> = async (
|
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
if (minValue) {
|
|
93
|
-
const { result: balance } = await getBalance(
|
|
94
|
+
const { error, result: balance } = await getBalance(
|
|
94
95
|
client,
|
|
95
96
|
{ baseUrl, apiKey },
|
|
96
97
|
{ address }
|
|
97
98
|
)
|
|
99
|
+
|
|
100
|
+
if (error) {
|
|
101
|
+
throw new BaseError('Error fetching balance', {
|
|
102
|
+
cause: error,
|
|
103
|
+
})
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (balance === undefined) {
|
|
107
|
+
throw new BaseError('Balance is undefined', {
|
|
108
|
+
cause: new Error('Unable to determine balance'),
|
|
109
|
+
})
|
|
110
|
+
}
|
|
111
|
+
|
|
98
112
|
if (minValue > Number(balance)) {
|
|
99
113
|
throw new InsufficientUTXOBalanceError({
|
|
100
114
|
minValue,
|
|
@@ -5,6 +5,7 @@ import { AllTransportsFailedError } from '../errors/transport.js'
|
|
|
5
5
|
import { InsufficientUTXOBalanceError } from '../errors/utxo.js'
|
|
6
6
|
import { createClient, rpcSchema } from '../factories/createClient.js'
|
|
7
7
|
import { createMockResponse } from '../test/utils.js'
|
|
8
|
+
import blockchairZeroBalanceResponse from './blockchair/__mocks__/getBalance/zeroBalance.json'
|
|
8
9
|
import blockchairLimitedResponse from './blockchair/__mocks__/getUTXOs/rateLimited.json'
|
|
9
10
|
import blockchairValidResponse from './blockchair/__mocks__/getUTXOs/valid.json'
|
|
10
11
|
import { blockchair } from './blockchair/blockchair.js'
|
|
@@ -27,6 +28,15 @@ const publicClient = createClient({
|
|
|
27
28
|
]),
|
|
28
29
|
})
|
|
29
30
|
|
|
31
|
+
const blockchairFirstClient = createClient({
|
|
32
|
+
chain: bitcoin,
|
|
33
|
+
rpcSchema: rpcSchema<UTXOSchema>(),
|
|
34
|
+
transport: fallback([
|
|
35
|
+
blockchair({ apiKey }),
|
|
36
|
+
blockcypher({ apiKey: blockCypherKey }),
|
|
37
|
+
]),
|
|
38
|
+
})
|
|
39
|
+
|
|
30
40
|
describe('Fallback Transport', () => {
|
|
31
41
|
beforeEach(() => {
|
|
32
42
|
vi.restoreAllMocks()
|
|
@@ -58,6 +68,21 @@ describe('Fallback Transport', () => {
|
|
|
58
68
|
expect(utxos.length).toBeGreaterThan(0)
|
|
59
69
|
})
|
|
60
70
|
|
|
71
|
+
it('blockchair first client should fallback to blockcypher when fetching with a zero balance address', async () => {
|
|
72
|
+
vi.spyOn(global, 'fetch').mockImplementation((request) => {
|
|
73
|
+
const url = new URL(request.toString())
|
|
74
|
+
if (url.hostname.includes('blockcypher')) {
|
|
75
|
+
return Promise.resolve(createMockResponse(blockcypherValidResponse))
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return Promise.resolve(
|
|
79
|
+
createMockResponse(blockchairZeroBalanceResponse)
|
|
80
|
+
)
|
|
81
|
+
})
|
|
82
|
+
const utxos = await getUTXOs(blockchairFirstClient, { address })
|
|
83
|
+
expect(utxos.length).toBeGreaterThan(0)
|
|
84
|
+
})
|
|
85
|
+
|
|
61
86
|
it('should throw error when both transports fail', async () => {
|
|
62
87
|
vi.spyOn(global, 'fetch').mockImplementation((request) => {
|
|
63
88
|
const url = new URL(request.toString())
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@bigmi/core'
|
|
2
|
-
export const version = '0.5.
|
|
2
|
+
export const version = '0.5.4'
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { SendUTXOTransactionParameters, SendUTXOTransactionReturnType } from '../actions/sendUTXOTransaction.js';
|
|
2
|
-
import type { WaitForTransactionReceiptParameters } from '../actions/waitForTransaction.js';
|
|
3
|
-
import type { SignPsbtParameters, SignPsbtReturnType } from '../transports/types.js';
|
|
4
|
-
import type { UTXOTransaction } from './transaction.js';
|
|
5
|
-
export type WaitForTransactionReceiptReturnType = UTXOTransaction;
|
|
6
|
-
export type WithRetryParameters = {
|
|
7
|
-
delay?: ((config: {
|
|
8
|
-
count: number;
|
|
9
|
-
error: Error;
|
|
10
|
-
}) => number) | number | undefined;
|
|
11
|
-
retryCount?: number | undefined;
|
|
12
|
-
};
|
|
13
|
-
export type WalletActions = {
|
|
14
|
-
sendUTXOTransaction: (args: SendUTXOTransactionParameters) => Promise<SendUTXOTransactionReturnType>;
|
|
15
|
-
signPbst: (args: SignPsbtParameters) => Promise<SignPsbtReturnType>;
|
|
16
|
-
waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters) => Promise<WaitForTransactionReceiptReturnType>;
|
|
17
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/types/actions.ts"],"names":[],"mappings":""}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { Compute } from './utils.js';
|
|
2
|
-
export type StorageItemMap = {
|
|
3
|
-
recentConnectorId: string;
|
|
4
|
-
state: any;
|
|
5
|
-
};
|
|
6
|
-
export type Storage<itemMap extends Record<string, unknown> = Record<string, unknown>, storageItemMap extends StorageItemMap = StorageItemMap & itemMap> = {
|
|
7
|
-
key: string;
|
|
8
|
-
getItem<key extends keyof storageItemMap, value extends storageItemMap[key], defaultValue extends value | null | undefined>(key: key, defaultValue?: defaultValue | undefined): (defaultValue extends null ? value | null : value) | Promise<defaultValue extends null ? value | null : value>;
|
|
9
|
-
setItem<key extends keyof storageItemMap, value extends storageItemMap[key] | null>(key: key, value: value): void | Promise<void>;
|
|
10
|
-
removeItem(key: keyof storageItemMap): void | Promise<void>;
|
|
11
|
-
};
|
|
12
|
-
export type BaseStorage = {
|
|
13
|
-
getItem(key: string): string | null | undefined | Promise<string | null | undefined>;
|
|
14
|
-
setItem(key: string, value: string): void | Promise<void>;
|
|
15
|
-
removeItem(key: string): void | Promise<void>;
|
|
16
|
-
};
|
|
17
|
-
export type CreateStorageParameters = {
|
|
18
|
-
deserialize?: (<type>(value: string) => type | unknown) | undefined;
|
|
19
|
-
key?: string | undefined;
|
|
20
|
-
serialize?: (<type>(value: type | any) => string) | undefined;
|
|
21
|
-
storage?: Compute<BaseStorage> | undefined;
|
|
22
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/types/storage.ts"],"names":[],"mappings":""}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { SendUTXOTransactionParameters, SendUTXOTransactionReturnType } from '../actions/sendUTXOTransaction.js';
|
|
2
|
-
import type { WaitForTransactionReceiptParameters } from '../actions/waitForTransaction.js';
|
|
3
|
-
import type { SignPsbtParameters, SignPsbtReturnType } from '../transports/types.js';
|
|
4
|
-
import type { UTXOTransaction } from './transaction.js';
|
|
5
|
-
export type WaitForTransactionReceiptReturnType = UTXOTransaction;
|
|
6
|
-
export type WithRetryParameters = {
|
|
7
|
-
delay?: ((config: {
|
|
8
|
-
count: number;
|
|
9
|
-
error: Error;
|
|
10
|
-
}) => number) | number | undefined;
|
|
11
|
-
retryCount?: number | undefined;
|
|
12
|
-
};
|
|
13
|
-
export type WalletActions = {
|
|
14
|
-
/**
|
|
15
|
-
* Creates, signs, and sends a new transaction to the network.
|
|
16
|
-
*/
|
|
17
|
-
sendUTXOTransaction: (args: SendUTXOTransactionParameters) => Promise<SendUTXOTransactionReturnType>;
|
|
18
|
-
signPbst: (args: SignPsbtParameters) => Promise<SignPsbtReturnType>;
|
|
19
|
-
waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters) => Promise<WaitForTransactionReceiptReturnType>;
|
|
20
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/types/actions.ts"],"names":[],"mappings":""}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { Compute } from './utils.js';
|
|
2
|
-
export type StorageItemMap = {
|
|
3
|
-
recentConnectorId: string;
|
|
4
|
-
state: any;
|
|
5
|
-
};
|
|
6
|
-
export type Storage<itemMap extends Record<string, unknown> = Record<string, unknown>, storageItemMap extends StorageItemMap = StorageItemMap & itemMap> = {
|
|
7
|
-
key: string;
|
|
8
|
-
getItem<key extends keyof storageItemMap, value extends storageItemMap[key], defaultValue extends value | null | undefined>(key: key, defaultValue?: defaultValue | undefined): (defaultValue extends null ? value | null : value) | Promise<defaultValue extends null ? value | null : value>;
|
|
9
|
-
setItem<key extends keyof storageItemMap, value extends storageItemMap[key] | null>(key: key, value: value): void | Promise<void>;
|
|
10
|
-
removeItem(key: keyof storageItemMap): void | Promise<void>;
|
|
11
|
-
};
|
|
12
|
-
export type BaseStorage = {
|
|
13
|
-
getItem(key: string): string | null | undefined | Promise<string | null | undefined>;
|
|
14
|
-
setItem(key: string, value: string): void | Promise<void>;
|
|
15
|
-
removeItem(key: string): void | Promise<void>;
|
|
16
|
-
};
|
|
17
|
-
export type CreateStorageParameters = {
|
|
18
|
-
deserialize?: (<type>(value: string) => type | unknown) | undefined;
|
|
19
|
-
key?: string | undefined;
|
|
20
|
-
serialize?: (<type>(value: type | any) => string) | undefined;
|
|
21
|
-
storage?: Compute<BaseStorage> | undefined;
|
|
22
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/types/storage.ts"],"names":[],"mappings":""}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { SendUTXOTransactionParameters, SendUTXOTransactionReturnType } from '../actions/sendUTXOTransaction.js';
|
|
2
|
-
import type { WaitForTransactionReceiptParameters } from '../actions/waitForTransaction.js';
|
|
3
|
-
import type { SignPsbtParameters, SignPsbtReturnType } from '../transports/types.js';
|
|
4
|
-
import type { UTXOTransaction } from './transaction.js';
|
|
5
|
-
export type WaitForTransactionReceiptReturnType = UTXOTransaction;
|
|
6
|
-
export type WithRetryParameters = {
|
|
7
|
-
delay?: ((config: {
|
|
8
|
-
count: number;
|
|
9
|
-
error: Error;
|
|
10
|
-
}) => number) | number | undefined;
|
|
11
|
-
retryCount?: number | undefined;
|
|
12
|
-
};
|
|
13
|
-
export type WalletActions = {
|
|
14
|
-
/**
|
|
15
|
-
* Creates, signs, and sends a new transaction to the network.
|
|
16
|
-
*/
|
|
17
|
-
sendUTXOTransaction: (args: SendUTXOTransactionParameters) => Promise<SendUTXOTransactionReturnType>;
|
|
18
|
-
signPbst: (args: SignPsbtParameters) => Promise<SignPsbtReturnType>;
|
|
19
|
-
waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters) => Promise<WaitForTransactionReceiptReturnType>;
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/types/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,6BAA6B,EAC9B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,kCAAkC,CAAA;AAC3F,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,MAAM,mCAAmC,GAAG,eAAe,CAAA;AAEjE,MAAM,MAAM,mBAAmB,GAAG;IAEhC,KAAK,CAAC,EACF,CAAC,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,MAAM,CAAC,GACrD,MAAM,GACN,SAAS,CAAA;IAEb,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,mBAAmB,EAAE,CACnB,IAAI,EAAE,6BAA6B,KAChC,OAAO,CAAC,6BAA6B,CAAC,CAAA;IAE3C,QAAQ,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAEnE,yBAAyB,EAAE,CACzB,IAAI,EAAE,mCAAmC,KACtC,OAAO,CAAC,mCAAmC,CAAC,CAAA;CAClD,CAAA"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { Compute } from './utils.js';
|
|
2
|
-
export type StorageItemMap = {
|
|
3
|
-
recentConnectorId: string;
|
|
4
|
-
state: any;
|
|
5
|
-
};
|
|
6
|
-
export type Storage<itemMap extends Record<string, unknown> = Record<string, unknown>, storageItemMap extends StorageItemMap = StorageItemMap & itemMap> = {
|
|
7
|
-
key: string;
|
|
8
|
-
getItem<key extends keyof storageItemMap, value extends storageItemMap[key], defaultValue extends value | null | undefined>(key: key, defaultValue?: defaultValue | undefined): (defaultValue extends null ? value | null : value) | Promise<defaultValue extends null ? value | null : value>;
|
|
9
|
-
setItem<key extends keyof storageItemMap, value extends storageItemMap[key] | null>(key: key, value: value): void | Promise<void>;
|
|
10
|
-
removeItem(key: keyof storageItemMap): void | Promise<void>;
|
|
11
|
-
};
|
|
12
|
-
export type BaseStorage = {
|
|
13
|
-
getItem(key: string): string | null | undefined | Promise<string | null | undefined>;
|
|
14
|
-
setItem(key: string, value: string): void | Promise<void>;
|
|
15
|
-
removeItem(key: string): void | Promise<void>;
|
|
16
|
-
};
|
|
17
|
-
export type CreateStorageParameters = {
|
|
18
|
-
deserialize?: (<type>(value: string) => type | unknown) | undefined;
|
|
19
|
-
key?: string | undefined;
|
|
20
|
-
serialize?: (<type>(value: type | any) => string) | undefined;
|
|
21
|
-
storage?: Compute<BaseStorage> | undefined;
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/types/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,MAAM,MAAM,cAAc,GAAG;IAC3B,iBAAiB,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,GAAG,CAAA;CACX,CAAA;AAED,MAAM,MAAM,OAAO,CACjB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEjE,cAAc,SAAS,cAAc,GAAG,cAAc,GAAG,OAAO,IAC9D;IACF,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CACL,GAAG,SAAS,MAAM,cAAc,EAChC,KAAK,SAAS,cAAc,CAAC,GAAG,CAAC,EACjC,YAAY,SAAS,KAAK,GAAG,IAAI,GAAG,SAAS,EAE7C,GAAG,EAAE,GAAG,EACR,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,GAErC,CAAC,YAAY,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GAClD,OAAO,CAAC,YAAY,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,CAAA;IAC7D,OAAO,CACL,GAAG,SAAS,MAAM,cAAc,EAChC,KAAK,SAAS,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,EACxC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,UAAU,CAAC,GAAG,EAAE,MAAM,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5D,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CACL,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IACjE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9C,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,GAAG,SAAS,CAAA;IACnE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,GAAG,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,CAAA;CAC3C,CAAA"}
|
package/src/types/actions.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
SendUTXOTransactionParameters,
|
|
3
|
-
SendUTXOTransactionReturnType,
|
|
4
|
-
} from '../actions/sendUTXOTransaction.js'
|
|
5
|
-
import type { WaitForTransactionReceiptParameters } from '../actions/waitForTransaction.js'
|
|
6
|
-
import type {
|
|
7
|
-
SignPsbtParameters,
|
|
8
|
-
SignPsbtReturnType,
|
|
9
|
-
} from '../transports/types.js'
|
|
10
|
-
import type { UTXOTransaction } from './transaction.js'
|
|
11
|
-
|
|
12
|
-
export type WaitForTransactionReceiptReturnType = UTXOTransaction
|
|
13
|
-
|
|
14
|
-
export type WithRetryParameters = {
|
|
15
|
-
// The delay (in ms) between retries.
|
|
16
|
-
delay?:
|
|
17
|
-
| ((config: { count: number; error: Error }) => number)
|
|
18
|
-
| number
|
|
19
|
-
| undefined
|
|
20
|
-
// The max number of times to retry.
|
|
21
|
-
retryCount?: number | undefined
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export type WalletActions = {
|
|
25
|
-
/**
|
|
26
|
-
* Creates, signs, and sends a new transaction to the network.
|
|
27
|
-
*/
|
|
28
|
-
sendUTXOTransaction: (
|
|
29
|
-
args: SendUTXOTransactionParameters
|
|
30
|
-
) => Promise<SendUTXOTransactionReturnType>
|
|
31
|
-
|
|
32
|
-
signPbst: (args: SignPsbtParameters) => Promise<SignPsbtReturnType>
|
|
33
|
-
|
|
34
|
-
waitForTransactionReceipt: (
|
|
35
|
-
args: WaitForTransactionReceiptParameters
|
|
36
|
-
) => Promise<WaitForTransactionReceiptReturnType>
|
|
37
|
-
}
|
package/src/types/storage.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import type { Compute } from './utils.js'
|
|
2
|
-
|
|
3
|
-
export type StorageItemMap = {
|
|
4
|
-
recentConnectorId: string
|
|
5
|
-
state: any
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export type Storage<
|
|
9
|
-
itemMap extends Record<string, unknown> = Record<string, unknown>,
|
|
10
|
-
///
|
|
11
|
-
storageItemMap extends StorageItemMap = StorageItemMap & itemMap,
|
|
12
|
-
> = {
|
|
13
|
-
key: string
|
|
14
|
-
getItem<
|
|
15
|
-
key extends keyof storageItemMap,
|
|
16
|
-
value extends storageItemMap[key],
|
|
17
|
-
defaultValue extends value | null | undefined,
|
|
18
|
-
>(
|
|
19
|
-
key: key,
|
|
20
|
-
defaultValue?: defaultValue | undefined
|
|
21
|
-
):
|
|
22
|
-
| (defaultValue extends null ? value | null : value)
|
|
23
|
-
| Promise<defaultValue extends null ? value | null : value>
|
|
24
|
-
setItem<
|
|
25
|
-
key extends keyof storageItemMap,
|
|
26
|
-
value extends storageItemMap[key] | null,
|
|
27
|
-
>(key: key, value: value): void | Promise<void>
|
|
28
|
-
removeItem(key: keyof storageItemMap): void | Promise<void>
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export type BaseStorage = {
|
|
32
|
-
getItem(
|
|
33
|
-
key: string
|
|
34
|
-
): string | null | undefined | Promise<string | null | undefined>
|
|
35
|
-
setItem(key: string, value: string): void | Promise<void>
|
|
36
|
-
removeItem(key: string): void | Promise<void>
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export type CreateStorageParameters = {
|
|
40
|
-
deserialize?: (<type>(value: string) => type | unknown) | undefined
|
|
41
|
-
key?: string | undefined
|
|
42
|
-
serialize?: (<type>(value: type | any) => string) | undefined
|
|
43
|
-
storage?: Compute<BaseStorage> | undefined
|
|
44
|
-
}
|