@bsv/wallet-toolbox-mobile 1.3.32 → 1.4.2
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/out/src/monitor/tasks/TaskCheckForProofs.d.ts +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.js +12 -2
- package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js +6 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.d.ts +20 -0
- package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +20 -2
- package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/package.json +2 -2
|
@@ -45,7 +45,7 @@ export declare class TaskCheckForProofs extends WalletMonitorTask {
|
|
|
45
45
|
* @param reqs
|
|
46
46
|
* @returns reqs partitioned by status
|
|
47
47
|
*/
|
|
48
|
-
export declare function getProofs(task: WalletMonitorTask, reqs: TableProvenTxReq[], indent
|
|
48
|
+
export declare function getProofs(task: WalletMonitorTask, reqs: TableProvenTxReq[], indent: number | undefined, countsAsAttempt: boolean | undefined, ignoreStatus: boolean | undefined, maxAcceptableHeight: number): Promise<{
|
|
49
49
|
proven: TableProvenTxReq[];
|
|
50
50
|
invalid: TableProvenTxReq[];
|
|
51
51
|
log: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskCheckForProofs.d.ts","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckForProofs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAG9D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IAW9C,YAAY;IAVrB,MAAM,CAAC,QAAQ,SAAmB;IAElC;;;OAGG;IACH,MAAM,CAAC,QAAQ,UAAQ;gBAGrB,OAAO,EAAE,OAAO,EACT,YAAY,SAAI;IAKzB;;OAEG;IACH,OAAO,CAAC,kBAAkB,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE;IAQ/C,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"TaskCheckForProofs.d.ts","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckForProofs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAG9D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IAW9C,YAAY;IAVrB,MAAM,CAAC,QAAQ,SAAmB;IAElC;;;OAGG;IACH,MAAM,CAAC,QAAQ,UAAQ;gBAGrB,OAAO,EAAE,OAAO,EACT,YAAY,SAAI;IAKzB;;OAEG;IACH,OAAO,CAAC,kBAAkB,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE;IAQ/C,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CA4BjC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,gBAAgB,EAAE,EACxB,MAAM,oBAAI,EACV,eAAe,qBAAQ,EACvB,YAAY,qBAAQ,EACpB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC;IACT,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC1B,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;CACZ,CAAC,CAkID"}
|
|
@@ -33,9 +33,14 @@ class TaskCheckForProofs extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
async runTask() {
|
|
36
|
+
var _a;
|
|
36
37
|
let log = '';
|
|
37
38
|
const countsAsAttempt = TaskCheckForProofs.checkNow;
|
|
38
39
|
TaskCheckForProofs.checkNow = false;
|
|
40
|
+
const maxAcceptableHeight = (_a = this.monitor.lastNewHeader) === null || _a === void 0 ? void 0 : _a.height;
|
|
41
|
+
if (maxAcceptableHeight === undefined) {
|
|
42
|
+
return log;
|
|
43
|
+
}
|
|
39
44
|
const limit = 100;
|
|
40
45
|
let offset = 0;
|
|
41
46
|
for (;;) {
|
|
@@ -47,7 +52,7 @@ class TaskCheckForProofs extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
47
52
|
if (reqs.length === 0)
|
|
48
53
|
break;
|
|
49
54
|
log += `${reqs.length} reqs with status 'callback', 'unmined', 'sending', 'unknown', or 'unconfirmed'\n`;
|
|
50
|
-
const r = await getProofs(this, reqs, 2, countsAsAttempt);
|
|
55
|
+
const r = await getProofs(this, reqs, 2, countsAsAttempt, false, maxAcceptableHeight);
|
|
51
56
|
log += `${r.log}\n`;
|
|
52
57
|
//console.log(log);
|
|
53
58
|
if (reqs.length < limit)
|
|
@@ -79,7 +84,7 @@ TaskCheckForProofs.checkNow = false;
|
|
|
79
84
|
* @param reqs
|
|
80
85
|
* @returns reqs partitioned by status
|
|
81
86
|
*/
|
|
82
|
-
async function getProofs(task, reqs, indent = 0, countsAsAttempt = false, ignoreStatus = false) {
|
|
87
|
+
async function getProofs(task, reqs, indent = 0, countsAsAttempt = false, ignoreStatus = false, maxAcceptableHeight) {
|
|
83
88
|
const proven = [];
|
|
84
89
|
const invalid = [];
|
|
85
90
|
let log = '';
|
|
@@ -150,6 +155,11 @@ async function getProofs(task, reqs, indent = 0, countsAsAttempt = false, ignore
|
|
|
150
155
|
// one more time.
|
|
151
156
|
//
|
|
152
157
|
r = await task.monitor.services.getMerklePath(req.txid);
|
|
158
|
+
if (r.header && r.header.height > maxAcceptableHeight) {
|
|
159
|
+
// Ignore proofs from bleeding edge of new blocks as these are the most often re-orged.
|
|
160
|
+
log += ` ignoring possible proof from very new block at height ${r.header.height} ${r.header.hash}\n`;
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
153
163
|
ptx = await entities_1.EntityProvenTx.fromReq(req, r, countsAsAttempt && req.status !== 'nosend');
|
|
154
164
|
if (ptx) {
|
|
155
165
|
// We have a merklePath proof for the request (and a block header)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskCheckForProofs.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckForProofs.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"TaskCheckForProofs.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckForProofs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskCheckNoSends.d.ts","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckNoSends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB;IAW5C,YAAY;IAVrB,MAAM,CAAC,QAAQ,SAAiB;IAEhC;;;OAGG;IACH,MAAM,CAAC,QAAQ,UAAQ;gBAGrB,OAAO,EAAE,OAAO,EACT,YAAY,SAAqB;IAK1C;;OAEG;IACH,OAAO,CAAC,kBAAkB,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE;IAQ/C,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"TaskCheckNoSends.d.ts","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckNoSends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB;IAW5C,YAAY;IAVrB,MAAM,CAAC,QAAQ,SAAiB;IAEhC;;;OAGG;IACH,MAAM,CAAC,QAAQ,UAAQ;gBAGrB,OAAO,EAAE,OAAO,EACT,YAAY,SAAqB;IAK1C;;OAEG;IACH,OAAO,CAAC,kBAAkB,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE;IAQ/C,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CA6BjC"}
|
|
@@ -31,9 +31,14 @@ class TaskCheckNoSends extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
async runTask() {
|
|
34
|
+
var _a;
|
|
34
35
|
let log = '';
|
|
35
36
|
const countsAsAttempt = TaskCheckNoSends.checkNow;
|
|
36
37
|
TaskCheckNoSends.checkNow = false;
|
|
38
|
+
const maxAcceptableHeight = (_a = this.monitor.lastNewHeader) === null || _a === void 0 ? void 0 : _a.height;
|
|
39
|
+
if (maxAcceptableHeight === undefined) {
|
|
40
|
+
return log;
|
|
41
|
+
}
|
|
37
42
|
const limit = 100;
|
|
38
43
|
let offset = 0;
|
|
39
44
|
for (;;) {
|
|
@@ -45,7 +50,7 @@ class TaskCheckNoSends extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
45
50
|
if (reqs.length === 0)
|
|
46
51
|
break;
|
|
47
52
|
log += `${reqs.length} reqs with status 'nosend'\n`;
|
|
48
|
-
const r = await (0, TaskCheckForProofs_1.getProofs)(this, reqs, 2, countsAsAttempt);
|
|
53
|
+
const r = await (0, TaskCheckForProofs_1.getProofs)(this, reqs, 2, countsAsAttempt, false, maxAcceptableHeight);
|
|
49
54
|
log += `${r.log}\n`;
|
|
50
55
|
//console.log(log);
|
|
51
56
|
if (reqs.length < limit)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskCheckNoSends.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckNoSends.ts"],"names":[],"mappings":";;;AACA,6DAAgD;AAChD,2DAAuD;AAEvD;;;;;;;;;;;;GAYG;AACH,MAAa,gBAAiB,SAAQ,qCAAiB;IASrD,YACE,OAAgB,EACT,eAAe,OAAO,CAAC,MAAM,GAAG,CAAC;QAExC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QAFlC,iBAAY,GAAZ,YAAY,CAAqB;IAG1C,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,kBAA0B;QAChC,OAAO;YACL,GAAG,EACD,gBAAgB,CAAC,QAAQ;gBACzB,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,YAAY,CAAC;SAClG,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO
|
|
1
|
+
{"version":3,"file":"TaskCheckNoSends.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckNoSends.ts"],"names":[],"mappings":";;;AACA,6DAAgD;AAChD,2DAAuD;AAEvD;;;;;;;;;;;;GAYG;AACH,MAAa,gBAAiB,SAAQ,qCAAiB;IASrD,YACE,OAAgB,EACT,eAAe,OAAO,CAAC,MAAM,GAAG,CAAC;QAExC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QAFlC,iBAAY,GAAZ,YAAY,CAAqB;IAG1C,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,kBAA0B;QAChC,OAAO;YACL,GAAG,EACD,gBAAgB,CAAC,QAAQ;gBACzB,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,YAAY,CAAC;SAClG,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO;;QACX,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,MAAM,eAAe,GAAG,gBAAgB,CAAC,QAAQ,CAAA;QACjD,gBAAgB,CAAC,QAAQ,GAAG,KAAK,CAAA;QAEjC,MAAM,mBAAmB,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,aAAa,0CAAE,MAAM,CAAA;QAC9D,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,GAAG,CAAA;QACZ,CAAC;QAGD,MAAM,KAAK,GAAG,GAAG,CAAA;QACjB,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,SAAS,CAAC;YACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAC/C,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,CAAC,QAAQ,CAAC;gBAClB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;aACzB,CAAC,CAAA;YACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAK;YAC5B,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,8BAA8B,CAAA;YACnD,MAAM,CAAC,GAAG,MAAM,IAAA,8BAAS,EAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAA;YACrF,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;YACnB,mBAAmB;YACnB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK;gBAAE,MAAK;YAC9B,MAAM,IAAI,KAAK,CAAA;QACjB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;;AAvDH,4CAwDC;AAvDQ,yBAAQ,GAAG,cAAc,CAAA;AAEhC;;;GAGG;AACI,yBAAQ,GAAG,KAAK,CAAA"}
|
|
@@ -1,10 +1,30 @@
|
|
|
1
1
|
import { BlockHeader } from '../../services/chaintracker/chaintracks/Api/BlockHeaderApi';
|
|
2
2
|
import { Monitor } from '../Monitor';
|
|
3
3
|
import { WalletMonitorTask } from './WalletMonitorTask';
|
|
4
|
+
/**
|
|
5
|
+
* This task polls for new block headers performing two essential functions:
|
|
6
|
+
* 1. The arrival of a new block is the right time to check for proofs for recently broadcast transactions.
|
|
7
|
+
* 2. The height of the block is used to limit which proofs are accepted with the aim of avoiding re-orged proofs.
|
|
8
|
+
*
|
|
9
|
+
* The most common new block orphan is one which is almost immediately orphaned.
|
|
10
|
+
* Waiting a minute before pursuing proof requests avoids almost all the re-org work that could be done.
|
|
11
|
+
* Thus this task queues new headers for one cycle.
|
|
12
|
+
* If a new header arrives during that cycle, it replaces the queued header and delays again.
|
|
13
|
+
* Only when there is an elapsed cycle without a new header does proof solicitation get triggered,
|
|
14
|
+
* with that header height as the limit for which proofs are accepted.
|
|
15
|
+
*/
|
|
4
16
|
export declare class TaskNewHeader extends WalletMonitorTask {
|
|
5
17
|
triggerMsecs: number;
|
|
6
18
|
static taskName: string;
|
|
19
|
+
/**
|
|
20
|
+
* This is always the most recent chain tip header returned from the chaintracker.
|
|
21
|
+
*/
|
|
7
22
|
header?: BlockHeader;
|
|
23
|
+
/**
|
|
24
|
+
* Tracks the value of `header` except that it is set to undefined
|
|
25
|
+
* when a cycle without a new header occurs and `processNewBlockHeader` is called.
|
|
26
|
+
*/
|
|
27
|
+
queuedHeader?: BlockHeader;
|
|
8
28
|
constructor(monitor: Monitor, triggerMsecs?: number);
|
|
9
29
|
getHeader(): Promise<BlockHeader>;
|
|
10
30
|
trigger(nowMsecsSinceEpoch: number): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskNewHeader.d.ts","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskNewHeader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4DAA4D,CAAA;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,qBAAa,aAAc,SAAQ,iBAAiB;
|
|
1
|
+
{"version":3,"file":"TaskNewHeader.d.ts","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskNewHeader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4DAA4D,CAAA;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;IAczC,YAAY;IAbrB,MAAM,CAAC,QAAQ,SAAc;IAC7B;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,WAAW,CAAA;gBAGxB,OAAO,EAAE,OAAO,EACT,YAAY,SAAwB;IAKvC,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC;IAIvC,OAAO,CAAC,kBAAkB,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE;IAK/C,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAyBjC"}
|
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TaskNewHeader = void 0;
|
|
4
4
|
const WalletMonitorTask_1 = require("./WalletMonitorTask");
|
|
5
|
+
/**
|
|
6
|
+
* This task polls for new block headers performing two essential functions:
|
|
7
|
+
* 1. The arrival of a new block is the right time to check for proofs for recently broadcast transactions.
|
|
8
|
+
* 2. The height of the block is used to limit which proofs are accepted with the aim of avoiding re-orged proofs.
|
|
9
|
+
*
|
|
10
|
+
* The most common new block orphan is one which is almost immediately orphaned.
|
|
11
|
+
* Waiting a minute before pursuing proof requests avoids almost all the re-org work that could be done.
|
|
12
|
+
* Thus this task queues new headers for one cycle.
|
|
13
|
+
* If a new header arrives during that cycle, it replaces the queued header and delays again.
|
|
14
|
+
* Only when there is an elapsed cycle without a new header does proof solicitation get triggered,
|
|
15
|
+
* with that header height as the limit for which proofs are accepted.
|
|
16
|
+
*/
|
|
5
17
|
class TaskNewHeader extends WalletMonitorTask_1.WalletMonitorTask {
|
|
6
18
|
constructor(monitor, triggerMsecs = 1 * monitor.oneMinute) {
|
|
7
19
|
super(monitor, TaskNewHeader.taskName);
|
|
@@ -33,8 +45,14 @@ class TaskNewHeader extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
33
45
|
else {
|
|
34
46
|
isNew = false;
|
|
35
47
|
}
|
|
36
|
-
if (isNew)
|
|
37
|
-
this.
|
|
48
|
+
if (isNew) {
|
|
49
|
+
this.queuedHeader = this.header;
|
|
50
|
+
}
|
|
51
|
+
else if (this.queuedHeader) {
|
|
52
|
+
// Only process new block header if it has remained the chain tip for a full cycle
|
|
53
|
+
this.monitor.processNewBlockHeader(this.queuedHeader);
|
|
54
|
+
this.queuedHeader = undefined;
|
|
55
|
+
}
|
|
38
56
|
return log;
|
|
39
57
|
}
|
|
40
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskNewHeader.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskNewHeader.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AAEvD,MAAa,aAAc,SAAQ,qCAAiB;
|
|
1
|
+
{"version":3,"file":"TaskNewHeader.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskNewHeader.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,MAAa,aAAc,SAAQ,qCAAiB;IAYlD,YACE,OAAgB,EACT,eAAe,CAAC,GAAG,OAAO,CAAC,SAAS;QAE3C,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;QAF/B,iBAAY,GAAZ,YAAY,CAAwB;IAG7C,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAA;IAC5D,CAAC;IAED,OAAO,CAAC,kBAA0B;QAChC,MAAM,GAAG,GAAG,IAAI,CAAA;QAChB,OAAO,EAAE,GAAG,EAAE,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAA;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACpC,IAAI,KAAK,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,GAAG,iBAAiB,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACjE,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;YACtD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YAClD,GAAG,GAAG,eAAe,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,EAAE,CAAA;QACzE,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzF,GAAG,GAAG,iBAAiB,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACjE,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,KAAK,CAAA;QACf,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAA;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,kFAAkF;YAClF,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACrD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC/B,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;;AApDH,sCAqDC;AApDQ,sBAAQ,GAAG,WAAW,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bsv/wallet-toolbox-mobile",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.2",
|
|
4
4
|
"description": "Client only Wallet Storage",
|
|
5
5
|
"main": "./out/src/index.mobile.js",
|
|
6
6
|
"types": "./out/src/index.mobile.d.ts",
|
|
@@ -20,6 +20,6 @@
|
|
|
20
20
|
},
|
|
21
21
|
"homepage": "https://github.com/bitcoin-sv/wallet-toolbox#readme",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@bsv/sdk": "^1.
|
|
23
|
+
"@bsv/sdk": "^1.6.0"
|
|
24
24
|
}
|
|
25
25
|
}
|