hodl-wallet 2.1.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 +11 -11
- package/dist/app/account.d.ts +7 -0
- package/dist/app/account.js +248 -0
- package/dist/app/account.js.map +1 -0
- package/dist/app/format.d.ts +5 -0
- package/dist/app/format.js +33 -0
- package/dist/app/format.js.map +1 -0
- 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 +12 -0
- package/dist/app/index.js +9 -0
- package/dist/app/index.js.map +1 -0
- package/dist/app/menu.d.ts +13 -0
- package/dist/app/menu.js +93 -0
- package/dist/app/menu.js.map +1 -0
- package/dist/app/output.d.ts +17 -0
- package/dist/app/output.js +107 -0
- package/dist/app/output.js.map +1 -0
- package/dist/app/session.d.ts +125 -0
- package/dist/app/session.js +2 -0
- package/dist/app/session.js.map +1 -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/transfer.d.ts +3 -0
- package/dist/app/transfer.js +144 -0
- package/dist/app/transfer.js.map +1 -0
- package/dist/app/ui.d.ts +73 -0
- package/dist/app/ui.js +15 -0
- package/dist/app/ui.js.map +1 -0
- package/dist/browser-core.d.ts +7 -1
- package/dist/browser-core.js +6 -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/index.js +24 -1096
- package/dist/index.js.map +1 -1
- 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 +53 -0
- package/dist/node-session.js +359 -0
- package/dist/node-session.js.map +1 -0
- package/dist/persist.d.ts +14 -7
- package/dist/persist.js +83 -108
- 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 +37 -0
- package/dist/ui-inquirer.js +97 -0
- package/dist/ui-inquirer.js.map +1 -0
- package/dist/wallet-store.d.ts +2 -1
- package/package.json +17 -14
- package/dist/swap/ui.d.ts +0 -3
- package/dist/swap/ui.js +0 -257
- package/dist/swap/ui.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap.js","sourceRoot":"","sources":["../../app/swap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { randomUUID } from '#environment';
|
|
2
|
+
import { AgentError } from '../agent-errors.js';
|
|
3
|
+
import { normalizeDecimal } from '../amounts.js';
|
|
4
|
+
import { saveContact } from './account.js';
|
|
5
|
+
import { errorMessage } from './format.js';
|
|
6
|
+
import { sentTransfersTable, showError, showTransactionError } from './output.js';
|
|
7
|
+
/** Shows the host's review of a transfer. False means the user must not be asked to send it. */
|
|
8
|
+
async function reviewed(ui, session, draft, resume) {
|
|
9
|
+
const review = session.transfers.review;
|
|
10
|
+
if (!review)
|
|
11
|
+
return true;
|
|
12
|
+
try {
|
|
13
|
+
const rows = await review.call(session.transfers, draft, resume);
|
|
14
|
+
ui.table({ head: [{ colSpan: 2, content: resume ? 'Saved transfer' : 'Review transfer' }], rows, tone: 'blue', wordWrap: true });
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
showTransactionError(ui, error);
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
return resume ? ui.confirm({ message: 'Send the saved transaction?', default: false }) : true;
|
|
21
|
+
}
|
|
22
|
+
async function submitTransfer(ui, session, draft, requestId) {
|
|
23
|
+
const spinner = ui.spinner('Checking / sending transaction...');
|
|
24
|
+
let result;
|
|
25
|
+
try {
|
|
26
|
+
result = await session.transfers.send(draft, requestId);
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
spinner.fail('Could not complete the transfer request.');
|
|
30
|
+
showTransactionError(ui, error);
|
|
31
|
+
if (error instanceof AgentError && error.code === 'SWAP_IN_PROGRESS') {
|
|
32
|
+
ui.print(`Blocking swap: ${error.details?.requestId}`);
|
|
33
|
+
ui.print('Open Swap > Track Swaps to refresh its saved status, then retry the transfer once the swap has finished.');
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (error instanceof AgentError && error.details?.transactionHash) {
|
|
37
|
+
ui.print(`Saved transfer: ${error.details.requestId}`);
|
|
38
|
+
ui.print(session.plugin.explorer + error.details.transactionHash);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
ui.print(`Request ID: ${requestId}`);
|
|
42
|
+
}
|
|
43
|
+
ui.print('Open Transfer Funds to check or resume any saved request before creating another payment.');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
spinner.succeed(result.status === 'confirmed' ? 'Transaction confirmed!' : 'Transaction submitted; awaiting confirmation.');
|
|
47
|
+
try {
|
|
48
|
+
const sent = await session.transfers.record(result, draft);
|
|
49
|
+
ui.table(sentTransfersTable(session, [sent], { status: false, tone: 'green' }));
|
|
50
|
+
await saveContact(ui, session, draft.to);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
showError(ui, 'Transfer recorded; could not update balance, history or contact.', errorMessage(error));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export async function transferFunds(ui, session) {
|
|
57
|
+
const pending = await session.transfers.pending();
|
|
58
|
+
if (pending.length) {
|
|
59
|
+
const requestId = await ui.select({
|
|
60
|
+
message: 'A previous transfer is still pending:',
|
|
61
|
+
choices: [
|
|
62
|
+
...pending.map(transfer => ({
|
|
63
|
+
name: `Check / resume ${transfer.amount} ${transfer.asset} to ${transfer.to} (${transfer.status})`,
|
|
64
|
+
value: transfer.requestId
|
|
65
|
+
})),
|
|
66
|
+
{ name: 'New transfer', value: 'new' },
|
|
67
|
+
{ name: 'Go back', value: 'back', back: true }
|
|
68
|
+
]
|
|
69
|
+
});
|
|
70
|
+
if (requestId === 'back')
|
|
71
|
+
return;
|
|
72
|
+
if (requestId !== 'new') {
|
|
73
|
+
const { to, asset, amount } = pending.find(item => item.requestId === requestId);
|
|
74
|
+
const draft = { to, asset, amount };
|
|
75
|
+
if (await reviewed(ui, session, draft, requestId))
|
|
76
|
+
await submitTransfer(ui, session, draft, requestId);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const contacts = await session.contacts?.list() ?? [];
|
|
81
|
+
const addressBook = [...contacts, { name: 'Go Back', address: '' }];
|
|
82
|
+
// Address book entries first, then whatever was typed
|
|
83
|
+
const recipient = await ui.autocomplete({
|
|
84
|
+
message: 'Recipient address:',
|
|
85
|
+
source: (input = '') => addressBook
|
|
86
|
+
.filter(entry => entry.name.toLowerCase().includes(input.toLowerCase()) || entry.address.toLowerCase().includes(input.toLowerCase()))
|
|
87
|
+
.map(entry => ({
|
|
88
|
+
name: entry.address ? `${entry.address} (${entry.name})` : entry.name,
|
|
89
|
+
value: entry.address
|
|
90
|
+
}))
|
|
91
|
+
.concat([{ name: input, value: input }])
|
|
92
|
+
});
|
|
93
|
+
if (!recipient)
|
|
94
|
+
return;
|
|
95
|
+
const plugin = session.plugin;
|
|
96
|
+
const assets = Object.keys(plugin.tokens);
|
|
97
|
+
assets.push(plugin.nativeToken);
|
|
98
|
+
let asset = plugin.nativeToken;
|
|
99
|
+
if (assets.length > 1) {
|
|
100
|
+
asset = await ui.select({ message: 'Token to transfer:', choices: assets.map(name => ({ name, value: name })) });
|
|
101
|
+
}
|
|
102
|
+
const amount = (await ui.input({
|
|
103
|
+
message: 'Amount to transfer (or max):',
|
|
104
|
+
validate: value => {
|
|
105
|
+
if (value.trim() === '' || value.trim().toLowerCase() === 'max')
|
|
106
|
+
return true;
|
|
107
|
+
try {
|
|
108
|
+
normalizeDecimal(value.trim());
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return 'Please enter a valid decimal amount, max, or leave empty to cancel.';
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
})).trim();
|
|
116
|
+
if (amount === '')
|
|
117
|
+
return;
|
|
118
|
+
const maximum = amount.toLowerCase() === 'max';
|
|
119
|
+
let transferAmount = amount;
|
|
120
|
+
if (maximum) {
|
|
121
|
+
try {
|
|
122
|
+
const preview = await session.transfers.preview({ to: recipient, asset });
|
|
123
|
+
transferAmount = preview.amount;
|
|
124
|
+
ui.print(`Maximum: ${preview.amount} ${asset} | Estimated fee: ${preview.fee.amount} ${preview.fee.asset}`);
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
showTransactionError(ui, error);
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const draft = { to: recipient, asset, amount: maximum ? 'max' : transferAmount };
|
|
132
|
+
if (!await reviewed(ui, session, { ...draft, amount: transferAmount }))
|
|
133
|
+
return;
|
|
134
|
+
const confirmed = await ui.confirm({
|
|
135
|
+
message: maximum
|
|
136
|
+
? `Confirm transfer of maximum available ${asset} (estimated ${transferAmount})?`
|
|
137
|
+
: `Confirm transfer of ${transferAmount} ${asset}?`,
|
|
138
|
+
default: true
|
|
139
|
+
});
|
|
140
|
+
if (!confirmed)
|
|
141
|
+
return;
|
|
142
|
+
await submitTransfer(ui, session, draft, randomUUID());
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=transfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../app/transfer.ts"],"names":[],"mappings":"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"}
|
package/dist/app/ui.d.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export type Tone = 'green' | 'blue' | 'yellow' | 'red';
|
|
2
|
+
export type Cell = string | {
|
|
3
|
+
colSpan: number;
|
|
4
|
+
content: string;
|
|
5
|
+
};
|
|
6
|
+
export interface TableSpec {
|
|
7
|
+
head: Cell[];
|
|
8
|
+
rows?: Cell[][];
|
|
9
|
+
tone: Tone;
|
|
10
|
+
wordWrap?: boolean;
|
|
11
|
+
colWidths?: number[];
|
|
12
|
+
/** Holds secrets: a host may show it once but must not keep it in history. */
|
|
13
|
+
secret?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface Choice<T> {
|
|
16
|
+
name: string;
|
|
17
|
+
value: T;
|
|
18
|
+
/** Selected by Escape in hosts that have one. */
|
|
19
|
+
back?: boolean;
|
|
20
|
+
/** Shown with this reason, never picked. */
|
|
21
|
+
disabled?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface Spinner {
|
|
24
|
+
succeed(text: string): void;
|
|
25
|
+
fail(text: string): void;
|
|
26
|
+
stop(): void;
|
|
27
|
+
}
|
|
28
|
+
/** A spinner over work that goes on until the person leaves it with Enter. */
|
|
29
|
+
export interface Watch {
|
|
30
|
+
/** Shows the spinner again with this text, below any output since it paused. */
|
|
31
|
+
update(text: string): void;
|
|
32
|
+
/** Hides the spinner so output can follow. */
|
|
33
|
+
pause(): void;
|
|
34
|
+
stop(): void;
|
|
35
|
+
/** Settles when the person leaves; rejects like a prompt when the host aborts. */
|
|
36
|
+
readonly left: Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
export type Validation = true | string;
|
|
39
|
+
/** Everything the shared flows need from a terminal, real or emulated. */
|
|
40
|
+
export interface Ui {
|
|
41
|
+
banner(art: string): void;
|
|
42
|
+
print(text: string): void;
|
|
43
|
+
table(spec: TableSpec): void;
|
|
44
|
+
select<T>(question: {
|
|
45
|
+
message: string;
|
|
46
|
+
choices: Array<Choice<T>>;
|
|
47
|
+
default?: T;
|
|
48
|
+
}): Promise<T>;
|
|
49
|
+
input(question: {
|
|
50
|
+
message: string;
|
|
51
|
+
default?: string;
|
|
52
|
+
validate?: (input: string) => Validation;
|
|
53
|
+
}): Promise<string>;
|
|
54
|
+
password(question: {
|
|
55
|
+
message: string;
|
|
56
|
+
validate?: (input: string) => Validation;
|
|
57
|
+
}): Promise<string>;
|
|
58
|
+
confirm(question: {
|
|
59
|
+
message: string;
|
|
60
|
+
default: boolean;
|
|
61
|
+
}): Promise<boolean>;
|
|
62
|
+
autocomplete(question: {
|
|
63
|
+
message: string;
|
|
64
|
+
source: (input: string) => Array<Choice<string>>;
|
|
65
|
+
}): Promise<string>;
|
|
66
|
+
spinner(text: string): Spinner;
|
|
67
|
+
watch(text: string): Watch;
|
|
68
|
+
}
|
|
69
|
+
/** Thrown by a pending prompt when the user exits or the wallet locks. Named like inquirer's Ctrl+C error. */
|
|
70
|
+
export declare class PromptAborted extends Error {
|
|
71
|
+
constructor(message?: string);
|
|
72
|
+
}
|
|
73
|
+
export declare function isPromptAborted(error: unknown): boolean;
|
package/dist/app/ui.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Thrown by a pending prompt when the user exits or the wallet locks. Named like inquirer's Ctrl+C error. */
|
|
2
|
+
export class PromptAborted extends Error {
|
|
3
|
+
constructor(message = 'Prompt was canceled.') {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = 'ExitPromptError';
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export function isPromptAborted(error) {
|
|
9
|
+
for (let current = error; current instanceof Error; current = current.cause) {
|
|
10
|
+
if (current.name === 'ExitPromptError')
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../app/ui.ts"],"names":[],"mappings":"AAuDA,8GAA8G;AAC9G,MAAM,OAAO,aAAc,SAAQ,KAAK;IACpC,YAAY,OAAO,GAAG,sBAAsB;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAClC,CAAC;CACJ;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC1C,KAAK,IAAI,OAAO,GAAG,KAAK,EAAE,OAAO,YAAY,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1E,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB;YAAE,OAAO,IAAI,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
package/dist/browser-core.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
export { formatUnits, normalizeDecimal, parseDecimalToUnits } from './amounts.js';
|
|
2
|
-
export { NetworkRegistry, ACTIVE_NETWORKS } from './network-registry.js';
|
|
2
|
+
export { NetworkRegistry, ACTIVE_NETWORKS, networkStorageName, byRecentUse, isNetworkUsageEntry, recordNetworkUse } from './network-registry.js';
|
|
3
3
|
export { default as Web3Network } from './network/lib/Web3Network.js';
|
|
4
4
|
export { default as BitcoinNetwork, signBitcoinTransaction } from './network/lib/BitcoinNetwork.js';
|
|
5
5
|
export { TransferService } from './transfer-service.js';
|
|
6
6
|
export { SwapService } from './swap/service.js';
|
|
7
7
|
export { swapConfig } from './swap/config.js';
|
|
8
|
+
export { routeForNetwork } from './swap/routes.js';
|
|
8
9
|
export { clearSensitiveData } from './sensitive-data.js';
|
|
10
|
+
export { walletConfig } from './config.js';
|
|
11
|
+
export { HODL_FILE_IV_BYTES, HODL_FILE_KEY_BYTES, HODL_FILE_SALT_BYTES, HODL_FILE_SCRYPT, HODL_FILE_TAG_BYTES, formatHodlFile, hodlFileHeader, isHodlFile, parseHodlFile } from './hodl-file.js';
|
|
12
|
+
export * from './app/index.js';
|
|
13
|
+
export { AgentError } from './agent-errors.js';
|
|
9
14
|
export type { WalletStore } from './wallet-store.js';
|
|
15
|
+
export type { HodlFile, ScryptCost } from './hodl-file.js';
|
|
10
16
|
export type { TransferResult } from './transfer-service.js';
|
|
11
17
|
export type { SwapServiceOptions } from './swap/service.js';
|
|
12
18
|
export type * from './network/types.js';
|
package/dist/browser-core.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
export { formatUnits, normalizeDecimal, parseDecimalToUnits } from './amounts.js';
|
|
2
|
-
export { NetworkRegistry, ACTIVE_NETWORKS } from './network-registry.js';
|
|
2
|
+
export { NetworkRegistry, ACTIVE_NETWORKS, networkStorageName, byRecentUse, isNetworkUsageEntry, recordNetworkUse } from './network-registry.js';
|
|
3
3
|
export { default as Web3Network } from './network/lib/Web3Network.js';
|
|
4
4
|
export { default as BitcoinNetwork, signBitcoinTransaction } from './network/lib/BitcoinNetwork.js';
|
|
5
5
|
export { TransferService } from './transfer-service.js';
|
|
6
6
|
export { SwapService } from './swap/service.js';
|
|
7
7
|
export { swapConfig } from './swap/config.js';
|
|
8
|
+
export { routeForNetwork } from './swap/routes.js';
|
|
8
9
|
export { clearSensitiveData } from './sensitive-data.js';
|
|
10
|
+
export { walletConfig } from './config.js';
|
|
11
|
+
export { HODL_FILE_IV_BYTES, HODL_FILE_KEY_BYTES, HODL_FILE_SALT_BYTES, HODL_FILE_SCRYPT, HODL_FILE_TAG_BYTES, formatHodlFile, hodlFileHeader, isHodlFile, parseHodlFile } from './hodl-file.js';
|
|
12
|
+
export * from './app/index.js';
|
|
13
|
+
export { AgentError } from './agent-errors.js';
|
|
9
14
|
//# sourceMappingURL=browser-core.js.map
|
package/dist/browser-core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-core.js","sourceRoot":"","sources":["../browser-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-core.js","sourceRoot":"","sources":["../browser-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjJ,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACH,kBAAkB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EACpG,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAC5D,MAAM,gBAAgB,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const walletConfig: {
|
|
2
|
+
history: {
|
|
3
|
+
recentTransfers: number;
|
|
4
|
+
/** Transfers kept per address and network once scans have found more. */
|
|
5
|
+
keptTransfers: number;
|
|
6
|
+
/** Leading or trailing characters an incoming sender shares with a known address to be hidden as an imitation. */
|
|
7
|
+
lookAlikeChars: number;
|
|
8
|
+
/** Log ranges read at once while catching up from a cursor. */
|
|
9
|
+
parallelRanges: number;
|
|
10
|
+
};
|
|
11
|
+
};
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const walletConfig = {
|
|
2
|
+
history: {
|
|
3
|
+
recentTransfers: 10,
|
|
4
|
+
/** Transfers kept per address and network once scans have found more. */
|
|
5
|
+
keptTransfers: 500,
|
|
6
|
+
/** Leading or trailing characters an incoming sender shares with a known address to be hidden as an imitation. */
|
|
7
|
+
lookAlikeChars: 4,
|
|
8
|
+
/** Log ranges read at once while catching up from a cursor. */
|
|
9
|
+
parallelRanges: 4
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,OAAO,EAAE;QACL,eAAe,EAAE,EAAE;QACnB,yEAAyE;QACzE,aAAa,EAAE,GAAG;QAClB,kHAAkH;QAClH,cAAc,EAAE,CAAC;QACjB,+DAA+D;QAC/D,cAAc,EAAE,CAAC;KACpB;CACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The encrypted .HODL format shared by the CLI and the web: scrypt, then AES-256-GCM, in hex.
|
|
3
|
+
* v3 is `v3:N:r:p:salt:iv:tag:ciphertext` and authenticates `v3:N:r:p:salt` as additional data.
|
|
4
|
+
* v2 is `v2:salt:iv:tag:ciphertext` with scrypt at N=2^14, r=8, p=1; it is read, never written.
|
|
5
|
+
*/
|
|
6
|
+
export type ScryptCost = {
|
|
7
|
+
N: number;
|
|
8
|
+
r: number;
|
|
9
|
+
p: number;
|
|
10
|
+
};
|
|
11
|
+
export type HodlFile = {
|
|
12
|
+
cost: ScryptCost;
|
|
13
|
+
salt: Uint8Array;
|
|
14
|
+
iv: Uint8Array;
|
|
15
|
+
tag: Uint8Array;
|
|
16
|
+
ciphertext: Uint8Array;
|
|
17
|
+
additionalData?: Uint8Array;
|
|
18
|
+
};
|
|
19
|
+
export declare const HODL_FILE_SCRYPT: ScryptCost;
|
|
20
|
+
export declare const HODL_FILE_KEY_BYTES = 32;
|
|
21
|
+
export declare const HODL_FILE_SALT_BYTES = 16;
|
|
22
|
+
export declare const HODL_FILE_IV_BYTES = 12;
|
|
23
|
+
export declare const HODL_FILE_TAG_BYTES = 16;
|
|
24
|
+
/** Whether the text has the shape of a v2 or v3 file. Older files start differently. */
|
|
25
|
+
export declare function isHodlFile(text: string): boolean;
|
|
26
|
+
/** Scrypt's working memory for the cost, as Node's `maxmem` must allow it. */
|
|
27
|
+
export declare function scryptMemory({ N, r, p }: ScryptCost): number;
|
|
28
|
+
export declare function parseHodlFile(text: string): HodlFile;
|
|
29
|
+
/** The v3 header for a new file; its text is also the file's additional data. */
|
|
30
|
+
export declare function hodlFileHeader(salt: Uint8Array, cost?: ScryptCost): string;
|
|
31
|
+
export declare function formatHodlFile(header: string, iv: Uint8Array, tag: Uint8Array, ciphertext: Uint8Array): string;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The encrypted .HODL format shared by the CLI and the web: scrypt, then AES-256-GCM, in hex.
|
|
3
|
+
* v3 is `v3:N:r:p:salt:iv:tag:ciphertext` and authenticates `v3:N:r:p:salt` as additional data.
|
|
4
|
+
* v2 is `v2:salt:iv:tag:ciphertext` with scrypt at N=2^14, r=8, p=1; it is read, never written.
|
|
5
|
+
*/
|
|
6
|
+
export const HODL_FILE_SCRYPT = { N: 2 ** 17, r: 8, p: 1 };
|
|
7
|
+
export const HODL_FILE_KEY_BYTES = 32;
|
|
8
|
+
export const HODL_FILE_SALT_BYTES = 16;
|
|
9
|
+
export const HODL_FILE_IV_BYTES = 12;
|
|
10
|
+
export const HODL_FILE_TAG_BYTES = 16;
|
|
11
|
+
const V2_SCRYPT = { N: 2 ** 14, r: 8, p: 1 };
|
|
12
|
+
const MIN_SCRYPT_N = 2 ** 14;
|
|
13
|
+
const MAX_SCRYPT_P = 16;
|
|
14
|
+
// Bounds the header too, so a forged one cannot exhaust memory before authentication fails.
|
|
15
|
+
const MAX_SCRYPT_MEMORY = 256 * 1024 * 1024;
|
|
16
|
+
const UNSUPPORTED = 'Unsupported encrypted payload format';
|
|
17
|
+
/** Whether the text has the shape of a v2 or v3 file. Older files start differently. */
|
|
18
|
+
export function isHodlFile(text) {
|
|
19
|
+
const parts = text.trim().split(':');
|
|
20
|
+
return (parts[0] === 'v2' && parts.length === 5) || (parts[0] === 'v3' && parts.length === 8);
|
|
21
|
+
}
|
|
22
|
+
/** Scrypt's working memory for the cost, as Node's `maxmem` must allow it. */
|
|
23
|
+
export function scryptMemory({ N, r, p }) {
|
|
24
|
+
return 128 * r * (N + p + 2);
|
|
25
|
+
}
|
|
26
|
+
export function parseHodlFile(text) {
|
|
27
|
+
if (!isHodlFile(text))
|
|
28
|
+
throw new Error(UNSUPPORTED);
|
|
29
|
+
const parts = text.trim().split(':');
|
|
30
|
+
if (parts[0] === 'v2') {
|
|
31
|
+
const [, salt, iv, tag, ciphertext] = parts;
|
|
32
|
+
return { cost: V2_SCRYPT, ...sealedParts(salt, iv, tag, ciphertext) };
|
|
33
|
+
}
|
|
34
|
+
const [, N, r, p, salt, iv, tag, ciphertext] = parts;
|
|
35
|
+
const cost = { N: decimal(N), r: decimal(r), p: decimal(p) };
|
|
36
|
+
if (!validCost(cost))
|
|
37
|
+
throw new Error(UNSUPPORTED);
|
|
38
|
+
return { cost, ...sealedParts(salt, iv, tag, ciphertext), additionalData: utf8(parts.slice(0, 5).join(':')) };
|
|
39
|
+
}
|
|
40
|
+
/** The v3 header for a new file; its text is also the file's additional data. */
|
|
41
|
+
export function hodlFileHeader(salt, cost = HODL_FILE_SCRYPT) {
|
|
42
|
+
if (!validCost(cost) || salt.length !== HODL_FILE_SALT_BYTES)
|
|
43
|
+
throw new Error(UNSUPPORTED);
|
|
44
|
+
return `v3:${cost.N}:${cost.r}:${cost.p}:${toHex(salt)}`;
|
|
45
|
+
}
|
|
46
|
+
export function formatHodlFile(header, iv, tag, ciphertext) {
|
|
47
|
+
return `${header}:${toHex(iv)}:${toHex(tag)}:${toHex(ciphertext)}`;
|
|
48
|
+
}
|
|
49
|
+
function sealedParts(salt, iv, tag, ciphertext) {
|
|
50
|
+
return {
|
|
51
|
+
salt: fromHex(salt, HODL_FILE_SALT_BYTES),
|
|
52
|
+
iv: fromHex(iv, HODL_FILE_IV_BYTES),
|
|
53
|
+
tag: fromHex(tag, HODL_FILE_TAG_BYTES),
|
|
54
|
+
ciphertext: fromHex(ciphertext)
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function validCost({ N, r, p }) {
|
|
58
|
+
return Number.isSafeInteger(r) && r >= 1
|
|
59
|
+
&& Number.isSafeInteger(p) && p >= 1 && p <= MAX_SCRYPT_P
|
|
60
|
+
&& Number.isSafeInteger(N) && N >= MIN_SCRYPT_N && (N & (N - 1)) === 0
|
|
61
|
+
&& 128 * N * r <= MAX_SCRYPT_MEMORY;
|
|
62
|
+
}
|
|
63
|
+
function decimal(value) {
|
|
64
|
+
return /^[1-9][0-9]{0,15}$/.test(value) ? Number(value) : NaN;
|
|
65
|
+
}
|
|
66
|
+
function utf8(value) {
|
|
67
|
+
return new TextEncoder().encode(value);
|
|
68
|
+
}
|
|
69
|
+
function toHex(bytes) {
|
|
70
|
+
return Array.from(bytes, byte => byte.toString(16).padStart(2, '0')).join('');
|
|
71
|
+
}
|
|
72
|
+
function fromHex(value, length) {
|
|
73
|
+
if (!/^(?:[0-9a-f]{2})+$/i.test(value) || (length !== undefined && value.length !== length * 2)) {
|
|
74
|
+
throw new Error(UNSUPPORTED);
|
|
75
|
+
}
|
|
76
|
+
return Uint8Array.from(value.match(/../g), byte => parseInt(byte, 16));
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=hodl-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hodl-file.js","sourceRoot":"","sources":["../hodl-file.ts"],"names":[],"mappings":"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"}
|