@bsv/wallet-toolbox 1.4.11 → 1.5.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/CHANGELOG.md +4 -0
- package/mobile/out/src/CWIStyleWalletManager.js +1 -1
- package/mobile/out/src/CWIStyleWalletManager.js.map +1 -1
- package/mobile/out/src/SetupClient.mobile.d.ts +90 -0
- package/mobile/out/src/SetupClient.mobile.d.ts.map +1 -0
- package/mobile/out/src/SetupClient.mobile.js +183 -0
- package/mobile/out/src/SetupClient.mobile.js.map +1 -0
- package/mobile/out/src/SetupWallet.mobile.d.ts +93 -0
- package/mobile/out/src/SetupWallet.mobile.d.ts.map +1 -0
- package/mobile/out/src/SetupWallet.mobile.js +3 -0
- package/mobile/out/src/SetupWallet.mobile.js.map +1 -0
- package/mobile/out/src/monitor/tasks/TaskReviewStatus.d.ts +1 -1
- package/mobile/out/src/monitor/tasks/TaskReviewStatus.js +1 -1
- package/mobile/out/src/services/chaintracker/{BHServiceClient.d.ts → BhsChainTracker.d.ts} +16 -12
- package/mobile/out/src/services/chaintracker/BhsChainTracker.d.ts.map +1 -0
- package/mobile/out/src/services/chaintracker/BhsChainTracker.js +84 -0
- package/mobile/out/src/services/chaintracker/BhsChainTracker.js.map +1 -0
- package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts +98 -0
- package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +1 -0
- package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js +38 -0
- package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +1 -0
- package/mobile/out/src/services/chaintracker/index.d.ts +1 -1
- package/mobile/out/src/services/chaintracker/index.js +1 -1
- package/mobile/out/src/services/createDefaultWalletServicesOptions.d.ts +1 -1
- package/mobile/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
- package/mobile/out/src/services/createDefaultWalletServicesOptions.js +7 -10
- package/mobile/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
- package/mobile/out/src/storage/WalletStorageManager.d.ts +25 -19
- package/mobile/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/mobile/out/src/storage/WalletStorageManager.js +69 -64
- package/mobile/out/src/storage/WalletStorageManager.js.map +1 -1
- package/mobile/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/mobile/out/src/storage/methods/createAction.js +4 -9
- package/mobile/out/src/storage/methods/createAction.js.map +1 -1
- package/mobile/out/src/storage/methods/processAction.js +1 -1
- package/mobile/out/src/storage/methods/processAction.js.map +1 -1
- package/mobile/package-lock.json +6 -6
- package/mobile/package.json +2 -2
- package/out/src/AuthFetchDebug.d.ts +88 -0
- package/out/src/AuthFetchDebug.d.ts.map +1 -0
- package/out/src/AuthFetchDebug.js +518 -0
- package/out/src/AuthFetchDebug.js.map +1 -0
- package/out/src/SetupClient.mobile.d.ts +90 -0
- package/out/src/SetupClient.mobile.d.ts.map +1 -0
- package/out/src/SetupClient.mobile.js +183 -0
- package/out/src/SetupClient.mobile.js.map +1 -0
- package/out/src/SetupWallet.mobile.d.ts +93 -0
- package/out/src/SetupWallet.mobile.d.ts.map +1 -0
- package/out/src/SetupWallet.mobile.js +3 -0
- package/out/src/SetupWallet.mobile.js.map +1 -0
- package/out/src/SimplifiedFetchTransport.d.ts +1 -0
- package/out/src/SimplifiedFetchTransport.d.ts.map +1 -0
- package/out/src/SimplifiedFetchTransport.js +2 -0
- package/out/src/SimplifiedFetchTransport.js.map +1 -0
- package/out/src/services/BhsChainTracker.d.ts +1 -0
- package/out/src/services/BhsChainTracker.d.ts.map +1 -0
- package/out/src/services/BhsChainTracker.js +2 -0
- package/out/src/services/BhsChainTracker.js.map +1 -0
- package/out/src/services/chaintracker/BhsChainTracker.d.ts +38 -0
- package/out/src/services/chaintracker/BhsChainTracker.d.ts.map +1 -0
- package/out/src/services/chaintracker/BhsChainTracker.js +84 -0
- package/out/src/services/chaintracker/BhsChainTracker.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts +98 -0
- package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js +38 -0
- package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +1 -0
- package/out/src/storage/StorageProvider copy.d.ts +209 -0
- package/out/src/storage/StorageProvider copy.d.ts.map +1 -0
- package/out/src/storage/StorageProvider copy.js +550 -0
- package/out/src/storage/StorageProvider copy.js.map +1 -0
- package/out/src/storage/StorageProvider.mobile.d.ts +209 -0
- package/out/src/storage/StorageProvider.mobile.d.ts.map +1 -0
- package/out/src/storage/StorageProvider.mobile.js +550 -0
- package/out/src/storage/StorageProvider.mobile.js.map +1 -0
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/remoting/StorageClient copy.d.ts +283 -0
- package/out/src/storage/remoting/StorageClient copy.d.ts.map +1 -0
- package/out/src/storage/remoting/StorageClient copy.js +477 -0
- package/out/src/storage/remoting/StorageClient copy.js.map +1 -0
- package/out/test/Wallet/action/abortAction.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/action/abortAction.test.js.map +1 -1
- package/out/test/Wallet/action/createAction.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/action/createAction.test.js.map +1 -1
- package/out/test/{wallet → Wallet}/action/createAction2.test.d.ts.map +1 -1
- package/out/test/{wallet → Wallet}/action/createAction2.test.js.map +1 -1
- package/out/test/Wallet/action/createActionToGenerateBeefs.man.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/action/createActionToGenerateBeefs.man.test.js.map +1 -1
- package/out/test/Wallet/action/internalizeAction.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/action/internalizeAction.test.js.map +1 -1
- package/out/test/Wallet/action/relinquishOutput.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/action/relinquishOutput.test.js.map +1 -1
- package/out/test/Wallet/construct/Wallet.constructor.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/construct/Wallet.constructor.test.js.map +1 -1
- package/out/test/Wallet/list/listActions.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/list/listActions.test.js.map +1 -1
- package/out/test/Wallet/list/listActions2.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/list/listActions2.test.js.map +1 -1
- package/out/test/Wallet/list/listCertificates.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/list/listCertificates.test.js.map +1 -1
- package/out/test/Wallet/list/listOutputs.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/list/listOutputs.test.js.map +1 -1
- package/out/test/Wallet/sync/Wallet.sync.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/sync/Wallet.sync.test.js.map +1 -1
- package/out/tsconfig.all.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/storage/WalletStorageManager.ts +1 -3
- package/mobile/out/src/services/chaintracker/BHServiceClient.d.ts.map +0 -1
- package/mobile/out/src/services/chaintracker/BHServiceClient.js +0 -163
- package/mobile/out/src/services/chaintracker/BHServiceClient.js.map +0 -1
- package/mobile/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +0 -140
- package/mobile/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +0 -1
- package/mobile/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +0 -467
- package/mobile/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +0 -1
- package/mobile/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts +0 -20
- package/mobile/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +0 -1
- package/mobile/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js +0 -31
- package/mobile/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +0 -1
- package/mobile/out/src/utility/utilityHelpers.buffer.d.ts +0 -18
- package/mobile/out/src/utility/utilityHelpers.buffer.d.ts.map +0 -1
- package/mobile/out/src/utility/utilityHelpers.buffer.js +0 -45
- package/mobile/out/src/utility/utilityHelpers.buffer.js.map +0 -1
- package/out/test/wallet/action/abortAction.test.d.ts.map +0 -1
- package/out/test/wallet/action/createAction.test.d.ts.map +0 -1
- package/out/test/wallet/action/createActionToGenerateBeefs.man.test.d.ts.map +0 -1
- package/out/test/wallet/action/internalizeAction.test.d.ts.map +0 -1
- package/out/test/wallet/action/relinquishOutput.test.d.ts.map +0 -1
- package/out/test/wallet/construct/Wallet.constructor.test.d.ts.map +0 -1
- package/out/test/wallet/list/listActions.test.d.ts.map +0 -1
- package/out/test/wallet/list/listActions2.test.d.ts.map +0 -1
- package/out/test/wallet/list/listCertificates.test.d.ts.map +0 -1
- package/out/test/wallet/list/listOutputs.test.d.ts.map +0 -1
- package/out/test/wallet/sync/Wallet.sync.test.d.ts.map +0 -1
- /package/out/test/{wallet → Wallet}/action/abortAction.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/action/abortAction.test.js +0 -0
- /package/out/test/{wallet → Wallet}/action/createAction.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/action/createAction.test.js +0 -0
- /package/out/test/{wallet → Wallet}/action/createAction2.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/action/createAction2.test.js +0 -0
- /package/out/test/{wallet → Wallet}/action/createActionToGenerateBeefs.man.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/action/createActionToGenerateBeefs.man.test.js +0 -0
- /package/out/test/{wallet → Wallet}/action/internalizeAction.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/action/internalizeAction.test.js +0 -0
- /package/out/test/{wallet → Wallet}/action/relinquishOutput.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/action/relinquishOutput.test.js +0 -0
- /package/out/test/{wallet → Wallet}/construct/Wallet.constructor.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/construct/Wallet.constructor.test.js +0 -0
- /package/out/test/{wallet → Wallet}/list/listActions.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/list/listActions.test.js +0 -0
- /package/out/test/{wallet → Wallet}/list/listActions2.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/list/listActions2.test.js +0 -0
- /package/out/test/{wallet → Wallet}/list/listCertificates.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/list/listCertificates.test.js +0 -0
- /package/out/test/{wallet → Wallet}/list/listOutputs.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/list/listOutputs.test.js +0 -0
- /package/out/test/{wallet → Wallet}/sync/Wallet.sync.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/sync/Wallet.sync.test.js +0 -0
- /package/test/{wallet → Wallet}/action/abortAction.test.ts +0 -0
- /package/test/{wallet → Wallet}/action/createAction.test.ts +0 -0
- /package/test/{wallet → Wallet}/action/createAction2.test.ts +0 -0
- /package/test/{wallet → Wallet}/action/createActionToGenerateBeefs.man.test.ts +0 -0
- /package/test/{wallet → Wallet}/action/internalizeAction.test.ts +0 -0
- /package/test/{wallet → Wallet}/action/relinquishOutput.test.ts +0 -0
- /package/test/{wallet → Wallet}/construct/Wallet.constructor.test.ts +0 -0
- /package/test/{wallet → Wallet}/list/listActions.test.ts +0 -0
- /package/test/{wallet → Wallet}/list/listActions2.test.ts +0 -0
- /package/test/{wallet → Wallet}/list/listCertificates.test.ts +0 -0
- /package/test/{wallet → Wallet}/list/listOutputs.test.ts +0 -0
- /package/test/{wallet → Wallet}/sync/Wallet.sync.test.ts +0 -0
|
@@ -0,0 +1,550 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StorageProvider = void 0;
|
|
4
|
+
exports.validateStorageFeeModel = validateStorageFeeModel;
|
|
5
|
+
const sdk_1 = require("@bsv/sdk");
|
|
6
|
+
const index_mobile_1 = require("../index.mobile");
|
|
7
|
+
const getBeefForTransaction_1 = require("./methods/getBeefForTransaction");
|
|
8
|
+
const processAction_1 = require("./methods/processAction");
|
|
9
|
+
const attemptToPostReqsToNetwork_1 = require("./methods/attemptToPostReqsToNetwork");
|
|
10
|
+
const listCertificates_1 = require("./methods/listCertificates");
|
|
11
|
+
const createAction_1 = require("./methods/createAction");
|
|
12
|
+
const internalizeAction_1 = require("./methods/internalizeAction");
|
|
13
|
+
const StorageReaderWriter_1 = require("./StorageReaderWriter");
|
|
14
|
+
const entities_1 = require("./schema/entities");
|
|
15
|
+
class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
16
|
+
static defaultOptions() {
|
|
17
|
+
return {
|
|
18
|
+
feeModel: { model: 'sat/kb', value: 1 },
|
|
19
|
+
commissionSatoshis: 0,
|
|
20
|
+
commissionPubKeyHex: undefined
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
static createStorageBaseOptions(chain) {
|
|
24
|
+
const options = {
|
|
25
|
+
...StorageProvider.defaultOptions(),
|
|
26
|
+
chain
|
|
27
|
+
};
|
|
28
|
+
return options;
|
|
29
|
+
}
|
|
30
|
+
constructor(options) {
|
|
31
|
+
super(options);
|
|
32
|
+
this.isDirty = false;
|
|
33
|
+
this.feeModel = options.feeModel;
|
|
34
|
+
this.commissionPubKeyHex = options.commissionPubKeyHex;
|
|
35
|
+
this.commissionSatoshis = options.commissionSatoshis;
|
|
36
|
+
}
|
|
37
|
+
isStorageProvider() {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
setServices(v) {
|
|
41
|
+
this._services = v;
|
|
42
|
+
}
|
|
43
|
+
getServices() {
|
|
44
|
+
if (!this._services)
|
|
45
|
+
throw new index_mobile_1.sdk.WERR_INVALID_OPERATION('Must setServices first.');
|
|
46
|
+
return this._services;
|
|
47
|
+
}
|
|
48
|
+
async abortAction(auth, args) {
|
|
49
|
+
if (!auth.userId)
|
|
50
|
+
throw new index_mobile_1.sdk.WERR_INVALID_PARAMETER('auth.userId', 'valid');
|
|
51
|
+
const userId = auth.userId;
|
|
52
|
+
let reference = args.reference;
|
|
53
|
+
let txid = undefined;
|
|
54
|
+
const r = await this.transaction(async (trx) => {
|
|
55
|
+
let tx = (0, index_mobile_1.verifyOneOrNone)(await this.findTransactions({
|
|
56
|
+
partial: { reference, userId },
|
|
57
|
+
noRawTx: true,
|
|
58
|
+
trx
|
|
59
|
+
}));
|
|
60
|
+
if (!tx && args.reference.length === 64) {
|
|
61
|
+
// reference may also be a txid
|
|
62
|
+
txid = reference;
|
|
63
|
+
reference = undefined;
|
|
64
|
+
tx = (0, index_mobile_1.verifyOneOrNone)(await this.findTransactions({
|
|
65
|
+
partial: { txid, userId },
|
|
66
|
+
noRawTx: true,
|
|
67
|
+
trx
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
const unAbortableStatus = ['completed', 'failed', 'sending', 'unproven'];
|
|
71
|
+
if (!tx || !tx.isOutgoing || -1 < unAbortableStatus.findIndex(s => s === tx.status))
|
|
72
|
+
throw new index_mobile_1.sdk.WERR_INVALID_PARAMETER('reference', 'an inprocess, outgoing action that has not been signed and shared to the network.');
|
|
73
|
+
await this.updateTransactionStatus('failed', tx.transactionId, userId, reference, trx);
|
|
74
|
+
if (tx.txid) {
|
|
75
|
+
const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
|
|
76
|
+
if (req) {
|
|
77
|
+
req.addHistoryNote({ what: 'abortAction', reference: args.reference });
|
|
78
|
+
req.status = 'invalid';
|
|
79
|
+
await req.updateStorageDynamicProperties(this, trx);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const r = {
|
|
83
|
+
aborted: true
|
|
84
|
+
};
|
|
85
|
+
return r;
|
|
86
|
+
});
|
|
87
|
+
return r;
|
|
88
|
+
}
|
|
89
|
+
async internalizeAction(auth, args) {
|
|
90
|
+
return await (0, internalizeAction_1.internalizeAction)(this, auth, args);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Given an array of transaction txids with current ProvenTxReq ready-to-share status,
|
|
94
|
+
* lookup their ProvenTxReqApi req records.
|
|
95
|
+
* For the txids with reqs and status still ready to send construct a single merged beef.
|
|
96
|
+
*
|
|
97
|
+
* @param txids
|
|
98
|
+
* @param knownTxids
|
|
99
|
+
* @param trx
|
|
100
|
+
*/
|
|
101
|
+
async getReqsAndBeefToShareWithWorld(txids, knownTxids, trx) {
|
|
102
|
+
const r = {
|
|
103
|
+
beef: new sdk_1.Beef(),
|
|
104
|
+
details: []
|
|
105
|
+
};
|
|
106
|
+
for (const txid of txids) {
|
|
107
|
+
const d = {
|
|
108
|
+
txid,
|
|
109
|
+
status: 'unknown'
|
|
110
|
+
};
|
|
111
|
+
r.details.push(d);
|
|
112
|
+
try {
|
|
113
|
+
d.proven = (0, index_mobile_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid }, trx }));
|
|
114
|
+
if (d.proven)
|
|
115
|
+
d.status = 'alreadySent';
|
|
116
|
+
else {
|
|
117
|
+
const alreadySentStatus = ['unmined', 'callback', 'unconfirmed', 'completed'];
|
|
118
|
+
const readyToSendStatus = ['sending', 'unsent', 'nosend', 'unprocessed'];
|
|
119
|
+
const errorStatus = ['unknown', 'nonfinal', 'invalid', 'doubleSpend'];
|
|
120
|
+
d.req = (0, index_mobile_1.verifyOneOrNone)(await this.findProvenTxReqs({ partial: { txid }, trx }));
|
|
121
|
+
if (!d.req) {
|
|
122
|
+
d.status = 'error';
|
|
123
|
+
d.error = `ERR_UNKNOWN_TXID: ${txid} was not found.`;
|
|
124
|
+
}
|
|
125
|
+
else if (errorStatus.indexOf(d.req.status) > -1) {
|
|
126
|
+
d.status = 'error';
|
|
127
|
+
d.error = `ERR_INVALID_PARAMETER: ${txid} is not ready to send.`;
|
|
128
|
+
}
|
|
129
|
+
else if (alreadySentStatus.indexOf(d.req.status) > -1) {
|
|
130
|
+
d.status = 'alreadySent';
|
|
131
|
+
}
|
|
132
|
+
else if (readyToSendStatus.indexOf(d.req.status) > -1) {
|
|
133
|
+
if (!d.req.rawTx || !d.req.inputBEEF) {
|
|
134
|
+
d.status = 'error';
|
|
135
|
+
d.error = `ERR_INTERNAL: ${txid} req is missing rawTx or beef.`;
|
|
136
|
+
}
|
|
137
|
+
else
|
|
138
|
+
d.status = 'readyToSend';
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
d.status = 'error';
|
|
142
|
+
d.error = `ERR_INTERNAL: ${txid} has unexpected req status ${d.req.status}`;
|
|
143
|
+
}
|
|
144
|
+
if (d.status === 'readyToSend') {
|
|
145
|
+
await this.mergeReqToBeefToShareExternally(d.req, r.beef, knownTxids, trx);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
catch (eu) {
|
|
150
|
+
const e = index_mobile_1.sdk.WalletError.fromUnknown(eu);
|
|
151
|
+
d.error = `${e.name}: ${e.message}`;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return r;
|
|
155
|
+
}
|
|
156
|
+
async mergeReqToBeefToShareExternally(req, mergeToBeef, knownTxids, trx) {
|
|
157
|
+
const { rawTx, inputBEEF: beef } = req;
|
|
158
|
+
if (!rawTx || !beef)
|
|
159
|
+
throw new index_mobile_1.sdk.WERR_INTERNAL(`req rawTx and beef must be valid.`);
|
|
160
|
+
mergeToBeef.mergeRawTx((0, index_mobile_1.asArray)(rawTx));
|
|
161
|
+
mergeToBeef.mergeBeef((0, index_mobile_1.asArray)(beef));
|
|
162
|
+
const tx = sdk_1.Transaction.fromBinary((0, index_mobile_1.asArray)(rawTx));
|
|
163
|
+
for (const input of tx.inputs) {
|
|
164
|
+
if (!input.sourceTXID)
|
|
165
|
+
throw new index_mobile_1.sdk.WERR_INTERNAL(`req all transaction inputs must have valid sourceTXID`);
|
|
166
|
+
const txid = input.sourceTXID;
|
|
167
|
+
const btx = mergeToBeef.findTxid(txid);
|
|
168
|
+
if (!btx) {
|
|
169
|
+
if (knownTxids && knownTxids.indexOf(txid) > -1)
|
|
170
|
+
mergeToBeef.mergeTxidOnly(txid);
|
|
171
|
+
else
|
|
172
|
+
await this.getValidBeefForKnownTxid(txid, mergeToBeef, undefined, knownTxids, trx);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Checks if txid is a known valid ProvenTx and returns it if found.
|
|
178
|
+
* Next checks if txid is a current ProvenTxReq and returns that if found.
|
|
179
|
+
* If `newReq` is provided and an existing ProvenTxReq isn't found,
|
|
180
|
+
* use `newReq` to create a new ProvenTxReq.
|
|
181
|
+
*
|
|
182
|
+
* This is safe "findOrInsert" operation using retry if unique index constraint
|
|
183
|
+
* is violated by a race condition insert.
|
|
184
|
+
*
|
|
185
|
+
* @param txid
|
|
186
|
+
* @param newReq
|
|
187
|
+
* @param trx
|
|
188
|
+
* @returns
|
|
189
|
+
*/
|
|
190
|
+
async getProvenOrReq(txid, newReq, trx) {
|
|
191
|
+
if (newReq && txid !== newReq.txid)
|
|
192
|
+
throw new index_mobile_1.sdk.WERR_INVALID_PARAMETER('newReq', `same txid`);
|
|
193
|
+
const r = { proven: undefined, req: undefined };
|
|
194
|
+
r.proven = (0, index_mobile_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid }, trx }));
|
|
195
|
+
if (r.proven)
|
|
196
|
+
return r;
|
|
197
|
+
for (let retry = 0;; retry++) {
|
|
198
|
+
try {
|
|
199
|
+
r.req = (0, index_mobile_1.verifyOneOrNone)(await this.findProvenTxReqs({ partial: { txid }, trx }));
|
|
200
|
+
if (!r.req && !newReq)
|
|
201
|
+
break;
|
|
202
|
+
if (!r.req && newReq) {
|
|
203
|
+
await this.insertProvenTxReq(newReq, trx);
|
|
204
|
+
}
|
|
205
|
+
if (r.req && newReq) {
|
|
206
|
+
// Merge history and notify into existing
|
|
207
|
+
const req1 = new entities_1.EntityProvenTxReq(r.req);
|
|
208
|
+
req1.mergeHistory(newReq, undefined, true);
|
|
209
|
+
req1.mergeNotifyTransactionIds(newReq);
|
|
210
|
+
await req1.updateStorageDynamicProperties(this, trx);
|
|
211
|
+
}
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
catch (eu) {
|
|
215
|
+
if (retry > 0)
|
|
216
|
+
throw eu;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return r;
|
|
220
|
+
}
|
|
221
|
+
async updateTransactionsStatus(transactionIds, status, trx) {
|
|
222
|
+
await this.transaction(async (trx) => {
|
|
223
|
+
for (const id of transactionIds) {
|
|
224
|
+
await this.updateTransactionStatus(status, id, undefined, undefined, trx);
|
|
225
|
+
}
|
|
226
|
+
}, trx);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* For all `status` values besides 'failed', just updates the transaction records status property.
|
|
230
|
+
*
|
|
231
|
+
* For 'status' of 'failed', attempts to make outputs previously allocated as inputs to this transaction usable again.
|
|
232
|
+
*
|
|
233
|
+
* @param status
|
|
234
|
+
* @param transactionId
|
|
235
|
+
* @param userId
|
|
236
|
+
* @param reference
|
|
237
|
+
* @param trx
|
|
238
|
+
*/
|
|
239
|
+
async updateTransactionStatus(status, transactionId, userId, reference, trx) {
|
|
240
|
+
if (!transactionId && !(userId && reference))
|
|
241
|
+
throw new index_mobile_1.sdk.WERR_MISSING_PARAMETER('either transactionId or userId and reference');
|
|
242
|
+
await this.transaction(async (trx) => {
|
|
243
|
+
const where = {};
|
|
244
|
+
if (transactionId)
|
|
245
|
+
where.transactionId = transactionId;
|
|
246
|
+
if (userId)
|
|
247
|
+
where.userId = userId;
|
|
248
|
+
if (reference)
|
|
249
|
+
where.reference = reference;
|
|
250
|
+
const tx = (0, index_mobile_1.verifyOne)(await this.findTransactions({ partial: where, noRawTx: true, trx }));
|
|
251
|
+
//if (tx.status === status)
|
|
252
|
+
// no change required. Assume inputs and outputs spendable and spentBy are valid for status.
|
|
253
|
+
//return
|
|
254
|
+
// Once completed, this method cannot be used to "uncomplete" transaction.
|
|
255
|
+
if ((status !== 'completed' && tx.status === 'completed') || tx.provenTxId)
|
|
256
|
+
throw new index_mobile_1.sdk.WERR_INVALID_OPERATION('The status of a "completed" transaction cannot be changed.');
|
|
257
|
+
// It is not possible to un-fail a transaction. Information is lost and not recoverable.
|
|
258
|
+
if (status !== 'failed' && tx.status === 'failed')
|
|
259
|
+
throw new index_mobile_1.sdk.WERR_INVALID_OPERATION(`A "failed" transaction may not be un-failed by this method.`);
|
|
260
|
+
switch (status) {
|
|
261
|
+
case 'failed':
|
|
262
|
+
{
|
|
263
|
+
// Attempt to make outputs previously allocated as inputs to this transaction usable again.
|
|
264
|
+
// Only clear input's spentBy and reset spendable = true if it references this transaction
|
|
265
|
+
const t = new entities_1.EntityTransaction(tx);
|
|
266
|
+
const inputs = await t.getInputs(this, trx);
|
|
267
|
+
for (const input of inputs) {
|
|
268
|
+
// input is a prior output belonging to userId that reference this transaction either by `spentBy`
|
|
269
|
+
// or by txid and vout.
|
|
270
|
+
await this.updateOutput((0, index_mobile_1.verifyId)(input.outputId), { spendable: true, spentBy: undefined }, trx);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
break;
|
|
274
|
+
case 'nosend':
|
|
275
|
+
case 'unsigned':
|
|
276
|
+
case 'unprocessed':
|
|
277
|
+
case 'sending':
|
|
278
|
+
case 'unproven':
|
|
279
|
+
case 'completed':
|
|
280
|
+
break;
|
|
281
|
+
default:
|
|
282
|
+
throw new index_mobile_1.sdk.WERR_INVALID_PARAMETER('status', `not be ${status}`);
|
|
283
|
+
}
|
|
284
|
+
await this.updateTransaction(tx.transactionId, { status }, trx);
|
|
285
|
+
}, trx);
|
|
286
|
+
}
|
|
287
|
+
async createAction(auth, args) {
|
|
288
|
+
if (!auth.userId)
|
|
289
|
+
throw new index_mobile_1.sdk.WERR_UNAUTHORIZED();
|
|
290
|
+
return await (0, createAction_1.createAction)(this, auth, args);
|
|
291
|
+
}
|
|
292
|
+
async processAction(auth, args) {
|
|
293
|
+
if (!auth.userId)
|
|
294
|
+
throw new index_mobile_1.sdk.WERR_UNAUTHORIZED();
|
|
295
|
+
return await (0, processAction_1.processAction)(this, auth, args);
|
|
296
|
+
}
|
|
297
|
+
async attemptToPostReqsToNetwork(reqs, trx) {
|
|
298
|
+
return await (0, attemptToPostReqsToNetwork_1.attemptToPostReqsToNetwork)(this, reqs, trx);
|
|
299
|
+
}
|
|
300
|
+
async listCertificates(auth, args) {
|
|
301
|
+
return await (0, listCertificates_1.listCertificates)(this, auth, args);
|
|
302
|
+
}
|
|
303
|
+
async verifyKnownValidTransaction(txid, trx) {
|
|
304
|
+
const { proven, rawTx } = await this.getProvenOrRawTx(txid, trx);
|
|
305
|
+
return proven != undefined || rawTx != undefined;
|
|
306
|
+
}
|
|
307
|
+
async getValidBeefForKnownTxid(txid, mergeToBeef, trustSelf, knownTxids, trx) {
|
|
308
|
+
const beef = await this.getValidBeefForTxid(txid, mergeToBeef, trustSelf, knownTxids, trx);
|
|
309
|
+
if (!beef)
|
|
310
|
+
throw new index_mobile_1.sdk.WERR_INVALID_PARAMETER('txid', `${txid} is not known to storage.`);
|
|
311
|
+
return beef;
|
|
312
|
+
}
|
|
313
|
+
async getValidBeefForTxid(txid, mergeToBeef, trustSelf, knownTxids, trx) {
|
|
314
|
+
const beef = mergeToBeef || new sdk_1.Beef();
|
|
315
|
+
const r = await this.getProvenOrRawTx(txid, trx);
|
|
316
|
+
if (r.proven) {
|
|
317
|
+
if (trustSelf === 'known')
|
|
318
|
+
beef.mergeTxidOnly(txid);
|
|
319
|
+
else {
|
|
320
|
+
beef.mergeRawTx(r.proven.rawTx);
|
|
321
|
+
const mp = new entities_1.EntityProvenTx(r.proven).getMerklePath();
|
|
322
|
+
beef.mergeBump(mp);
|
|
323
|
+
return beef;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
if (r.rawTx && r.inputBEEF) {
|
|
327
|
+
if (trustSelf === 'known')
|
|
328
|
+
beef.mergeTxidOnly(txid);
|
|
329
|
+
else {
|
|
330
|
+
beef.mergeRawTx(r.rawTx);
|
|
331
|
+
beef.mergeBeef(r.inputBEEF);
|
|
332
|
+
const tx = sdk_1.Transaction.fromBinary(r.rawTx);
|
|
333
|
+
for (const input of tx.inputs) {
|
|
334
|
+
const btx = beef.findTxid(input.sourceTXID);
|
|
335
|
+
if (!btx) {
|
|
336
|
+
if (knownTxids && knownTxids.indexOf(input.sourceTXID) > -1)
|
|
337
|
+
beef.mergeTxidOnly(input.sourceTXID);
|
|
338
|
+
else
|
|
339
|
+
await this.getValidBeefForKnownTxid(input.sourceTXID, beef, trustSelf, knownTxids, trx);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
return beef;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
return undefined;
|
|
346
|
+
}
|
|
347
|
+
async getBeefForTransaction(txid, options) {
|
|
348
|
+
return await (0, getBeefForTransaction_1.getBeefForTransaction)(this, txid, options);
|
|
349
|
+
}
|
|
350
|
+
async findMonitorEventById(id, trx) {
|
|
351
|
+
return (0, index_mobile_1.verifyOneOrNone)(await this.findMonitorEvents({ partial: { id }, trx }));
|
|
352
|
+
}
|
|
353
|
+
async relinquishCertificate(auth, args) {
|
|
354
|
+
const vargs = index_mobile_1.sdk.validateRelinquishCertificateArgs(args);
|
|
355
|
+
const cert = (0, index_mobile_1.verifyOne)(await this.findCertificates({
|
|
356
|
+
partial: {
|
|
357
|
+
certifier: vargs.certifier,
|
|
358
|
+
serialNumber: vargs.serialNumber,
|
|
359
|
+
type: vargs.type
|
|
360
|
+
}
|
|
361
|
+
}));
|
|
362
|
+
return await this.updateCertificate(cert.certificateId, {
|
|
363
|
+
isDeleted: true
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
async relinquishOutput(auth, args) {
|
|
367
|
+
const vargs = index_mobile_1.sdk.validateRelinquishOutputArgs(args);
|
|
368
|
+
const { txid, vout } = index_mobile_1.sdk.parseWalletOutpoint(vargs.output);
|
|
369
|
+
const output = (0, index_mobile_1.verifyOne)(await this.findOutputs({ partial: { txid, vout } }));
|
|
370
|
+
return await this.updateOutput(output.outputId, { basketId: undefined });
|
|
371
|
+
}
|
|
372
|
+
async processSyncChunk(args, chunk) {
|
|
373
|
+
const user = (0, index_mobile_1.verifyTruthy)(await this.findUserByIdentityKey(args.identityKey));
|
|
374
|
+
const ss = new entities_1.EntitySyncState((0, index_mobile_1.verifyOne)(await this.findSyncStates({
|
|
375
|
+
partial: {
|
|
376
|
+
storageIdentityKey: args.fromStorageIdentityKey,
|
|
377
|
+
userId: user.userId
|
|
378
|
+
}
|
|
379
|
+
})));
|
|
380
|
+
const r = await ss.processSyncChunk(this, args, chunk);
|
|
381
|
+
return r;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Handles storage changes when a valid MerklePath and mined block header are found for a ProvenTxReq txid.
|
|
385
|
+
*
|
|
386
|
+
* Performs the following storage updates (typically):
|
|
387
|
+
* 1. Lookup the exising `ProvenTxReq` record for its rawTx
|
|
388
|
+
* 2. Insert a new ProvenTx record using properties from `args` and rawTx, yielding a new provenTxId
|
|
389
|
+
* 3. Update ProvenTxReq record with status 'completed' and new provenTxId value (and history of status changed)
|
|
390
|
+
* 4. Unpack notify transactionIds from req and update each transaction's status to 'completed', provenTxId value.
|
|
391
|
+
* 5. Update ProvenTxReq history again to record that transactions have been notified.
|
|
392
|
+
* 6. Return results...
|
|
393
|
+
*
|
|
394
|
+
* Alterations of "typically" to handle:
|
|
395
|
+
*/
|
|
396
|
+
async updateProvenTxReqWithNewProvenTx(args) {
|
|
397
|
+
const req = await entities_1.EntityProvenTxReq.fromStorageId(this, args.provenTxReqId);
|
|
398
|
+
let proven;
|
|
399
|
+
if (req.provenTxId) {
|
|
400
|
+
// Someone beat us to it, grab what we need for results...
|
|
401
|
+
proven = new entities_1.EntityProvenTx((0, index_mobile_1.verifyOne)(await this.findProvenTxs({ partial: { txid: args.txid } })));
|
|
402
|
+
}
|
|
403
|
+
else {
|
|
404
|
+
let isNew;
|
|
405
|
+
({ proven, isNew } = await this.transaction(async (trx) => {
|
|
406
|
+
const { proven: api, isNew } = await this.findOrInsertProvenTx({
|
|
407
|
+
created_at: new Date(),
|
|
408
|
+
updated_at: new Date(),
|
|
409
|
+
provenTxId: 0,
|
|
410
|
+
txid: args.txid,
|
|
411
|
+
height: args.height,
|
|
412
|
+
index: args.index,
|
|
413
|
+
merklePath: args.merklePath,
|
|
414
|
+
rawTx: req.rawTx,
|
|
415
|
+
blockHash: args.blockHash,
|
|
416
|
+
merkleRoot: args.merkleRoot
|
|
417
|
+
}, trx);
|
|
418
|
+
proven = new entities_1.EntityProvenTx(api);
|
|
419
|
+
if (isNew) {
|
|
420
|
+
req.status = 'completed';
|
|
421
|
+
req.provenTxId = proven.provenTxId;
|
|
422
|
+
await req.updateStorageDynamicProperties(this, trx);
|
|
423
|
+
// upate the transaction notifications outside of storage transaction....
|
|
424
|
+
}
|
|
425
|
+
return { proven, isNew };
|
|
426
|
+
}));
|
|
427
|
+
if (isNew) {
|
|
428
|
+
const ids = req.notify.transactionIds || [];
|
|
429
|
+
if (ids.length > 0) {
|
|
430
|
+
for (const id of ids) {
|
|
431
|
+
try {
|
|
432
|
+
await this.updateTransaction(id, {
|
|
433
|
+
provenTxId: proven.provenTxId,
|
|
434
|
+
status: 'completed'
|
|
435
|
+
});
|
|
436
|
+
req.addHistoryNote({ what: 'notifyTxOfProof', transactionId: id });
|
|
437
|
+
}
|
|
438
|
+
catch (eu) {
|
|
439
|
+
const { code, description } = index_mobile_1.sdk.WalletError.fromUnknown(eu);
|
|
440
|
+
const { provenTxId } = proven;
|
|
441
|
+
req.addHistoryNote({ what: 'notifyTxOfProofError', id, provenTxId, code, description });
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
await req.updateStorageDynamicProperties(this);
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
const r = {
|
|
449
|
+
status: req.status,
|
|
450
|
+
history: req.apiHistory,
|
|
451
|
+
provenTxId: proven.provenTxId
|
|
452
|
+
};
|
|
453
|
+
return r;
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* For each spendable output in the 'default' basket of the authenticated user,
|
|
457
|
+
* verify that the output script, satoshis, vout and txid match that of an output
|
|
458
|
+
* still in the mempool of at least one service provider.
|
|
459
|
+
*
|
|
460
|
+
* @returns object with invalidSpendableOutputs array. A good result is an empty array.
|
|
461
|
+
*/
|
|
462
|
+
async confirmSpendableOutputs() {
|
|
463
|
+
const invalidSpendableOutputs = [];
|
|
464
|
+
const users = await this.findUsers({ partial: {} });
|
|
465
|
+
for (const { userId } of users) {
|
|
466
|
+
const defaultBasket = (0, index_mobile_1.verifyOne)(await this.findOutputBaskets({ partial: { userId, name: 'default' } }));
|
|
467
|
+
const where = {
|
|
468
|
+
userId,
|
|
469
|
+
basketId: defaultBasket.basketId,
|
|
470
|
+
spendable: true
|
|
471
|
+
};
|
|
472
|
+
const outputs = await this.findOutputs({ partial: where });
|
|
473
|
+
const services = this.getServices();
|
|
474
|
+
for (let i = outputs.length - 1; i >= 0; i--) {
|
|
475
|
+
const o = outputs[i];
|
|
476
|
+
const oid = (0, index_mobile_1.verifyId)(o.outputId);
|
|
477
|
+
if (o.spendable) {
|
|
478
|
+
let ok = false;
|
|
479
|
+
if (o.lockingScript && o.lockingScript.length > 0) {
|
|
480
|
+
const hash = services.hashOutputScript((0, index_mobile_1.asString)(o.lockingScript));
|
|
481
|
+
const r = await services.getUtxoStatus(hash, undefined, `${o.txid}.${o.vout}`);
|
|
482
|
+
if (r.isUtxo === true)
|
|
483
|
+
ok = true;
|
|
484
|
+
}
|
|
485
|
+
if (!ok)
|
|
486
|
+
invalidSpendableOutputs.push(o);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
return { invalidSpendableOutputs };
|
|
491
|
+
}
|
|
492
|
+
async updateProvenTxReqDynamics(id, update, trx) {
|
|
493
|
+
const partial = {};
|
|
494
|
+
if (update['updated_at'])
|
|
495
|
+
partial['updated_at'] = update['updated_at'];
|
|
496
|
+
if (update['provenTxId'])
|
|
497
|
+
partial['provenTxId'] = update['provenTxId'];
|
|
498
|
+
if (update['status'])
|
|
499
|
+
partial['status'] = update['status'];
|
|
500
|
+
if (Number.isInteger(update['attempts']))
|
|
501
|
+
partial['attempts'] = update['attempts'];
|
|
502
|
+
if (update['notified'] !== undefined)
|
|
503
|
+
partial['notified'] = update['notified'];
|
|
504
|
+
if (update['batch'])
|
|
505
|
+
partial['batch'] = update['batch'];
|
|
506
|
+
if (update['history'])
|
|
507
|
+
partial['history'] = update['history'];
|
|
508
|
+
if (update['notify'])
|
|
509
|
+
partial['notify'] = update['notify'];
|
|
510
|
+
return await this.updateProvenTxReq(id, partial, trx);
|
|
511
|
+
}
|
|
512
|
+
async extendOutput(o, includeBasket = false, includeTags = false, trx) {
|
|
513
|
+
const ox = o;
|
|
514
|
+
if (includeBasket && ox.basketId)
|
|
515
|
+
ox.basket = await this.findOutputBasketById(o.basketId, trx);
|
|
516
|
+
if (includeTags) {
|
|
517
|
+
ox.tags = await this.getTagsForOutputId(o.outputId);
|
|
518
|
+
}
|
|
519
|
+
return o;
|
|
520
|
+
}
|
|
521
|
+
async validateOutputScript(o, trx) {
|
|
522
|
+
// without offset and length values return what we have (make no changes)
|
|
523
|
+
if (!o.scriptLength || !o.scriptOffset || !o.txid)
|
|
524
|
+
return;
|
|
525
|
+
// if there is an outputScript and its length is the expected length return what we have.
|
|
526
|
+
if (o.lockingScript && o.lockingScript.length === o.scriptLength)
|
|
527
|
+
return;
|
|
528
|
+
// outputScript is missing or has incorrect length...
|
|
529
|
+
const script = await this.getRawTxOfKnownValidTransaction(o.txid, o.scriptOffset, o.scriptLength, trx);
|
|
530
|
+
if (!script)
|
|
531
|
+
return;
|
|
532
|
+
o.lockingScript = script;
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
exports.StorageProvider = StorageProvider;
|
|
536
|
+
function validateStorageFeeModel(v) {
|
|
537
|
+
const r = {
|
|
538
|
+
model: 'sat/kb',
|
|
539
|
+
value: 1
|
|
540
|
+
};
|
|
541
|
+
if (typeof v === 'object') {
|
|
542
|
+
if (v.model !== 'sat/kb')
|
|
543
|
+
throw new index_mobile_1.sdk.WERR_INVALID_PARAMETER('StorageFeeModel.model', `"sat/kb"`);
|
|
544
|
+
if (typeof v.value === 'number') {
|
|
545
|
+
r.value = v.value;
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
return r;
|
|
549
|
+
}
|
|
550
|
+
//# sourceMappingURL=StorageProvider.mobile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageProvider.mobile.js","sourceRoot":"","sources":["../../../src/storage/StorageProvider.mobile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletStorageManager.d.ts","sourceRoot":"","sources":["../../../src/storage/WalletStorageManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EAErB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,EACrB,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAC7B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,SAAS,EACV,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,cAAM,cAAc;IAMC,OAAO,EAAE,GAAG,CAAC,qBAAqB;IALrD,WAAW,EAAE,OAAO,CAAA;IACpB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,IAAI,CAAC,EAAE,SAAS,CAAA;gBAEG,OAAO,EAAE,GAAG,CAAC,qBAAqB;CAItD;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,oBAAqB,YAAW,GAAG,CAAC,aAAa;IAC5D;;OAEG;IACH,OAAO,EAAE,cAAc,EAAE,CAAK;IAC9B;;OAEG;IACH,YAAY,EAAE,OAAO,CAAQ;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAC3B;;OAEG;IACH,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAA;IACtC;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,CAAA;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,GAAG,CAAC,cAAc,CAAA;IAE9B;;;;;;OAMG;gBACS,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,qBAAqB,EAAE;IAO1G,iBAAiB,IAAI,OAAO;IAI5B,WAAW,IAAI,OAAO;IAItB;;;;;;;OAOG;IACH,IAAI,eAAe,IAAI,OAAO,CAO7B;IAED;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;;;;;;;;OASG;IACG,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAsD7C,OAAO,CAAC,YAAY;IAQd,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;IAMpD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC,SAAS,IAAI,GAAG,CAAC,qBAAqB;IAItC,iBAAiB,IAAI,aAAa;IAIlC,aAAa,IAAI,SAAS;IAI1B,cAAc,IAAI,MAAM;IAIxB,kBAAkB,IAAI,MAAM;IAI5B,eAAe,IAAI,MAAM,EAAE;IAK3B,oBAAoB,IAAI,MAAM,EAAE;IAKhC,YAAY,IAAI,MAAM,EAAE;IAKxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuD;IACnF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuD;IACnF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuD;IACjF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuD;YAEjE,aAAa;
|
|
1
|
+
{"version":3,"file":"WalletStorageManager.d.ts","sourceRoot":"","sources":["../../../src/storage/WalletStorageManager.ts"],"names":[],"mappings":"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"}
|