@shapeshiftoss/hdwallet-native 1.50.8 → 1.50.9

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 (228) hide show
  1. package/dist/adapter.d.ts +1 -1
  2. package/dist/adapter.d.ts.map +1 -1
  3. package/dist/adapter.js +5 -1
  4. package/dist/adapter.js.map +1 -1
  5. package/dist/arkeo.js +5 -1
  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 +14 -10
  10. package/dist/binance.js.map +1 -1
  11. package/dist/bitcoin.d.ts +9 -9
  12. package/dist/bitcoin.d.ts.map +1 -1
  13. package/dist/bitcoin.js +10 -6
  14. package/dist/bitcoin.js.map +1 -1
  15. package/dist/cosmos.js +5 -1
  16. package/dist/cosmos.js.map +1 -1
  17. package/dist/crypto/CryptoHelper.js +6 -2
  18. package/dist/crypto/CryptoHelper.js.map +1 -1
  19. package/dist/crypto/EncryptedWallet.js +5 -1
  20. package/dist/crypto/EncryptedWallet.js.map +1 -1
  21. package/dist/crypto/classes/cipherString.js +6 -6
  22. package/dist/crypto/classes/cipherString.js.map +1 -1
  23. package/dist/crypto/classes/encryptionType.js +1 -1
  24. package/dist/crypto/classes/encryptionType.js.map +1 -1
  25. package/dist/crypto/classes/symmetricCryptoKey.js +3 -3
  26. package/dist/crypto/classes/symmetricCryptoKey.js.map +1 -1
  27. package/dist/crypto/engines/index.js +5 -1
  28. package/dist/crypto/engines/index.js.map +1 -1
  29. package/dist/crypto/engines/types.js +1 -1
  30. package/dist/crypto/engines/types.js.map +1 -1
  31. package/dist/crypto/engines/web-crypto.js +5 -1
  32. package/dist/crypto/engines/web-crypto.js.map +1 -1
  33. package/dist/crypto/index.js +5 -1
  34. package/dist/crypto/index.js.map +1 -1
  35. package/dist/crypto/isolation/adapters/binance.d.ts +1 -1
  36. package/dist/crypto/isolation/adapters/binance.d.ts.map +1 -1
  37. package/dist/crypto/isolation/adapters/binance.js +5 -1
  38. package/dist/crypto/isolation/adapters/binance.js.map +1 -1
  39. package/dist/crypto/isolation/adapters/bip32.d.ts +1 -1
  40. package/dist/crypto/isolation/adapters/bip32.d.ts.map +1 -1
  41. package/dist/crypto/isolation/adapters/bip32.js +6 -2
  42. package/dist/crypto/isolation/adapters/bip32.js.map +1 -1
  43. package/dist/crypto/isolation/adapters/bitcoin.d.ts +9 -9
  44. package/dist/crypto/isolation/adapters/bitcoin.d.ts.map +1 -1
  45. package/dist/crypto/isolation/adapters/bitcoin.js +7 -3
  46. package/dist/crypto/isolation/adapters/bitcoin.js.map +1 -1
  47. package/dist/crypto/isolation/adapters/cosmosDirect.js +5 -1
  48. package/dist/crypto/isolation/adapters/cosmosDirect.js.map +1 -1
  49. package/dist/crypto/isolation/adapters/ethereum.js +7 -3
  50. package/dist/crypto/isolation/adapters/ethereum.js.map +1 -1
  51. package/dist/crypto/isolation/adapters/fio.d.ts +1 -1
  52. package/dist/crypto/isolation/adapters/fio.d.ts.map +1 -1
  53. package/dist/crypto/isolation/adapters/fio.js +6 -2
  54. package/dist/crypto/isolation/adapters/fio.js.map +1 -1
  55. package/dist/crypto/isolation/core/bip32/index.d.ts.map +1 -1
  56. package/dist/crypto/isolation/core/bip32/index.js +6 -2
  57. package/dist/crypto/isolation/core/bip32/index.js.map +1 -1
  58. package/dist/crypto/isolation/core/bip32/interfaces.js +5 -1
  59. package/dist/crypto/isolation/core/bip32/interfaces.js.map +1 -1
  60. package/dist/crypto/isolation/core/bip32/types.d.ts +2 -2
  61. package/dist/crypto/isolation/core/bip32/types.d.ts.map +1 -1
  62. package/dist/crypto/isolation/core/bip32/types.js +2 -2
  63. package/dist/crypto/isolation/core/bip32/types.js.map +1 -1
  64. package/dist/crypto/isolation/core/bip39/index.js +5 -1
  65. package/dist/crypto/isolation/core/bip39/index.js.map +1 -1
  66. package/dist/crypto/isolation/core/digest/index.js +5 -1
  67. package/dist/crypto/isolation/core/digest/index.js.map +1 -1
  68. package/dist/crypto/isolation/core/digest/types.d.ts +8 -8
  69. package/dist/crypto/isolation/core/digest/types.d.ts.map +1 -1
  70. package/dist/crypto/isolation/core/digest/types.js +10 -10
  71. package/dist/crypto/isolation/core/digest/types.js.map +1 -1
  72. package/dist/crypto/isolation/core/index.js +5 -1
  73. package/dist/crypto/isolation/core/index.js.map +1 -1
  74. package/dist/crypto/isolation/core/secp256k1/index.js +5 -1
  75. package/dist/crypto/isolation/core/secp256k1/index.js.map +1 -1
  76. package/dist/crypto/isolation/core/secp256k1/types.d.ts +14 -14
  77. package/dist/crypto/isolation/core/secp256k1/types.d.ts.map +1 -1
  78. package/dist/crypto/isolation/core/secp256k1/types.js +39 -35
  79. package/dist/crypto/isolation/core/secp256k1/types.js.map +1 -1
  80. package/dist/crypto/isolation/engines/default/bip32.js +21 -17
  81. package/dist/crypto/isolation/engines/default/bip32.js.map +1 -1
  82. package/dist/crypto/isolation/engines/default/bip39.js +8 -4
  83. package/dist/crypto/isolation/engines/default/bip39.js.map +1 -1
  84. package/dist/crypto/isolation/engines/default/index.js +5 -1
  85. package/dist/crypto/isolation/engines/default/index.js.map +1 -1
  86. package/dist/crypto/isolation/engines/default/revocable.js +2 -2
  87. package/dist/crypto/isolation/engines/default/revocable.js.map +1 -1
  88. package/dist/crypto/isolation/engines/dummy/bip32.js +10 -6
  89. package/dist/crypto/isolation/engines/dummy/bip32.js.map +1 -1
  90. package/dist/crypto/isolation/engines/dummy/bip39.js +9 -5
  91. package/dist/crypto/isolation/engines/dummy/bip39.js.map +1 -1
  92. package/dist/crypto/isolation/engines/dummy/index.js +5 -1
  93. package/dist/crypto/isolation/engines/dummy/index.js.map +1 -1
  94. package/dist/crypto/isolation/engines/dummy/types.d.ts +1 -1
  95. package/dist/crypto/isolation/engines/dummy/types.d.ts.map +1 -1
  96. package/dist/crypto/isolation/engines/index.js +5 -1
  97. package/dist/crypto/isolation/engines/index.js.map +1 -1
  98. package/dist/crypto/isolation/index.js +5 -1
  99. package/dist/crypto/isolation/index.js.map +1 -1
  100. package/dist/crypto/isolation/types.d.ts +18 -18
  101. package/dist/crypto/isolation/types.d.ts.map +1 -1
  102. package/dist/crypto/isolation/types.js +5 -5
  103. package/dist/crypto/isolation/types.js.map +1 -1
  104. package/dist/ethereum.js +6 -2
  105. package/dist/ethereum.js.map +1 -1
  106. package/dist/fio.js +8 -4
  107. package/dist/fio.js.map +1 -1
  108. package/dist/index.js +5 -1
  109. package/dist/index.js.map +1 -1
  110. package/dist/kava.js +5 -1
  111. package/dist/kava.js.map +1 -1
  112. package/dist/native.d.ts +1 -1
  113. package/dist/native.d.ts.map +1 -1
  114. package/dist/native.js +10 -6
  115. package/dist/native.js.map +1 -1
  116. package/dist/networks.js +5 -1
  117. package/dist/networks.js.map +1 -1
  118. package/dist/osmosis.js +5 -1
  119. package/dist/osmosis.js.map +1 -1
  120. package/dist/secret.js +5 -1
  121. package/dist/secret.js.map +1 -1
  122. package/dist/terra.js +5 -1
  123. package/dist/terra.js.map +1 -1
  124. package/dist/thorchain.js +5 -1
  125. package/dist/thorchain.js.map +1 -1
  126. package/dist/util.js +6 -2
  127. package/dist/util.js.map +1 -1
  128. package/package.json +7 -11
  129. package/dist/adapter.test.d.ts +0 -2
  130. package/dist/adapter.test.d.ts.map +0 -1
  131. package/dist/adapter.test.js +0 -56
  132. package/dist/adapter.test.js.map +0 -1
  133. package/dist/arkeo.test.d.ts +0 -2
  134. package/dist/arkeo.test.d.ts.map +0 -1
  135. package/dist/arkeo.test.js +0 -101
  136. package/dist/arkeo.test.js.map +0 -1
  137. package/dist/binance.test.d.ts +0 -2
  138. package/dist/binance.test.d.ts.map +0 -1
  139. package/dist/binance.test.js +0 -297
  140. package/dist/binance.test.js.map +0 -1
  141. package/dist/bitcoin.test.d.ts +0 -2
  142. package/dist/bitcoin.test.d.ts.map +0 -1
  143. package/dist/bitcoin.test.js +0 -392
  144. package/dist/bitcoin.test.js.map +0 -1
  145. package/dist/cosmos.test.d.ts +0 -2
  146. package/dist/cosmos.test.d.ts.map +0 -1
  147. package/dist/cosmos.test.js +0 -105
  148. package/dist/cosmos.test.js.map +0 -1
  149. package/dist/crypto/CryptoHelper.test.d.ts +0 -2
  150. package/dist/crypto/CryptoHelper.test.d.ts.map +0 -1
  151. package/dist/crypto/CryptoHelper.test.js +0 -192
  152. package/dist/crypto/CryptoHelper.test.js.map +0 -1
  153. package/dist/crypto/EncryptedWallet.test.d.ts +0 -2
  154. package/dist/crypto/EncryptedWallet.test.d.ts.map +0 -1
  155. package/dist/crypto/EncryptedWallet.test.js +0 -170
  156. package/dist/crypto/EncryptedWallet.test.js.map +0 -1
  157. package/dist/crypto/classes/cipherString.test.d.ts +0 -2
  158. package/dist/crypto/classes/cipherString.test.d.ts.map +0 -1
  159. package/dist/crypto/classes/cipherString.test.js +0 -54
  160. package/dist/crypto/classes/cipherString.test.js.map +0 -1
  161. package/dist/crypto/classes/symmetricCryptoKey.test.d.ts +0 -2
  162. package/dist/crypto/classes/symmetricCryptoKey.test.d.ts.map +0 -1
  163. package/dist/crypto/classes/symmetricCryptoKey.test.js +0 -41
  164. package/dist/crypto/classes/symmetricCryptoKey.test.js.map +0 -1
  165. package/dist/crypto/engines/web-crypto.test.d.ts +0 -2
  166. package/dist/crypto/engines/web-crypto.test.d.ts.map +0 -1
  167. package/dist/crypto/engines/web-crypto.test.js +0 -167
  168. package/dist/crypto/engines/web-crypto.test.js.map +0 -1
  169. package/dist/crypto/isolation/core/digest/index.test.d.ts +0 -2
  170. package/dist/crypto/isolation/core/digest/index.test.d.ts.map +0 -1
  171. package/dist/crypto/isolation/core/digest/index.test.js +0 -42
  172. package/dist/crypto/isolation/core/digest/index.test.js.map +0 -1
  173. package/dist/crypto/isolation/engines/default/index.test.d.ts +0 -2
  174. package/dist/crypto/isolation/engines/default/index.test.d.ts.map +0 -1
  175. package/dist/crypto/isolation/engines/default/index.test.js +0 -98
  176. package/dist/crypto/isolation/engines/default/index.test.js.map +0 -1
  177. package/dist/crypto/isolation/engines/dummy/index.test.d.ts +0 -2
  178. package/dist/crypto/isolation/engines/dummy/index.test.d.ts.map +0 -1
  179. package/dist/crypto/isolation/engines/dummy/index.test.js +0 -111
  180. package/dist/crypto/isolation/engines/dummy/index.test.js.map +0 -1
  181. package/dist/crypto/utils.test.d.ts +0 -2
  182. package/dist/crypto/utils.test.d.ts.map +0 -1
  183. package/dist/crypto/utils.test.js +0 -56
  184. package/dist/crypto/utils.test.js.map +0 -1
  185. package/dist/ethereum.test.d.ts +0 -2
  186. package/dist/ethereum.test.d.ts.map +0 -1
  187. package/dist/ethereum.test.js +0 -281
  188. package/dist/ethereum.test.js.map +0 -1
  189. package/dist/fio.test.d.ts +0 -2
  190. package/dist/fio.test.d.ts.map +0 -1
  191. package/dist/fio.test.js +0 -281
  192. package/dist/fio.test.js.map +0 -1
  193. package/dist/index.test.d.ts +0 -2
  194. package/dist/index.test.d.ts.map +0 -1
  195. package/dist/index.test.js +0 -31
  196. package/dist/index.test.js.map +0 -1
  197. package/dist/kava.test.d.ts +0 -2
  198. package/dist/kava.test.d.ts.map +0 -1
  199. package/dist/kava.test.js +0 -87
  200. package/dist/kava.test.js.map +0 -1
  201. package/dist/native.test.d.ts +0 -2
  202. package/dist/native.test.d.ts.map +0 -1
  203. package/dist/native.test.js +0 -472
  204. package/dist/native.test.js.map +0 -1
  205. package/dist/networks.test.d.ts +0 -2
  206. package/dist/networks.test.d.ts.map +0 -1
  207. package/dist/networks.test.js +0 -28
  208. package/dist/networks.test.js.map +0 -1
  209. package/dist/osmosis.test.d.ts +0 -2
  210. package/dist/osmosis.test.d.ts.map +0 -1
  211. package/dist/osmosis.test.js +0 -105
  212. package/dist/osmosis.test.js.map +0 -1
  213. package/dist/secret.test.d.ts +0 -2
  214. package/dist/secret.test.d.ts.map +0 -1
  215. package/dist/secret.test.js +0 -86
  216. package/dist/secret.test.js.map +0 -1
  217. package/dist/terra.test.d.ts +0 -2
  218. package/dist/terra.test.d.ts.map +0 -1
  219. package/dist/terra.test.js +0 -86
  220. package/dist/terra.test.js.map +0 -1
  221. package/dist/thorchain.test.d.ts +0 -2
  222. package/dist/thorchain.test.d.ts.map +0 -1
  223. package/dist/thorchain.test.js +0 -100
  224. package/dist/thorchain.test.js.map +0 -1
  225. package/dist/util.test.d.ts +0 -2
  226. package/dist/util.test.d.ts.map +0 -1
  227. package/dist/util.test.js +0 -45
  228. package/dist/util.test.js.map +0 -1
@@ -1,392 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
- return new (P || (P = Promise))(function (resolve, reject) {
24
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
- step((generator = generator.apply(thisArg, _arguments || [])).next());
28
- });
29
- };
30
- var __importDefault = (this && this.__importDefault) || function (mod) {
31
- return (mod && mod.__esModule) ? mod : { "default": mod };
32
- };
33
- Object.defineProperty(exports, "__esModule", { value: true });
34
- const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
35
- const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
36
- const native = __importStar(require("./native"));
37
- const Networks = __importStar(require("./networks"));
38
- const MNEMONIC = "all all all all all all all all all all all all";
39
- const mswMock = require("mswMock")().startServer();
40
- afterEach(() => expect(mswMock).not.toHaveBeenCalled());
41
- const untouchable = require("untouchableMock");
42
- function benchmarkTx(inPath, inScriptType, inTxId, inVout, inAmount, inputExtra, outAddr, outAmount, outExtra = {}) {
43
- return Object.assign({ coin: "Bitcoin", inputs: [
44
- Object.assign({ addressNList: core.bip32ToAddressNList(inPath), scriptType: inScriptType, amount: inAmount, vout: inVout, txid: inTxId }, inputExtra),
45
- ], outputs: [
46
- {
47
- address: outAddr,
48
- addressType: core.BTCOutputAddressType.Spend,
49
- amount: outAmount,
50
- isChange: false,
51
- },
52
- ] }, outExtra);
53
- }
54
- // Funding Tx: https://api.blockcypher.com/v1/btc/main/txs/350eebc1012ce2339b71b5fca317a0d174abc3a633684bc65a71845deb596539?includeHex=true
55
- // Spending Tx: https://api.blockcypher.com/v1/btc/main/txs/1869cdbb3a86ab8b71a3e4a0d11135926b18f62bc0ebeb8e8a56635135616f00?includeHex=true
56
- const BIP44_BENCHMARK_TX_INPUT_TXID = "350eebc1012ce2339b71b5fca317a0d174abc3a633684bc65a71845deb596539";
57
- const BIP44_BENCHMARK_TX_INPUT_HEX = "0100000001ac941afec3d31edd772cf45647c2c97b25b1dbfbc0045a83ca3658942a155619010000006a47304402206c8e9ce1116842cb0ea8d1e2a07d930b3692ea36964251fc453cb0b51d281b5002203b493db783d69eaad775f3b0ee2a6855dffab3977fb68a3a34a1c067716f1fb2012103fa9122a96ca4223ab9518db03fb600bbb59de61dbd4b8ae587cd3e7b9f968764ffffffff02a0860100000000001976a914bc4c06f0e7da28b37ee22fc9c93e2bb7bd8f305c88ac20dac100000000001976a9143435bb2ebfe441f268fd5a7933f43f28d2a3dfe288ac00000000";
58
- const BIP44_BENCHMARK_TX_OUTPUT_ADDR = "1MCgrVZjXRJJJhi2Z6SR11GpRjCyvNjscY";
59
- const BIP44_BENCHMARK_TX_OUTPUT = "0100000001396559eb5d84715ac64b6833a6c3ab74d1a017a3fcb5719b33e22c01c1eb0e35000000006a47304402203b727eb80b3bac3b23bb88e8a22a77eb5232dd4bf079cb1520769a1eca88d96302201e36cf5919f17eb61ef87b8e5f1dc684df98a42f58e815f002b7dcc6c665ee0d012103c6d9cc725bb7e19c026df03bf693ee1171371a8eaf25f04b7a58f6befabcd38cffffffff01b8820100000000001976a914dd985beff82366763a5d86dd8c61b98d3f79590b88ac00000000";
60
- const BIP44_BENCHMARK_TX_OUTPUT_SIG = BIP44_BENCHMARK_TX_OUTPUT.slice(86, 86 + 140);
61
- const BIP44_BENCHMARK_TX = benchmarkTx("m/44'/0'/0'/0/0", "p2pkh", BIP44_BENCHMARK_TX_INPUT_TXID, 0, "100000", { hex: BIP44_BENCHMARK_TX_INPUT_HEX }, BIP44_BENCHMARK_TX_OUTPUT_ADDR, "99000");
62
- // Funding Tx: https://api.blockcypher.com/v1/btc/main/txs/918f59f7144fa389f66b6776e3417e1ec356214e18684050237acc056d5efbc1?includeHex=true
63
- // Spending Tx: https://api.blockcypher.com/v1/btc/main/txs/6e6ad85c99bfb6ed7c0fa3ec99af02dfcdb805aeda36674bbeb3960bfc6418ba?includeHex=true
64
- const BIP49_BENCHMARK_TX_INPUT_TXID = "918f59f7144fa389f66b6776e3417e1ec356214e18684050237acc056d5efbc1";
65
- // (We're not using it but this is real on-chain data we don't want to lose track of)
66
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
67
- const BIP49_BENCHMARK_TX_INPUT_HEX = "01000000015c4813fb3e0203e3bfa21420d62f88d2f89d39a63fde0f6ef2b08c406bda5f7f000000006a47304402205c9c26e213470dcb1c6b9399cb6cfda2c2dfece806ef10d6e5a889e39bc2e201022027d07373261478c4c43fa7044d6128f48a496cb8c97b93e4460887c664e0ef960121022a6e02f34ea72544c24f96cde286916d162de1f448396c62943b72ea16e6fb47ffffffff028f8011f8000000001976a914d32f4064914d28c30f5b309a73435588e0161f7b88ac2a5d00000000000017a914c9e193b1af9e4349d2ee53b4190e2bd36e59719e8700000000";
68
- const BIP49_BENCHMARK_TX_OUTPUT_ADDR = "1EC9SktW9Y4kS4iW48idshNg9eNeBdY5Xi";
69
- const BIP49_BENCHMARK_TX_OUTPUT = "01000000000101c1fb5e6d05cc7a23504068184e2156c31e7e41e376676bf689a34f14f7598f910100000017160014ef01be1e6c7709df95c0ed763aa3b845286bbe80ffffffff01a25c0000000000001976a91490b54270b8fb85ade07261e9edc99f96fd197de588ac02483045022100ee6c831ceb78d97d1e0c24d0de62a4e87494a436157a7f2291065523f3f673f9022055b24caa363a8c51a7ed9dce546e25aefbcf9af7a08f2ed63a3bf37c9978c167012102f770feae292b5b3f41d8c81220c2568cb73eb8042def35e648dfe048e4b41b1100000000";
70
- const BIP49_BENCHMARK_TX_OUTPUT_SIG = BIP49_BENCHMARK_TX_OUTPUT.slice(216, 216 + 144);
71
- const BIP49_BENCHMARK_TX = benchmarkTx("m/49'/0'/0'/0/0", "p2sh-p2wpkh", BIP49_BENCHMARK_TX_INPUT_TXID, 1, "23850", {
72
- // Using tx.vout instead of hex tests another code path
73
- /*hex: BIP49_BENCHMARK_TX_INPUT_HEX,*/
74
- tx: {
75
- vout: [undefined, { scriptPubKey: { hex: "a914c9e193b1af9e4349d2ee53b4190e2bd36e59719e87" } }],
76
- },
77
- }, BIP49_BENCHMARK_TX_OUTPUT_ADDR, "23714");
78
- // Funding Tx: https://api.blockcypher.com/v1/btc/main/txs/fa80a9949f1094119195064462f54d0e0eabd3139becd4514ae635b8c7fe3a46?includeHex=true
79
- // Spending Tx: https://api.blockcypher.com/v1/btc/main/txs/7e58757f43015242c0efa29447bea4583336f2358fdff587b52bbe040ad8982a?includeHex=true
80
- const BIP84_BENCHMARK_TX_INPUT_TXID = "fa80a9949f1094119195064462f54d0e0eabd3139becd4514ae635b8c7fe3a46";
81
- const BIP84_BENCHMARK_TX_INPUT_HEX = "01000000000101360d7a720e95a6068678eb08e91b3a8a4774222c9f34becf57d0dc4329e0a686000000001716001495f41f5c0e0ec2c7fe27f0ac4bd59a5632a40b5fffffffff02d224000000000000160014ece6935b2a5a5b5ff997c87370b16fa10f16441088ba04000000000017a914dfe58cc93d35fb99e15436f47d3bbfce820328068702483045022100f312e8246e6a00d21fd762f12231c5fb7a20094a32940b9a84e28d712a5ced9b02203b9124d7a94aa7eb1e090ceda32e884511d7068b8d47593aa46537900e3e37d40121037e8bf05c6c7223cfba3ea484ecd61ee910ae38609ea89b4a4839beed2186b3fb00000000";
82
- const BIP84_BENCHMARK_TX_OUTPUT_ADDR = "36JkLACrdxARqXXffZk91V9W6SJvghKaVK";
83
- const BIP84_BENCHMARK_TX_OUTPUT = "01000000000101463afec7b835e64a51d4ec9b13d3ab0e0e4df562440695911194109f94a980fa0000000000ffffffff01611900000000000017a91432a276261d6f084fa46917300b6be8848853211187024730440220200b1192c3d49338678bdb30678fa270720e7ff1de4f45d5340a0cb7fbf8f2de02202457250ae49f088fc9d9663db8c92db4606dc25b098874ed7bb548d3002c346f01210396070f2813933502e907c011ae7ba928683a9c2f0e888dae7ebd2c41120ee6b500000000";
84
- const BIP84_BENCHMARK_TX_OUTPUT_SIG = BIP84_BENCHMARK_TX_OUTPUT.slice(166, 166 + 142);
85
- const BIP84_BENCHMARK_TX = benchmarkTx("m/84'/0'/0'/0/0", "p2wpkh", BIP84_BENCHMARK_TX_INPUT_TXID, 0, "9426", { hex: BIP84_BENCHMARK_TX_INPUT_HEX }, BIP84_BENCHMARK_TX_OUTPUT_ADDR, "6497");
86
- // Funding Tx: https://api.blockcypher.com/v1/btc/main/txs/799a8923515e0303b15dda074b8341b2cf5efab946fce0d68a6614f32a8fc935?includeHex=true
87
- // Spending Tx: https://api.blockcypher.com/v1/btc/main/txs/8841a6007c2a01376260c3dfa1469d5f215de310aaed72e0a300c88ecc9d11b9?includeHex=true
88
- const OP_RETURN_BENCHMARK_TX_INPUT_TXID = "799a8923515e0303b15dda074b8341b2cf5efab946fce0d68a6614f32a8fc935";
89
- const OP_RETURN_BENCHMARK_TX_INPUT_HEX = "01000000000102303a686b8bca00ebb484919f11addd3b2787cc26e1b2d3cd0f12af83623a3c210100000017160014838e24a1d99c435bde880e4dbc283c7ae1f7859cffffffff30b2fba7ee86f9de44bda798b70e7118e671e5ab8dc499da23b62156d46362510000000017160014e4540cd724d36d6dc3fa913f9fc4b476ff6aad13ffffffff023075000000000000160014ece6935b2a5a5b5ff997c87370b16fa10f1644104e0f00000000000017a9146d24979924837c0699c8abc91fe02907f2b992a48702483045022100ab0d3ad7fee9a20dac59fa70a4f6156ef9f725c841406ee722724e4d1084048302206a091bc9758b9205fc3c53f355e81c20d0d52cbaa17445865e56bd576c107eac012102cf98f208e8d659bd49127013a80d8ffb43931b8ebfad65fe0292ca48593ed31c02473044022070c0adba6d23521d8583d59769f7ec448c2188cc2bff6d16ab47ad02c10dc37e02204527a6c46f52782fe79e2a5964bafdd4ecd56c3d59e2bd42aaf907dcdef34a76012103c5412363b7a052398d213c79895f0d00f3237b86a354267697b75530664c0fce00000000";
90
- const OP_RETURN_BENCHMARK_TX_OUTPUT_ADDR = "38hU3uzGmB5ST37DW8SwvdhiWE7zvZPsyf";
91
- const OP_RETURN_BENCHMARK_TX_OUTPUT = "0100000000010135c98f2af314668ad6e0fc46b9fa5ecfb241834b07da5db103035e5123899a790000000000ffffffff02a86100000000000017a9144cdeb0b5d429c2589fef2d6d088fce317f8dac44870000000000000000086a06666f6f62617202483045022100eb59a33fd25396ba5494aefb2a37be5c1956718815bd9404800ac274c2c937da02202a3b5e9796a1c8fc03be3a01bc0cdfb56b1002658b45abd7ca4a7d18bad3b9c101210396070f2813933502e907c011ae7ba928683a9c2f0e888dae7ebd2c41120ee6b500000000";
92
- const OP_RETURN_BENCHMARK_TX_OUTPUT_SIG = OP_RETURN_BENCHMARK_TX_OUTPUT.slice(200, 200 + 144);
93
- const OP_RETURN_BENCHMARK_TX = benchmarkTx("m/84'/0'/0'/0/0", "p2wpkh", OP_RETURN_BENCHMARK_TX_INPUT_TXID, 0, "30000", { hex: OP_RETURN_BENCHMARK_TX_INPUT_HEX }, OP_RETURN_BENCHMARK_TX_OUTPUT_ADDR, "25000", { opReturnData: "foobar" });
94
- describe("NativeBTCWalletInfo", () => {
95
- const info = native.info();
96
- it("should return some static metadata", () => __awaiter(void 0, void 0, void 0, function* () {
97
- expect(info["btcSupportsNetwork"]).not.toBeDefined();
98
- expect(yield untouchable.call(info, "btcSupportsSecureTransfer")).toBe(false);
99
- expect(untouchable.call(info, "btcSupportsNativeShapeShift")).toBe(false);
100
- }));
101
- it("should return some dynamic metadata", () => __awaiter(void 0, void 0, void 0, function* () {
102
- expect(yield info.btcSupportsCoin("bitcoin")).toBe(true);
103
- expect(yield info.btcSupportsCoin("bitcoincash")).toBe(true);
104
- expect(yield info.btcSupportsScriptType("bitcoin", "p2pkh")).toBe(true);
105
- expect(yield info.btcSupportsScriptType("bitcoin", "p2sh")).toBe(true);
106
- expect(yield info.btcSupportsScriptType("bitcoin", "p2wpkh")).toBe(true);
107
- expect(yield info.btcSupportsScriptType("bitcoin", "p2sh-p2wpkh")).toBe(true);
108
- expect(yield info.btcSupportsScriptType("bitcoin", "bech32")).toBe(true);
109
- expect(yield info.btcSupportsScriptType("bitcoin", "cashaddr")).toBe(false);
110
- expect(yield info.btcSupportsScriptType("bitcoincash", "cashaddr")).toBe(false);
111
- expect(yield info.btcSupportsScriptType("bitcoin", "foobar")).toBe(false);
112
- expect(yield info.btcSupportsScriptType("foobar", "p2pkh")).toBe(false);
113
- }));
114
- it("should not do anything when btcIsSameAccount is called", () => __awaiter(void 0, void 0, void 0, function* () {
115
- expect(untouchable.call(info, "btcIsSameAccount", [])).toBe(false);
116
- }));
117
- it.each([
118
- [
119
- "an undefined scriptType",
120
- "Bitcoin",
121
- undefined,
122
- 0,
123
- [
124
- {
125
- coin: "Bitcoin",
126
- scriptType: "p2pkh",
127
- addressNList: core.bip32ToAddressNList("m/44'/0'/0'"),
128
- },
129
- {
130
- coin: "Bitcoin",
131
- scriptType: "p2sh-p2wpkh",
132
- addressNList: core.bip32ToAddressNList("m/49'/0'/0'"),
133
- },
134
- {
135
- coin: "Bitcoin",
136
- scriptType: "p2wpkh",
137
- addressNList: core.bip32ToAddressNList("m/84'/0'/0'"),
138
- },
139
- ],
140
- ],
141
- [
142
- "BIP44",
143
- "Bitcoin",
144
- "p2pkh",
145
- 1337,
146
- [
147
- {
148
- coin: "Bitcoin",
149
- scriptType: "p2pkh",
150
- addressNList: core.bip32ToAddressNList("m/44'/0'/1337'"),
151
- },
152
- ],
153
- ],
154
- [
155
- "BIP49",
156
- "Bitcoin",
157
- "p2sh-p2wpkh",
158
- 1337,
159
- [
160
- {
161
- coin: "Bitcoin",
162
- scriptType: "p2sh-p2wpkh",
163
- addressNList: core.bip32ToAddressNList("m/49'/0'/1337'"),
164
- },
165
- ],
166
- ],
167
- [
168
- "BIP84",
169
- "Bitcoin",
170
- "p2wpkh",
171
- 1337,
172
- [
173
- {
174
- coin: "Bitcoin",
175
- scriptType: "p2wpkh",
176
- addressNList: core.bip32ToAddressNList("m/84'/0'/1337'"),
177
- },
178
- ],
179
- ],
180
- ])("should return the correct account paths for %s", (_, coin, scriptType, accountIdx, out) => {
181
- expect(info.btcGetAccountPaths({ coin, scriptType, accountIdx })).toMatchObject(out);
182
- });
183
- it("should not return any account paths for a bad coin type", () => {
184
- expect(info.btcGetAccountPaths({
185
- coin: "foobar",
186
- accountIdx: 0,
187
- })).toMatchObject([]);
188
- });
189
- describe("btcNextAccountPath", () => {
190
- it.each([
191
- ["BIP44", "Bitcoin", "p2pkh", "m/44'/0'/0'", "m/44'/0'/1'"],
192
- ["BIP44", "Bitcoin", "p2pkh", "m/44'/0'/1337'", "m/44'/0'/1338'"],
193
- ["BIP49", "Bitcoin", "p2sh-p2wpkh", "m/49'/0'/0'", "m/49'/0'/1'"],
194
- ["BIP84", "Bitcoin", "p2wpkh", "m/84'/0'/0'", "m/84'/0'/1'"],
195
- ["Bitcoin Cash", "BitcoinCash", "p2pkh", "m/44'/145'/1337'", "m/44'/145'/1338'"],
196
- ])("should work for %s", (_, coin, scriptType, inPath, outPath) => {
197
- expect(info.btcNextAccountPath({
198
- coin,
199
- scriptType,
200
- addressNList: core.bip32ToAddressNList(inPath),
201
- })).toMatchObject({
202
- coin,
203
- scriptType,
204
- addressNList: core.bip32ToAddressNList(outPath),
205
- });
206
- });
207
- it.each([
208
- ["BIP44 with p2sh-p2wpkh scripts", "Bitcoin", "p2sh-p2wpkh", "m/44'/0'/0'"],
209
- ["BIP44 with p2wpkh scripts", "Bitcoin", "p2wpkh", "m/44'/0'/0'"],
210
- ["BIP49 with p2pkh scripts", "Bitcoin", "p2pkh", "m/49'/0'/0'"],
211
- ["BIP49 with p2wpkh scripts", "Bitcoin", "p2wpkh", "m/49'/0'/0'"],
212
- ["BIP84 with p2pkh scripts", "Bitcoin", "p2pkh", "m/84'/0'/0'"],
213
- ["BIP84 with p2sh-p2wpkh scripts", "Bitcoin", "p2sh-p2wpkh", "m/84'/0'/0'"],
214
- ["an unrecognized path", "Bitcoin", "p2pkh", "m/1337'/0'/0'"],
215
- ["a lowercase coin name", "bitcoin", "p2pkh", "m/44'/0'/0'"],
216
- ["a bad coin name", "foobar", "p2pkh", "m/44'/0'/0'"],
217
- ["a bad script type name", "Bitcoin", "foobar", "m/44'/0'/0'"],
218
- ])("should not work for %s", (_, coin, scriptType, path) => {
219
- expect(info.btcNextAccountPath({
220
- coin,
221
- scriptType,
222
- addressNList: core.bip32ToAddressNList(path),
223
- })).toBeUndefined();
224
- });
225
- it.each([
226
- ["BIP44", "m/44'/0'/0'/0/0", "p2pkh"],
227
- ["BIP49", "m/49'/0'/0'/0/0", "p2sh-p2wpkh"],
228
- ["BIP84", "m/84'/0'/0'/0/0", "p2wpkh"],
229
- ])("should not work for a %s path with an unrecognized purpose field", (_, path, scriptType) => {
230
- const mock = jest
231
- .spyOn(core, "describeUTXOPath")
232
- .mockReturnValue(core.describeUTXOPath(core.bip32ToAddressNList(path), "Bitcoin", scriptType));
233
- expect(info.btcNextAccountPath({
234
- coin: "Bitcoin",
235
- scriptType,
236
- addressNList: core.bip32ToAddressNList("m/1337'/0'/0'/0/0"),
237
- })).toBeUndefined();
238
- mock.mockRestore();
239
- });
240
- });
241
- });
242
- describe("NativeBTCWallet", () => {
243
- let wallet;
244
- beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
245
- wallet = native.create({ deviceId: "native" });
246
- yield wallet.loadDevice({ mnemonic: MNEMONIC });
247
- expect(yield wallet.initialize()).toBe(true);
248
- }));
249
- it.each([
250
- [
251
- "BIP44",
252
- "Bitcoin",
253
- "p2pkh",
254
- [
255
- ["m/44'/0'/0'/0/0", "1JAd7XCBzGudGpJQSDSfpmJhiygtLQWaGL"],
256
- ["m/44'/0'/1337'/123/4", "12EgVaC3wL5rVczoMfTwJWpZ2v783cptjs"],
257
- ],
258
- ],
259
- [
260
- "BIP49",
261
- "Bitcoin",
262
- "p2sh-p2wpkh",
263
- [
264
- ["m/49'/0'/0'/0/0", "3L6TyTisPBmrDAj6RoKmDzNnj4eQi54gD2"],
265
- ["m/49'/0'/1337'/123/4", "3CXezZxPpvNMriYWXUHYuxAByUXpANWMzb"],
266
- ],
267
- ],
268
- [
269
- "BIP84",
270
- "Bitcoin",
271
- "p2wpkh",
272
- [
273
- ["m/84'/0'/0'/0/0", "bc1qannfxke2tfd4l7vhepehpvt05y83v3qsf6nfkk"],
274
- ["m/84'/0'/1337'/123/4", "bc1q9sjm947kn2hz84syykmem7dshvevm8xm5dkrpg"],
275
- ],
276
- ],
277
- [
278
- "Bitcoin Cash",
279
- "BitcoinCash",
280
- // maybe "cashaddr" should work here, but it doesn't.
281
- "p2pkh",
282
- [
283
- ["m/44'/145'/0'/0/0", "bitcoincash:qr08q88p9etk89wgv05nwlrkm4l0urz4cyl36hh9sv"],
284
- ["m/44'/145'/1337'/123/4", "bitcoincash:qzrgv3veuqtu9g345w3hz8kwx796ty6vuu7hqstryu"],
285
- ],
286
- ],
287
- ])("should generate correct %s addresses", (_, coin, scriptType, addrSpec) => __awaiter(void 0, void 0, void 0, function* () {
288
- for (const [path, addr] of addrSpec) {
289
- expect(yield wallet.btcGetAddress({ coin, scriptType, addressNList: core.bip32ToAddressNList(path) })).toBe(addr);
290
- }
291
- }));
292
- it("does not support p2sh addresses", () => __awaiter(void 0, void 0, void 0, function* () {
293
- yield expect(wallet.btcGetAddress({
294
- coin: "Bitcoin",
295
- scriptType: "p2sh",
296
- addressNList: core.bip32ToAddressNList("m/44'/0'/0'/0/0"),
297
- })).rejects.toThrowErrorMatchingInlineSnapshot(`"Not enough data"`);
298
- }));
299
- it("should not generate addresses for bad script types", () => __awaiter(void 0, void 0, void 0, function* () {
300
- const mock = jest.spyOn(Networks, "getNetwork").mockReturnValue(Networks.getNetwork("bitcoin", "p2pkh"));
301
- yield expect(wallet.btcGetAddress({
302
- coin: "Bitcoin",
303
- scriptType: "foobar",
304
- addressNList: core.bip32ToAddressNList("m/44'/0'/0'/0/0"),
305
- })).rejects.toThrowError("no implementation for script type");
306
- mock.mockRestore();
307
- }));
308
- it("should sign a BIP44 transaction correctly", () => __awaiter(void 0, void 0, void 0, function* () {
309
- const input = BIP44_BENCHMARK_TX;
310
- const out = yield wallet.btcSignTx(input);
311
- expect(out === null || out === void 0 ? void 0 : out.signatures).toMatchObject([BIP44_BENCHMARK_TX_OUTPUT_SIG]);
312
- expect(out === null || out === void 0 ? void 0 : out.serializedTx).toBe(BIP44_BENCHMARK_TX_OUTPUT);
313
- }));
314
- it("should sign a BIP49 transaction correctly", () => __awaiter(void 0, void 0, void 0, function* () {
315
- const input = BIP49_BENCHMARK_TX;
316
- const out = yield wallet.btcSignTx(input);
317
- expect(out === null || out === void 0 ? void 0 : out.signatures).toMatchObject([BIP49_BENCHMARK_TX_OUTPUT_SIG]);
318
- expect(out === null || out === void 0 ? void 0 : out.serializedTx).toBe(BIP49_BENCHMARK_TX_OUTPUT);
319
- }));
320
- it("should sign a BIP84 transaction correctly", () => __awaiter(void 0, void 0, void 0, function* () {
321
- const input = BIP84_BENCHMARK_TX;
322
- const out = yield wallet.btcSignTx(input);
323
- expect(out === null || out === void 0 ? void 0 : out.signatures).toMatchObject([BIP84_BENCHMARK_TX_OUTPUT_SIG]);
324
- expect(out === null || out === void 0 ? void 0 : out.serializedTx).toBe(BIP84_BENCHMARK_TX_OUTPUT);
325
- }));
326
- it("should sign a BIP84 transaction with an OP_RETURN message correctly", () => __awaiter(void 0, void 0, void 0, function* () {
327
- const input = OP_RETURN_BENCHMARK_TX;
328
- const out = yield wallet.btcSignTx(input);
329
- expect(out === null || out === void 0 ? void 0 : out.signatures).toMatchObject([OP_RETURN_BENCHMARK_TX_OUTPUT_SIG]);
330
- expect(out === null || out === void 0 ? void 0 : out.serializedTx).toBe(OP_RETURN_BENCHMARK_TX_OUTPUT);
331
- }));
332
- it("should not sign a transaction without having the raw input transaction", () => __awaiter(void 0, void 0, void 0, function* () {
333
- const input = cloneDeep_1.default(BIP44_BENCHMARK_TX);
334
- delete input.inputs[0].hex;
335
- yield expect(wallet.btcSignTx(input)).rejects.toThrowError("must provide prev rawTx");
336
- }));
337
- it("should sign a transaction with a locktime correctly", () => __awaiter(void 0, void 0, void 0, function* () {
338
- const input = Object.assign({ locktime: 338841 }, BIP44_BENCHMARK_TX);
339
- const locktimeBuf = Buffer.alloc(4);
340
- locktimeBuf.writeUInt32LE(input["locktime"]);
341
- const locktimeHex = locktimeBuf.toString("hex");
342
- const out = yield wallet.btcSignTx(input);
343
- const sigHex = "3044022006e609c8a9bedb7088d46140ab5f54a1a2023bc49b44cdf8fa147a181974b39702203e159bd869d8ccc85468856d9165cfc5df1885a8d8f1ebeaaaa5b8211f6317af";
344
- expect(out === null || out === void 0 ? void 0 : out.signatures).toMatchObject([sigHex]);
345
- expect(out === null || out === void 0 ? void 0 : out.serializedTx).toBe(`${BIP44_BENCHMARK_TX_OUTPUT.slice(0, 86)}${sigHex}${BIP44_BENCHMARK_TX_OUTPUT.slice(-156, -8)}${locktimeHex}`);
346
- }));
347
- it("should automatically set the output address for a transaction", () => __awaiter(void 0, void 0, void 0, function* () {
348
- const input = Object.assign(Object.assign({}, BIP44_BENCHMARK_TX), { outputs: [
349
- {
350
- addressNList: core.bip32ToAddressNList("m/44'/0'/0'/0/1"),
351
- scriptType: core.BTCOutputScriptType.PayToAddress,
352
- amount: "99000",
353
- isChange: false,
354
- },
355
- ] });
356
- const out = yield wallet.btcSignTx(input);
357
- expect(out === null || out === void 0 ? void 0 : out.signatures[0]).toMatchInlineSnapshot(`"3045022100b5971b81e1da04beec2ebe58b909953119b57490581de23e55721832b70c361a022038478c5a5036026fab419ccdae380143b6f14c379186dafa2a7e04735808aa1f"`);
358
- expect(out === null || out === void 0 ? void 0 : out.serializedTx).toMatchInlineSnapshot(`"0100000001396559eb5d84715ac64b6833a6c3ab74d1a017a3fcb5719b33e22c01c1eb0e35000000006b483045022100b5971b81e1da04beec2ebe58b909953119b57490581de23e55721832b70c361a022038478c5a5036026fab419ccdae380143b6f14c379186dafa2a7e04735808aa1f012103c6d9cc725bb7e19c026df03bf693ee1171371a8eaf25f04b7a58f6befabcd38cffffffff01b8820100000000001976a91402eea9ab5f88d829c501760bec348a5baa55cf3888ac00000000"`);
359
- }));
360
- it("should not automatically set the output address for a transaction requesting an invalid scriptType", () => __awaiter(void 0, void 0, void 0, function* () {
361
- const input = Object.assign(Object.assign({}, BIP44_BENCHMARK_TX), { outputs: [
362
- {
363
- addressNList: core.bip32ToAddressNList("m/44'/0'/0'/0/1"),
364
- scriptType: "foobar",
365
- amount: "99000",
366
- isChange: false,
367
- },
368
- ] });
369
- yield expect(wallet.btcSignTx(input)).rejects.toThrowError("failed to add output");
370
- }));
371
- it("should not sign a transaction with the wrong key", () => __awaiter(void 0, void 0, void 0, function* () {
372
- const input = cloneDeep_1.default(BIP44_BENCHMARK_TX);
373
- input.inputs[0].addressNList = core.bip32ToAddressNList("m/44'/0'/1337'/123/4");
374
- yield expect(wallet.btcSignTx(input)).rejects.toThrowError("Can not sign for this input");
375
- }));
376
- it("doesn't support signing messages", () => __awaiter(void 0, void 0, void 0, function* () {
377
- yield expect(wallet.btcSignMessage({
378
- coin: "Bitcoin",
379
- addressNList: core.bip32ToAddressNList("m/44'/0'/0'/0/0"),
380
- message: "foobar",
381
- })).rejects.toThrowError("not implemented");
382
- }));
383
- it("doesn't support verifying messages", () => __awaiter(void 0, void 0, void 0, function* () {
384
- yield expect(wallet.btcVerifyMessage({
385
- coin: "Bitcoin",
386
- address: "1JAd7XCBzGudGpJQSDSfpmJhiygtLQWaGL",
387
- message: "foo",
388
- signature: "bar",
389
- })).rejects.toThrowError("not implemented");
390
- }));
391
- });
392
- //# sourceMappingURL=bitcoin.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bitcoin.test.js","sourceRoot":"","sources":["../src/bitcoin.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cosmos.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cosmos.test.d.ts","sourceRoot":"","sources":["../src/cosmos.test.ts"],"names":[],"mappings":""}
@@ -1,105 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
- return new (P || (P = Promise))(function (resolve, reject) {
24
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
- step((generator = generator.apply(thisArg, _arguments || [])).next());
28
- });
29
- };
30
- Object.defineProperty(exports, "__esModule", { value: true });
31
- const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
32
- const native = __importStar(require("./native"));
33
- const MNEMONIC = "all all all all all all all all all all all all";
34
- const mswMock = require("mswMock")().startServer();
35
- afterEach(() => expect(mswMock).not.toHaveBeenCalled());
36
- const untouchable = require("untouchableMock");
37
- describe("NativeCosmosWalletInfo", () => {
38
- const info = native.info();
39
- it("should return some static metadata", () => __awaiter(void 0, void 0, void 0, function* () {
40
- expect(yield untouchable.call(info, "cosmosSupportsNetwork")).toBe(true);
41
- expect(yield untouchable.call(info, "cosmosSupportsSecureTransfer")).toBe(false);
42
- expect(untouchable.call(info, "cosmosSupportsNativeShapeShift")).toBe(false);
43
- }));
44
- it("should return the correct account paths", () => __awaiter(void 0, void 0, void 0, function* () {
45
- const paths = info.cosmosGetAccountPaths({ accountIdx: 0 });
46
- expect(paths).toMatchObject([{ addressNList: core.bip32ToAddressNList("m/44'/118'/0'/0/0") }]);
47
- }));
48
- it("does not support getting the next account path", () => __awaiter(void 0, void 0, void 0, function* () {
49
- expect(untouchable.call(info, "cosmosNextAccountPath", {})).toBe(undefined);
50
- }));
51
- });
52
- describe("NativeCosmosWallet", () => {
53
- let wallet;
54
- beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
55
- wallet = native.create({ deviceId: "native" });
56
- yield wallet.loadDevice({ mnemonic: MNEMONIC });
57
- expect(yield wallet.initialize()).toBe(true);
58
- }));
59
- it("should generate a correct cosmos address", () => __awaiter(void 0, void 0, void 0, function* () {
60
- expect(yield wallet.cosmosGetAddress({ addressNList: core.bip32ToAddressNList("m/44'/118'/0'/0/0") })).toBe("cosmos1knuunh0lmwyrkjmrj7sky49uxk3peyzhzsvqqf");
61
- }));
62
- it("should generate another correct cosmos address", () => __awaiter(void 0, void 0, void 0, function* () {
63
- expect(yield wallet.cosmosGetAddress({ addressNList: core.bip32ToAddressNList("m/44'/118'/1337'/123/4") })).toBe("cosmos14k4dnrrmxdch6nkvvuugsywrgmvlwrqszjfxjt");
64
- }));
65
- it("should sign a transaction correctly", () => __awaiter(void 0, void 0, void 0, function* () {
66
- var _a, _b;
67
- const signed = yield wallet.cosmosSignTx({
68
- addressNList: core.bip32ToAddressNList("m/44'/118'/0'/0/0"),
69
- tx: {
70
- msg: [
71
- {
72
- type: "cosmos-sdk/MsgSend",
73
- value: {
74
- from_address: "cosmos1knuunh0lmwyrkjmrj7sky49uxk3peyzhzsvqqf",
75
- to_address: "cosmos1knuunh0lmwyrkjmrj7sky49uxk3peyzhzsvqqf",
76
- amount: [
77
- {
78
- denom: "uatom",
79
- amount: "1000",
80
- },
81
- ],
82
- },
83
- },
84
- ],
85
- fee: {
86
- amount: [
87
- {
88
- amount: "100",
89
- denom: "uatom",
90
- },
91
- ],
92
- gas: "100000",
93
- },
94
- signatures: [],
95
- memo: "foobar",
96
- },
97
- chain_id: "cosmoshub-4",
98
- account_number: "16359",
99
- sequence: "17",
100
- });
101
- yield expect((_a = signed === null || signed === void 0 ? void 0 : signed.signatures) === null || _a === void 0 ? void 0 : _a.length).toBe(1);
102
- yield expect((_b = signed === null || signed === void 0 ? void 0 : signed.signatures) === null || _b === void 0 ? void 0 : _b[0]).toMatchInlineSnapshot(`"B3KXc4pbANu4orFqVB9sWHXSqKXfU3oaH4rN7P3By9tmNEIw7+i8IBXMqaT1VDReehtK+krK02tDRhpFZIW7Iw=="`);
103
- }));
104
- });
105
- //# sourceMappingURL=cosmos.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cosmos.test.js","sourceRoot":"","sources":["../src/cosmos.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=CryptoHelper.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CryptoHelper.test.d.ts","sourceRoot":"","sources":["../../src/crypto/CryptoHelper.test.ts"],"names":[],"mappings":""}