@shapeshiftoss/hdwallet-native 1.55.4-alpha.1 → 1.55.5
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/dist/adapter.js +61 -22
- package/dist/adapter.js.map +1 -1
- package/dist/arkeo.js +123 -54
- package/dist/arkeo.js.map +1 -1
- package/dist/binance.js +194 -123
- package/dist/binance.js.map +1 -1
- package/dist/bitcoin.js +284 -219
- package/dist/bitcoin.js.map +1 -1
- package/dist/cosmos.js +123 -54
- package/dist/cosmos.js.map +1 -1
- package/dist/crypto/CryptoHelper.js +172 -106
- package/dist/crypto/CryptoHelper.js.map +1 -1
- package/dist/crypto/EncryptedWallet.js +123 -64
- package/dist/crypto/EncryptedWallet.js.map +1 -1
- package/dist/crypto/classes/cipherString.js +19 -18
- package/dist/crypto/classes/cipherString.js.map +1 -1
- package/dist/crypto/classes/encryptedObject.js +7 -7
- package/dist/crypto/classes/encryptedObject.js.map +1 -1
- package/dist/crypto/classes/encryptionType.js +5 -2
- package/dist/crypto/classes/encryptionType.js.map +1 -1
- package/dist/crypto/classes/index.js +11 -4
- package/dist/crypto/classes/index.js.map +1 -1
- package/dist/crypto/classes/symmetricCryptoKey.js +11 -13
- package/dist/crypto/classes/symmetricCryptoKey.js.map +1 -1
- package/dist/crypto/engines/index.js +18 -2
- package/dist/crypto/engines/index.js.map +1 -1
- package/dist/crypto/engines/types.js +5 -2
- package/dist/crypto/engines/types.js.map +1 -1
- package/dist/crypto/engines/web-crypto.js +84 -39
- package/dist/crypto/engines/web-crypto.js.map +1 -1
- package/dist/crypto/index.js +32 -3
- package/dist/crypto/index.js.map +1 -1
- package/dist/crypto/isolation/adapters/binance.js +51 -12
- package/dist/crypto/isolation/adapters/binance.js.map +1 -1
- package/dist/crypto/isolation/adapters/bip32.js +108 -65
- package/dist/crypto/isolation/adapters/bip32.js.map +1 -1
- package/dist/crypto/isolation/adapters/bitcoin.js +84 -41
- package/dist/crypto/isolation/adapters/bitcoin.js.map +1 -1
- package/dist/crypto/isolation/adapters/cosmos.js +24 -9
- package/dist/crypto/isolation/adapters/cosmos.js.map +1 -1
- package/dist/crypto/isolation/adapters/cosmosDirect.js +77 -35
- package/dist/crypto/isolation/adapters/cosmosDirect.js.map +1 -1
- package/dist/crypto/isolation/adapters/ethereum.js +90 -49
- package/dist/crypto/isolation/adapters/ethereum.js.map +1 -1
- package/dist/crypto/isolation/adapters/fio.js +67 -24
- package/dist/crypto/isolation/adapters/fio.js.map +1 -1
- package/dist/crypto/isolation/adapters/index.js +20 -7
- package/dist/crypto/isolation/adapters/index.js.map +1 -1
- package/dist/crypto/isolation/core/bip32/index.js +50 -22
- package/dist/crypto/isolation/core/bip32/index.js.map +1 -1
- package/dist/crypto/isolation/core/bip32/interfaces.js +28 -2
- package/dist/crypto/isolation/core/bip32/interfaces.js.map +1 -1
- package/dist/crypto/isolation/core/bip32/types.js +8 -5
- package/dist/crypto/isolation/core/bip32/types.js.map +1 -1
- package/dist/crypto/isolation/core/bip39/index.js +17 -1
- package/dist/crypto/isolation/core/bip39/index.js.map +1 -1
- package/dist/crypto/isolation/core/bip39/interfaces.js +2 -1
- package/dist/crypto/isolation/core/digest/algorithms.js +32 -23
- package/dist/crypto/isolation/core/digest/algorithms.js.map +1 -1
- package/dist/crypto/isolation/core/digest/index.js +18 -2
- package/dist/crypto/isolation/core/digest/index.js.map +1 -1
- package/dist/crypto/isolation/core/digest/types.js +26 -23
- package/dist/crypto/isolation/core/digest/types.js.map +1 -1
- package/dist/crypto/isolation/core/index.js +32 -5
- package/dist/crypto/isolation/core/index.js.map +1 -1
- package/dist/crypto/isolation/core/secp256k1/index.js +18 -2
- package/dist/crypto/isolation/core/secp256k1/index.js.map +1 -1
- package/dist/crypto/isolation/core/secp256k1/interfaces.js +2 -1
- package/dist/crypto/isolation/core/secp256k1/types.js +157 -119
- package/dist/crypto/isolation/core/secp256k1/types.js.map +1 -1
- package/dist/crypto/isolation/engines/default/bip32.js +176 -102
- package/dist/crypto/isolation/engines/default/bip32.js.map +1 -1
- package/dist/crypto/isolation/engines/default/bip39.js +68 -24
- package/dist/crypto/isolation/engines/default/bip39.js.map +1 -1
- package/dist/crypto/isolation/engines/default/index.js +32 -3
- package/dist/crypto/isolation/engines/default/index.js.map +1 -1
- package/dist/crypto/isolation/engines/default/revocable.js +51 -30
- package/dist/crypto/isolation/engines/default/revocable.js.map +1 -1
- package/dist/crypto/isolation/engines/dummy/bip32.js +121 -63
- package/dist/crypto/isolation/engines/dummy/bip32.js.map +1 -1
- package/dist/crypto/isolation/engines/dummy/bip39.js +97 -55
- package/dist/crypto/isolation/engines/dummy/bip39.js.map +1 -1
- package/dist/crypto/isolation/engines/dummy/index.js +30 -3
- package/dist/crypto/isolation/engines/dummy/index.js.map +1 -1
- package/dist/crypto/isolation/engines/dummy/types.js +5 -1
- package/dist/crypto/isolation/engines/dummy/types.js.map +1 -1
- package/dist/crypto/isolation/engines/index.js +28 -2
- package/dist/crypto/isolation/engines/index.js.map +1 -1
- package/dist/crypto/isolation/index.js +29 -3
- package/dist/crypto/isolation/index.js.map +1 -1
- package/dist/crypto/isolation/types.js +49 -43
- package/dist/crypto/isolation/types.js.map +1 -1
- package/dist/crypto/utils.js +13 -7
- package/dist/crypto/utils.js.map +1 -1
- package/dist/ethereum.js +160 -92
- package/dist/ethereum.js.map +1 -1
- package/dist/fio.js +282 -204
- package/dist/fio.js.map +1 -1
- package/dist/index.js +32 -3
- package/dist/index.js.map +1 -1
- package/dist/kava.js +119 -50
- package/dist/kava.js.map +1 -1
- package/dist/native.js +304 -176
- package/dist/native.js.map +1 -1
- package/dist/networks.js +33 -16
- package/dist/networks.js.map +1 -1
- package/dist/osmosis.js +123 -54
- package/dist/osmosis.js.map +1 -1
- package/dist/secret.js +119 -50
- package/dist/secret.js.map +1 -1
- package/dist/terra.js +119 -50
- package/dist/terra.js.map +1 -1
- package/dist/thorchain.js +123 -54
- package/dist/thorchain.js.map +1 -1
- package/dist/util.js +54 -16
- package/dist/util.js.map +1 -1
- package/package.json +3 -3
package/dist/bitcoin.js
CHANGED
|
@@ -1,19 +1,71 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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.MixinNativeBTCWalletInfo = MixinNativeBTCWalletInfo;
|
|
47
|
+
exports.MixinNativeBTCWallet = MixinNativeBTCWallet;
|
|
48
|
+
const bitcoin = __importStar(require("@shapeshiftoss/bitcoinjs-lib"));
|
|
49
|
+
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
50
|
+
const bchAddr = __importStar(require("bchaddrjs"));
|
|
51
|
+
const networks_1 = require("./networks");
|
|
52
|
+
const util = __importStar(require("./util"));
|
|
6
53
|
const supportedCoins = ["bitcoin", "dash", "digibyte", "dogecoin", "litecoin", "bitcoincash", "testnet"];
|
|
7
54
|
const segwit = ["p2wpkh", "p2sh-p2wpkh", "bech32"];
|
|
8
|
-
|
|
55
|
+
function MixinNativeBTCWalletInfo(Base) {
|
|
9
56
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
10
57
|
return class MixinNativeBTCWalletInfo extends Base {
|
|
11
|
-
|
|
58
|
+
constructor() {
|
|
59
|
+
super(...arguments);
|
|
60
|
+
this._supportsBTCInfo = true;
|
|
61
|
+
}
|
|
12
62
|
btcSupportsCoinSync(coin) {
|
|
13
63
|
return supportedCoins.includes(String(coin).toLowerCase());
|
|
14
64
|
}
|
|
15
|
-
|
|
16
|
-
return this
|
|
65
|
+
btcSupportsCoin(coin) {
|
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
return this.btcSupportsCoinSync(coin);
|
|
68
|
+
});
|
|
17
69
|
}
|
|
18
70
|
btcSupportsScriptTypeSync(coin, scriptType) {
|
|
19
71
|
if (!this.btcSupportsCoinSync(coin))
|
|
@@ -29,11 +81,15 @@ export function MixinNativeBTCWalletInfo(Base) {
|
|
|
29
81
|
return false;
|
|
30
82
|
}
|
|
31
83
|
}
|
|
32
|
-
|
|
33
|
-
return this
|
|
84
|
+
btcSupportsScriptType(coin, scriptType) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
return this.btcSupportsScriptTypeSync(coin, scriptType);
|
|
87
|
+
});
|
|
34
88
|
}
|
|
35
|
-
|
|
36
|
-
return
|
|
89
|
+
btcSupportsSecureTransfer() {
|
|
90
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
return false;
|
|
92
|
+
});
|
|
37
93
|
}
|
|
38
94
|
btcSupportsNativeShapeShift() {
|
|
39
95
|
return false;
|
|
@@ -77,231 +133,240 @@ export function MixinNativeBTCWalletInfo(Base) {
|
|
|
77
133
|
(addressNList[0] === 0x80000000 + 49 && msg.scriptType == core.BTCInputScriptType.SpendP2SHWitness) ||
|
|
78
134
|
(addressNList[0] === 0x80000000 + 84 && msg.scriptType == core.BTCInputScriptType.SpendWitness)) {
|
|
79
135
|
addressNList[2] += 1;
|
|
80
|
-
return {
|
|
81
|
-
...msg,
|
|
82
|
-
addressNList,
|
|
83
|
-
};
|
|
136
|
+
return Object.assign(Object.assign({}, msg), { addressNList });
|
|
84
137
|
}
|
|
85
138
|
return undefined;
|
|
86
139
|
}
|
|
87
140
|
};
|
|
88
141
|
}
|
|
89
|
-
|
|
142
|
+
function MixinNativeBTCWallet(Base) {
|
|
143
|
+
var _MixinNativeBTCWallet_masterKey, _a;
|
|
90
144
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
91
|
-
return class MixinNativeBTCWallet extends Base {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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}`);
|
|
120
|
-
}
|
|
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;
|
|
145
|
+
return _a = class MixinNativeBTCWallet extends Base {
|
|
146
|
+
constructor() {
|
|
147
|
+
super(...arguments);
|
|
148
|
+
this._supportsBTC = true;
|
|
149
|
+
_MixinNativeBTCWallet_masterKey.set(this, void 0);
|
|
149
150
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
return false;
|
|
151
|
+
btcInitializeWallet(masterKey) {
|
|
152
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
153
|
+
__classPrivateFieldSet(this, _MixinNativeBTCWallet_masterKey, masterKey, "f");
|
|
154
|
+
});
|
|
155
155
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
console.error("Illegal second op_return output found.");
|
|
159
|
-
return false;
|
|
156
|
+
btcWipe() {
|
|
157
|
+
__classPrivateFieldSet(this, _MixinNativeBTCWallet_masterKey, undefined, "f");
|
|
160
158
|
}
|
|
161
|
-
|
|
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 = {};
|
|
159
|
+
createPayment(pubkey, scriptType, network) {
|
|
181
160
|
switch (scriptType) {
|
|
182
|
-
case "p2sh-p2wpkh":
|
|
183
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
|
+
case "p2sh-p2wpkh":
|
|
168
|
+
return bitcoin.payments.p2sh({
|
|
169
|
+
redeem: bitcoin.payments.p2wpkh({ pubkey, network }),
|
|
170
|
+
network,
|
|
171
|
+
});
|
|
184
172
|
case "bech32":
|
|
185
|
-
|
|
186
|
-
|
|
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}`);
|
|
187
179
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
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;
|
|
191
203
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
if (
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
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;
|
|
235
|
-
}
|
|
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;
|
|
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;
|
|
209
|
+
}
|
|
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)");
|
|
244
239
|
}
|
|
245
|
-
|
|
246
|
-
|
|
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;
|
|
247
249
|
}
|
|
250
|
+
const bchData = {};
|
|
248
251
|
if (coin.toLowerCase() === "bitcoincash") {
|
|
249
|
-
|
|
252
|
+
bchData.sighashType = bitcoin.Transaction.SIGHASH_ALL | bitcoin.Transaction.SIGHASH_BITCOINCASHBIP143;
|
|
250
253
|
}
|
|
251
|
-
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
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;
|
|
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;
|
|
268
262
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
269
|
-
const keyPair =
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
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
|
-
}
|
|
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
|
+
}));
|
|
290
269
|
});
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
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");
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
},
|
|
369
|
+
_MixinNativeBTCWallet_masterKey = new WeakMap(),
|
|
370
|
+
_a;
|
|
306
371
|
}
|
|
307
372
|
//# sourceMappingURL=bitcoin.js.map
|
package/dist/bitcoin.js.map
CHANGED
|
@@ -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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"}
|