@shapeshiftoss/hdwallet-native 1.55.2 → 1.55.4-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/dist/adapter.js +22 -61
  2. package/dist/adapter.js.map +1 -1
  3. package/dist/arkeo.d.ts +1 -1
  4. package/dist/arkeo.d.ts.map +1 -1
  5. package/dist/arkeo.js +54 -124
  6. package/dist/arkeo.js.map +1 -1
  7. package/dist/binance.d.ts +1 -1
  8. package/dist/binance.d.ts.map +1 -1
  9. package/dist/binance.js +123 -195
  10. package/dist/binance.js.map +1 -1
  11. package/dist/bitcoin.d.ts +1 -2
  12. package/dist/bitcoin.d.ts.map +1 -1
  13. package/dist/bitcoin.js +219 -285
  14. package/dist/bitcoin.js.map +1 -1
  15. package/dist/cosmos.d.ts +1 -1
  16. package/dist/cosmos.d.ts.map +1 -1
  17. package/dist/cosmos.js +54 -124
  18. package/dist/cosmos.js.map +1 -1
  19. package/dist/crypto/CryptoHelper.js +106 -172
  20. package/dist/crypto/CryptoHelper.js.map +1 -1
  21. package/dist/crypto/EncryptedWallet.js +64 -123
  22. package/dist/crypto/EncryptedWallet.js.map +1 -1
  23. package/dist/crypto/classes/cipherString.js +18 -19
  24. package/dist/crypto/classes/cipherString.js.map +1 -1
  25. package/dist/crypto/classes/encryptedObject.js +7 -7
  26. package/dist/crypto/classes/encryptedObject.js.map +1 -1
  27. package/dist/crypto/classes/encryptionType.js +2 -5
  28. package/dist/crypto/classes/encryptionType.js.map +1 -1
  29. package/dist/crypto/classes/index.js +4 -11
  30. package/dist/crypto/classes/index.js.map +1 -1
  31. package/dist/crypto/classes/symmetricCryptoKey.js +13 -11
  32. package/dist/crypto/classes/symmetricCryptoKey.js.map +1 -1
  33. package/dist/crypto/engines/index.js +2 -18
  34. package/dist/crypto/engines/index.js.map +1 -1
  35. package/dist/crypto/engines/types.js +2 -5
  36. package/dist/crypto/engines/types.js.map +1 -1
  37. package/dist/crypto/engines/web-crypto.js +39 -84
  38. package/dist/crypto/engines/web-crypto.js.map +1 -1
  39. package/dist/crypto/index.js +3 -32
  40. package/dist/crypto/index.js.map +1 -1
  41. package/dist/crypto/isolation/adapters/binance.d.ts.map +1 -1
  42. package/dist/crypto/isolation/adapters/binance.js +12 -51
  43. package/dist/crypto/isolation/adapters/binance.js.map +1 -1
  44. package/dist/crypto/isolation/adapters/bip32.d.ts +2 -9
  45. package/dist/crypto/isolation/adapters/bip32.d.ts.map +1 -1
  46. package/dist/crypto/isolation/adapters/bip32.js +65 -108
  47. package/dist/crypto/isolation/adapters/bip32.js.map +1 -1
  48. package/dist/crypto/isolation/adapters/bitcoin.d.ts +4 -13
  49. package/dist/crypto/isolation/adapters/bitcoin.d.ts.map +1 -1
  50. package/dist/crypto/isolation/adapters/bitcoin.js +41 -84
  51. package/dist/crypto/isolation/adapters/bitcoin.js.map +1 -1
  52. package/dist/crypto/isolation/adapters/cosmos.d.ts +0 -1
  53. package/dist/crypto/isolation/adapters/cosmos.d.ts.map +1 -1
  54. package/dist/crypto/isolation/adapters/cosmos.js +9 -24
  55. package/dist/crypto/isolation/adapters/cosmos.js.map +1 -1
  56. package/dist/crypto/isolation/adapters/cosmosDirect.js +35 -77
  57. package/dist/crypto/isolation/adapters/cosmosDirect.js.map +1 -1
  58. package/dist/crypto/isolation/adapters/ethereum.js +49 -90
  59. package/dist/crypto/isolation/adapters/ethereum.js.map +1 -1
  60. package/dist/crypto/isolation/adapters/fio.d.ts +0 -1
  61. package/dist/crypto/isolation/adapters/fio.d.ts.map +1 -1
  62. package/dist/crypto/isolation/adapters/fio.js +24 -67
  63. package/dist/crypto/isolation/adapters/fio.js.map +1 -1
  64. package/dist/crypto/isolation/adapters/index.js +7 -20
  65. package/dist/crypto/isolation/adapters/index.js.map +1 -1
  66. package/dist/crypto/isolation/core/bip32/index.js +22 -51
  67. package/dist/crypto/isolation/core/bip32/index.js.map +1 -1
  68. package/dist/crypto/isolation/core/bip32/interfaces.js +2 -29
  69. package/dist/crypto/isolation/core/bip32/interfaces.js.map +1 -1
  70. package/dist/crypto/isolation/core/bip32/types.d.ts +2 -2
  71. package/dist/crypto/isolation/core/bip32/types.js +5 -8
  72. package/dist/crypto/isolation/core/bip32/types.js.map +1 -1
  73. package/dist/crypto/isolation/core/bip39/index.js +1 -17
  74. package/dist/crypto/isolation/core/bip39/index.js.map +1 -1
  75. package/dist/crypto/isolation/core/bip39/interfaces.js +1 -2
  76. package/dist/crypto/isolation/core/digest/algorithms.d.ts.map +1 -1
  77. package/dist/crypto/isolation/core/digest/algorithms.js +17 -26
  78. package/dist/crypto/isolation/core/digest/algorithms.js.map +1 -1
  79. package/dist/crypto/isolation/core/digest/index.js +2 -18
  80. package/dist/crypto/isolation/core/digest/index.js.map +1 -1
  81. package/dist/crypto/isolation/core/digest/types.d.ts +20 -20
  82. package/dist/crypto/isolation/core/digest/types.d.ts.map +1 -1
  83. package/dist/crypto/isolation/core/digest/types.js +23 -26
  84. package/dist/crypto/isolation/core/digest/types.js.map +1 -1
  85. package/dist/crypto/isolation/core/index.js +5 -32
  86. package/dist/crypto/isolation/core/index.js.map +1 -1
  87. package/dist/crypto/isolation/core/secp256k1/index.js +2 -18
  88. package/dist/crypto/isolation/core/secp256k1/index.js.map +1 -1
  89. package/dist/crypto/isolation/core/secp256k1/interfaces.js +1 -2
  90. package/dist/crypto/isolation/core/secp256k1/types.d.ts +81 -81
  91. package/dist/crypto/isolation/core/secp256k1/types.d.ts.map +1 -1
  92. package/dist/crypto/isolation/core/secp256k1/types.js +119 -157
  93. package/dist/crypto/isolation/core/secp256k1/types.js.map +1 -1
  94. package/dist/crypto/isolation/engines/default/bip32.d.ts +0 -1
  95. package/dist/crypto/isolation/engines/default/bip32.d.ts.map +1 -1
  96. package/dist/crypto/isolation/engines/default/bip32.js +102 -176
  97. package/dist/crypto/isolation/engines/default/bip32.js.map +1 -1
  98. package/dist/crypto/isolation/engines/default/bip39.js +24 -68
  99. package/dist/crypto/isolation/engines/default/bip39.js.map +1 -1
  100. package/dist/crypto/isolation/engines/default/index.js +3 -32
  101. package/dist/crypto/isolation/engines/default/index.js.map +1 -1
  102. package/dist/crypto/isolation/engines/default/revocable.d.ts +1 -1
  103. package/dist/crypto/isolation/engines/default/revocable.d.ts.map +1 -1
  104. package/dist/crypto/isolation/engines/default/revocable.js +30 -51
  105. package/dist/crypto/isolation/engines/default/revocable.js.map +1 -1
  106. package/dist/crypto/isolation/engines/dummy/bip32.js +63 -121
  107. package/dist/crypto/isolation/engines/dummy/bip32.js.map +1 -1
  108. package/dist/crypto/isolation/engines/dummy/bip39.js +55 -97
  109. package/dist/crypto/isolation/engines/dummy/bip39.js.map +1 -1
  110. package/dist/crypto/isolation/engines/dummy/index.js +3 -30
  111. package/dist/crypto/isolation/engines/dummy/index.js.map +1 -1
  112. package/dist/crypto/isolation/engines/dummy/types.js +1 -5
  113. package/dist/crypto/isolation/engines/dummy/types.js.map +1 -1
  114. package/dist/crypto/isolation/engines/index.js +2 -28
  115. package/dist/crypto/isolation/engines/index.js.map +1 -1
  116. package/dist/crypto/isolation/index.js +3 -29
  117. package/dist/crypto/isolation/index.js.map +1 -1
  118. package/dist/crypto/isolation/types.d.ts +1 -2
  119. package/dist/crypto/isolation/types.d.ts.map +1 -1
  120. package/dist/crypto/isolation/types.js +43 -49
  121. package/dist/crypto/isolation/types.js.map +1 -1
  122. package/dist/crypto/utils.js +7 -14
  123. package/dist/crypto/utils.js.map +1 -1
  124. package/dist/ethereum.d.ts +1 -1
  125. package/dist/ethereum.d.ts.map +1 -1
  126. package/dist/ethereum.js +92 -161
  127. package/dist/ethereum.js.map +1 -1
  128. package/dist/fio.d.ts +3 -3
  129. package/dist/fio.d.ts.map +1 -1
  130. package/dist/fio.js +204 -283
  131. package/dist/fio.js.map +1 -1
  132. package/dist/index.js +3 -32
  133. package/dist/index.js.map +1 -1
  134. package/dist/kava.d.ts +1 -1
  135. package/dist/kava.d.ts.map +1 -1
  136. package/dist/kava.js +50 -120
  137. package/dist/kava.js.map +1 -1
  138. package/dist/native.d.ts +40 -41
  139. package/dist/native.d.ts.map +1 -1
  140. package/dist/native.js +176 -304
  141. package/dist/native.js.map +1 -1
  142. package/dist/networks.js +16 -34
  143. package/dist/networks.js.map +1 -1
  144. package/dist/osmosis.d.ts +1 -1
  145. package/dist/osmosis.d.ts.map +1 -1
  146. package/dist/osmosis.js +54 -124
  147. package/dist/osmosis.js.map +1 -1
  148. package/dist/secret.d.ts +1 -1
  149. package/dist/secret.d.ts.map +1 -1
  150. package/dist/secret.js +50 -120
  151. package/dist/secret.js.map +1 -1
  152. package/dist/terra.d.ts +1 -1
  153. package/dist/terra.d.ts.map +1 -1
  154. package/dist/terra.js +50 -120
  155. package/dist/terra.js.map +1 -1
  156. package/dist/thorchain.d.ts +1 -1
  157. package/dist/thorchain.d.ts.map +1 -1
  158. package/dist/thorchain.js +54 -124
  159. package/dist/thorchain.js.map +1 -1
  160. package/dist/util.js +16 -55
  161. package/dist/util.js.map +1 -1
  162. package/package.json +3 -3
package/dist/bitcoin.js CHANGED
@@ -1,70 +1,19 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
35
- if (kind === "m") throw new TypeError("Private method is not writable");
36
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
37
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
38
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
39
- };
40
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
41
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
42
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
43
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
44
- };
45
- Object.defineProperty(exports, "__esModule", { value: true });
46
- exports.MixinNativeBTCWallet = exports.MixinNativeBTCWalletInfo = void 0;
47
- const bitcoin = __importStar(require("@shapeshiftoss/bitcoinjs-lib"));
48
- const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
49
- const bchAddr = __importStar(require("bchaddrjs"));
50
- const networks_1 = require("./networks");
51
- const util = __importStar(require("./util"));
1
+ import * as bitcoin from "@shapeshiftoss/bitcoinjs-lib";
2
+ import * as core from "@shapeshiftoss/hdwallet-core";
3
+ import * as bchAddr from "bchaddrjs";
4
+ import { getNetwork } from "./networks";
5
+ import * as util from "./util";
52
6
  const supportedCoins = ["bitcoin", "dash", "digibyte", "dogecoin", "litecoin", "bitcoincash", "testnet"];
53
7
  const segwit = ["p2wpkh", "p2sh-p2wpkh", "bech32"];
54
- function MixinNativeBTCWalletInfo(Base) {
8
+ export function MixinNativeBTCWalletInfo(Base) {
55
9
  // eslint-disable-next-line @typescript-eslint/no-shadow
56
10
  return class MixinNativeBTCWalletInfo extends Base {
57
- constructor() {
58
- super(...arguments);
59
- this._supportsBTCInfo = true;
60
- }
11
+ _supportsBTCInfo = true;
61
12
  btcSupportsCoinSync(coin) {
62
13
  return supportedCoins.includes(String(coin).toLowerCase());
63
14
  }
64
- btcSupportsCoin(coin) {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- return this.btcSupportsCoinSync(coin);
67
- });
15
+ async btcSupportsCoin(coin) {
16
+ return this.btcSupportsCoinSync(coin);
68
17
  }
69
18
  btcSupportsScriptTypeSync(coin, scriptType) {
70
19
  if (!this.btcSupportsCoinSync(coin))
@@ -80,15 +29,11 @@ function MixinNativeBTCWalletInfo(Base) {
80
29
  return false;
81
30
  }
82
31
  }
83
- btcSupportsScriptType(coin, scriptType) {
84
- return __awaiter(this, void 0, void 0, function* () {
85
- return this.btcSupportsScriptTypeSync(coin, scriptType);
86
- });
32
+ async btcSupportsScriptType(coin, scriptType) {
33
+ return this.btcSupportsScriptTypeSync(coin, scriptType);
87
34
  }
88
- btcSupportsSecureTransfer() {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- return false;
91
- });
35
+ async btcSupportsSecureTransfer() {
36
+ return false;
92
37
  }
93
38
  btcSupportsNativeShapeShift() {
94
39
  return false;
@@ -132,242 +77,231 @@ function MixinNativeBTCWalletInfo(Base) {
132
77
  (addressNList[0] === 0x80000000 + 49 && msg.scriptType == core.BTCInputScriptType.SpendP2SHWitness) ||
133
78
  (addressNList[0] === 0x80000000 + 84 && msg.scriptType == core.BTCInputScriptType.SpendWitness)) {
134
79
  addressNList[2] += 1;
135
- return Object.assign(Object.assign({}, msg), { addressNList });
80
+ return {
81
+ ...msg,
82
+ addressNList,
83
+ };
136
84
  }
137
85
  return undefined;
138
86
  }
139
87
  };
140
88
  }
141
- exports.MixinNativeBTCWalletInfo = MixinNativeBTCWalletInfo;
142
- function MixinNativeBTCWallet(Base) {
143
- var _MixinNativeBTCWallet_masterKey, _a;
89
+ export function MixinNativeBTCWallet(Base) {
144
90
  // eslint-disable-next-line @typescript-eslint/no-shadow
145
- return _a = class MixinNativeBTCWallet extends Base {
146
- constructor() {
147
- super(...arguments);
148
- this._supportsBTC = true;
149
- _MixinNativeBTCWallet_masterKey.set(this, void 0);
91
+ return class MixinNativeBTCWallet extends Base {
92
+ _supportsBTC = true;
93
+ #masterKey;
94
+ async btcInitializeWallet(masterKey) {
95
+ this.#masterKey = masterKey;
96
+ }
97
+ btcWipe() {
98
+ this.#masterKey = undefined;
99
+ }
100
+ createPayment(pubkey, scriptType, network) {
101
+ switch (scriptType) {
102
+ case "p2sh":
103
+ return bitcoin.payments.p2sh({ pubkey, network });
104
+ case "p2pkh":
105
+ return bitcoin.payments.p2pkh({ pubkey, network });
106
+ case "p2wpkh":
107
+ return bitcoin.payments.p2wpkh({ pubkey, network });
108
+ case "p2sh-p2wpkh":
109
+ return bitcoin.payments.p2sh({
110
+ redeem: bitcoin.payments.p2wpkh({ pubkey, network }),
111
+ network,
112
+ });
113
+ case "bech32":
114
+ return bitcoin.payments.p2wsh({
115
+ redeem: bitcoin.payments.p2wsh({ pubkey, network }),
116
+ network,
117
+ });
118
+ default:
119
+ throw new Error(`no implementation for script type: ${scriptType}`);
150
120
  }
151
- btcInitializeWallet(masterKey) {
152
- return __awaiter(this, void 0, void 0, function* () {
153
- __classPrivateFieldSet(this, _MixinNativeBTCWallet_masterKey, masterKey, "f");
154
- });
121
+ }
122
+ validateVoutOrdering(msg, tx) {
123
+ // From THORChain specification:
124
+ /* ignoreTx checks if we can already ignore a tx according to preset rules
125
+
126
+ we expect array of "vout" for a BTC to have this format
127
+ OP_RETURN is mandatory only on inbound tx
128
+ vout:0 is our vault
129
+ vout:1 is any any change back to themselves
130
+ vout:2 is OP_RETURN (first 80 bytes)
131
+ vout:3 is OP_RETURN (next 80 bytes)
132
+
133
+ Rules to ignore a tx are:
134
+ - vout:0 doesn't have coins (value)
135
+ - vout:0 doesn't have address
136
+ - count vouts > 4
137
+ - count vouts with coins (value) > 2
138
+ */
139
+ // Check that vout:0 contains the vault address
140
+ if (bitcoin.address.fromOutputScript(tx.outs[0].script) != msg.vaultAddress) {
141
+ console.error("Vout:0 does not contain vault address.");
142
+ return false;
143
+ }
144
+ // TODO: Can we check and make sure vout:1 is our address?
145
+ // Check and make sure vout:2 exists
146
+ if (tx.outs.length < 3) {
147
+ console.error("Not enough outputs found in transaction.", msg);
148
+ return false;
155
149
  }
156
- btcWipe() {
157
- __classPrivateFieldSet(this, _MixinNativeBTCWallet_masterKey, undefined, "f");
150
+ // Check and make sure vout:2 has OP_RETURN data
151
+ const opcode = bitcoin.script.decompile(tx.outs[2].script)?.[0];
152
+ if (Object.keys(bitcoin.script.OPS).find((k) => bitcoin.script.OPS[k] === opcode) != "OP_RETURN") {
153
+ console.error("OP_RETURN output not found for transaction.");
154
+ return false;
158
155
  }
159
- createPayment(pubkey, scriptType, network) {
156
+ // Make sure vout:3 does not exist
157
+ if (tx.outs[3]) {
158
+ console.error("Illegal second op_return output found.");
159
+ return false;
160
+ }
161
+ return true;
162
+ }
163
+ async buildInput(coin, input) {
164
+ return this.needsMnemonic(!!this.#masterKey, async () => {
165
+ const { addressNList, amount, hex, scriptType } = input;
166
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
167
+ const keyPair = await util.getKeyPair(this.#masterKey, addressNList, coin, scriptType);
168
+ const isSegwit = !!scriptType && segwit.includes(scriptType);
169
+ const nonWitnessUtxo = hex && Buffer.from(hex, "hex");
170
+ const witnessUtxo = input.tx && {
171
+ script: Buffer.from(input.tx.vout[input.vout].scriptPubKey.hex, "hex"),
172
+ value: Number(amount),
173
+ };
174
+ const utxoData = isSegwit && witnessUtxo ? { witnessUtxo } : { nonWitnessUtxo };
175
+ if (!(utxoData.witnessUtxo || utxoData.nonWitnessUtxo)) {
176
+ throw new Error("failed to build input - must provide prev rawTx (segwit input can provide scriptPubKey hex and value instead)");
177
+ }
178
+ const { publicKey, network } = keyPair;
179
+ const payment = this.createPayment(publicKey, scriptType, network);
180
+ const scriptData = {};
160
181
  switch (scriptType) {
161
- case "p2sh":
162
- return bitcoin.payments.p2sh({ pubkey, network });
163
- case "p2pkh":
164
- return bitcoin.payments.p2pkh({ pubkey, network });
165
- case "p2wpkh":
166
- return bitcoin.payments.p2wpkh({ pubkey, network });
167
182
  case "p2sh-p2wpkh":
168
- return bitcoin.payments.p2sh({
169
- redeem: bitcoin.payments.p2wpkh({ pubkey, network }),
170
- network,
171
- });
183
+ case "p2sh":
172
184
  case "bech32":
173
- return bitcoin.payments.p2wsh({
174
- redeem: bitcoin.payments.p2wsh({ pubkey, network }),
175
- network,
176
- });
177
- default:
178
- throw new Error(`no implementation for script type: ${scriptType}`);
185
+ scriptData.redeemScript = payment.redeem?.output;
186
+ break;
179
187
  }
180
- }
181
- validateVoutOrdering(msg, tx) {
182
- // From THORChain specification:
183
- /* ignoreTx checks if we can already ignore a tx according to preset rules
184
-
185
- we expect array of "vout" for a BTC to have this format
186
- OP_RETURN is mandatory only on inbound tx
187
- vout:0 is our vault
188
- vout:1 is any any change back to themselves
189
- vout:2 is OP_RETURN (first 80 bytes)
190
- vout:3 is OP_RETURN (next 80 bytes)
191
-
192
- Rules to ignore a tx are:
193
- - vout:0 doesn't have coins (value)
194
- - vout:0 doesn't have address
195
- - count vouts > 4
196
- - count vouts with coins (value) > 2
197
- */
198
- var _b;
199
- // Check that vout:0 contains the vault address
200
- if (bitcoin.address.fromOutputScript(tx.outs[0].script) != msg.vaultAddress) {
201
- console.error("Vout:0 does not contain vault address.");
202
- return false;
203
- }
204
- // TODO: Can we check and make sure vout:1 is our address?
205
- // Check and make sure vout:2 exists
206
- if (tx.outs.length < 3) {
207
- console.error("Not enough outputs found in transaction.", msg);
208
- return false;
188
+ const bchData = {};
189
+ if (coin.toLowerCase() === "bitcoincash") {
190
+ bchData.sighashType = bitcoin.Transaction.SIGHASH_ALL | bitcoin.Transaction.SIGHASH_BITCOINCASHBIP143;
209
191
  }
210
- // Check and make sure vout:2 has OP_RETURN data
211
- const opcode = (_b = bitcoin.script.decompile(tx.outs[2].script)) === null || _b === void 0 ? void 0 : _b[0];
212
- if (Object.keys(bitcoin.script.OPS).find((k) => bitcoin.script.OPS[k] === opcode) != "OP_RETURN") {
213
- console.error("OP_RETURN output not found for transaction.");
214
- return false;
215
- }
216
- // Make sure vout:3 does not exist
217
- if (tx.outs[3]) {
218
- console.error("Illegal second op_return output found.");
219
- return false;
220
- }
221
- return true;
222
- }
223
- buildInput(coin, input) {
224
- return __awaiter(this, void 0, void 0, function* () {
225
- return this.needsMnemonic(!!__classPrivateFieldGet(this, _MixinNativeBTCWallet_masterKey, "f"), () => __awaiter(this, void 0, void 0, function* () {
226
- var _b;
227
- const { addressNList, amount, hex, scriptType } = input;
228
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
229
- const keyPair = yield util.getKeyPair(__classPrivateFieldGet(this, _MixinNativeBTCWallet_masterKey, "f"), addressNList, coin, scriptType);
230
- const isSegwit = !!scriptType && segwit.includes(scriptType);
231
- const nonWitnessUtxo = hex && Buffer.from(hex, "hex");
232
- const witnessUtxo = input.tx && {
233
- script: Buffer.from(input.tx.vout[input.vout].scriptPubKey.hex, "hex"),
234
- value: Number(amount),
235
- };
236
- const utxoData = isSegwit && witnessUtxo ? { witnessUtxo } : { nonWitnessUtxo };
237
- if (!(utxoData.witnessUtxo || utxoData.nonWitnessUtxo)) {
238
- throw new Error("failed to build input - must provide prev rawTx (segwit input can provide scriptPubKey hex and value instead)");
192
+ return {
193
+ ...utxoData,
194
+ ...bchData,
195
+ ...scriptData,
196
+ };
197
+ });
198
+ }
199
+ async btcGetAddress(msg) {
200
+ return this.needsMnemonic(!!this.#masterKey, async () => {
201
+ const { addressNList, coin, scriptType } = msg;
202
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
203
+ const keyPair = await util.getKeyPair(this.#masterKey, addressNList, coin, scriptType);
204
+ const { address } = this.createPayment(keyPair.publicKey, scriptType, keyPair.network);
205
+ if (!address)
206
+ return null;
207
+ return coin.toLowerCase() === "bitcoincash" ? bchAddr.toCashAddress(address) : address;
208
+ });
209
+ }
210
+ async btcSignTx(msg) {
211
+ return this.needsMnemonic(!!this.#masterKey, async () => {
212
+ const { coin, inputs, outputs, version, locktime } = msg;
213
+ const psbt = new bitcoin.Psbt({ network: getNetwork(coin) });
214
+ psbt.setVersion(version ?? 1);
215
+ locktime && psbt.setLocktime(locktime);
216
+ await Promise.all(inputs.map(async (input) => {
217
+ try {
218
+ const inputData = await this.buildInput(coin, input);
219
+ psbt.addInput({
220
+ hash: input.txid,
221
+ index: input.vout,
222
+ ...inputData,
223
+ });
224
+ }
225
+ catch (e) {
226
+ throw new Error(`failed to add input: ${e}`);
227
+ }
228
+ }));
229
+ await Promise.all(outputs.map(async (output) => {
230
+ try {
231
+ const { amount } = output;
232
+ let address;
233
+ if (output.address !== undefined) {
234
+ address = output.address;
239
235
  }
240
- const { publicKey, network } = keyPair;
241
- const payment = this.createPayment(publicKey, scriptType, network);
242
- const scriptData = {};
243
- switch (scriptType) {
244
- case "p2sh-p2wpkh":
245
- case "p2sh":
246
- case "bech32":
247
- scriptData.redeemScript = (_b = payment.redeem) === null || _b === void 0 ? void 0 : _b.output;
248
- break;
236
+ else if (output.addressNList !== undefined) {
237
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
238
+ const keyPair = await util.getKeyPair(this.#masterKey, output.addressNList, coin, output.scriptType);
239
+ const { publicKey, network } = keyPair;
240
+ const payment = this.createPayment(publicKey, output.scriptType, network);
241
+ if (!payment.address)
242
+ throw new Error("could not get payment address");
243
+ address = payment.address;
244
+ }
245
+ else {
246
+ throw new Error("unsupported output type");
249
247
  }
250
- const bchData = {};
251
248
  if (coin.toLowerCase() === "bitcoincash") {
252
- bchData.sighashType = bitcoin.Transaction.SIGHASH_ALL | bitcoin.Transaction.SIGHASH_BITCOINCASHBIP143;
249
+ address = bchAddr.toLegacyAddress(address);
253
250
  }
254
- return Object.assign(Object.assign(Object.assign({}, utxoData), bchData), scriptData);
255
- }));
256
- });
257
- }
258
- btcGetAddress(msg) {
259
- return __awaiter(this, void 0, void 0, function* () {
260
- return this.needsMnemonic(!!__classPrivateFieldGet(this, _MixinNativeBTCWallet_masterKey, "f"), () => __awaiter(this, void 0, void 0, function* () {
261
- const { addressNList, coin, scriptType } = msg;
251
+ psbt.addOutput({ address, value: Number(amount) });
252
+ }
253
+ catch (e) {
254
+ throw new Error(`failed to add output: ${e}`);
255
+ }
256
+ }));
257
+ if (msg.opReturnData) {
258
+ const data = Buffer.from(msg.opReturnData, "utf-8");
259
+ const embed = bitcoin.payments.embed({ data: [data] });
260
+ const script = embed.output;
261
+ if (!script)
262
+ throw new Error("unable to build OP_RETURN script");
263
+ psbt.addOutput({ script, value: 0 });
264
+ }
265
+ await Promise.all(inputs.map(async (input, idx) => {
266
+ try {
267
+ const { addressNList, scriptType } = input;
262
268
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
263
- const keyPair = yield util.getKeyPair(__classPrivateFieldGet(this, _MixinNativeBTCWallet_masterKey, "f"), addressNList, coin, scriptType);
264
- const { address } = this.createPayment(keyPair.publicKey, scriptType, keyPair.network);
265
- if (!address)
266
- return null;
267
- return coin.toLowerCase() === "bitcoincash" ? bchAddr.toCashAddress(address) : address;
268
- }));
269
- });
270
- }
271
- btcSignTx(msg) {
272
- return __awaiter(this, void 0, void 0, function* () {
273
- return this.needsMnemonic(!!__classPrivateFieldGet(this, _MixinNativeBTCWallet_masterKey, "f"), () => __awaiter(this, void 0, void 0, function* () {
274
- const { coin, inputs, outputs, version, locktime } = msg;
275
- const psbt = new bitcoin.Psbt({ network: (0, networks_1.getNetwork)(coin) });
276
- psbt.setVersion(version !== null && version !== void 0 ? version : 1);
277
- locktime && psbt.setLocktime(locktime);
278
- yield Promise.all(inputs.map((input) => __awaiter(this, void 0, void 0, function* () {
279
- try {
280
- const inputData = yield this.buildInput(coin, input);
281
- psbt.addInput(Object.assign({ hash: input.txid, index: input.vout }, inputData));
282
- }
283
- catch (e) {
284
- throw new Error(`failed to add input: ${e}`);
285
- }
286
- })));
287
- yield Promise.all(outputs.map((output) => __awaiter(this, void 0, void 0, function* () {
288
- try {
289
- const { amount } = output;
290
- let address;
291
- if (output.address !== undefined) {
292
- address = output.address;
293
- }
294
- else if (output.addressNList !== undefined) {
295
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
296
- const keyPair = yield util.getKeyPair(__classPrivateFieldGet(this, _MixinNativeBTCWallet_masterKey, "f"), output.addressNList, coin, output.scriptType);
297
- const { publicKey, network } = keyPair;
298
- const payment = this.createPayment(publicKey, output.scriptType, network);
299
- if (!payment.address)
300
- throw new Error("could not get payment address");
301
- address = payment.address;
302
- }
303
- else {
304
- throw new Error("unsupported output type");
305
- }
306
- if (coin.toLowerCase() === "bitcoincash") {
307
- address = bchAddr.toLegacyAddress(address);
308
- }
309
- psbt.addOutput({ address, value: Number(amount) });
310
- }
311
- catch (e) {
312
- throw new Error(`failed to add output: ${e}`);
313
- }
314
- })));
315
- if (msg.opReturnData) {
316
- const data = Buffer.from(msg.opReturnData, "utf-8");
317
- const embed = bitcoin.payments.embed({ data: [data] });
318
- const script = embed.output;
319
- if (!script)
320
- throw new Error("unable to build OP_RETURN script");
321
- psbt.addOutput({ script, value: 0 });
322
- }
323
- yield Promise.all(inputs.map((input, idx) => __awaiter(this, void 0, void 0, function* () {
324
- try {
325
- const { addressNList, scriptType } = input;
326
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
327
- const keyPair = yield util.getKeyPair(__classPrivateFieldGet(this, _MixinNativeBTCWallet_masterKey, "f"), addressNList, coin, scriptType);
328
- yield psbt.signInputAsync(idx, keyPair);
329
- }
330
- catch (e) {
331
- throw new Error(`failed to sign input: ${e}`);
332
- }
333
- })));
334
- psbt.finalizeAllInputs();
335
- const tx = psbt.extractTransaction(true);
336
- // If this is a THORChain transaction, validate the vout ordering
337
- if (msg.vaultAddress && !this.validateVoutOrdering(msg, tx)) {
338
- throw new Error("Improper vout ordering for BTC Thorchain transaction");
339
- }
340
- const signatures = tx.ins.map((input) => {
341
- if (input.witness.length > 0) {
342
- return input.witness[0].toString("hex");
343
- }
344
- else {
345
- const sigLen = input.script[0];
346
- return input.script.slice(1, sigLen).toString("hex");
347
- }
348
- });
349
- return {
350
- signatures,
351
- serializedTx: tx.toHex(),
352
- };
353
- }));
354
- });
355
- }
356
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
357
- btcSignMessage(msg) {
358
- return __awaiter(this, void 0, void 0, function* () {
359
- throw new Error("function not implemented");
360
- });
361
- }
362
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
363
- btcVerifyMessage(msg) {
364
- return __awaiter(this, void 0, void 0, function* () {
365
- throw new Error("function not implemented");
269
+ const keyPair = await util.getKeyPair(this.#masterKey, addressNList, coin, scriptType);
270
+ await psbt.signInputAsync(idx, keyPair);
271
+ }
272
+ catch (e) {
273
+ throw new Error(`failed to sign input: ${e}`);
274
+ }
275
+ }));
276
+ psbt.finalizeAllInputs();
277
+ const tx = psbt.extractTransaction(true);
278
+ // If this is a THORChain transaction, validate the vout ordering
279
+ if (msg.vaultAddress && !this.validateVoutOrdering(msg, tx)) {
280
+ throw new Error("Improper vout ordering for BTC Thorchain transaction");
281
+ }
282
+ const signatures = tx.ins.map((input) => {
283
+ if (input.witness.length > 0) {
284
+ return input.witness[0].toString("hex");
285
+ }
286
+ else {
287
+ const sigLen = input.script[0];
288
+ return input.script.slice(1, sigLen).toString("hex");
289
+ }
366
290
  });
367
- }
368
- },
369
- _MixinNativeBTCWallet_masterKey = new WeakMap(),
370
- _a;
291
+ return {
292
+ signatures,
293
+ serializedTx: tx.toHex(),
294
+ };
295
+ });
296
+ }
297
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
298
+ async btcSignMessage(msg) {
299
+ throw new Error("function not implemented");
300
+ }
301
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
302
+ async btcVerifyMessage(msg) {
303
+ throw new Error("function not implemented");
304
+ }
305
+ };
371
306
  }
372
- exports.MixinNativeBTCWallet = MixinNativeBTCWallet;
373
307
  //# sourceMappingURL=bitcoin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitcoin.js","sourceRoot":"","sources":["../src/bitcoin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitcoin.js","sourceRoot":"","sources":["../src/bitcoin.ts"],"names":[],"mappings":"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"}
package/dist/cosmos.d.ts CHANGED
@@ -14,7 +14,7 @@ export declare function MixinNativeCosmosWalletInfo<TBase extends core.Construct
14
14
  hasOnDevicePassphrase(): boolean;
15
15
  hasOnDeviceDisplay(): boolean;
16
16
  hasOnDeviceRecovery(): boolean;
17
- hasNativeShapeShift(srcCoin: string, dstCoin: string): boolean;
17
+ hasNativeShapeShift(srcCoin: core.Coin, dstCoin: core.Coin): boolean;
18
18
  supportsBip44Accounts(): boolean;
19
19
  supportsOfflineSigning(): boolean;
20
20
  supportsBroadcast(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../src/cosmos.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAKrD,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAO9C,wBAAgB,2BAA2B,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK;;;iCAIvE,QAAQ,OAAO,CAAC;wCAIT,QAAQ,OAAO,CAAC;0CAIpB,OAAO;mCAId,KAAK,qBAAqB,GAAG,MAAM,KAAK,iBAAiB,CAAC;mCAU1D,KAAK,iBAAiB,GAAG,KAAK,iBAAiB,GAAG,SAAS;;;;;;;;;;;;UAKzF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAK;;;2BAKvF,UAAU,IAAI,CAAC,KAAK,KAAK,GAAG,SAAS;0CAET,UAAU,IAAI,CAAC,KAAK,KAAK,GAAG,QAAQ,IAAI,CAAC;sBAInE,IAAI;iCAIO,UAAU,MAAM,CAAC,UAAU,MAAM,GAAG,MAAM;uCAKpC,MAAM;8BAOT,KAAK,gBAAgB,GAAG,QAAQ,MAAM,GAAG,IAAI,CAAC;0BAQlD,KAAK,YAAY,GAAG,QAAQ,KAAK,cAAc,GAAG,IAAI,CAAC;;;;;;;;;;;;;;;UAgBlF"}
1
+ {"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../src/cosmos.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAKrD,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAO9C,wBAAgB,2BAA2B,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK;;;iCAIvE,OAAO,CAAC,OAAO,CAAC;wCAIT,OAAO,CAAC,OAAO,CAAC;0CAIpB,OAAO;mCAId,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;mCAU1D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,GAAG,SAAS;;;;;;;;;;;;UAKzF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAK;;;2BAKvF,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS;0CAET,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;sBAInE,IAAI;iCAIO,SAAS,CAAC,MAAM,CAAC,UAAU,MAAM,GAAG,MAAM;uCAKpC,MAAM;8BAOT,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;0BAQlD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;;;;;;;;;;;;;0BAZ5E,KAAM,YAAY,GAAE,KAAM,eACjC;;UA2BC"}