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
|
@@ -1,23 +1,40 @@
|
|
|
1
1
|
import BaseNetwork from './BaseNetwork.js';
|
|
2
|
-
import {
|
|
2
|
+
import { createPublicClient, encodeFunctionData, getAddress, http, keccak256, parseAbiItem, parseEther, toHex, TransactionNotFoundError, TransactionReceiptNotFoundError } from 'viem';
|
|
3
|
+
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
|
|
3
4
|
import { ERC20_ABI } from '../abis/erc20.js';
|
|
4
|
-
import bip39 from 'bip39';
|
|
5
|
-
import
|
|
5
|
+
import * as bip39 from '@scure/bip39';
|
|
6
|
+
import { wordlist } from '@scure/bip39/wordlists/english.js';
|
|
7
|
+
import { HDKey } from '@scure/bip32';
|
|
6
8
|
import { formatUnits, parseDecimalToUnits } from '../../amounts.js';
|
|
9
|
+
import { walletConfig } from '../../config.js';
|
|
10
|
+
import { request } from '../../request.js';
|
|
11
|
+
const TRANSFER_EVENT = parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)');
|
|
7
12
|
export default class Web3Network extends BaseNetwork {
|
|
8
|
-
|
|
13
|
+
client;
|
|
9
14
|
constructor(config) {
|
|
10
15
|
super(config);
|
|
11
|
-
|
|
16
|
+
// A retried eth_sendRawTransaction would broadcast the transfer again.
|
|
17
|
+
this.client = createPublicClient({ transport: http(config.url, { retryCount: 0, fetchFn: request }) });
|
|
12
18
|
}
|
|
13
19
|
formatPrivateKey(privateKey) {
|
|
14
20
|
return privateKey.startsWith('0x') ? privateKey : `0x${privateKey}`;
|
|
15
21
|
}
|
|
22
|
+
/** Accepts an optional 0x prefix and either a single case or a valid EIP-55 checksum. */
|
|
16
23
|
validateAddress(address) {
|
|
17
|
-
|
|
24
|
+
if (!/^(0x)?[\da-f]{40}$/i.test(address))
|
|
25
|
+
return false;
|
|
26
|
+
const digits = address.slice(-40);
|
|
27
|
+
return digits === digits.toLowerCase() || digits === digits.toUpperCase()
|
|
28
|
+
|| getAddress(`0x${digits.toLowerCase()}`) === `0x${digits}`;
|
|
29
|
+
}
|
|
30
|
+
address(address) {
|
|
31
|
+
if (!this.validateAddress(address)) {
|
|
32
|
+
throw new Error('Invalid EVM address.');
|
|
33
|
+
}
|
|
34
|
+
return getAddress(`0x${address.slice(-40).toLowerCase()}`);
|
|
18
35
|
}
|
|
19
36
|
async getBalance(address) {
|
|
20
|
-
const balanceWei = await this.
|
|
37
|
+
const balanceWei = await this.client.getBalance({ address: this.address(address) });
|
|
21
38
|
return formatUnits(balanceWei, 18);
|
|
22
39
|
}
|
|
23
40
|
async transfer(from, to, amount, options = {}) {
|
|
@@ -35,34 +52,99 @@ export default class Web3Network extends BaseNetwork {
|
|
|
35
52
|
};
|
|
36
53
|
}
|
|
37
54
|
async estimateGas(transaction) {
|
|
38
|
-
return this.
|
|
55
|
+
return this.client.estimateGas(transaction);
|
|
39
56
|
}
|
|
40
57
|
async getGasPrice() {
|
|
41
|
-
return this.
|
|
58
|
+
return this.client.getGasPrice();
|
|
42
59
|
}
|
|
43
60
|
async handleERC20Transfer(account, token, recipient, amount) {
|
|
44
61
|
return this.transferToken(account, recipient, amount, token);
|
|
45
62
|
}
|
|
46
63
|
async handleNativeTransfer(account, recipient, amount) {
|
|
47
64
|
const gasPrice = await this.getGasPrice();
|
|
48
|
-
const valueInWei = this.web3.utils.toWei(amount.toString(), 'ether');
|
|
49
65
|
const gasLimit = await this.estimateGas({
|
|
50
|
-
|
|
51
|
-
to: recipient,
|
|
52
|
-
value:
|
|
66
|
+
account: this.address(account.address),
|
|
67
|
+
to: this.address(recipient),
|
|
68
|
+
value: parseEther(amount.toString())
|
|
53
69
|
});
|
|
54
70
|
return this.transfer(account, recipient, amount, { gasLimit, gasPrice });
|
|
55
71
|
}
|
|
56
72
|
async getTokenBalance(address, tokenSymbol) {
|
|
57
73
|
return (await this.getAssetBalance(address, tokenSymbol)).amount;
|
|
58
74
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
75
|
+
/** Listed only where an endpoint serves the logs. Token transfers only: a standard RPC cannot look up native transfers by address. */
|
|
76
|
+
get recentTransfers() {
|
|
77
|
+
const { history } = this.config;
|
|
78
|
+
return history ? (address, limit, cursor) => this.recentTokenTransfers(history, address, limit, cursor) : undefined;
|
|
79
|
+
}
|
|
80
|
+
/** The cursor is the last block a later scan need not read again. */
|
|
81
|
+
async recentTokenTransfers(history, address, limit, cursor) {
|
|
82
|
+
if (cursor !== undefined && !/^\d+$/.test(cursor))
|
|
83
|
+
throw new Error('Invalid transfer cursor.');
|
|
84
|
+
const owner = this.address(address);
|
|
85
|
+
const client = history.url ? createPublicClient({ transport: http(history.url, { fetchFn: request }) }) : this.client;
|
|
86
|
+
const tokens = new Map(Object.entries(this.config.tokens).map(([symbol, token]) => [this.address(token.address), symbol]));
|
|
87
|
+
if (tokens.size === 0)
|
|
88
|
+
return { transfers: [] };
|
|
89
|
+
const head = await client.getBlockNumber();
|
|
90
|
+
const range = BigInt(history.blockRange);
|
|
91
|
+
const reach = (blocks) => head >= BigInt(blocks) ? head - BigInt(blocks) + 1n : 0n;
|
|
92
|
+
// A cursor within catch-up reach means everything after it is wanted; otherwise the latest `limit` are.
|
|
93
|
+
const since = cursor !== undefined && BigInt(cursor) + 1n >= reach(history.catchUpBlocks) ? BigInt(cursor) + 1n : undefined;
|
|
94
|
+
const oldest = reach(history.lookbackBlocks);
|
|
95
|
+
const logs = (args, fromBlock, toBlock) => client.getLogs({ address: [...tokens.keys()], event: TRANSFER_EVENT, args, fromBlock, toBlock, strict: true });
|
|
96
|
+
const found = new Map();
|
|
97
|
+
const read = async (fromBlock, toBlock) => {
|
|
98
|
+
const chunk = await Promise.all([logs({ to: owner }, fromBlock, toBlock), logs({ from: owner }, fromBlock, toBlock)]);
|
|
99
|
+
for (const log of chunk.flat())
|
|
100
|
+
found.set(`${log.transactionHash}:${log.logIndex}`, log);
|
|
101
|
+
};
|
|
102
|
+
// Nodes behind one endpoint disagree on the head: the newest chunk ends at each node's own head
|
|
103
|
+
// and spans half a range, so a node up to half a range ahead of this one stays within it. Being read
|
|
104
|
+
// on every scan, it is where the next one picks up.
|
|
105
|
+
const newest = head - range / 2n + 1n > 0n ? head - range / 2n + 1n : 0n;
|
|
106
|
+
await read(newest, 'latest');
|
|
107
|
+
const below = (toBlock, floor) => [toBlock - range + 1n > floor ? toBlock - range + 1n : floor, toBlock];
|
|
108
|
+
if (since !== undefined) {
|
|
109
|
+
// Catching up needs every range down to the cursor, so several are read at once.
|
|
110
|
+
const ranges = [];
|
|
111
|
+
for (let toBlock = newest - 1n; toBlock >= since; toBlock -= range)
|
|
112
|
+
ranges.push(below(toBlock, since));
|
|
113
|
+
for (let index = 0; index < ranges.length; index += walletConfig.history.parallelRanges) {
|
|
114
|
+
await Promise.all(ranges.slice(index, index + walletConfig.history.parallelRanges).map(([fromBlock, toBlock]) => read(fromBlock, toBlock)));
|
|
115
|
+
}
|
|
62
116
|
}
|
|
117
|
+
else {
|
|
118
|
+
for (let toBlock = newest - 1n; toBlock >= oldest && found.size < limit; toBlock -= range)
|
|
119
|
+
await read(...below(toBlock, oldest));
|
|
120
|
+
}
|
|
121
|
+
const latest = [...found.values()].sort((a, b) => Number(b.blockNumber - a.blockNumber) || b.logIndex - a.logIndex);
|
|
122
|
+
const decimals = new Map(await Promise.all([...new Set(latest.map(log => getAddress(log.address)))].map(async (token) => [token, Number(await client.readContract({ address: token, abi: ERC20_ABI, functionName: 'decimals' }))])));
|
|
123
|
+
// Some endpoints omit blockTimestamp from logs or report it as zero.
|
|
124
|
+
const blocks = new Map(await Promise.all([...new Set(latest.filter(log => !log.blockTimestamp).map(log => log.blockNumber))]
|
|
125
|
+
.map(async (blockNumber) => [blockNumber, (await client.getBlock({ blockNumber })).timestamp])));
|
|
126
|
+
const transfers = latest.map((log) => {
|
|
127
|
+
const token = getAddress(log.address);
|
|
128
|
+
const outgoing = getAddress(log.args.from) === owner;
|
|
129
|
+
const timestamp = log.blockTimestamp || blocks.get(log.blockNumber);
|
|
130
|
+
return {
|
|
131
|
+
id: `${log.transactionHash}:${log.logIndex}`,
|
|
132
|
+
hash: log.transactionHash,
|
|
133
|
+
direction: outgoing ? 'out' : 'in',
|
|
134
|
+
counterparty: getAddress(outgoing ? log.args.to : log.args.from),
|
|
135
|
+
asset: tokens.get(token),
|
|
136
|
+
amount: formatUnits(log.args.value, decimals.get(token)),
|
|
137
|
+
timestamp: new Date(Number(timestamp) * 1000).toISOString(),
|
|
138
|
+
state: 'confirmed'
|
|
139
|
+
};
|
|
140
|
+
});
|
|
141
|
+
return { transfers, ...(newest > 0n ? { cursor: String(newest - 1n) } : {}) };
|
|
142
|
+
}
|
|
143
|
+
async getAssetBalance(address, asset) {
|
|
144
|
+
const owner = this.address(address);
|
|
63
145
|
const symbol = asset.toUpperCase();
|
|
64
146
|
if (symbol === this.config.nativeToken) {
|
|
65
|
-
const baseUnits = await this.
|
|
147
|
+
const baseUnits = await this.client.getBalance({ address: owner });
|
|
66
148
|
return {
|
|
67
149
|
asset: symbol,
|
|
68
150
|
amount: formatUnits(baseUnits, 18),
|
|
@@ -74,9 +156,9 @@ export default class Web3Network extends BaseNetwork {
|
|
|
74
156
|
if (!tokenConfig) {
|
|
75
157
|
throw new Error(`Token ${symbol} not supported`);
|
|
76
158
|
}
|
|
77
|
-
const
|
|
78
|
-
const baseUnits = String(await
|
|
79
|
-
const decimals = Number(await
|
|
159
|
+
const token = this.address(tokenConfig.address);
|
|
160
|
+
const baseUnits = String(await this.client.readContract({ address: token, abi: ERC20_ABI, functionName: 'balanceOf', args: [owner] }));
|
|
161
|
+
const decimals = Number(await this.client.readContract({ address: token, abi: ERC20_ABI, functionName: 'decimals' }));
|
|
80
162
|
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
81
163
|
throw new Error(`Token ${symbol} returned invalid decimals.`);
|
|
82
164
|
}
|
|
@@ -88,14 +170,13 @@ export default class Web3Network extends BaseNetwork {
|
|
|
88
170
|
};
|
|
89
171
|
}
|
|
90
172
|
async buildTransfer(from, to, amount, asset, options = {}) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
173
|
+
const sender = this.address(from);
|
|
174
|
+
const recipient = this.address(to);
|
|
94
175
|
const configuredChainId = this.config.chainId;
|
|
95
176
|
if (configuredChainId === undefined) {
|
|
96
177
|
throw new Error(`Network ${this.config.id} does not define a chain ID.`);
|
|
97
178
|
}
|
|
98
|
-
const providerChainId =
|
|
179
|
+
const providerChainId = await this.client.getChainId();
|
|
99
180
|
if (providerChainId !== configuredChainId) {
|
|
100
181
|
throw new Error(`RPC chain ID mismatch: expected ${configuredChainId}, received ${providerChainId}.`);
|
|
101
182
|
}
|
|
@@ -111,13 +192,12 @@ export default class Web3Network extends BaseNetwork {
|
|
|
111
192
|
const gasPrice = options.gasPrice !== undefined
|
|
112
193
|
? BigInt(options.gasPrice)
|
|
113
194
|
: await this.getGasPrice();
|
|
114
|
-
const nonce = await this.
|
|
195
|
+
const nonce = await this.client.getTransactionCount({ address: sender, blockTag: 'pending' });
|
|
115
196
|
let transaction;
|
|
116
197
|
if (symbol === this.config.nativeToken) {
|
|
117
198
|
transaction = {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
value: maximum ? '0' : amountBaseUnits.toString()
|
|
199
|
+
to: recipient,
|
|
200
|
+
value: maximum ? 0n : amountBaseUnits
|
|
121
201
|
};
|
|
122
202
|
}
|
|
123
203
|
else {
|
|
@@ -125,25 +205,23 @@ export default class Web3Network extends BaseNetwork {
|
|
|
125
205
|
if (!tokenConfig) {
|
|
126
206
|
throw new Error(`Token ${symbol} not supported`);
|
|
127
207
|
}
|
|
128
|
-
const contract = new this.web3.eth.Contract(ERC20_ABI, tokenConfig.address);
|
|
129
208
|
transaction = {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
value: '0'
|
|
209
|
+
to: this.address(tokenConfig.address),
|
|
210
|
+
data: encodeFunctionData({ abi: ERC20_ABI, functionName: 'transfer', args: [recipient, amountBaseUnits] }),
|
|
211
|
+
value: 0n
|
|
134
212
|
};
|
|
135
213
|
}
|
|
136
214
|
const gas = options.gasLimit !== undefined
|
|
137
215
|
? BigInt(options.gasLimit)
|
|
138
|
-
: await this.
|
|
216
|
+
: await this.client.estimateGas({ account: sender, ...transaction });
|
|
139
217
|
const feeBaseUnits = gas * gasPrice;
|
|
140
218
|
const nativeBalance = await this.getAssetBalance(from, this.config.nativeToken);
|
|
141
219
|
if (maximum && symbol === this.config.nativeToken) {
|
|
142
220
|
amountBaseUnits = BigInt(nativeBalance.baseUnits) - feeBaseUnits;
|
|
143
221
|
if (amountBaseUnits <= 0n)
|
|
144
222
|
throw new Error(`Insufficient ${symbol} balance for fee.`);
|
|
145
|
-
transaction.value = amountBaseUnits
|
|
146
|
-
if (options.gasLimit === undefined && await this.
|
|
223
|
+
transaction.value = amountBaseUnits;
|
|
224
|
+
if (options.gasLimit === undefined && await this.client.estimateGas({ account: sender, ...transaction }) > gas) {
|
|
147
225
|
throw new Error('Gas estimate increased for the maximum amount. Specify a smaller amount.');
|
|
148
226
|
}
|
|
149
227
|
}
|
|
@@ -154,7 +232,7 @@ export default class Web3Network extends BaseNetwork {
|
|
|
154
232
|
throw new Error(`Insufficient ${this.config.nativeToken} balance for amount and fee.`);
|
|
155
233
|
}
|
|
156
234
|
return {
|
|
157
|
-
transaction: { ...transaction, nonce, gas, gasPrice, chainId: configuredChainId,
|
|
235
|
+
transaction: { ...transaction, nonce, gas, gasPrice, chainId: configuredChainId, type: 'legacy' },
|
|
158
236
|
estimate: {
|
|
159
237
|
from, to, asset: symbol,
|
|
160
238
|
amount: formatUnits(amountBaseUnits, balance.decimals),
|
|
@@ -170,25 +248,19 @@ export default class Web3Network extends BaseNetwork {
|
|
|
170
248
|
async prepareTransfer(from, to, amount, asset, options = {}) {
|
|
171
249
|
const { estimate, transaction } = await this.buildTransfer(from.address, to, amount, asset, options);
|
|
172
250
|
this.checkFeeLimit(BigInt(estimate.fee.baseUnits), options.maxFeeBaseUnits);
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
throw new Error('Failed to create a signed transaction.');
|
|
176
|
-
}
|
|
177
|
-
const transactionHash = signed.transactionHash || this.web3.utils.keccak256(signed.rawTransaction);
|
|
178
|
-
if (!transactionHash) {
|
|
179
|
-
throw new Error('Failed to calculate transaction hash.');
|
|
180
|
-
}
|
|
181
|
-
return { ...estimate, transactionHash, rawTransaction: signed.rawTransaction };
|
|
251
|
+
const rawTransaction = await privateKeyToAccount(this.formatPrivateKey(from.privateKey)).signTransaction(transaction);
|
|
252
|
+
return { ...estimate, transactionHash: keccak256(rawTransaction), rawTransaction };
|
|
182
253
|
}
|
|
183
254
|
async getTransactionStatus(transactionHash) {
|
|
184
|
-
const
|
|
255
|
+
const hash = transactionHash;
|
|
256
|
+
const receipt = await this.client.getTransactionReceipt({ hash }).catch(missingTransaction);
|
|
185
257
|
if (receipt) {
|
|
186
258
|
return {
|
|
187
|
-
state:
|
|
259
|
+
state: receipt.status === 'reverted' ? 'failed' : 'confirmed',
|
|
188
260
|
transactionHash
|
|
189
261
|
};
|
|
190
262
|
}
|
|
191
|
-
const transaction = await this.
|
|
263
|
+
const transaction = await this.client.getTransaction({ hash }).catch(missingTransaction);
|
|
192
264
|
return {
|
|
193
265
|
state: transaction ? 'submitted' : 'not_found',
|
|
194
266
|
transactionHash
|
|
@@ -199,7 +271,7 @@ export default class Web3Network extends BaseNetwork {
|
|
|
199
271
|
return false;
|
|
200
272
|
}
|
|
201
273
|
try {
|
|
202
|
-
|
|
274
|
+
privateKeyToAccount(this.formatPrivateKey(privateKey));
|
|
203
275
|
return true;
|
|
204
276
|
}
|
|
205
277
|
catch {
|
|
@@ -211,7 +283,8 @@ export default class Web3Network extends BaseNetwork {
|
|
|
211
283
|
throw new Error('Private key is required');
|
|
212
284
|
}
|
|
213
285
|
try {
|
|
214
|
-
|
|
286
|
+
const formatted = this.formatPrivateKey(privateKey);
|
|
287
|
+
return { address: privateKeyToAccount(formatted).address, privateKey: formatted };
|
|
215
288
|
}
|
|
216
289
|
catch (error) {
|
|
217
290
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -219,20 +292,22 @@ export default class Web3Network extends BaseNetwork {
|
|
|
219
292
|
}
|
|
220
293
|
}
|
|
221
294
|
async createAccount() {
|
|
222
|
-
|
|
295
|
+
const privateKey = generatePrivateKey();
|
|
296
|
+
return { address: privateKeyToAccount(privateKey).address, privateKey };
|
|
223
297
|
}
|
|
224
298
|
async accountFromMnemonic(mnemonic) {
|
|
225
299
|
const seed = await bip39.mnemonicToSeed(mnemonic);
|
|
226
|
-
const
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
300
|
+
const addrNode = HDKey.fromMasterSeed(seed).derive("m/44'/60'/0'/0/0");
|
|
301
|
+
if (!addrNode.privateKey) {
|
|
302
|
+
throw new Error('Mnemonic derivation produced no private key');
|
|
303
|
+
}
|
|
304
|
+
const privateKey = toHex(addrNode.privateKey);
|
|
305
|
+
return { address: privateKeyToAccount(privateKey).address, privateKey, mnemonic };
|
|
231
306
|
}
|
|
232
307
|
async createAccountFromMnemonic(wordCount = 12) {
|
|
233
308
|
try {
|
|
234
309
|
const strength = wordCount === 24 ? 256 : 128;
|
|
235
|
-
const mnemonic = bip39.generateMnemonic(strength);
|
|
310
|
+
const mnemonic = bip39.generateMnemonic(wordlist, strength);
|
|
236
311
|
return this.accountFromMnemonic(mnemonic);
|
|
237
312
|
}
|
|
238
313
|
catch (error) {
|
|
@@ -241,30 +316,23 @@ export default class Web3Network extends BaseNetwork {
|
|
|
241
316
|
}
|
|
242
317
|
}
|
|
243
318
|
validateMnemonic(mnemonic) {
|
|
244
|
-
return bip39.validateMnemonic(mnemonic);
|
|
319
|
+
return bip39.validateMnemonic(mnemonic, wordlist);
|
|
245
320
|
}
|
|
246
321
|
async sendSignedTransaction(signedTx) {
|
|
247
|
-
|
|
248
|
-
if (
|
|
249
|
-
|
|
250
|
-
}
|
|
251
|
-
else {
|
|
252
|
-
if (!signedTx.rawTransaction) {
|
|
253
|
-
throw new Error('Signed transaction rawTransaction is required.');
|
|
254
|
-
}
|
|
255
|
-
receipt = await this.web3.eth.sendSignedTransaction(signedTx.rawTransaction);
|
|
322
|
+
const rawTransaction = typeof signedTx === 'string' ? signedTx : signedTx.rawTransaction;
|
|
323
|
+
if (!rawTransaction) {
|
|
324
|
+
throw new Error('Signed transaction rawTransaction is required.');
|
|
256
325
|
}
|
|
257
|
-
|
|
326
|
+
const hash = await this.client.sendRawTransaction({ serializedTransaction: rawTransaction });
|
|
327
|
+
const receipt = await this.client.waitForTransactionReceipt({ hash });
|
|
328
|
+
if (receipt.status === 'reverted') {
|
|
258
329
|
throw new Error('Transaction was mined but reverted.');
|
|
259
330
|
}
|
|
260
331
|
return receipt;
|
|
261
332
|
}
|
|
262
333
|
}
|
|
263
|
-
function isFailedReceiptStatus(status) {
|
|
264
|
-
return status === false || status === 0 || status === 0n || status === '0x0';
|
|
265
|
-
}
|
|
266
334
|
function missingTransaction(error) {
|
|
267
|
-
if (error instanceof
|
|
335
|
+
if (error instanceof TransactionReceiptNotFoundError || error instanceof TransactionNotFoundError)
|
|
268
336
|
return undefined;
|
|
269
337
|
throw error;
|
|
270
338
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Web3Network.js","sourceRoot":"","sources":["../../../network/lib/Web3Network.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Web3Network.js","sourceRoot":"","sources":["../../../network/lib/Web3Network.ts"],"names":[],"mappings":"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"}
|
package/dist/network/op.d.ts
CHANGED
package/dist/network/op.js
CHANGED
|
@@ -9,6 +9,11 @@ const optimism = {
|
|
|
9
9
|
explorer: 'https://optimistic.etherscan.io/tx/',
|
|
10
10
|
url: 'https://mainnet.optimism.io',
|
|
11
11
|
nativeToken: 'ETH',
|
|
12
|
+
history: {
|
|
13
|
+
blockRange: 10_000,
|
|
14
|
+
lookbackBlocks: 100_000,
|
|
15
|
+
catchUpBlocks: 200_000
|
|
16
|
+
},
|
|
12
17
|
tokens: {
|
|
13
18
|
'USDT': {
|
|
14
19
|
address: '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58',
|
package/dist/network/op.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"op.js","sourceRoot":"","sources":["../../network/op.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAG/C,MAAM,QAAQ,GAAG;IACb,YAAY,EAAE,WAAW;IACzB,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,mBAAmB;IAChC,QAAQ,EAAE,qCAAqC;IAC/C,GAAG,EAAE,6BAA6B;IAClC,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE;QACJ,MAAM,EAAE;YACJ,OAAO,EAAE,4CAA4C;SACxD;KACJ;CACoB,CAAC;AAE1B,eAAe,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"op.js","sourceRoot":"","sources":["../../network/op.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAG/C,MAAM,QAAQ,GAAG;IACb,YAAY,EAAE,WAAW;IACzB,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,mBAAmB;IAChC,QAAQ,EAAE,qCAAqC;IAC/C,GAAG,EAAE,6BAA6B;IAClC,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE;QACL,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,OAAO;QACvB,aAAa,EAAE,OAAO;KACzB;IACD,MAAM,EAAE;QACJ,MAAM,EAAE;YACJ,OAAO,EAAE,4CAA4C;SACxD;KACJ;CACoB,CAAC;AAE1B,eAAe,QAAQ,CAAC"}
|
package/dist/network/pol.d.ts
CHANGED
package/dist/network/pol.js
CHANGED
|
@@ -9,6 +9,12 @@ const polygon = {
|
|
|
9
9
|
explorer: 'https://polygonscan.com/tx/',
|
|
10
10
|
url: 'https://polygon-rpc.com/',
|
|
11
11
|
nativeToken: 'POL',
|
|
12
|
+
history: {
|
|
13
|
+
url: 'https://polygon-bor-rpc.publicnode.com',
|
|
14
|
+
blockRange: 10_000,
|
|
15
|
+
lookbackBlocks: 100_000,
|
|
16
|
+
catchUpBlocks: 200_000
|
|
17
|
+
},
|
|
12
18
|
tokens: {
|
|
13
19
|
'USDT': {
|
|
14
20
|
address: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F'
|
package/dist/network/pol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pol.js","sourceRoot":"","sources":["../../network/pol.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAG/C,MAAM,OAAO,GAAG;IACZ,YAAY,EAAE,WAAW;IACzB,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,kBAAkB;IAC/B,QAAQ,EAAE,6BAA6B;IACvC,GAAG,EAAE,0BAA0B;IAC/B,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE;QACJ,MAAM,EAAE;YACJ,OAAO,EAAE,4CAA4C;SACxD;KACJ;CACoB,CAAC;AAE1B,eAAe,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"pol.js","sourceRoot":"","sources":["../../network/pol.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAG/C,MAAM,OAAO,GAAG;IACZ,YAAY,EAAE,WAAW;IACzB,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,kBAAkB;IAC/B,QAAQ,EAAE,6BAA6B;IACvC,GAAG,EAAE,0BAA0B;IAC/B,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE;QACL,GAAG,EAAE,wCAAwC;QAC7C,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,OAAO;QACvB,aAAa,EAAE,OAAO;KACzB;IACD,MAAM,EAAE;QACJ,MAAM,EAAE;YACJ,OAAO,EAAE,4CAA4C;SACxD;KACJ;CACoB,CAAC;AAE1B,eAAe,OAAO,CAAC"}
|
package/dist/network/types.d.ts
CHANGED
|
@@ -2,6 +2,16 @@ export type TokenConfig = {
|
|
|
2
2
|
address: string;
|
|
3
3
|
decimals?: number;
|
|
4
4
|
};
|
|
5
|
+
/** Where an EVM network's token transfers are read from: `eth_getLogs` in ranges of `blockRange`. */
|
|
6
|
+
export type TransferHistoryConfig = {
|
|
7
|
+
/** When the network's own endpoint cannot serve the logs. */
|
|
8
|
+
url?: string;
|
|
9
|
+
blockRange: number;
|
|
10
|
+
/** How far back from the head a first scan reaches. */
|
|
11
|
+
lookbackBlocks: number;
|
|
12
|
+
/** How far back a scan resuming from a cursor reaches: what the endpoint serves without an archive token, in a bounded number of ranges. */
|
|
13
|
+
catchUpBlocks: number;
|
|
14
|
+
};
|
|
5
15
|
export type NetworkConfig = {
|
|
6
16
|
id: string;
|
|
7
17
|
family: 'evm' | 'bitcoin';
|
|
@@ -14,6 +24,7 @@ export type NetworkConfig = {
|
|
|
14
24
|
chainId?: number;
|
|
15
25
|
network?: string;
|
|
16
26
|
feeRate?: number;
|
|
27
|
+
history?: TransferHistoryConfig;
|
|
17
28
|
};
|
|
18
29
|
export type NetworkConstructor = new (config: NetworkConfig) => BaseNetworkContract;
|
|
19
30
|
export type NetworkPlugin = NetworkConfig & {
|
|
@@ -61,6 +72,25 @@ export type TransactionStatus = {
|
|
|
61
72
|
state: 'not_found' | 'submitted' | 'confirmed' | 'failed';
|
|
62
73
|
transactionHash: string;
|
|
63
74
|
};
|
|
75
|
+
/** A transfer into or out of an address, as the chain records it. */
|
|
76
|
+
export type ChainTransfer = {
|
|
77
|
+
/** Unique per transfer: one transaction can hold several. */
|
|
78
|
+
id: string;
|
|
79
|
+
hash: string;
|
|
80
|
+
direction: 'in' | 'out';
|
|
81
|
+
/** The sender of an incoming transfer, the recipient of an outgoing one. */
|
|
82
|
+
counterparty: string;
|
|
83
|
+
asset: string;
|
|
84
|
+
amount: string;
|
|
85
|
+
/** Absent while unconfirmed. */
|
|
86
|
+
timestamp?: string;
|
|
87
|
+
state: 'pending' | 'confirmed';
|
|
88
|
+
};
|
|
89
|
+
/** One read of an address's transfers; `cursor` lets the next read start after them. */
|
|
90
|
+
export type TransferScan = {
|
|
91
|
+
transfers: ChainTransfer[];
|
|
92
|
+
cursor?: string;
|
|
93
|
+
};
|
|
64
94
|
export type NetworkUsageEntry = {
|
|
65
95
|
count: number;
|
|
66
96
|
lastUsed: number;
|
|
@@ -87,6 +117,11 @@ export interface BaseNetworkContract {
|
|
|
87
117
|
estimateTransfer(from: string, to: string, amount: string, asset: string, options?: TransferOptions): Promise<TransferEstimate>;
|
|
88
118
|
prepareTransfer(from: WalletAccount, to: string, amount: string, asset: string, options?: TransferOptions): Promise<PreparedTransfer>;
|
|
89
119
|
getTransactionStatus(transactionHash: string): Promise<TransactionStatus>;
|
|
120
|
+
/**
|
|
121
|
+
* Optional. The address's transfers in and out, newest first: without a cursor the latest ones, stopping once
|
|
122
|
+
* `limit` are found; with the cursor of an earlier scan, all of those since that scan.
|
|
123
|
+
*/
|
|
124
|
+
recentTransfers?(address: string, limit: number, cursor?: string): Promise<TransferScan>;
|
|
90
125
|
sendSignedTransaction(signedTx: SignedTransaction | string): Promise<unknown>;
|
|
91
126
|
handleNativeTransfer?(from: WalletAccount, to: string, amount: number | string, options?: TransferOptions): Promise<SignedTransaction | string | unknown>;
|
|
92
127
|
handleERC20Transfer?(from: WalletAccount, tokenSymbol: string, to: string, amount: number | string): Promise<SignedTransaction | string | unknown>;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import type { NetworkPlugin } from './network/types.js';
|
|
1
|
+
import type { NetworkPlugin, NetworkUsage, NetworkUsageEntry } from './network/types.js';
|
|
2
2
|
export declare const ACTIVE_NETWORKS: readonly NetworkPlugin[];
|
|
3
3
|
export declare function networkStorageName(network: NetworkPlugin): string;
|
|
4
|
+
export declare function isNetworkUsageEntry(value: unknown): value is NetworkUsageEntry;
|
|
5
|
+
/** Most recently used first; networks with no use time fall back to how often they were used. */
|
|
6
|
+
export declare function byRecentUse(networks: readonly NetworkPlugin[], usage: NetworkUsage): NetworkPlugin[];
|
|
7
|
+
/** Counts one more use of the network, now. */
|
|
8
|
+
export declare function recordNetworkUse(usage: NetworkUsage, network: NetworkPlugin): void;
|
|
4
9
|
export declare class NetworkRegistry {
|
|
5
10
|
private readonly byId;
|
|
6
11
|
constructor(networks?: readonly NetworkPlugin[]);
|
package/dist/network-registry.js
CHANGED
|
@@ -21,6 +21,34 @@ export const ACTIVE_NETWORKS = Object.freeze([
|
|
|
21
21
|
export function networkStorageName(network) {
|
|
22
22
|
return network.storageName ?? network.name;
|
|
23
23
|
}
|
|
24
|
+
export function isNetworkUsageEntry(value) {
|
|
25
|
+
return (typeof value === 'object' &&
|
|
26
|
+
value !== null &&
|
|
27
|
+
!Array.isArray(value) &&
|
|
28
|
+
typeof value.count === 'number');
|
|
29
|
+
}
|
|
30
|
+
/** Most recently used first; networks with no use time fall back to how often they were used. */
|
|
31
|
+
export function byRecentUse(networks, usage) {
|
|
32
|
+
const lastUsed = (network) => {
|
|
33
|
+
const entry = usage[networkStorageName(network)];
|
|
34
|
+
return typeof entry === 'object' ? entry.lastUsed || 0 : 0;
|
|
35
|
+
};
|
|
36
|
+
const count = (network) => {
|
|
37
|
+
const entry = usage[networkStorageName(network)];
|
|
38
|
+
return typeof entry === 'number' ? entry : entry?.count || 0;
|
|
39
|
+
};
|
|
40
|
+
return [...networks].sort((a, b) => {
|
|
41
|
+
if (lastUsed(a) === 0 && lastUsed(b) === 0)
|
|
42
|
+
return count(b) - count(a);
|
|
43
|
+
return lastUsed(b) - lastUsed(a);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/** Counts one more use of the network, now. */
|
|
47
|
+
export function recordNetworkUse(usage, network) {
|
|
48
|
+
const current = usage[networkStorageName(network)];
|
|
49
|
+
const count = typeof current === 'number' ? current : isNetworkUsageEntry(current) ? current.count : 0;
|
|
50
|
+
usage[networkStorageName(network)] = { count: count + 1, lastUsed: Date.now() };
|
|
51
|
+
}
|
|
24
52
|
export class NetworkRegistry {
|
|
25
53
|
byId;
|
|
26
54
|
constructor(networks = ACTIVE_NETWORKS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-registry.js","sourceRoot":"","sources":["../network-registry.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,IAAI,MAAM,mBAAmB,CAAC;AACrC,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjC,OAAO,GAAG,MAAM,kBAAkB,CAAC;AAGnC,MAAM,CAAC,MAAM,eAAe,GAA6B,MAAM,CAAC,MAAM,CAAC;IACnE,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,EAAE;IACF,GAAG;IACH,IAAI;IACJ,WAAW;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,OAAsB;IACrD,OAAO,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,MAAM,OAAO,eAAe;IACP,IAAI,CAA6B;IAElD,YAAY,WAAqC,eAAe;QAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IAED,IAAI;QACA,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,EAAU;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,cAAc,CAAC,MAA+B;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"network-registry.js","sourceRoot":"","sources":["../network-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/node-session.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ProfileLock } from './profile-lock.js';
|
|
2
|
-
import type { AccountDetails, ContactsPort, HostAction, NewAccount, SentTransfer, SessionCapabilities, TransferPort, WalletSession } from './app/session.js';
|
|
2
|
+
import type { AccountDetails, ContactsPort, HostAction, NewAccount, RecentTransfers, SentTransfer, SessionCapabilities, TransferPort, WalletSession } from './app/session.js';
|
|
3
3
|
import type { BaseNetworkContract, NetworkPlugin } from './network/types.js';
|
|
4
4
|
/** The encrypted profile in ~/.HODL as a wallet session. Prompts only through the Ui it is given. */
|
|
5
5
|
export declare class NodeSession implements WalletSession {
|
|
@@ -34,6 +34,8 @@ export declare class NodeSession implements WalletSession {
|
|
|
34
34
|
accountDetails(): Promise<AccountDetails | null>;
|
|
35
35
|
tokenBalances(): Promise<Array<[string, string]>>;
|
|
36
36
|
sentTransfers(): Promise<SentTransfer[]>;
|
|
37
|
+
/** Saved under `chainTransfers`, then the address and the network's storage name. */
|
|
38
|
+
recentTransfers(): Promise<RecentTransfers>;
|
|
37
39
|
importActions(): HostAction[];
|
|
38
40
|
exportActions(): HostAction[];
|
|
39
41
|
menuActions(): HostAction[];
|