mainnet-js 0.5.4 → 0.5.8

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.
Files changed (36) hide show
  1. package/dist/index.html +1 -1
  2. package/dist/main/history/electrumTransformer.d.ts +4 -0
  3. package/dist/main/history/electrumTransformer.js +214 -0
  4. package/dist/main/history/electrumTransformer.js.map +1 -0
  5. package/dist/main/history/interface.d.ts +16 -0
  6. package/dist/main/history/interface.js +3 -0
  7. package/dist/main/history/interface.js.map +1 -0
  8. package/dist/main/util/checkForEmptySeed.d.ts +2 -0
  9. package/dist/main/util/checkForEmptySeed.js +12 -0
  10. package/dist/main/util/checkForEmptySeed.js.map +1 -0
  11. package/dist/main/wallet/Wif.d.ts +3 -1
  12. package/dist/main/wallet/Wif.js +17 -2
  13. package/dist/main/wallet/Wif.js.map +1 -1
  14. package/dist/{mainnet-0.5.4.js → mainnet-0.5.8.js} +2 -2
  15. package/dist/{mainnet-0.5.4.js.LICENSE.txt → mainnet-0.5.8.js.LICENSE.txt} +0 -0
  16. package/dist/module/history/electrumTransformer.d.ts +4 -0
  17. package/dist/module/history/electrumTransformer.js +209 -0
  18. package/dist/module/history/electrumTransformer.js.map +1 -0
  19. package/dist/module/history/interface.d.ts +16 -0
  20. package/dist/module/history/interface.js +2 -0
  21. package/dist/module/history/interface.js.map +1 -0
  22. package/dist/module/util/checkForEmptySeed.d.ts +2 -0
  23. package/dist/module/util/checkForEmptySeed.js +8 -0
  24. package/dist/module/util/checkForEmptySeed.js.map +1 -0
  25. package/dist/module/wallet/Wif.d.ts +3 -1
  26. package/dist/module/wallet/Wif.js +17 -2
  27. package/dist/module/wallet/Wif.js.map +1 -1
  28. package/dist/tsconfig.browser.tsbuildinfo +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +4 -4
  31. package/src/history/electrumTransformer.test.ts +252 -0
  32. package/src/history/electrumTransformer.ts +318 -0
  33. package/src/history/interface.ts +18 -0
  34. package/src/util/checkForEmptySeed.ts +9 -0
  35. package/src/wallet/Wif.bip39.test.ts +23 -0
  36. package/src/wallet/Wif.ts +32 -3
@@ -0,0 +1,4 @@
1
+ import NetworkProvider from "../network/NetworkProvider";
2
+ import { TransactionHistoryI, TransactionHistoryItemI } from "./interface";
3
+ export declare function getAddressHistory(cashaddr: string, provider: NetworkProvider, unit?: string, start?: number, count?: number, collapseChange?: boolean): Promise<TransactionHistoryI>;
4
+ export declare function getDetailedHistory(cashaddr: string, hash: string, height: number, provider: NetworkProvider, collapseChange: boolean): Promise<TransactionHistoryItemI[]>;
@@ -0,0 +1,209 @@
1
+ import { binToHex, cashAddressToLockingBytecode, decodeTransaction, hexToBin, binToBigIntUint64LE, lockingBytecodeToCashAddress, } from "@bitauth/libauth";
2
+ import { derivePrefix } from "../util/derivePublicKeyHash";
3
+ import { convert } from "../util/convert";
4
+ import { bchParam } from "../chain";
5
+ import { floor } from "../util/floor";
6
+ export async function getAddressHistory(cashaddr, provider, unit = "sat", start = 0, count = 25, collapseChange = true) {
7
+ // Get an array of raw transactions as hex
8
+ let txnHashes = await provider.getHistory(cashaddr);
9
+ // get the current balance in satoshis
10
+ let currentBalance = await provider.getBalance(cashaddr);
11
+ // Transform the hex transactions to and array of histroy item array promises.
12
+ let txItemPromises = txnHashes.map((tx) => {
13
+ return getDetailedHistory(cashaddr, tx.tx_hash, tx.height, provider, collapseChange);
14
+ });
15
+ // await the history array promises
16
+ let items = await Promise.all(txItemPromises);
17
+ // flatten the array of responses
18
+ let preprocessedTxns = Array.prototype.concat.apply([], items);
19
+ // Revere cronological order.
20
+ preprocessedTxns = preprocessedTxns.reverse();
21
+ // Get the factor to apply the requested unit of measure
22
+ let factor = (await convert(bchParam.subUnits, "sat", unit)) / bchParam.subUnits;
23
+ // Apply the unit factor and
24
+ let txns = applyBalance(preprocessedTxns, currentBalance, unit, factor);
25
+ // Slice the start and count to the provided inputs
26
+ txns = txns.slice(start, start + count);
27
+ return {
28
+ transactions: txns,
29
+ };
30
+ }
31
+ export async function getDetailedHistory(cashaddr, hash, height, provider, collapseChange) {
32
+ let transactionHex = await provider.getRawTransaction(hash);
33
+ collapseChange;
34
+ let addressBytecode = cashAddressToLockingBytecode(cashaddr);
35
+ if (typeof addressBytecode === "string")
36
+ throw Error(addressBytecode);
37
+ let transaction = decodeTransaction(hexToBin(transactionHex));
38
+ if (typeof transaction === "string")
39
+ throw Error(transaction);
40
+ let r = [];
41
+ r.push(...(await getMatchingInputs(transaction, cashaddr, height, hash, provider, collapseChange)));
42
+ return r;
43
+ }
44
+ async function getMatchingInputs(transaction, cashaddr, height, hash, provider, collapseChange) {
45
+ let addressBytecode = cashAddressToLockingBytecode(cashaddr);
46
+ if (typeof addressBytecode === "string")
47
+ throw Error(addressBytecode);
48
+ let lockingBytecodeHex = binToHex(addressBytecode.bytecode);
49
+ let prefix = derivePrefix(cashaddr);
50
+ let inputUtxos = await getInputTransactions(transaction, provider);
51
+ let fee = getFee(inputUtxos, transaction.outputs, lockingBytecodeHex, collapseChange);
52
+ let r = [];
53
+ let txIds = [];
54
+ for (let input of transaction.inputs) {
55
+ let outpoint = inputUtxos[transaction.inputs.indexOf(input)];
56
+ // if the utxo of the input matches the address in question
57
+ if (binToHex(outpoint.lockingBytecode) === lockingBytecodeHex) {
58
+ for (let output of transaction.outputs) {
59
+ let idx = transaction.outputs.indexOf(output);
60
+ let from = lockingBytecodeToCashAddress(outpoint.lockingBytecode, prefix);
61
+ // the output was change
62
+ if (binToHex(output.lockingBytecode) === lockingBytecodeHex) {
63
+ if (!collapseChange) {
64
+ r.push({
65
+ from: from,
66
+ to: cashaddr,
67
+ unit: "sat",
68
+ index: idx,
69
+ blockheight: height,
70
+ txn: `${hash}`,
71
+ txId: `${hash}:i:${idx}`,
72
+ value: -Number(binToBigIntUint64LE(output.satoshis)),
73
+ fee: 0,
74
+ });
75
+ }
76
+ }
77
+ else {
78
+ if (!txIds.find((str) => str === `${hash}:i:${idx}`)) {
79
+ // the utxo was sent to another address
80
+ let to = lockingBytecodeToCashAddress(output.lockingBytecode, prefix);
81
+ r.push({
82
+ from: from,
83
+ to: to,
84
+ unit: "sat",
85
+ index: idx,
86
+ blockheight: height,
87
+ txn: `${hash}`,
88
+ txId: `${hash}:i:${idx}`,
89
+ value: -Number(binToBigIntUint64LE(output.satoshis)),
90
+ fee: fee,
91
+ });
92
+ txIds.push(`${hash}:i:${idx}`);
93
+ }
94
+ }
95
+ }
96
+ }
97
+ }
98
+ // check the transaction outputs for receiving transactions
99
+ for (let output of transaction.outputs) {
100
+ // the output was a utxo for the address in question
101
+ if (binToHex(output.lockingBytecode) === lockingBytecodeHex) {
102
+ // the input was from a single address
103
+ if (transaction.inputs.length == 1) {
104
+ const input = transaction.inputs[0];
105
+ const inHash = binToHex(input.outpointTransactionHash);
106
+ const transactionHex = await provider.getRawTransaction(inHash);
107
+ const inTransaction = decodeTransaction(hexToBin(transactionHex));
108
+ if (typeof inTransaction === "string")
109
+ throw Error(inTransaction);
110
+ let outpoint = inTransaction.outputs[input.outpointIndex];
111
+ let from = lockingBytecodeToCashAddress(outpoint.lockingBytecode, prefix);
112
+ // if the utxo was from a different address and change is not being output...
113
+ if (from !== cashaddr || !collapseChange) {
114
+ r.push({
115
+ from: from,
116
+ to: cashaddr,
117
+ unit: "sat",
118
+ index: transaction.outputs.indexOf(output),
119
+ blockheight: height,
120
+ txn: `${hash}`,
121
+ txId: `${hash}:o:${transaction.outputs.indexOf(output)}`,
122
+ value: Number(binToBigIntUint64LE(output.satoshis)),
123
+ });
124
+ }
125
+ }
126
+ else {
127
+ let from = transaction.inputs
128
+ .map((i) => `${binToHex(i.outpointTransactionHash)}:o:${i.outpointIndex}`)
129
+ .join(";");
130
+ r.push({
131
+ from: from,
132
+ to: cashaddr,
133
+ unit: "sat",
134
+ index: transaction.outputs.indexOf(output),
135
+ blockheight: height,
136
+ txn: `${hash}`,
137
+ txId: `${hash}:o:${transaction.outputs.indexOf(output)}`,
138
+ value: Number(binToBigIntUint64LE(output.satoshis)),
139
+ // incoming transactions pay no fee.
140
+ fee: 0,
141
+ });
142
+ }
143
+ }
144
+ }
145
+ return r;
146
+ }
147
+ async function getInputTransactions(transaction, provider) {
148
+ let inputTransactions = [];
149
+ for (let input of transaction.inputs) {
150
+ let inHash = binToHex(input.outpointTransactionHash);
151
+ let transactionHex = await provider.getRawTransaction(inHash);
152
+ let inTransaction = decodeTransaction(hexToBin(transactionHex));
153
+ if (typeof inTransaction === "string")
154
+ throw Error(inTransaction);
155
+ inputTransactions.push(inTransaction.outputs[input.outpointIndex]);
156
+ }
157
+ return inputTransactions;
158
+ }
159
+ function getFee(inputUtxos, utxos, lockingBytecodeHex, collapseChange) {
160
+ let inValues = 0;
161
+ for (let outpoint of inputUtxos) {
162
+ if (binToHex(outpoint.lockingBytecode)) {
163
+ inValues += Number(binToBigIntUint64LE(outpoint.satoshis));
164
+ }
165
+ }
166
+ const outValues = utxos
167
+ .map((utxo) => Number(binToBigIntUint64LE(utxo.satoshis)))
168
+ .reduce((a, b) => a + b, 0);
169
+ let fee = 0;
170
+ if (collapseChange) {
171
+ const nonChangeOutputs = utxos
172
+ .map((output) => binToHex(output.lockingBytecode) === lockingBytecodeHex ? 0 : 1)
173
+ .reduce((a, b) => a + b, 0);
174
+ fee = floor((inValues - outValues) / nonChangeOutputs, 0);
175
+ }
176
+ else {
177
+ fee = floor((inValues - outValues) / utxos.length, 0);
178
+ }
179
+ return fee;
180
+ }
181
+ function applyBalance(preprocessedTxns, currentBalance, unit, factor) {
182
+ // balance in satoshis
183
+ let bal = currentBalance;
184
+ let r = [];
185
+ for (let txn of preprocessedTxns) {
186
+ // set the balance to the current balance in the appropriate unit
187
+ txn.balance = bal;
188
+ // If fee is not defined, configure it to zero.
189
+ txn.fee = txn.fee ? txn.fee : 0;
190
+ // update the running balance in satoshis for the next record
191
+ // a receiving value is positive, a send is negative
192
+ // The sign is reversed in cronological order from the current balance.
193
+ bal -= txn.value;
194
+ bal += txn.fee;
195
+ // transform the value of the transaction
196
+ txn.value = txn.value * factor;
197
+ txn.fee = txn.fee * factor;
198
+ // If unit is usd, round to two decimal places.
199
+ if (unit.toLowerCase() == "usd") {
200
+ txn.value = floor(txn.value, 2);
201
+ txn.fee = floor(txn.fee, 2);
202
+ }
203
+ // note the unit
204
+ txn.unit = unit;
205
+ r.push(txn);
206
+ }
207
+ return r;
208
+ }
209
+ //# sourceMappingURL=electrumTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electrumTransformer.js","sourceRoot":"","sources":["../../../src/history/electrumTransformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { UnitEnum } from "../enum";
2
+ export interface TransactionHistoryItemI {
3
+ to: string;
4
+ from: string;
5
+ unit: UnitEnum;
6
+ index: number;
7
+ blockheight: number;
8
+ txn: string;
9
+ txId: string;
10
+ value: number;
11
+ fee?: number;
12
+ balance?: number;
13
+ }
14
+ export interface TransactionHistoryI {
15
+ transactions: TransactionHistoryItemI[];
16
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/history/interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ /// <reference types="node" />
2
+ export declare function checkForEmptySeed(seed: Buffer): void;
@@ -0,0 +1,8 @@
1
+ import { binToHex } from "@bitauth/libauth";
2
+ export function checkForEmptySeed(seed) {
3
+ let blankSeed = "4ed8d4b17698ddeaa1f1559f152f87b5d472f725ca86d341bd0276f1b61197e21dd5a391f9f5ed7340ff4d4513aab9cce44f9497a5e7ed85fd818876b6eb402e";
4
+ let seedBin = new Uint8Array(seed.buffer);
5
+ if (blankSeed == binToHex(seedBin))
6
+ throw Error("Seed was generated using empty mnemonic");
7
+ }
8
+ //# sourceMappingURL=checkForEmptySeed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkForEmptySeed.js","sourceRoot":"","sources":["../../../src/util/checkForEmptySeed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,SAAS,GACX,kIAAkI,CAAC;IACrI,IAAI,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC;QAChC,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC3D,CAAC"}
@@ -12,6 +12,7 @@ import { RegTestSlp, RegTestWatchSlp, RegTestWifSlp, Slp, TestNetSlp, TestNetWat
12
12
  import { SlpSendResponse } from "../slp/interface";
13
13
  import { RegTestUtil, RegTestWatchUtil, RegTestWifUtil, TestNetUtil, TestNetWatchUtil, TestNetWifUtil, Util, WatchUtil, WifUtil } from "./Util";
14
14
  import { SignedMessageI } from "../message";
15
+ import { TransactionHistoryI } from "../history/interface";
15
16
  /**
16
17
  * Class to manage a bitcoin cash wallet.
17
18
  */
@@ -146,7 +147,8 @@ export declare class Wallet extends BaseWallet {
146
147
  */
147
148
  encodeTransaction(requests: SendRequest | OpReturnData | Array<SendRequest | OpReturnData> | SendRequestArray[], discardChange?: boolean, options?: SendRequestOptionsI): Promise<Uint8Array>;
148
149
  submitTransaction(transaction: Uint8Array, awaitPropagation?: boolean): Promise<string>;
149
- getHistory(): Promise<TxI[]>;
150
+ getRawHistory(): Promise<TxI[]>;
151
+ getHistory(unit: UnitEnum, start?: number, count?: number, collapseChange?: boolean): Promise<TransactionHistoryI>;
150
152
  getLastTransaction(confirmedOnly?: boolean): Promise<ElectrumRawTransaction | null>;
151
153
  waitForTransaction(options?: WaitForTransactionOptions): Promise<WaitForTransactionResponse>;
152
154
  /**
@@ -16,6 +16,7 @@ import { balanceFromSatoshi, balanceResponseFromSatoshi, } from "../util/balance
16
16
  import { checkWifNetwork } from "../util/checkWifNetwork";
17
17
  import { deriveCashaddr } from "../util/deriveCashaddr";
18
18
  import { derivePrefix, derivePublicKeyHash } from "../util/derivePublicKeyHash";
19
+ import { checkForEmptySeed } from "../util/checkForEmptySeed";
19
20
  import { sanitizeUnit } from "../util/sanitizeUnit";
20
21
  import { sumUtxoValue } from "../util/sumUtxoValue";
21
22
  import { sumSendRequestAmounts } from "../util/sumSendRequestAmounts";
@@ -30,6 +31,7 @@ import { SignedMessage } from "../message";
30
31
  import { amountInSatoshi } from "../util/amountInSatoshi";
31
32
  import { getXPubKey } from "../util/getXPubKey";
32
33
  import { DERIVATION_PATHS, DUST_UTXO_THRESHOLD } from "../constant";
34
+ import { getAddressHistory } from "../history/electrumTransformer";
33
35
  //#endregion Imports
34
36
  const secp256k1Promise = instantiateSecp256k1();
35
37
  const sha256Promise = instantiateSha256();
@@ -223,7 +225,10 @@ export class Wallet extends BaseWallet {
223
225
  }
224
226
  async _generateMnemonic() {
225
227
  this.mnemonic = generateMnemonic();
228
+ if (this.mnemonic.length == 0)
229
+ throw Error("refusing to create wallet from empty mnemonic");
226
230
  let seed = mnemonicToSeedSync(this.mnemonic);
231
+ checkForEmptySeed(seed);
227
232
  let network = this.isTestnet ? "testnet" : "mainnet";
228
233
  this.parentXPubKey = await getXPubKey(seed, this.parentDerivationPath, network);
229
234
  const crypto = await instantiateBIP32Crypto();
@@ -257,7 +262,10 @@ export class Wallet extends BaseWallet {
257
262
  async fromSeed(mnemonic, derivationPath) {
258
263
  this.mnemonic = mnemonic;
259
264
  const crypto = await instantiateBIP32Crypto();
265
+ if (this.mnemonic.length == 0)
266
+ throw Error("refusing to create wallet from empty mnemonic");
260
267
  let seed = mnemonicToSeedSync(this.mnemonic);
268
+ checkForEmptySeed(seed);
261
269
  let hdNode = deriveHdPrivateNodeFromSeed(crypto, seed);
262
270
  if (!hdNode.valid) {
263
271
  throw Error("Invalid private key derived from mnemonic seed");
@@ -284,7 +292,10 @@ export class Wallet extends BaseWallet {
284
292
  // Get common xpub paths from zerothChild privateKey
285
293
  async deriveHdPaths(hdPaths) {
286
294
  const crypto = await instantiateBIP32Crypto();
295
+ if (!this.mnemonic)
296
+ throw Error("refusing to create wallet from empty mnemonic");
287
297
  let seed = mnemonicToSeedSync(this.mnemonic);
298
+ checkForEmptySeed(seed);
288
299
  let hdNode = deriveHdPrivateNodeFromSeed(crypto, seed);
289
300
  if (!hdNode.valid) {
290
301
  throw Error("Invalid private key derived from mnemonic seed");
@@ -729,12 +740,16 @@ export class Wallet extends BaseWallet {
729
740
  return await this.provider.sendRawTransaction(rawTransaction, awaitPropagation);
730
741
  }
731
742
  // gets transaction history of this wallet
732
- async getHistory() {
743
+ async getRawHistory() {
733
744
  return await this.provider.getHistory(this.cashaddr);
734
745
  }
746
+ // gets transaction history of this wallet
747
+ async getHistory(unit, start, count, collapseChange) {
748
+ return getAddressHistory(this.cashaddr, this.provider, unit, start, count, collapseChange);
749
+ }
735
750
  // gets last transaction of this wallet
736
751
  async getLastTransaction(confirmedOnly = false) {
737
- let history = await this.getHistory();
752
+ let history = await this.getRawHistory();
738
753
  if (confirmedOnly) {
739
754
  history = history.filter((val) => val.height > 0);
740
755
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Wif.js","sourceRoot":"","sources":["../../../src/wallet/Wif.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Wif.js","sourceRoot":"","sources":["../../../src/wallet/Wif.ts"],"names":[],"mappings":"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"}