hodl-wallet 2.2.0 → 2.3.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 +10 -10
- package/dist/app/format.d.ts +3 -1
- package/dist/app/format.js +11 -5
- package/dist/app/format.js.map +1 -1
- package/dist/app/history.d.ts +48 -0
- package/dist/app/history.js +115 -0
- package/dist/app/history.js.map +1 -0
- package/dist/app/index.d.ts +7 -3
- package/dist/app/index.js +3 -1
- package/dist/app/index.js.map +1 -1
- package/dist/app/menu.d.ts +1 -0
- package/dist/app/menu.js +22 -7
- package/dist/app/menu.js.map +1 -1
- package/dist/app/output.d.ts +3 -1
- package/dist/app/output.js +30 -4
- package/dist/app/output.js.map +1 -1
- package/dist/app/session.d.ts +20 -0
- package/dist/app/swap.d.ts +5 -0
- package/dist/app/swap.js +274 -0
- package/dist/app/swap.js.map +1 -0
- package/dist/app/ui.d.ts +13 -0
- package/dist/app/ui.js.map +1 -1
- package/dist/browser-core.d.ts +5 -1
- package/dist/browser-core.js +4 -1
- package/dist/browser-core.js.map +1 -1
- package/dist/config.d.ts +11 -0
- package/dist/config.js +12 -0
- package/dist/config.js.map +1 -0
- package/dist/hodl-file.d.ts +31 -0
- package/dist/hodl-file.js +78 -0
- package/dist/hodl-file.js.map +1 -0
- package/dist/network/abis/erc20.d.ts +35 -13
- package/dist/network/abis/erc20.js +6 -26
- package/dist/network/abis/erc20.js.map +1 -1
- package/dist/network/arb.d.ts +5 -0
- package/dist/network/arb.js +5 -0
- package/dist/network/arb.js.map +1 -1
- package/dist/network/avax.d.ts +6 -0
- package/dist/network/avax.js +6 -0
- package/dist/network/avax.js.map +1 -1
- package/dist/network/bsc.d.ts +6 -0
- package/dist/network/bsc.js +6 -0
- package/dist/network/bsc.js.map +1 -1
- package/dist/network/eth.d.ts +6 -0
- package/dist/network/eth.js +6 -0
- package/dist/network/eth.js.map +1 -1
- package/dist/network/ftm.d.ts +6 -0
- package/dist/network/ftm.js +6 -0
- package/dist/network/ftm.js.map +1 -1
- package/dist/network/lib/BitcoinNetwork.d.ts +3 -1
- package/dist/network/lib/BitcoinNetwork.js +58 -13
- package/dist/network/lib/BitcoinNetwork.js.map +1 -1
- package/dist/network/lib/Web3Network.d.ts +10 -4
- package/dist/network/lib/Web3Network.js +141 -73
- package/dist/network/lib/Web3Network.js.map +1 -1
- package/dist/network/op.d.ts +5 -0
- package/dist/network/op.js +5 -0
- package/dist/network/op.js.map +1 -1
- package/dist/network/pol.d.ts +6 -0
- package/dist/network/pol.js +6 -0
- package/dist/network/pol.js.map +1 -1
- package/dist/network/types.d.ts +35 -0
- package/dist/network-registry.d.ts +6 -1
- package/dist/network-registry.js +28 -0
- package/dist/network-registry.js.map +1 -1
- package/dist/node-session.d.ts +3 -1
- package/dist/node-session.js +26 -77
- package/dist/node-session.js.map +1 -1
- package/dist/persist.d.ts +10 -9
- package/dist/persist.js +56 -101
- package/dist/persist.js.map +1 -1
- package/dist/request.d.ts +7 -0
- package/dist/request.js +26 -0
- package/dist/request.js.map +1 -0
- package/dist/swap/bitcoin.d.ts +1 -1
- package/dist/swap/bitcoin.js +7 -6
- package/dist/swap/bitcoin.js.map +1 -1
- package/dist/swap/chain.js +25 -40
- package/dist/swap/chain.js.map +1 -1
- package/dist/swap/config.d.ts +12 -0
- package/dist/swap/config.js +6 -0
- package/dist/swap/config.js.map +1 -1
- package/dist/swap/http.d.ts +2 -1
- package/dist/swap/http.js +8 -4
- package/dist/swap/http.js.map +1 -1
- package/dist/swap/providers.d.ts +15 -0
- package/dist/swap/providers.js +187 -1
- package/dist/swap/providers.js.map +1 -1
- package/dist/swap/routes.d.ts +28 -0
- package/dist/swap/routes.js +5 -3
- package/dist/swap/routes.js.map +1 -1
- package/dist/swap/service.d.ts +2 -1
- package/dist/swap/service.js +16 -5
- package/dist/swap/service.js.map +1 -1
- package/dist/swap/types.d.ts +3 -1
- package/dist/swap/types.js.map +1 -1
- package/dist/transfer-service.js +1 -2
- package/dist/transfer-service.js.map +1 -1
- package/dist/ui-inquirer.d.ts +8 -1
- package/dist/ui-inquirer.js +45 -10
- package/dist/ui-inquirer.js.map +1 -1
- package/dist/wallet-store.d.ts +2 -1
- package/package.json +13 -14
- package/dist/swap/ui.d.ts +0 -3
- package/dist/swap/ui.js +0 -257
- package/dist/swap/ui.js.map +0 -1
package/dist/node-session.js
CHANGED
|
@@ -2,19 +2,15 @@ import fs from 'fs';
|
|
|
2
2
|
import os from 'os';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import Persist from './persist.js';
|
|
5
|
+
import { walletConfig } from './config.js';
|
|
5
6
|
import { TransferService } from './transfer-service.js';
|
|
6
|
-
import { NetworkRegistry, networkStorageName } from './network-registry.js';
|
|
7
|
+
import { NetworkRegistry, byRecentUse, isNetworkUsageEntry, networkStorageName, recordNetworkUse } from './network-registry.js';
|
|
7
8
|
import { SwapService } from './swap/service.js';
|
|
8
9
|
import { routeForNetwork } from './swap/routes.js';
|
|
9
|
-
import { startSwapMenu } from './swap/ui.js';
|
|
10
10
|
import { errorMessage } from './app/format.js';
|
|
11
11
|
import { showError } from './app/output.js';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
value !== null &&
|
|
15
|
-
!Array.isArray(value) &&
|
|
16
|
-
typeof value.count === 'number');
|
|
17
|
-
}
|
|
12
|
+
import { swapMenu } from './app/swap.js';
|
|
13
|
+
import { isTransferSnapshot, recentTransferRows, recordedTransferKeys, rescanTransfers, sentTransfers } from './app/history.js';
|
|
18
14
|
async function askEncryptionKey(ui) {
|
|
19
15
|
return ui.password({ message: 'Password:' });
|
|
20
16
|
}
|
|
@@ -91,43 +87,10 @@ export class NodeSession {
|
|
|
91
87
|
}
|
|
92
88
|
/** Most recently used first. */
|
|
93
89
|
networks() {
|
|
94
|
-
return new NetworkRegistry().list()
|
|
95
|
-
const aUsage = this.networkUsage[networkStorageName(a)];
|
|
96
|
-
const bUsage = this.networkUsage[networkStorageName(b)];
|
|
97
|
-
// Handle old format (number) vs new format (object)
|
|
98
|
-
const aLastUsed = typeof aUsage === 'object' ? aUsage.lastUsed || 0 : 0;
|
|
99
|
-
const bLastUsed = typeof bUsage === 'object' ? bUsage.lastUsed || 0 : 0;
|
|
100
|
-
// If neither has lastUsed timestamp, sort by old count format
|
|
101
|
-
if (aLastUsed === 0 && bLastUsed === 0) {
|
|
102
|
-
const aCount = typeof aUsage === 'number' ? aUsage : (aUsage?.count || 0);
|
|
103
|
-
const bCount = typeof bUsage === 'number' ? bUsage : (bUsage?.count || 0);
|
|
104
|
-
return bCount - aCount;
|
|
105
|
-
}
|
|
106
|
-
return bLastUsed - aLastUsed;
|
|
107
|
-
});
|
|
90
|
+
return byRecentUse(new NetworkRegistry().list(), this.networkUsage);
|
|
108
91
|
}
|
|
109
92
|
async selectNetwork(selectedNetwork) {
|
|
110
|
-
|
|
111
|
-
// Handle migration from old format (number) to new format (object)
|
|
112
|
-
const currentUsage = this.networkUsage[networkStorageName(selectedNetwork)];
|
|
113
|
-
if (!currentUsage || typeof currentUsage === 'number' || typeof currentUsage !== 'object' || currentUsage === null || Array.isArray(currentUsage)) {
|
|
114
|
-
// Old format (number), doesn't exist, or corrupted data - create new object
|
|
115
|
-
this.networkUsage[networkStorageName(selectedNetwork)] = {
|
|
116
|
-
count: typeof currentUsage === 'number' ? currentUsage + 1 : 1,
|
|
117
|
-
lastUsed: Date.now()
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
else if (isNetworkUsageEntry(currentUsage)) {
|
|
121
|
-
// New format (object) - update values
|
|
122
|
-
currentUsage.count = (currentUsage.count || 0) + 1;
|
|
123
|
-
currentUsage.lastUsed = Date.now();
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
this.networkUsage[networkStorageName(selectedNetwork)] = {
|
|
127
|
-
count: 1,
|
|
128
|
-
lastUsed: Date.now()
|
|
129
|
-
};
|
|
130
|
-
}
|
|
93
|
+
recordNetworkUse(this.networkUsage, selectedNetwork);
|
|
131
94
|
await this.db.set('networkUsage', this.networkUsage);
|
|
132
95
|
this.selectedNetwork = selectedNetwork;
|
|
133
96
|
this.networkInstance = new selectedNetwork.NetworkClass(selectedNetwork);
|
|
@@ -195,38 +158,24 @@ export class NodeSession {
|
|
|
195
158
|
}
|
|
196
159
|
async sentTransfers() {
|
|
197
160
|
const address = await this.address();
|
|
198
|
-
const
|
|
199
|
-
const
|
|
200
|
-
|
|
201
|
-
: this.selectedNetwork.id === 'arb'
|
|
202
|
-
? 'ARB'
|
|
203
|
-
: null;
|
|
204
|
-
if (legacyHistoryKey) {
|
|
205
|
-
const legacyHistory = await this.db.values('transactions', address, legacyHistoryKey) || [];
|
|
206
|
-
history.push(...legacyHistory);
|
|
207
|
-
history.sort((a, b) => a.timestamp.localeCompare(b.timestamp));
|
|
208
|
-
}
|
|
209
|
-
const transfers = await this.transferService().list();
|
|
210
|
-
for (const transfer of transfers.filter(item => item.from === address)) {
|
|
211
|
-
const existing = history.find(item => item.hash === transfer.transactionHash);
|
|
212
|
-
if (existing)
|
|
213
|
-
existing.status = transfer.status;
|
|
214
|
-
else
|
|
215
|
-
history.push({
|
|
216
|
-
timestamp: transfer.createdAt, recipient: transfer.to, token: transfer.asset,
|
|
217
|
-
amount: transfer.amount, hash: transfer.transactionHash, status: transfer.status
|
|
218
|
-
});
|
|
161
|
+
const recorded = [];
|
|
162
|
+
for (const key of recordedTransferKeys(this.selectedNetwork)) {
|
|
163
|
+
recorded.push(...await this.db.values('transactions', address, key));
|
|
219
164
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
165
|
+
return sentTransfers(this.selectedNetwork, address, recorded, await this.transferService().list(), recipient => this.contactName(recipient));
|
|
166
|
+
}
|
|
167
|
+
/** Saved under `chainTransfers`, then the address and the network's storage name. */
|
|
168
|
+
async recentTransfers() {
|
|
169
|
+
const address = await this.address();
|
|
170
|
+
// Deepbase reads a missing key as null.
|
|
171
|
+
const saved = await this.db.get('chainTransfers', address, this.storageNetworkName) ?? undefined;
|
|
172
|
+
if (saved !== undefined && !isTransferSnapshot(saved))
|
|
173
|
+
throw new Error('Invalid saved transfers.');
|
|
174
|
+
const { snapshot, error } = await rescanTransfers(saved, cursor => this.network.recentTransfers(address, walletConfig.history.recentTransfers, cursor));
|
|
175
|
+
if (!error && snapshot)
|
|
176
|
+
await this.db.set('chainTransfers', address, this.storageNetworkName, snapshot);
|
|
177
|
+
const transfers = await recentTransferRows(this.selectedNetwork, snapshot?.transfers ?? [], contact => this.contactName(contact));
|
|
178
|
+
return { transfers, ...(error ? { error } : {}) };
|
|
230
179
|
}
|
|
231
180
|
importActions() {
|
|
232
181
|
return [{ name: 'Import HODL File', run: ui => this.importHODLFile(ui) }];
|
|
@@ -235,7 +184,7 @@ export class NodeSession {
|
|
|
235
184
|
return [{ name: 'Export HODL File', run: ui => this.exportHODLFile(ui) }];
|
|
236
185
|
}
|
|
237
186
|
menuActions() {
|
|
238
|
-
return routeForNetwork(this.selectedNetwork.id) ? [{ name: 'Swap', run:
|
|
187
|
+
return routeForNetwork(this.selectedNetwork.id) ? [{ name: 'Swap', run: ui => this.swapFunds(ui) }] : [];
|
|
239
188
|
}
|
|
240
189
|
async close() {
|
|
241
190
|
try {
|
|
@@ -306,11 +255,11 @@ export class NodeSession {
|
|
|
306
255
|
await this.db.add('transactions', address, this.selectedNetwork.nativeToken, transaction);
|
|
307
256
|
}
|
|
308
257
|
}
|
|
309
|
-
async swapFunds() {
|
|
258
|
+
async swapFunds(ui) {
|
|
310
259
|
const route = routeForNetwork(this.selectedNetwork.id);
|
|
311
260
|
if (!route)
|
|
312
261
|
throw new Error('No swap route for the selected network.');
|
|
313
|
-
await
|
|
262
|
+
await swapMenu(ui, new SwapService(this.db, { routeId: route.id }));
|
|
314
263
|
}
|
|
315
264
|
securePersistFile() {
|
|
316
265
|
const persistPath = path.join(this.hodlDir, 'persist.json');
|
package/dist/node-session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-session.js","sourceRoot":"","sources":["../node-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node-session.js","sourceRoot":"","sources":["../node-session.ts"],"names":[],"mappings":"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"}
|
package/dist/persist.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Deepbase from 'deepbase';
|
|
2
|
+
import type { ConnectResult } from 'deepbase';
|
|
2
3
|
import type { WalletStore } from './wallet-store.js';
|
|
3
4
|
type PersistOptions = {
|
|
4
5
|
path: string;
|
|
@@ -7,31 +8,31 @@ type PersistOptions = {
|
|
|
7
8
|
type EncryptionKey = string | Buffer;
|
|
8
9
|
declare class Persist extends Deepbase implements WalletStore {
|
|
9
10
|
private readonly encryptionKey;
|
|
10
|
-
private readonly
|
|
11
|
+
private readonly legacy;
|
|
11
12
|
private disposed;
|
|
12
13
|
private readonly storagePath;
|
|
13
14
|
constructor(opts: PersistOptions);
|
|
15
|
+
/** Opens the profile, rejecting a wrong password, and rewrites one saved before the encrypted document format. */
|
|
16
|
+
connect(): Promise<ConnectResult>;
|
|
14
17
|
flush(): Promise<void>;
|
|
15
18
|
/** Whether the password is the one this profile is encrypted with. */
|
|
16
19
|
matchesPassword(password: string): boolean;
|
|
17
20
|
dispose(): Promise<void>;
|
|
18
21
|
static clearSensitiveData(value: unknown): void;
|
|
22
|
+
/** A .HODL file in the current format, v3. */
|
|
19
23
|
static encrypt(obj: unknown, encryptionKey: EncryptionKey): string;
|
|
24
|
+
private static isLegacyProfile;
|
|
25
|
+
/** Whether the text is a v2 or v3 .HODL file. */
|
|
20
26
|
static isCurrentFormat(encryptedData: string): boolean;
|
|
21
|
-
/**
|
|
27
|
+
/** A v2 or v3 .HODL file. Profiles saved before v2 are read with decryptProfile. */
|
|
22
28
|
static decrypt(encryptedData: string, encryptionKey: EncryptionKey): unknown;
|
|
23
|
-
|
|
29
|
+
private static fileKey;
|
|
30
|
+
/** A profile saved as a v2 or older string, before the encrypted document format. */
|
|
24
31
|
static decryptProfile(encryptedData: string, encryptionKey: EncryptionKey): unknown;
|
|
25
32
|
static decryptLegacy(encryptedData: string, encryptionKey: EncryptionKey): unknown;
|
|
26
33
|
static evpBytesToKey(password: Buffer, salt: Buffer, keyLen: number, ivLen: number): {
|
|
27
34
|
key: Buffer;
|
|
28
35
|
iv: Buffer;
|
|
29
36
|
};
|
|
30
|
-
private static transformSecrets;
|
|
31
|
-
private static isSensitivePath;
|
|
32
|
-
private static isRecord;
|
|
33
|
-
private static isSealedSecret;
|
|
34
|
-
private static sealSecret;
|
|
35
|
-
private static unsealSecret;
|
|
36
37
|
}
|
|
37
38
|
export default Persist;
|
package/dist/persist.js
CHANGED
|
@@ -1,34 +1,55 @@
|
|
|
1
1
|
import Deepbase from 'deepbase';
|
|
2
|
+
import { encryptedDocument } from 'deepbase/plugins/encryption';
|
|
2
3
|
import crypto from 'node:crypto';
|
|
3
4
|
import fs from 'node:fs';
|
|
4
5
|
import path from 'node:path';
|
|
5
|
-
import {
|
|
6
|
+
import { HODL_FILE_IV_BYTES, HODL_FILE_KEY_BYTES, HODL_FILE_SALT_BYTES, HODL_FILE_SCRYPT, formatHodlFile, hodlFileHeader, isHodlFile, parseHodlFile, scryptMemory } from './hodl-file.js';
|
|
7
|
+
import { clearSensitiveData } from './sensitive-data.js';
|
|
6
8
|
const ALGORITHM = 'aes-256-gcm';
|
|
7
9
|
const KEY_LENGTH = 32;
|
|
8
|
-
const IV_LENGTH = 12;
|
|
9
|
-
const SALT_LENGTH = 16;
|
|
10
|
-
const SEALED_SECRET_VERSION = 1;
|
|
11
10
|
class Persist extends Deepbase {
|
|
12
11
|
encryptionKey;
|
|
13
|
-
|
|
12
|
+
legacy;
|
|
14
13
|
disposed = false;
|
|
15
14
|
storagePath;
|
|
16
15
|
constructor(opts) {
|
|
17
16
|
const encryptionKey = Buffer.from(opts.encryptionKey, 'utf8');
|
|
18
|
-
const
|
|
17
|
+
const legacy = {};
|
|
19
18
|
opts.encryptionKey = '';
|
|
20
19
|
super({
|
|
21
20
|
name: 'persist',
|
|
22
21
|
path: opts.path,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
parse: (text) => {
|
|
23
|
+
if (!Persist.isLegacyProfile(text))
|
|
24
|
+
return JSON.parse(text);
|
|
25
|
+
legacy.profile = Persist.decryptProfile(text, encryptionKey);
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
27
28
|
});
|
|
29
|
+
this.use(encryptedDocument({ password: encryptionKey }));
|
|
28
30
|
this.encryptionKey = encryptionKey;
|
|
29
|
-
this.
|
|
31
|
+
this.legacy = legacy;
|
|
30
32
|
this.storagePath = opts.path;
|
|
31
33
|
}
|
|
34
|
+
/** Opens the profile, rejecting a wrong password, and rewrites one saved before the encrypted document format. */
|
|
35
|
+
async connect() {
|
|
36
|
+
const result = await super.connect();
|
|
37
|
+
const { profile } = this.legacy;
|
|
38
|
+
delete this.legacy.profile;
|
|
39
|
+
if (profile === undefined) {
|
|
40
|
+
clearSensitiveData(await this.get());
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
try {
|
|
44
|
+
await this.set(profile);
|
|
45
|
+
await this.flush();
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
clearSensitiveData(profile);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
32
53
|
async flush() {
|
|
33
54
|
const descriptor = fs.openSync(path.join(this.storagePath, 'persist.json'), 'r');
|
|
34
55
|
try {
|
|
@@ -65,54 +86,53 @@ class Persist extends Deepbase {
|
|
|
65
86
|
}
|
|
66
87
|
finally {
|
|
67
88
|
this.encryptionKey.fill(0);
|
|
68
|
-
this.memoryKey.fill(0);
|
|
69
89
|
this.disposed = true;
|
|
70
90
|
}
|
|
71
91
|
}
|
|
72
92
|
static clearSensitiveData(value) {
|
|
73
93
|
clearSensitiveData(value);
|
|
74
94
|
}
|
|
95
|
+
/** A .HODL file in the current format, v3. */
|
|
75
96
|
static encrypt(obj, encryptionKey) {
|
|
76
|
-
const salt = crypto.randomBytes(
|
|
77
|
-
const iv = crypto.randomBytes(
|
|
78
|
-
const
|
|
97
|
+
const salt = crypto.randomBytes(HODL_FILE_SALT_BYTES);
|
|
98
|
+
const iv = crypto.randomBytes(HODL_FILE_IV_BYTES);
|
|
99
|
+
const header = hodlFileHeader(salt);
|
|
100
|
+
const key = Persist.fileKey(encryptionKey, salt, HODL_FILE_SCRYPT);
|
|
79
101
|
let serialized;
|
|
80
102
|
try {
|
|
81
103
|
serialized = Buffer.from(JSON.stringify(obj), 'utf8');
|
|
82
104
|
const cipher = crypto.createCipheriv(ALGORITHM, key, iv);
|
|
105
|
+
cipher.setAAD(Buffer.from(header, 'utf8'));
|
|
83
106
|
const encrypted = Buffer.concat([
|
|
84
107
|
cipher.update(serialized),
|
|
85
108
|
cipher.final()
|
|
86
109
|
]);
|
|
87
|
-
|
|
88
|
-
return `v2:${salt.toString('hex')}:${iv.toString('hex')}:${authTag.toString('hex')}:${encrypted.toString('hex')}`;
|
|
110
|
+
return formatHodlFile(header, iv, cipher.getAuthTag(), encrypted);
|
|
89
111
|
}
|
|
90
112
|
finally {
|
|
91
113
|
key.fill(0);
|
|
92
114
|
serialized?.fill(0);
|
|
93
115
|
}
|
|
94
116
|
}
|
|
117
|
+
static isLegacyProfile(text) {
|
|
118
|
+
return /^v\d+:/.test(text);
|
|
119
|
+
}
|
|
120
|
+
/** Whether the text is a v2 or v3 .HODL file. */
|
|
95
121
|
static isCurrentFormat(encryptedData) {
|
|
96
|
-
|
|
97
|
-
return parts[0] === 'v2' && parts.length === 5;
|
|
122
|
+
return isHodlFile(encryptedData);
|
|
98
123
|
}
|
|
99
|
-
/**
|
|
124
|
+
/** A v2 or v3 .HODL file. Profiles saved before v2 are read with decryptProfile. */
|
|
100
125
|
static decrypt(encryptedData, encryptionKey) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
const [, saltHex, ivHex, authTagHex, encryptedHex] = encryptedData.split(':');
|
|
105
|
-
const salt = Buffer.from(saltHex, 'hex');
|
|
106
|
-
const iv = Buffer.from(ivHex, 'hex');
|
|
107
|
-
const authTag = Buffer.from(authTagHex, 'hex');
|
|
108
|
-
const encrypted = Buffer.from(encryptedHex, 'hex');
|
|
109
|
-
const key = crypto.scryptSync(encryptionKey, salt, KEY_LENGTH);
|
|
126
|
+
const file = parseHodlFile(encryptedData);
|
|
127
|
+
const key = Persist.fileKey(encryptionKey, file.salt, file.cost);
|
|
110
128
|
let decrypted;
|
|
111
129
|
try {
|
|
112
|
-
const decipher = crypto.createDecipheriv(ALGORITHM, key, iv);
|
|
113
|
-
|
|
130
|
+
const decipher = crypto.createDecipheriv(ALGORITHM, key, file.iv);
|
|
131
|
+
if (file.additionalData)
|
|
132
|
+
decipher.setAAD(file.additionalData);
|
|
133
|
+
decipher.setAuthTag(file.tag);
|
|
114
134
|
decrypted = Buffer.concat([
|
|
115
|
-
decipher.update(
|
|
135
|
+
decipher.update(file.ciphertext),
|
|
116
136
|
decipher.final()
|
|
117
137
|
]);
|
|
118
138
|
return JSON.parse(decrypted.toString('utf8'));
|
|
@@ -122,7 +142,10 @@ class Persist extends Deepbase {
|
|
|
122
142
|
decrypted?.fill(0);
|
|
123
143
|
}
|
|
124
144
|
}
|
|
125
|
-
|
|
145
|
+
static fileKey(encryptionKey, salt, cost) {
|
|
146
|
+
return crypto.scryptSync(encryptionKey, salt, HODL_FILE_KEY_BYTES, { ...cost, maxmem: scryptMemory(cost) });
|
|
147
|
+
}
|
|
148
|
+
/** A profile saved as a v2 or older string, before the encrypted document format. */
|
|
126
149
|
static decryptProfile(encryptedData, encryptionKey) {
|
|
127
150
|
return Persist.isCurrentFormat(encryptedData)
|
|
128
151
|
? Persist.decrypt(encryptedData, encryptionKey)
|
|
@@ -170,74 +193,6 @@ class Persist extends Deepbase {
|
|
|
170
193
|
iv: derived.subarray(keyLen, keyLen + ivLen)
|
|
171
194
|
};
|
|
172
195
|
}
|
|
173
|
-
static transformSecrets(value, path, transform) {
|
|
174
|
-
if (Persist.isSensitivePath(path)) {
|
|
175
|
-
return transform(value);
|
|
176
|
-
}
|
|
177
|
-
if (Array.isArray(value)) {
|
|
178
|
-
return value.map((item, index) => Persist.transformSecrets(item, [...path, String(index)], transform));
|
|
179
|
-
}
|
|
180
|
-
if (Persist.isRecord(value)) {
|
|
181
|
-
return Object.fromEntries(Object.entries(value).map(([key, item]) => [
|
|
182
|
-
key,
|
|
183
|
-
Persist.transformSecrets(item, [...path, key], transform)
|
|
184
|
-
]));
|
|
185
|
-
}
|
|
186
|
-
return value;
|
|
187
|
-
}
|
|
188
|
-
static isSensitivePath(path) {
|
|
189
|
-
const field = path.at(-1);
|
|
190
|
-
return field !== undefined && isSensitiveField(field);
|
|
191
|
-
}
|
|
192
|
-
static isRecord(value) {
|
|
193
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
194
|
-
}
|
|
195
|
-
static isSealedSecret(value) {
|
|
196
|
-
if (!Persist.isRecord(value)) {
|
|
197
|
-
return false;
|
|
198
|
-
}
|
|
199
|
-
return (value.__hodlSealed === SEALED_SECRET_VERSION &&
|
|
200
|
-
typeof value.iv === 'string' &&
|
|
201
|
-
typeof value.authTag === 'string' &&
|
|
202
|
-
typeof value.ciphertext === 'string');
|
|
203
|
-
}
|
|
204
|
-
static sealSecret(secret, memoryKey) {
|
|
205
|
-
if (typeof secret !== 'string') {
|
|
206
|
-
throw new TypeError('Sensitive values must be strings before entering memory');
|
|
207
|
-
}
|
|
208
|
-
const iv = crypto.randomBytes(IV_LENGTH);
|
|
209
|
-
const cipher = crypto.createCipheriv(ALGORITHM, memoryKey, iv);
|
|
210
|
-
const plaintext = Buffer.from(secret, 'utf8');
|
|
211
|
-
try {
|
|
212
|
-
const ciphertext = Buffer.concat([cipher.update(plaintext), cipher.final()]);
|
|
213
|
-
return {
|
|
214
|
-
__hodlSealed: SEALED_SECRET_VERSION,
|
|
215
|
-
iv: iv.toString('hex'),
|
|
216
|
-
authTag: cipher.getAuthTag().toString('hex'),
|
|
217
|
-
ciphertext: ciphertext.toString('hex')
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
finally {
|
|
221
|
-
plaintext.fill(0);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
static unsealSecret(secret, memoryKey) {
|
|
225
|
-
if (!Persist.isSealedSecret(secret)) {
|
|
226
|
-
throw new TypeError('Sensitive value is not sealed in memory');
|
|
227
|
-
}
|
|
228
|
-
const iv = Buffer.from(secret.iv, 'hex');
|
|
229
|
-
const authTag = Buffer.from(secret.authTag, 'hex');
|
|
230
|
-
const ciphertext = Buffer.from(secret.ciphertext, 'hex');
|
|
231
|
-
const decipher = crypto.createDecipheriv(ALGORITHM, memoryKey, iv);
|
|
232
|
-
decipher.setAuthTag(authTag);
|
|
233
|
-
const plaintext = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
234
|
-
try {
|
|
235
|
-
return plaintext.toString('utf8');
|
|
236
|
-
}
|
|
237
|
-
finally {
|
|
238
|
-
plaintext.fill(0);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
196
|
}
|
|
242
197
|
export default Persist;
|
|
243
198
|
//# sourceMappingURL=persist.js.map
|
package/dist/persist.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist.js","sourceRoot":"","sources":["../persist.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"persist.js","sourceRoot":"","sources":["../persist.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** A request that got no HTTP response: the host was unreachable, refused it, or did not answer in time. */
|
|
2
|
+
export declare class NetworkError extends Error {
|
|
3
|
+
}
|
|
4
|
+
/** fetch, naming the host when no response arrives; fetch reports that as a bare TypeError. */
|
|
5
|
+
export declare function request(input: string | URL | Request, init?: RequestInit): Promise<Response>;
|
|
6
|
+
/** What to show for an error: a network failure among its causes outranks the wrappers that describe the request. */
|
|
7
|
+
export declare function errorMessage(error: unknown): string;
|
package/dist/request.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** A request that got no HTTP response: the host was unreachable, refused it, or did not answer in time. */
|
|
2
|
+
export class NetworkError extends Error {
|
|
3
|
+
}
|
|
4
|
+
/** fetch, naming the host when no response arrives; fetch reports that as a bare TypeError. */
|
|
5
|
+
export async function request(input, init) {
|
|
6
|
+
try {
|
|
7
|
+
return await fetch(input, init);
|
|
8
|
+
}
|
|
9
|
+
catch (error) {
|
|
10
|
+
const host = new URL(input instanceof Request ? input.url : input).host;
|
|
11
|
+
if (error instanceof Error && error.name === 'TimeoutError')
|
|
12
|
+
throw new NetworkError(`${host} did not respond in time.`, { cause: error });
|
|
13
|
+
if (error instanceof TypeError)
|
|
14
|
+
throw new NetworkError(`Could not reach ${host}.`, { cause: error });
|
|
15
|
+
throw error;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/** What to show for an error: a network failure among its causes outranks the wrappers that describe the request. */
|
|
19
|
+
export function errorMessage(error) {
|
|
20
|
+
for (let cause = error; cause instanceof Error; cause = cause.cause) {
|
|
21
|
+
if (cause instanceof NetworkError)
|
|
22
|
+
return cause.message;
|
|
23
|
+
}
|
|
24
|
+
return error instanceof Error ? error.message : String(error);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../request.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,MAAM,OAAO,YAAa,SAAQ,KAAK;CAAG;AAE1C,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAA6B,EAAE,IAAkB;IAC3E,IAAI,CAAC;QACD,OAAO,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;QACxE,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;YAAE,MAAM,IAAI,YAAY,CAAC,GAAG,IAAI,2BAA2B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1I,IAAI,KAAK,YAAY,SAAS;YAAE,MAAM,IAAI,YAAY,CAAC,mBAAmB,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACrG,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC;AAED,qHAAqH;AACrH,MAAM,UAAU,YAAY,CAAC,KAAc;IACvC,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,YAAY,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAClE,IAAI,KAAK,YAAY,YAAY;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC"}
|
package/dist/swap/bitcoin.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { WalletAccount } from '../network/types.js';
|
|
|
2
2
|
import { BitcoinPayments } from './chain.js';
|
|
3
3
|
import type { ChainReceipt, FundingEstimate, ProviderQuote, SwapChain, SwapInput, SwapPlan, SwapQuote, SwapStep } from './types.js';
|
|
4
4
|
type Output = {
|
|
5
|
-
script:
|
|
5
|
+
script: Uint8Array;
|
|
6
6
|
value: number;
|
|
7
7
|
};
|
|
8
8
|
export declare function bitcoinMemoOutputs(memo?: string): Output[];
|