@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/binance.js CHANGED
@@ -1,76 +1,20 @@
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
- var __importDefault = (this && this.__importDefault) || function (mod) {
46
- return (mod && mod.__esModule) ? mod : { "default": mod };
47
- };
48
- Object.defineProperty(exports, "__esModule", { value: true });
49
- exports.MixinNativeBinanceWallet = exports.MixinNativeBinanceWalletInfo = void 0;
50
- const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
51
- const bech32 = __importStar(require("bech32"));
52
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
53
- const crypto_js_1 = __importDefault(require("crypto-js"));
54
- const p_lazy_1 = __importDefault(require("p-lazy"));
55
- const Isolation = __importStar(require("./crypto/isolation"));
56
- const util = __importStar(require("./util"));
57
- const bnbSdk = p_lazy_1.default.from(() => Promise.resolve().then(() => __importStar(require("bnb-javascript-sdk-nobroadcast"))));
58
- function MixinNativeBinanceWalletInfo(Base) {
1
+ import * as core from "@shapeshiftoss/hdwallet-core";
2
+ import * as bech32 from "bech32";
3
+ import BigNumber from "bignumber.js";
4
+ import CryptoJS from "crypto-js";
5
+ import PLazy from "p-lazy";
6
+ import * as Isolation from "./crypto/isolation";
7
+ import * as util from "./util";
8
+ const bnbSdk = PLazy.from(() => import("bnb-javascript-sdk-nobroadcast"));
9
+ export function MixinNativeBinanceWalletInfo(Base) {
59
10
  // eslint-disable-next-line @typescript-eslint/no-shadow
60
11
  return class MixinNativeBinanceWalletInfo extends Base {
61
- constructor() {
62
- super(...arguments);
63
- this._supportsBinanceInfo = true;
12
+ _supportsBinanceInfo = true;
13
+ async binanceSupportsNetwork() {
14
+ return true;
64
15
  }
65
- binanceSupportsNetwork() {
66
- return __awaiter(this, void 0, void 0, function* () {
67
- return true;
68
- });
69
- }
70
- binanceSupportsSecureTransfer() {
71
- return __awaiter(this, void 0, void 0, function* () {
72
- return false;
73
- });
16
+ async binanceSupportsSecureTransfer() {
17
+ return false;
74
18
  }
75
19
  binanceSupportsNativeShapeShift() {
76
20
  return false;
@@ -90,132 +34,116 @@ function MixinNativeBinanceWalletInfo(Base) {
90
34
  }
91
35
  };
92
36
  }
93
- exports.MixinNativeBinanceWalletInfo = MixinNativeBinanceWalletInfo;
94
- function MixinNativeBinanceWallet(Base) {
95
- var _MixinNativeBinanceWallet_masterKey, _a;
37
+ export function MixinNativeBinanceWallet(Base) {
96
38
  // eslint-disable-next-line @typescript-eslint/no-shadow
97
- return _a = class MixinNativeBinanceWallet extends Base {
98
- constructor() {
99
- super(...arguments);
100
- this._supportsBinance = true;
101
- _MixinNativeBinanceWallet_masterKey.set(this, void 0);
102
- }
103
- binanceInitializeWallet(masterKey) {
104
- return __awaiter(this, void 0, void 0, function* () {
105
- __classPrivateFieldSet(this, _MixinNativeBinanceWallet_masterKey, masterKey, "f");
106
- });
107
- }
108
- binanceWipe() {
109
- __classPrivateFieldSet(this, _MixinNativeBinanceWallet_masterKey, undefined, "f");
110
- }
111
- binanceBech32ify(address, prefix) {
112
- const words = bech32.toWords(address);
113
- return bech32.encode(prefix, words);
114
- }
115
- createBinanceAddress(publicKey, testnet) {
116
- const message = crypto_js_1.default.SHA256(crypto_js_1.default.enc.Hex.parse(publicKey));
117
- const hash = crypto_js_1.default.RIPEMD160(message).toString();
118
- const address = Buffer.from(hash, `hex`);
119
- return this.binanceBech32ify(address, `${testnet ? "t" : ""}bnb`);
120
- }
121
- binanceGetAddress(msg) {
122
- return __awaiter(this, void 0, void 0, function* () {
123
- return this.needsMnemonic(!!__classPrivateFieldGet(this, _MixinNativeBinanceWallet_masterKey, "f"), () => __awaiter(this, void 0, void 0, function* () {
124
- var _b;
125
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
126
- const keyPair = yield util.getKeyPair(__classPrivateFieldGet(this, _MixinNativeBinanceWallet_masterKey, "f"), msg.addressNList, "binance");
127
- return this.createBinanceAddress(keyPair.publicKey.toString("hex"), (_b = msg.testnet) !== null && _b !== void 0 ? _b : false);
128
- }));
129
- });
130
- }
131
- binanceSignTx(msg) {
132
- return __awaiter(this, void 0, void 0, function* () {
133
- return this.needsMnemonic(!!__classPrivateFieldGet(this, _MixinNativeBinanceWallet_masterKey, "f"), () => __awaiter(this, void 0, void 0, function* () {
134
- var _b, _c, _d, _e, _f, _g;
135
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
136
- const keyPair = yield util.getKeyPair(__classPrivateFieldGet(this, _MixinNativeBinanceWallet_masterKey, "f"), msg.addressNList, "binance");
137
- const tx = Object.assign({}, msg.tx);
138
- if (!tx.data)
139
- tx.data = null;
140
- if (!tx.memo)
141
- tx.memo = "";
142
- if (!tx.sequence)
143
- tx.sequence = "0";
144
- if (!tx.source)
145
- tx.source = "0";
146
- const client = new (yield bnbSdk).BncClient(msg.testnet ? "https://testnet-dex.binance.org" : "https://dex.binance.org"); // broadcast not used but available
147
- yield client.chooseNetwork(msg.testnet ? "testnet" : "mainnet");
148
- const haveAccountNumber = !!msg.tx.account_number && Number.isInteger(Number(msg.tx.account_number));
149
- if (haveAccountNumber)
150
- yield client.setAccountNumber(Number(msg.tx.account_number));
151
- client.setSigningDelegate(yield Isolation.Adapters.Binance.create(keyPair.node));
152
- yield client.initChain();
153
- if (!tx.chain_id) {
154
- const { chainId } = client;
155
- if (!chainId)
156
- throw new Error("unable to load chain id");
157
- tx.chain_id = chainId;
158
- }
159
- if (!tx.account_number) {
160
- const { account_number } = client;
161
- if (account_number)
162
- tx.account_number = account_number.toString();
163
- }
164
- if (((_b = tx.msgs) === null || _b === void 0 ? void 0 : _b.length) !== 1 ||
165
- ((_c = tx.msgs[0].inputs) === null || _c === void 0 ? void 0 : _c.length) !== 1 ||
166
- ((_d = tx.msgs[0].inputs[0].coins) === null || _d === void 0 ? void 0 : _d.length) !== 1 ||
167
- ((_e = tx.msgs[0].outputs) === null || _e === void 0 ? void 0 : _e.length) !== 1 ||
168
- ((_f = tx.msgs[0].outputs[0].coins) === null || _f === void 0 ? void 0 : _f.length) !== 1)
169
- throw new Error("malformed or unsupported tx message");
170
- const addressTo = tx.msgs[0].outputs[0].address;
171
- const addressFrom = tx.msgs[0].inputs[0].address;
172
- const addressFromVerify = this.createBinanceAddress(keyPair.publicKey.toString("hex"), !!msg.testnet);
173
- if (addressFrom !== addressFromVerify)
174
- throw Error("Invalid permissions to sign for address");
175
- if (!tx.account_number) {
176
- const { result, status } = core.mustBeDefined(yield client.getAccount(addressFrom));
177
- if (!(status === 200 && "account_number" in result && typeof result.account_number === "number"))
178
- throw new Error("unable to load account number");
179
- tx.account_number = result.account_number.toString();
180
- }
181
- // The Binance SDK takes amounts as decimal strings.
182
- const amount = new bignumber_js_1.default(tx.msgs[0].inputs[0].coins[0].amount);
183
- if (!amount.isInteger())
184
- throw new Error("amount must be an integer");
185
- if (!amount.isEqualTo(tx.msgs[0].outputs[0].coins[0].amount))
186
- throw new Error("amount in input and output must be equal");
187
- const asset = tx.msgs[0].inputs[0].coins[0].denom;
188
- if (asset !== tx.msgs[0].outputs[0].coins[0].denom)
189
- throw new Error("denomination in input and output must be the same");
190
- const result = (yield client.transfer(addressFrom, addressTo, amount.shiftedBy(-8).toString(), asset, tx.memo, (_g = Number(tx.sequence)) !== null && _g !== void 0 ? _g : null));
191
- const serialized = result.serialize();
192
- const aminoPubKey = result.signatures[0].pub_key;
193
- const signature = Buffer.from(result.signatures[0].signature, "base64").toString("base64");
194
- // The BNB SDK returns public keys serialized in its own format. The first four bytes are a type
195
- // tag, and the fifth is the length of the rest of the data, which is always exactly 33 bytes.
196
- if (aminoPubKey.length !== 38 ||
197
- aminoPubKey.readUInt32BE(0) !== 0xeb5ae987 ||
198
- aminoPubKey.readUInt8(4) !== 33) {
199
- throw new Error("Binance SDK returned public key in an incorrect format");
200
- }
201
- const pub_key = aminoPubKey.slice(5).toString("base64");
202
- return Object.assign({
203
- account_number: result.accountNumber,
204
- }, tx, {
205
- // msgs: result.msgs,
206
- signatures: {
207
- pub_key,
208
- signature,
209
- },
210
- serialized,
211
- txid: crypto_js_1.default.SHA256(crypto_js_1.default.enc.Hex.parse(serialized)).toString(),
212
- });
213
- }));
39
+ return class MixinNativeBinanceWallet extends Base {
40
+ _supportsBinance = true;
41
+ #masterKey;
42
+ async binanceInitializeWallet(masterKey) {
43
+ this.#masterKey = masterKey;
44
+ }
45
+ binanceWipe() {
46
+ this.#masterKey = undefined;
47
+ }
48
+ binanceBech32ify(address, prefix) {
49
+ const words = bech32.toWords(address);
50
+ return bech32.encode(prefix, words);
51
+ }
52
+ createBinanceAddress(publicKey, testnet) {
53
+ const message = CryptoJS.SHA256(CryptoJS.enc.Hex.parse(publicKey));
54
+ const hash = CryptoJS.RIPEMD160(message).toString();
55
+ const address = Buffer.from(hash, `hex`);
56
+ return this.binanceBech32ify(address, `${testnet ? "t" : ""}bnb`);
57
+ }
58
+ async binanceGetAddress(msg) {
59
+ return this.needsMnemonic(!!this.#masterKey, async () => {
60
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
61
+ const keyPair = await util.getKeyPair(this.#masterKey, msg.addressNList, "binance");
62
+ return this.createBinanceAddress(keyPair.publicKey.toString("hex"), msg.testnet ?? false);
63
+ });
64
+ }
65
+ async binanceSignTx(msg) {
66
+ return this.needsMnemonic(!!this.#masterKey, async () => {
67
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
68
+ const keyPair = await util.getKeyPair(this.#masterKey, msg.addressNList, "binance");
69
+ const tx = Object.assign({}, msg.tx);
70
+ if (!tx.data)
71
+ tx.data = null;
72
+ if (!tx.memo)
73
+ tx.memo = "";
74
+ if (!tx.sequence)
75
+ tx.sequence = "0";
76
+ if (!tx.source)
77
+ tx.source = "0";
78
+ const client = new (await bnbSdk).BncClient(msg.testnet ? "https://testnet-dex.binance.org" : "https://dex.binance.org"); // broadcast not used but available
79
+ await client.chooseNetwork(msg.testnet ? "testnet" : "mainnet");
80
+ const haveAccountNumber = !!msg.tx.account_number && Number.isInteger(Number(msg.tx.account_number));
81
+ if (haveAccountNumber)
82
+ await client.setAccountNumber(Number(msg.tx.account_number));
83
+ client.setSigningDelegate(await Isolation.Adapters.Binance.create(keyPair.node));
84
+ await client.initChain();
85
+ if (!tx.chain_id) {
86
+ const { chainId } = client;
87
+ if (!chainId)
88
+ throw new Error("unable to load chain id");
89
+ tx.chain_id = chainId;
90
+ }
91
+ if (!tx.account_number) {
92
+ const { account_number } = client;
93
+ if (account_number)
94
+ tx.account_number = account_number.toString();
95
+ }
96
+ if (tx.msgs?.length !== 1 ||
97
+ tx.msgs[0].inputs?.length !== 1 ||
98
+ tx.msgs[0].inputs[0].coins?.length !== 1 ||
99
+ tx.msgs[0].outputs?.length !== 1 ||
100
+ tx.msgs[0].outputs[0].coins?.length !== 1)
101
+ throw new Error("malformed or unsupported tx message");
102
+ const addressTo = tx.msgs[0].outputs[0].address;
103
+ const addressFrom = tx.msgs[0].inputs[0].address;
104
+ const addressFromVerify = this.createBinanceAddress(keyPair.publicKey.toString("hex"), !!msg.testnet);
105
+ if (addressFrom !== addressFromVerify)
106
+ throw Error("Invalid permissions to sign for address");
107
+ if (!tx.account_number) {
108
+ const { result, status } = core.mustBeDefined(await client.getAccount(addressFrom));
109
+ if (!(status === 200 && "account_number" in result && typeof result.account_number === "number"))
110
+ throw new Error("unable to load account number");
111
+ tx.account_number = result.account_number.toString();
112
+ }
113
+ // The Binance SDK takes amounts as decimal strings.
114
+ const amount = new BigNumber(tx.msgs[0].inputs[0].coins[0].amount);
115
+ if (!amount.isInteger())
116
+ throw new Error("amount must be an integer");
117
+ if (!amount.isEqualTo(tx.msgs[0].outputs[0].coins[0].amount))
118
+ throw new Error("amount in input and output must be equal");
119
+ const asset = tx.msgs[0].inputs[0].coins[0].denom;
120
+ if (asset !== tx.msgs[0].outputs[0].coins[0].denom)
121
+ throw new Error("denomination in input and output must be the same");
122
+ const result = (await client.transfer(addressFrom, addressTo, amount.shiftedBy(-8).toString(), asset, tx.memo, Number(tx.sequence) ?? null));
123
+ const serialized = result.serialize();
124
+ const aminoPubKey = result.signatures[0].pub_key;
125
+ const signature = Buffer.from(result.signatures[0].signature, "base64").toString("base64");
126
+ // The BNB SDK returns public keys serialized in its own format. The first four bytes are a type
127
+ // tag, and the fifth is the length of the rest of the data, which is always exactly 33 bytes.
128
+ if (aminoPubKey.length !== 38 ||
129
+ aminoPubKey.readUInt32BE(0) !== 0xeb5ae987 ||
130
+ aminoPubKey.readUInt8(4) !== 33) {
131
+ throw new Error("Binance SDK returned public key in an incorrect format");
132
+ }
133
+ const pub_key = aminoPubKey.slice(5).toString("base64");
134
+ return Object.assign({
135
+ account_number: result.accountNumber,
136
+ }, tx, {
137
+ // msgs: result.msgs,
138
+ signatures: {
139
+ pub_key,
140
+ signature,
141
+ },
142
+ serialized,
143
+ txid: CryptoJS.SHA256(CryptoJS.enc.Hex.parse(serialized)).toString(),
214
144
  });
215
- }
216
- },
217
- _MixinNativeBinanceWallet_masterKey = new WeakMap(),
218
- _a;
145
+ });
146
+ }
147
+ };
219
148
  }
220
- exports.MixinNativeBinanceWallet = MixinNativeBinanceWallet;
221
149
  //# sourceMappingURL=binance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"binance.js","sourceRoot":"","sources":["../src/binance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binance.js","sourceRoot":"","sources":["../src/binance.ts"],"names":[],"mappings":"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"}
package/dist/bitcoin.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import * as bitcoin from "@shapeshiftoss/bitcoinjs-lib";
3
2
  import * as core from "@shapeshiftoss/hdwallet-core";
4
3
  import * as Isolation from "./crypto/isolation";
@@ -35,7 +34,7 @@ export declare function MixinNativeBTCWalletInfo<TBase extends core.Constructor<
35
34
  hasOnDevicePassphrase(): boolean;
36
35
  hasOnDeviceDisplay(): boolean;
37
36
  hasOnDeviceRecovery(): boolean;
38
- hasNativeShapeShift(srcCoin: string, dstCoin: string): boolean;
37
+ hasNativeShapeShift(srcCoin: core.Coin, dstCoin: core.Coin): boolean;
39
38
  supportsBip44Accounts(): boolean;
40
39
  supportsOfflineSigning(): boolean;
41
40
  supportsBroadcast(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"bitcoin.d.ts","sourceRoot":"","sources":["../src/bitcoin.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AACxD,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAGrD,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAQ9C,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAE/E,KAAK,cAAc,GAAG,MAAM,CAAC;AAE7B,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,QAAQ,GAAG,cAAc,GAAG,WAAW,CAAC;AAE7C,KAAK,UAAU,GAAG;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAEtD,wBAAgB,wBAAwB,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK;;;kCAKzE,KAAK,IAAI,GAAG,OAAO;8BAIjB,KAAK,IAAI,GAAG,QAAQ,OAAO,CAAC;wCAIxB,KAAK,IAAI,eAAe,KAAK,kBAAkB,GAAG,OAAO;oCAevD,KAAK,IAAI,cAAc,KAAK,kBAAkB,GAAG,QAAQ,OAAO,CAAC;qCAIhE,QAAQ,OAAO,CAAC;uCAIpB,OAAO;gCAId,KAAK,kBAAkB,GAAG,MAAM,KAAK,cAAc,CAAC;8BA6BtD,MAAM,KAAK,cAAc,CAAC,GAAG,OAAO;gCAKlC,KAAK,cAAc,GAAG,KAAK,cAAc,GAAG,SAAS;;;;;;;;;;;;UAwBhF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAK;;;4BAKpF,UAAU,IAAI,CAAC,KAAK,KAAK,GAAG,SAAS;uCAEZ,UAAU,IAAI,CAAC,KAAK,KAAK,GAAG,QAAQ,IAAI,CAAC;mBAInE,IAAI;8BAIO,MAAM,eAAe,aAAa,YAAY,QAAQ,OAAO,GAAG,QAAQ,OAAO;kCAuB3E,KAAK,eAAe,MAAM,QAAQ,WAAW,GAAG,OAAO;yBA+C1D,KAAK,IAAI,SAAS,KAAK,oBAAoB,GAAG,QAAQ,SAAS,GAAG,IAAI,CAAC;2BA6CrE,KAAK,aAAa,GAAG,QAAQ,MAAM,GAAG,IAAI,CAAC;uBAW/C,KAAK,eAAe,GAAG,QAAQ,KAAK,WAAW,GAAG,IAAI,CAAC;4BAsGlD,KAAK,cAAc,GAAG,QAAQ,KAAK,gBAAgB,CAAC;8BAKlD,KAAK,gBAAgB,GAAG,QAAQ,OAAO,CAAC;;;;;;;;;;;;;;;UAIvE"}
1
+ {"version":3,"file":"bitcoin.d.ts","sourceRoot":"","sources":["../src/bitcoin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AACxD,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAGrD,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAQ9C,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAE/E,KAAK,cAAc,GAAG,MAAM,CAAC;AAE7B,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,QAAQ,GAAG,cAAc,GAAG,WAAW,CAAC;AAE7C,KAAK,UAAU,GAAG;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAEtD,wBAAgB,wBAAwB,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK;;;kCAKzE,IAAI,CAAC,IAAI,GAAG,OAAO;8BAIjB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;wCAIxB,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,kBAAkB,GAAG,OAAO;oCAevD,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;qCAIhE,OAAO,CAAC,OAAO,CAAC;uCAIpB,OAAO;gCAId,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;8BA6BtD,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,OAAO;gCAKlC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,SAAS;;;;;;;;;;;;UAwBhF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAK;;;4BAKpF,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS;uCAEZ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;mBAInE,IAAI;8BAIO,MAAM,eAAe,aAAa,YAAY,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;kCAuB3E,IAAI,CAAC,eAAe,MAAM,OAAO,CAAC,WAAW,GAAG,OAAO;yBA+C1D,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;2BA6CrE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;uBAW/C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;4BAsGlD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;8BAKlD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;;0BAjTlD,KAAM,YAAY,GAAE,KAAO,eAAc;;UAqT9D"}