@shapeshiftoss/hdwallet-native 1.50.7 → 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,281 +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 ethers = __importStar(require("ethers"));
33
- const native = __importStar(require("./native"));
34
- const MNEMONIC = "all all all all all all all all all all all all";
35
- const mswMock = require("mswMock")().startServer();
36
- afterEach(() => expect(mswMock).not.toHaveBeenCalled());
37
- const untouchable = require("untouchableMock");
38
- describe("NativeETHWalletInfo", () => {
39
- const info = native.info();
40
- it("should return some static metadata", () => __awaiter(void 0, void 0, void 0, function* () {
41
- expect(yield untouchable.call(info, "ethSupportsNetwork")).toBe(true);
42
- expect(yield untouchable.call(info, "ethSupportsSecureTransfer")).toBe(false);
43
- expect(untouchable.call(info, "ethSupportsNativeShapeShift")).toBe(false);
44
- }));
45
- it("should return the correct account paths", () => __awaiter(void 0, void 0, void 0, function* () {
46
- const paths = info.ethGetAccountPaths({ coin: "Ethereum", accountIdx: 0 });
47
- expect(paths).toMatchObject([
48
- {
49
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
50
- hardenedPath: core.bip32ToAddressNList("m/44'/60'/0'"),
51
- relPath: [0, 0],
52
- description: "Native",
53
- },
54
- ]);
55
- }));
56
- it("should return the correct account paths for other coin", () => __awaiter(void 0, void 0, void 0, function* () {
57
- const avalanchePaths = info.ethGetAccountPaths({ coin: "Avalanche", accountIdx: 0 });
58
- expect(avalanchePaths).toMatchObject([
59
- {
60
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
61
- hardenedPath: core.bip32ToAddressNList("m/44'/60'/0'"),
62
- relPath: [0, 0],
63
- description: "Native",
64
- },
65
- ]);
66
- const optimismPaths = info.ethGetAccountPaths({ coin: "Optimism", accountIdx: 0 });
67
- expect(optimismPaths).toMatchObject([
68
- {
69
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
70
- hardenedPath: core.bip32ToAddressNList("m/44'/60'/0'"),
71
- relPath: [0, 0],
72
- description: "Native",
73
- },
74
- ]);
75
- const bscPaths = info.ethGetAccountPaths({ coin: "BnbSmartChain", accountIdx: 0 });
76
- expect(bscPaths).toMatchObject([
77
- {
78
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
79
- hardenedPath: core.bip32ToAddressNList("m/44'/60'/0'"),
80
- relPath: [0, 0],
81
- description: "Native",
82
- },
83
- ]);
84
- const polygonPaths = info.ethGetAccountPaths({ coin: "Polygon", accountIdx: 0 });
85
- expect(polygonPaths).toMatchObject([
86
- {
87
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
88
- hardenedPath: core.bip32ToAddressNList("m/44'/60'/0'"),
89
- relPath: [0, 0],
90
- description: "Native",
91
- },
92
- ]);
93
- const gnosisPaths = info.ethGetAccountPaths({ coin: "Gnosis", accountIdx: 0 });
94
- expect(gnosisPaths).toMatchObject([
95
- {
96
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
97
- hardenedPath: core.bip32ToAddressNList("m/44'/60'/0'"),
98
- relPath: [0, 0],
99
- description: "Native",
100
- },
101
- ]);
102
- const arbitrumPaths = info.ethGetAccountPaths({ coin: "Arbitrum", accountIdx: 0 });
103
- expect(arbitrumPaths).toMatchObject([
104
- {
105
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
106
- hardenedPath: core.bip32ToAddressNList("m/44'/60'/0'"),
107
- relPath: [0, 0],
108
- description: "Native",
109
- },
110
- ]);
111
- }));
112
- it("does not support getting the next account path", () => __awaiter(void 0, void 0, void 0, function* () {
113
- expect(untouchable.call(info, "ethNextAccountPath", {})).toBe(undefined);
114
- }));
115
- });
116
- describe("NativeETHWallet", () => {
117
- let wallet;
118
- beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
119
- wallet = native.create({ deviceId: "native" });
120
- yield wallet.loadDevice({ mnemonic: MNEMONIC });
121
- expect(yield wallet.initialize()).toBe(true);
122
- }));
123
- it("should generate a correct ethereum address", () => __awaiter(void 0, void 0, void 0, function* () {
124
- expect(yield wallet.ethGetAddress({ addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0") })).toBe("0x73d0385F4d8E00C5e6504C6030F47BF6212736A8");
125
- }));
126
- it("should generate another correct ethereum address at account 1", () => __awaiter(void 0, void 0, void 0, function* () {
127
- expect(yield wallet.ethGetAddress({ addressNList: core.bip32ToAddressNList("m/44'/60'/1'/0/0") })).toBe("0xeDe5D356020A0aA3DC3fCAf0d899b5c63d7eA4aa");
128
- }));
129
- it("should sign a legacy transaction correctly", () => __awaiter(void 0, void 0, void 0, function* () {
130
- const sig = yield wallet.ethSignTx({
131
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
132
- nonce: "0xDEADBEEF",
133
- gasPrice: "0xDEADBEEF",
134
- gasLimit: "0xDEADBEEF",
135
- to: "0xDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEF",
136
- value: "0xDEADBEEFDEADBEEFDEADBEEFDEADBEEF",
137
- data: "0xDEADBEEFDEADBEEFDEADBEEFDEADBEEF",
138
- chainId: 1,
139
- });
140
- // This is the output from tiny-secp256k1.
141
- expect(sig).toMatchInlineSnapshot(`
142
- Object {
143
- "r": "0x7f21bb5a857db55c888355b2e48325062268ad62686fba56a4e57118f5783dda",
144
- "s": "0x3e9893ed500842506a19288eb022b5f5b3cee6d1bbf6330f4304f60f8166f82a",
145
- "serialized": "0xf88984deadbeef84deadbeef84deadbeef94deadbeefdeadbeefdeadbeefdeadbeefdeadbeef90deadbeefdeadbeefdeadbeefdeadbeef90deadbeefdeadbeefdeadbeefdeadbeef26a07f21bb5a857db55c888355b2e48325062268ad62686fba56a4e57118f5783ddaa03e9893ed500842506a19288eb022b5f5b3cee6d1bbf6330f4304f60f8166f82a",
146
- "v": 38,
147
- }
148
- `);
149
- // This is the output of the native library's own signing function.
150
- /*expect(sig).toMatchInlineSnapshot(`
151
- Object {
152
- "r": "0xec482d7dfc3bfaf395b72dd1de692ab57c24134fb0bea39e986b16a4ad422d2f",
153
- "s": "0x505506a0fb590d7ef63c24e9ae684eef608a6f48914d7cce762164d8c0a6fb29",
154
- "serialized": "0xf88984deadbeef84deadbeef84deadbeef94deadbeefdeadbeefdeadbeefdeadbeefdeadbeef90deadbeefdeadbeefdeadbeefdeadbeef90deadbeefdeadbeefdeadbeefdeadbeef26a0ec482d7dfc3bfaf395b72dd1de692ab57c24134fb0bea39e986b16a4ad422d2fa0505506a0fb590d7ef63c24e9ae684eef608a6f48914d7cce762164d8c0a6fb29",
155
- "v": 38,
156
- }
157
- `);*/
158
- expect(ethers.utils.parseTransaction(sig.serialized).from).toEqual("0x73d0385F4d8E00C5e6504C6030F47BF6212736A8");
159
- }));
160
- it("should sign a EIP-1559 transaction correctly", () => __awaiter(void 0, void 0, void 0, function* () {
161
- const sig = yield wallet.ethSignTx({
162
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
163
- nonce: "0xCAFEDEAD",
164
- gasLimit: "0xCAFEDEAD",
165
- maxFeePerGas: "0xCAFEDEAD",
166
- maxPriorityFeePerGas: "0xCAFEDEAD",
167
- to: "0xCAFEDEADCAFEDEADCAFEDEADCAFEDEADCAFEDEAD",
168
- value: "0xCAFEDEADCAFEDEADCAFEDEADCAFEDEAD",
169
- data: "0xCAFEDEADCAFEDEADCAFEDEADCAFEDEAD",
170
- chainId: 1,
171
- });
172
- console.debug("SIG: ", sig);
173
- // This is the output from tiny-secp256k1.
174
- expect(sig).toMatchInlineSnapshot(`
175
- Object {
176
- "r": "0x7a2efa71aa876ede546fdfa83054050b6249a8076297451b2a711e6b0f460234",
177
- "s": "0x1880e95e79fed382b85077de63d83e787158c8a89839c786465139952cb04a74",
178
- "serialized": "0x02f8900184cafedead84cafedead84cafedead84cafedead94cafedeadcafedeadcafedeadcafedeadcafedead90cafedeadcafedeadcafedeadcafedead90cafedeadcafedeadcafedeadcafedeadc080a07a2efa71aa876ede546fdfa83054050b6249a8076297451b2a711e6b0f460234a01880e95e79fed382b85077de63d83e787158c8a89839c786465139952cb04a74",
179
- "v": 0,
180
- }
181
- `);
182
- // This is the output of the native library's own signing function.
183
- /*expect(sig).toMatchInlineSnapshot(`
184
- Object {
185
- "r": "0xec482d7dfc3bfaf395b72dd1de692ab57c24134fb0bea39e986b16a4ad422d2f",
186
- "s": "0x505506a0fb590d7ef63c24e9ae684eef608a6f48914d7cce762164d8c0a6fb29",
187
- "serialized": "0xf88984deadbeef84deadbeef84deadbeef94deadbeefdeadbeefdeadbeefdeadbeefdeadbeef90deadbeefdeadbeefdeadbeefdeadbeef90deadbeefdeadbeefdeadbeefdeadbeef26a0ec482d7dfc3bfaf395b72dd1de692ab57c24134fb0bea39e986b16a4ad422d2fa0505506a0fb590d7ef63c24e9ae684eef608a6f48914d7cce762164d8c0a6fb29",
188
- "v": 38,
189
- }
190
- `);*/
191
- expect(ethers.utils.parseTransaction(sig.serialized).from).toEqual("0x73d0385F4d8E00C5e6504C6030F47BF6212736A8");
192
- }));
193
- describe("sign and verify message", () => {
194
- it("should handle a utf8 message", () => __awaiter(void 0, void 0, void 0, function* () {
195
- const message = "super secret message";
196
- const result = yield wallet.ethSignMessage({
197
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
198
- message,
199
- });
200
- if (!result)
201
- throw new Error("failed to sign message");
202
- expect(result).toEqual({
203
- address: "0x73d0385F4d8E00C5e6504C6030F47BF6212736A8",
204
- signature: "0x05f51140905ffa33ffdc57f46b0b8d8fbb1d2a99f8cd843ca27893c01c31351c08b76d83dce412731c846e3b50649724415deb522d00950fbf4f2c1459c2b70b1b",
205
- });
206
- const { address, signature } = result;
207
- const valid = yield wallet.ethVerifyMessage({ address, message, signature });
208
- expect(valid).toEqual(true);
209
- }));
210
- it("should handle a hex encoded utf8 message", () => __awaiter(void 0, void 0, void 0, function* () {
211
- const message = "0x737570657220736563726574206d657373616765";
212
- const result = yield wallet.ethSignMessage({
213
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
214
- message,
215
- });
216
- if (!result)
217
- throw new Error("failed to sign message");
218
- expect(result).toEqual({
219
- address: "0x73d0385F4d8E00C5e6504C6030F47BF6212736A8",
220
- signature: "0x05f51140905ffa33ffdc57f46b0b8d8fbb1d2a99f8cd843ca27893c01c31351c08b76d83dce412731c846e3b50649724415deb522d00950fbf4f2c1459c2b70b1b",
221
- });
222
- const { address, signature } = result;
223
- const valid = yield wallet.ethVerifyMessage({ address, message, signature });
224
- expect(valid).toEqual(true);
225
- }));
226
- it("should handle a keccak256 encoded message", () => __awaiter(void 0, void 0, void 0, function* () {
227
- const message = "0x55d6a11839e2105c96a87f358961004575bae1fe5acd80e26a5eb7e361b20903";
228
- const result = yield wallet.ethSignMessage({
229
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
230
- message,
231
- });
232
- if (!result)
233
- throw new Error("failed to sign message");
234
- expect(result).toEqual({
235
- address: "0x73d0385F4d8E00C5e6504C6030F47BF6212736A8",
236
- signature: "0x4b4d22773b4a761a2f4cbafb3054830dd1ebaffdc166b4736cf98f1d3dbb0abe31590d32797f55a9b9e77bc46b262dde59eca27c866ad9bb4d83f488d8f208b61c",
237
- });
238
- const { address, signature } = result;
239
- const valid = yield wallet.ethVerifyMessage({ address, message, signature });
240
- expect(valid).toEqual(true);
241
- }));
242
- it("should handle a byte message", () => __awaiter(void 0, void 0, void 0, function* () {
243
- const message = ethers.utils.arrayify("0xcf8746d5aa75ecfd907eb3cae0aecf7f698a8bfe1f97eb2d77d6539e8991b0ea");
244
- const result = yield wallet.ethSignMessage({
245
- addressNList: core.bip32ToAddressNList("m/44'/60'/0'/0/0"),
246
- message,
247
- });
248
- if (!result)
249
- throw new Error("failed to sign message");
250
- expect(result).toEqual({
251
- address: "0x73d0385F4d8E00C5e6504C6030F47BF6212736A8",
252
- signature: "0x3509a531d2e47f2b6a796d69b91568ad9ad2276f4d17399660192ef8cd6580db70dc16b6941f5ba97be926f3717a71c001778da68f9c9771375beb3f3aaa8eb31b",
253
- });
254
- const { address, signature } = result;
255
- const valid = yield wallet.ethVerifyMessage({ address, message, signature });
256
- expect(valid).toEqual(true);
257
- }));
258
- it("should pass verification of a message signed with a different format", () => __awaiter(void 0, void 0, void 0, function* () {
259
- expect(yield wallet.ethVerifyMessage({
260
- address: "0x73d0385F4d8E00C5e6504C6030F47BF6212736A8",
261
- message: "super secret message",
262
- signature: "0x72d4baca0c1ca0eea587decb0177ded99fb50f62c4bd24d8595000d70e6383833eb0700fb6c96086154c2607b735ee1047ed4060211b32a52b43d827615b3e691c",
263
- })).toBe(true);
264
- }));
265
- it("should fail verification of a mismatched message and signature", () => __awaiter(void 0, void 0, void 0, function* () {
266
- expect(yield wallet.ethVerifyMessage({
267
- address: "0x73d0385F4d8E00C5e6504C6030F47BF6212736A8",
268
- message: "super public message",
269
- signature: "0xd67ad52016d6fbc19fb9db81f32dd22cb67570b93b1c0e64ae30a4c2bc0b9c265c2d0f86906610d0cecac42ab90ee298a3474a5eb6d895aa7279d344f32aab191b",
270
- })).toBe(false);
271
- }));
272
- it("should fail verification if the signature is invalid", () => __awaiter(void 0, void 0, void 0, function* () {
273
- expect(yield wallet.ethVerifyMessage({
274
- address: "0x73d0385F4d8E00C5e6504C6030F47BF6212736A8",
275
- message: "super secret message",
276
- signature: "deadbeef16d6fbc19fb9db81f32dd22cb67570b93b1c0e64ae30a4c2bc0b9c265c2d0f86906610d0cecac42ab90ee298a3474a5eb6d895aa7279d344f32aab191b",
277
- })).toBe(false);
278
- }));
279
- });
280
- });
281
- //# sourceMappingURL=ethereum.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ethereum.test.js","sourceRoot":"","sources":["../src/ethereum.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=fio.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fio.test.d.ts","sourceRoot":"","sources":["../src/fio.test.ts"],"names":[],"mappings":""}
package/dist/fio.test.js DELETED
@@ -1,281 +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 fio = __importStar(require("@shapeshiftoss/fiosdk"));
32
- const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
33
- const bs58 = __importStar(require("bs58"));
34
- const tinyecc = __importStar(require("tiny-secp256k1"));
35
- const Isolation = __importStar(require("./crypto/isolation"));
36
- const native = __importStar(require("./native"));
37
- const MNEMONIC = "all all all all all all all all all all all all";
38
- const mswMock = require("mswMock")({
39
- get: {
40
- "https://fio.eu.eosamsterdam.net/v1/chain/get_info": {
41
- server_version: "0b30e123",
42
- chain_id: "21dcae42c0182200e93f954a074011f9048a7624c6fe81d3c9541a614a88bd1c",
43
- head_block_num: 61842307,
44
- last_irreversible_block_num: 61841978,
45
- last_irreversible_block_id: "03afa23a114cfee7ef1c7ca90e270422fe37396080738ece42391d9ef31440e8",
46
- head_block_id: "03afa38300f285879d00fe0f2f659f7a4b09d134dcd678ad12fc788dccf67952",
47
- head_block_time: "2021-03-18T00:05:14.000",
48
- head_block_producer: "aloha3joooqd",
49
- virtual_block_cpu_limit: 200000000,
50
- virtual_block_net_limit: 1048576000,
51
- block_cpu_limit: 199900,
52
- block_net_limit: 1048576,
53
- server_version_string: "v2.0.0",
54
- fork_db_head_block_num: 61842307,
55
- fork_db_head_block_id: "03afa38300f285879d00fe0f2f659f7a4b09d134dcd678ad12fc788dccf67952",
56
- },
57
- },
58
- post: {
59
- "https://fio.eu.eosamsterdam.net/v1/chain/get_block": {
60
- timestamp: "2021-03-18T00:02:29.500",
61
- producer: "sweidrpkehv2",
62
- confirmed: 0,
63
- previous: "03afa2397459431ac5325ceefccfc17168d96efa07198221a48dc7339e4cc265",
64
- transaction_mroot: "0000000000000000000000000000000000000000000000000000000000000000",
65
- action_mroot: "5ceb022b440279ec9943e07564aadfa82a3fadfccc9531510ae60c8d6e035d4e",
66
- schedule_version: 73,
67
- new_producers: null,
68
- header_extensions: [],
69
- producer_signature: "SIG_K1_KAJ9KUhQ94GWqPGmZ13rzHYbaR7kB3f4xaK73G24EEU82fMjboJTtBxZWk65Qdcy3iQimgeJ6bUWaSsU7kmmMMMFwb2fmR",
70
- transactions: [],
71
- block_extensions: [],
72
- id: "03afa23a114cfee7ef1c7ca90e270422fe37396080738ece42391d9ef31440e8",
73
- block_num: 61841978,
74
- ref_block_prefix: 2843483375,
75
- },
76
- "https://fio.eu.eosamsterdam.net/v1/chain/get_pub_address": (body) => {
77
- body = JSON.stringify(body);
78
- switch (body) {
79
- case '{"fio_address":"highlander@scatter","chain_code":"FIO","token_code":"FIO"}':
80
- return {
81
- public_address: "FIO6Lxx7BTA8zbgPuqn4QidNNdTCHisXU7RpxJxLwxAka7NV7SoBW",
82
- };
83
- case '{"fio_address":"test@shapeshift","chain_code":"FIO","token_code":"FIO"}':
84
- return {
85
- public_address: "FIO6iLE1J4zb2SyDGTH9d6UL9Qm6hhqRce27QvP8AKxVLASGhtm7z",
86
- };
87
- default:
88
- throw new Error(`unrecognized get_pub_address call: ${body}`);
89
- }
90
- },
91
- "https://fio.eu.eosamsterdam.net/v1/chain/get_raw_abi": (body) => {
92
- body = JSON.stringify(body);
93
- switch (body) {
94
- case '{"account_name":"fio.address"}':
95
- return {
96
- account_name: "fio.address",
97
- code_hash: "183b0410eb9d6071ca741a94da36502eab4d808ac60a6432cae1329ca86c2a64",
98
- abi_hash: "0dca0ca50be70bb04a84c2494e3eecdf72c083498a3acdbe0ed7ebc4a89d8ad9",
99
- abi: "DmVvc2lvOjphYmkvMS4wABMHZmlvbmFtZQAJAmlkBnVpbnQ2NARuYW1lBnN0cmluZwhuYW1laGFzaAd1aW50MTI4BmRvbWFpbgZzdHJpbmcKZG9tYWluaGFzaAd1aW50MTI4CmV4cGlyYXRpb24GdWludDY0DW93bmVyX2FjY291bnQEbmFtZQlhZGRyZXNzZXMOdG9rZW5wdWJhZGRyW10XYnVuZGxlZWxpZ2libGVjb3VudGRvd24GdWludDY0BmRvbWFpbgAGAmlkBnVpbnQ2NARuYW1lBnN0cmluZwpkb21haW5oYXNoB3VpbnQxMjgHYWNjb3VudARuYW1lCWlzX3B1YmxpYwV1aW50OApleHBpcmF0aW9uBnVpbnQ2NAplb3Npb19uYW1lAAMHYWNjb3VudARuYW1lCWNsaWVudGtleQZzdHJpbmcHa2V5aGFzaAd1aW50MTI4CnJlZ2FkZHJlc3MABQtmaW9fYWRkcmVzcwZzdHJpbmcUb3duZXJfZmlvX3B1YmxpY19rZXkGc3RyaW5nB21heF9mZWUFaW50NjQFYWN0b3IEbmFtZQR0cGlkBnN0cmluZwx0b2tlbnB1YmFkZHIAAwp0b2tlbl9jb2RlBnN0cmluZwpjaGFpbl9jb2RlBnN0cmluZw5wdWJsaWNfYWRkcmVzcwZzdHJpbmcKYWRkYWRkcmVzcwAFC2Zpb19hZGRyZXNzBnN0cmluZxBwdWJsaWNfYWRkcmVzc2VzDnRva2VucHViYWRkcltdB21heF9mZWUFaW50NjQFYWN0b3IEbmFtZQR0cGlkBnN0cmluZwpyZW1hZGRyZXNzAAULZmlvX2FkZHJlc3MGc3RyaW5nEHB1YmxpY19hZGRyZXNzZXMOdG9rZW5wdWJhZGRyW10HbWF4X2ZlZQVpbnQ2NAVhY3RvcgRuYW1lBHRwaWQGc3RyaW5nCnJlbWFsbGFkZHIABAtmaW9fYWRkcmVzcwZzdHJpbmcHbWF4X2ZlZQVpbnQ2NAVhY3RvcgRuYW1lBHRwaWQGc3RyaW5nCXJlZ2RvbWFpbgAFCmZpb19kb21haW4Gc3RyaW5nFG93bmVyX2Zpb19wdWJsaWNfa2V5BnN0cmluZwdtYXhfZmVlBWludDY0BWFjdG9yBG5hbWUEdHBpZAZzdHJpbmcLcmVuZXdkb21haW4ABApmaW9fZG9tYWluBnN0cmluZwdtYXhfZmVlBWludDY0BHRwaWQGc3RyaW5nBWFjdG9yBG5hbWUMcmVuZXdhZGRyZXNzAAQLZmlvX2FkZHJlc3MGc3RyaW5nB21heF9mZWUFaW50NjQEdHBpZAZzdHJpbmcFYWN0b3IEbmFtZQxzZXRkb21haW5wdWIABQpmaW9fZG9tYWluBnN0cmluZwlpc19wdWJsaWMEaW50OAdtYXhfZmVlBWludDY0BWFjdG9yBG5hbWUEdHBpZAZzdHJpbmcLYnVybmV4cGlyZWQAAAtkZWNyY291bnRlcgACC2Zpb19hZGRyZXNzBnN0cmluZwRzdGVwBWludDMyCmJpbmQyZW9zaW8AAwdhY2NvdW50BG5hbWUKY2xpZW50X2tleQZzdHJpbmcIZXhpc3RpbmcEYm9vbAtidXJuYWRkcmVzcwAEC2Zpb19hZGRyZXNzBnN0cmluZwdtYXhfZmVlBWludDY0BHRwaWQGc3RyaW5nBWFjdG9yBG5hbWUKeGZlcmRvbWFpbgAFCmZpb19kb21haW4Gc3RyaW5nGG5ld19vd25lcl9maW9fcHVibGljX2tleQZzdHJpbmcHbWF4X2ZlZQVpbnQ2NAVhY3RvcgRuYW1lBHRwaWQGc3RyaW5nC3hmZXJhZGRyZXNzAAULZmlvX2FkZHJlc3MGc3RyaW5nGG5ld19vd25lcl9maW9fcHVibGljX2tleQZzdHJpbmcHbWF4X2ZlZQVpbnQ2NAVhY3RvcgRuYW1lBHRwaWQGc3RyaW5nCmFkZGJ1bmRsZXMABQtmaW9fYWRkcmVzcwZzdHJpbmcLYnVuZGxlX3NldHMFaW50NjQHbWF4X2ZlZQVpbnQ2NAR0cGlkBnN0cmluZwVhY3RvcgRuYW1lDwCuylNTdJFKC2RlY3Jjb3VudGVyAAAAxuqmZJi6CnJlZ2FkZHJlc3MAAADG6qZkUjIKYWRkYWRkcmVzcwAAAMbqpmSkugpyZW1hZGRyZXNzAADATcnEaKS6CnJlbWFsbGFkZHIAAACYzkiamLoJcmVnZG9tYWluAACmM5Imrqa6C3JlbmV3ZG9tYWluAICxuikZrqa6DHJlbmV3YWRkcmVzcwAAkrqudjWvPgtidXJuZXhwaXJlZABwdJ3OSJqywgxzZXRkb21haW5wdWIAAAB1mCqRpjsKYmluZDJlb3NpbwAAMFY3JTOvPgtidXJuYWRkcmVzcwAAwHRG0nTV6gp4ZmVyZG9tYWluAAAwVjclc9XqC3hmZXJhZGRyZXNzAAAAVjFNfVIyCmFkZGJ1bmRsZXMAAwAAAFhJM6lbA2k2NAECaWQBBnN0cmluZwdmaW9uYW1lAAAAAE9nJE0DaTY0AQJpZAEGc3RyaW5nBmRvbWFpbgBANTJPTREyA2k2NAEHYWNjb3VudAEGdWludDY0CmVvc2lvX25hbWUAAAAA=",
100
- };
101
- case '{"account_name":"fio.fee"}':
102
- return {
103
- account_name: "fio.fee",
104
- code_hash: "564c5023ddd4916517fad8cf0fda502a1a8cd64af32f8a4a4c45b6d6ee60cda4",
105
- abi_hash: "63370fe617c23b9ffd714cf33ec3e67cfc4695dfcc9830c6aff8dbd9a6b3c56f",
106
- abi: "DmVvc2lvOjphYmkvMS4wAA4JY3JlYXRlZmVlAAMJZW5kX3BvaW50BnN0cmluZwR0eXBlBWludDY0CnN1Zl9hbW91bnQFaW50NjQIZmVldmFsdWUAAgllbmRfcG9pbnQGc3RyaW5nBXZhbHVlBWludDY0C2ZlZXZhbHVlX3RzAAMJZW5kX3BvaW50BnN0cmluZwV2YWx1ZQVpbnQ2NAl0aW1lc3RhbXAGdWludDY0CnNldGZlZXZvdGUAAwpmZWVfcmF0aW9zCmZlZXZhbHVlW10HbWF4X2ZlZQVpbnQ2NAVhY3RvcgRuYW1lCmJ1bmRsZXZvdGUAAxRidW5kbGVkX3RyYW5zYWN0aW9ucwVpbnQ2NAdtYXhfZmVlBWludDY0BWFjdG9yBG5hbWUKc2V0ZmVlbXVsdAADCm11bHRpcGxpZXIHZmxvYXQ2NAdtYXhfZmVlBWludDY0BWFjdG9yBG5hbWUMbWFuZGF0b3J5ZmVlAAMJZW5kX3BvaW50BnN0cmluZwdhY2NvdW50BG5hbWUHbWF4X2ZlZQVpbnQ2NAtieXRlbWFuZGZlZQAECWVuZF9wb2ludAZzdHJpbmcHYWNjb3VudARuYW1lB21heF9mZWUFaW50NjQIYnl0ZXNpemUFaW50NjQLY29tcHV0ZWZlZXMAAAZmaW9mZWUABgZmZWVfaWQGdWludDY0CWVuZF9wb2ludAZzdHJpbmcOZW5kX3BvaW50X2hhc2gHdWludDEyOAR0eXBlBnVpbnQ2NApzdWZfYW1vdW50BnVpbnQ2NA12b3Rlc19wZW5kaW5nBWJvb2wkCGZlZXZvdGVyAAMTYmxvY2tfcHJvZHVjZXJfbmFtZQRuYW1lDmZlZV9tdWx0aXBsaWVyB2Zsb2F0NjQRbGFzdHZvdGV0aW1lc3RhbXAGdWludDY0B2ZlZXZvdGUABgJpZAZ1aW50NjQTYmxvY2tfcHJvZHVjZXJfbmFtZQRuYW1lCWVuZF9wb2ludAZzdHJpbmcOZW5kX3BvaW50X2hhc2gHdWludDEyOApzdWZfYW1vdW50BnVpbnQ2NBFsYXN0dm90ZXRpbWVzdGFtcAZ1aW50NjQIZmVldm90ZTIABAJpZAZ1aW50NjQTYmxvY2tfcHJvZHVjZXJfbmFtZQRuYW1lCGZlZXZvdGVzDWZlZXZhbHVlX3RzW10RbGFzdHZvdGV0aW1lc3RhbXAGdWludDY0C2J1bmRsZXZvdGVyAAMTYmxvY2tfcHJvZHVjZXJfbmFtZQRuYW1lEmJ1bmRsZWRidm90ZW51bWJlcgZ1aW50NjQRbGFzdHZvdGV0aW1lc3RhbXAGdWludDY0BwAAUGqpbNRFCWNyZWF0ZWZlZQAAgMp0K7WywgpzZXRmZWV2b3RlAACAynSrmKY+CmJ1bmRsZXZvdGUAAECOWiq1ssIKc2V0ZmVlbXVsdACg1PKXZpOmkQxtYW5kYXRvcnlmZWUAAJRaaRqpsj8LYnl0ZW1hbmRmZWUAALBSS2VdJUULY29tcHV0ZWZlZXMABYCvynSrmKY+A2k2NAETYmxvY2tfcHJvZHVjZXJfbmFtZQEGdWludDY0C2J1bmRsZXZvdGVyAAAAACu1qFsDaTY0AQZmZWVfaWQBBnVpbnQ2NAZmaW9mZWUAAMBXZbqVWgNpNjQBE2Jsb2NrX3Byb2R1Y2VyX25hbWUBBnVpbnQ2NAhmZWV2b3RlcgAAAFhlupVaA2k2NAETYmxvY2tfcHJvZHVjZXJfbmFtZQEGdWludDY0B2ZlZXZvdGUAABBYZbqVWgNpNjQBE2Jsb2NrX3Byb2R1Y2VyX25hbWUBBnVpbnQ2NAhmZWV2b3RlMgAAAAA==",
107
- };
108
- case '{"account_name":"fio.reqobt"}':
109
- return {
110
- account_name: "fio.reqobt",
111
- code_hash: "cd54f179eb5913984af88cc589ec527396041bd63e2094ffb143c483e2f0c1da",
112
- abi_hash: "93118de6229f77f4213dc948674c4e11d462f573db821204224a73628b942ffd",
113
- abi: "DmVvc2lvOjphYmkvMS4wAAoKZmlvcmVxY3R4dAANDmZpb19yZXF1ZXN0X2lkBnVpbnQ2NBFwYXllcl9maW9fYWRkcmVzcwd1aW50MTI4EXBheWVlX2Zpb19hZGRyZXNzB3VpbnQxMjgZcGF5ZXJfZmlvX2FkZHJlc3NfaGV4X3N0cgZzdHJpbmcZcGF5ZWVfZmlvX2FkZHJlc3NfaGV4X3N0cgZzdHJpbmcbcGF5ZXJfZmlvX2FkZHJlc3Nfd2l0aF90aW1lB3VpbnQxMjgbcGF5ZWVfZmlvX2FkZHJlc3Nfd2l0aF90aW1lB3VpbnQxMjgHY29udGVudAZzdHJpbmcKdGltZV9zdGFtcAZ1aW50NjQOcGF5ZXJfZmlvX2FkZHIGc3RyaW5nDnBheWVlX2Zpb19hZGRyBnN0cmluZwlwYXllcl9rZXkGc3RyaW5nCXBheWVlX2tleQZzdHJpbmcOcmVjb3Jkb2J0X2luZm8ADQJpZAZ1aW50NjQRcGF5ZXJfZmlvX2FkZHJlc3MHdWludDEyOBFwYXllZV9maW9fYWRkcmVzcwd1aW50MTI4GXBheWVyX2Zpb19hZGRyZXNzX2hleF9zdHIGc3RyaW5nGXBheWVlX2Zpb19hZGRyZXNzX2hleF9zdHIGc3RyaW5nG3BheWVyX2Zpb19hZGRyZXNzX3dpdGhfdGltZQd1aW50MTI4G3BheWVlX2Zpb19hZGRyZXNzX3dpdGhfdGltZQd1aW50MTI4B2NvbnRlbnQGc3RyaW5nCnRpbWVfc3RhbXAGdWludDY0DnBheWVyX2Zpb19hZGRyBnN0cmluZw5wYXllZV9maW9fYWRkcgZzdHJpbmcJcGF5ZXJfa2V5BnN0cmluZwlwYXllZV9rZXkGc3RyaW5nCWZpb3JlcXN0cwAFAmlkBnVpbnQ2NA5maW9fcmVxdWVzdF9pZAZ1aW50NjQGc3RhdHVzBnVpbnQ2NAhtZXRhZGF0YQZzdHJpbmcKdGltZV9zdGFtcAZ1aW50NjQMZmlvdHJ4dF9pbmZvAA8CaWQGdWludDY0DmZpb19yZXF1ZXN0X2lkBnVpbnQ2NBJwYXllcl9maW9fYWRkcl9oZXgHdWludDEyOBJwYXllZV9maW9fYWRkcl9oZXgHdWludDEyOA1maW9fZGF0YV90eXBlBXVpbnQ4CHJlcV90aW1lBnVpbnQ2NA5wYXllcl9maW9fYWRkcgZzdHJpbmcOcGF5ZWVfZmlvX2FkZHIGc3RyaW5nCXBheWVyX2tleQZzdHJpbmcJcGF5ZWVfa2V5BnN0cmluZw1wYXllcl9hY2NvdW50BG5hbWUNcGF5ZWVfYWNjb3VudARuYW1lC3JlcV9jb250ZW50BnN0cmluZwtvYnRfY29udGVudAZzdHJpbmcIb2J0X3RpbWUGdWludDY0Cm1pZ3JsZWRnZXIABwJpZAZ1aW50NjQIYmVnaW5vYnQFaW50NjQKY3VycmVudG9idAVpbnQ2NAdiZWdpbnJxBWludDY0CWN1cnJlbnRycQVpbnQ2NApjdXJyZW50c3RhBWludDY0CmlzRmluaXNoZWQEaW50OAdtaWdydHJ4AAIGYW1vdW50BWludDE2BWFjdG9yBnN0cmluZwlyZWNvcmRvYnQABw5maW9fcmVxdWVzdF9pZAZzdHJpbmcRcGF5ZXJfZmlvX2FkZHJlc3MGc3RyaW5nEXBheWVlX2Zpb19hZGRyZXNzBnN0cmluZwdjb250ZW50BnN0cmluZwdtYXhfZmVlBWludDY0BWFjdG9yBnN0cmluZwR0cGlkBnN0cmluZwtuZXdmdW5kc3JlcQAGEXBheWVyX2Zpb19hZGRyZXNzBnN0cmluZxFwYXllZV9maW9fYWRkcmVzcwZzdHJpbmcHY29udGVudAZzdHJpbmcHbWF4X2ZlZQVpbnQ2NAVhY3RvcgZzdHJpbmcEdHBpZAZzdHJpbmcMcmVqZWN0Zm5kcmVxAAQOZmlvX3JlcXVlc3RfaWQGc3RyaW5nB21heF9mZWUFaW50NjQFYWN0b3IGc3RyaW5nBHRwaWQGc3RyaW5nDGNhbmNlbGZuZHJlcQAEDmZpb19yZXF1ZXN0X2lkBnN0cmluZwdtYXhfZmVlBWludDY0BWFjdG9yBnN0cmluZwR0cGlkBnN0cmluZwUAAACg33yZkwdtaWdydHJ4AAAAyIemS5G6CXJlY29yZG9idAAArLo4Tb24mgtuZXdmdW5kc3JlcQBg1U1zZaSeugxyZWplY3RmbmRyZXEAYNVNc0WFpkEMY2FuY2VsZm5kcmVxAAUAcO4ZWXWpWwNpNjQBDmZpb19yZXF1ZXN0X2lkAQZ1aW50NjQKZmlvcmVxY3R4dAAAzoemS5G6A2k2NAECaWQBBnVpbnQ2NA5yZWNvcmRvYnRfaW5mbwAAxhlbdalbA2k2NAECaWQBBnVpbnQ2NAlmaW9yZXFzdHMAAMA495upWwNpNjQBAmlkAQZ1aW50NjQMZmlvdHJ4dF9pbmZvAPBVLKl4mZMDaTY0AQJpZAEGdWludDY0Cm1pZ3JsZWRnZXIAAAAA=",
114
- };
115
- case '{"account_name":"fio.token"}':
116
- return {
117
- account_name: "fio.token",
118
- code_hash: "f20c3d91844682c1ac035fee1509f1c91a934122e372ac6df45594bb3f3f171e",
119
- abi_hash: "b368fbc363f0da588eea9c943b75caadffb881dcb4dc4f283bfee7a86c97850f",
120
- abi: "DmVvc2lvOjphYmkvMS4xAAoHYWNjb3VudAABB2JhbGFuY2UFYXNzZXQGY3JlYXRlAAEObWF4aW11bV9zdXBwbHkFYXNzZXQOY3VycmVuY3lfc3RhdHMAAwZzdXBwbHkFYXNzZXQKbWF4X3N1cHBseQVhc3NldAZpc3N1ZXIEbmFtZQVpc3N1ZQADAnRvBG5hbWUIcXVhbnRpdHkFYXNzZXQEbWVtbwZzdHJpbmcLbG9ja3BlcmlvZHMAAghkdXJhdGlvbgVpbnQ2NAdwZXJjZW50B2Zsb2F0NjQHbWludGZpbwACAnRvBG5hbWUGYW1vdW50BnVpbnQ2NAZyZXRpcmUAAghxdWFudGl0eQVhc3NldARtZW1vBnN0cmluZwh0cmFuc2ZlcgAEBGZyb20EbmFtZQJ0bwRuYW1lCHF1YW50aXR5BWFzc2V0BG1lbW8Gc3RyaW5nDHRybnNmaW9wdWJreQAFEHBheWVlX3B1YmxpY19rZXkGc3RyaW5nBmFtb3VudAVpbnQ2NAdtYXhfZmVlBWludDY0BWFjdG9yBG5hbWUEdHBpZAZzdHJpbmcLdHJuc2xvY3Rva3MABxBwYXllZV9wdWJsaWNfa2V5BnN0cmluZwhjYW5fdm90ZQVpbnQzMgdwZXJpb2RzDWxvY2twZXJpb2RzW10GYW1vdW50BWludDY0B21heF9mZWUFaW50NjQFYWN0b3IEbmFtZQR0cGlkBnN0cmluZwcAAAAAqGzURQZjcmVhdGUAAAAAAAClMXYFaXNzdWUAAAAAgLqVp5MHbWludGZpbwAAAAAAqOuyugZyZXRpcmUAAAAAVy08zc0IdHJhbnNmZXIA4OHRlbqF580MdHJuc2Zpb3B1Ymt5AAAwpBnRiOfNC3RybnNsb2N0b2tzAAIAAAA4T00RMgNpNjQAAAdhY2NvdW50AAAAAACQTcYDaTY0AAAOY3VycmVuY3lfc3RhdHMAAAAA=",
121
- };
122
- case '{"account_name":"eosio"}':
123
- return {
124
- account_name: "eosio",
125
- code_hash: "bf2cf9c963c483263e279d1a2f3f968a65a5c6db86af99bb9e5d7a2d2840cc12",
126
- abi_hash: "ead7a5cf52addda442d99acf5a35494f235330392b02c4ced3d4a09dd5a7602d",
127
- abi: "DmVvc2lvOjphYmkvMS4xADcIYWJpX2hhc2gAAgVvd25lcgRuYW1lBGhhc2gLY2hlY2tzdW0yNTYJYWRkYWN0aW9uAAMGYWN0aW9uBG5hbWUIY29udHJhY3QGc3RyaW5nBWFjdG9yBG5hbWUMYWRkZ2VubG9ja2VkAAQFb3duZXIEbmFtZQdwZXJpb2RzDWxvY2twZXJpb2RzW10HY2Fudm90ZQRib29sBmFtb3VudAVpbnQ2NAlhZGRsb2NrZWQAAwVvd25lcgRuYW1lBmFtb3VudAVpbnQ2NAhsb2NrdHlwZQVpbnQxNglhdXRob3JpdHkABAl0aHJlc2hvbGQGdWludDMyBGtleXMMa2V5X3dlaWdodFtdCGFjY291bnRzGXBlcm1pc3Npb25fbGV2ZWxfd2VpZ2h0W10Fd2FpdHMNd2FpdF93ZWlnaHRbXQxibG9ja19oZWFkZXIACAl0aW1lc3RhbXAGdWludDMyCHByb2R1Y2VyBG5hbWUJY29uZmlybWVkBnVpbnQxNghwcmV2aW91cwtjaGVja3N1bTI1NhF0cmFuc2FjdGlvbl9tcm9vdAtjaGVja3N1bTI1NgxhY3Rpb25fbXJvb3QLY2hlY2tzdW0yNTYQc2NoZWR1bGVfdmVyc2lvbgZ1aW50MzINbmV3X3Byb2R1Y2VycxJwcm9kdWNlcl9zY2hlZHVsZT8VYmxvY2tjaGFpbl9wYXJhbWV0ZXJzABETbWF4X2Jsb2NrX25ldF91c2FnZQZ1aW50NjQadGFyZ2V0X2Jsb2NrX25ldF91c2FnZV9wY3QGdWludDMyGW1heF90cmFuc2FjdGlvbl9uZXRfdXNhZ2UGdWludDMyHmJhc2VfcGVyX3RyYW5zYWN0aW9uX25ldF91c2FnZQZ1aW50MzIQbmV0X3VzYWdlX2xlZXdheQZ1aW50MzIjY29udGV4dF9mcmVlX2Rpc2NvdW50X25ldF91c2FnZV9udW0GdWludDMyI2NvbnRleHRfZnJlZV9kaXNjb3VudF9uZXRfdXNhZ2VfZGVuBnVpbnQzMhNtYXhfYmxvY2tfY3B1X3VzYWdlBnVpbnQzMhp0YXJnZXRfYmxvY2tfY3B1X3VzYWdlX3BjdAZ1aW50MzIZbWF4X3RyYW5zYWN0aW9uX2NwdV91c2FnZQZ1aW50MzIZbWluX3RyYW5zYWN0aW9uX2NwdV91c2FnZQZ1aW50MzIYbWF4X3RyYW5zYWN0aW9uX2xpZmV0aW1lBnVpbnQzMh5kZWZlcnJlZF90cnhfZXhwaXJhdGlvbl93aW5kb3cGdWludDMyFW1heF90cmFuc2FjdGlvbl9kZWxheQZ1aW50MzIWbWF4X2lubGluZV9hY3Rpb25fc2l6ZQZ1aW50MzIXbWF4X2lubGluZV9hY3Rpb25fZGVwdGgGdWludDE2E21heF9hdXRob3JpdHlfZGVwdGgGdWludDE2CmJ1cm5hY3Rpb24AAQtmaW9hZGRyaGFzaAd1aW50MTI4C2NhbmNlbGRlbGF5AAIOY2FuY2VsaW5nX2F1dGgQcGVybWlzc2lvbl9sZXZlbAZ0cnhfaWQLY2hlY2tzdW0yNTYLY3JhdXRvcHJveHkAAgVwcm94eQRuYW1lBW93bmVyBG5hbWUKZGVsZXRlYXV0aAADB2FjY291bnQEbmFtZQpwZXJtaXNzaW9uBG5hbWUHbWF4X2ZlZQZ1aW50NjQSZW9zaW9fZ2xvYmFsX3N0YXRlFWJsb2NrY2hhaW5fcGFyYW1ldGVycwsdbGFzdF9wcm9kdWNlcl9zY2hlZHVsZV91cGRhdGUUYmxvY2tfdGltZXN0YW1wX3R5cGUYbGFzdF9wZXJ2b3RlX2J1Y2tldF9maWxsCnRpbWVfcG9pbnQOcGVydm90ZV9idWNrZXQFaW50NjQPcGVyYmxvY2tfYnVja2V0BWludDY0E3RvdGFsX3VucGFpZF9ibG9ja3MGdWludDMyD3RvdGFsX3ZvdGVkX2ZpbwVpbnQ2NBV0aHJlc2hfdm90ZWRfZmlvX3RpbWUKdGltZV9wb2ludBtsYXN0X3Byb2R1Y2VyX3NjaGVkdWxlX3NpemUGdWludDE2GnRvdGFsX3Byb2R1Y2VyX3ZvdGVfd2VpZ2h0B2Zsb2F0NjQPbGFzdF9uYW1lX2Nsb3NlFGJsb2NrX3RpbWVzdGFtcF90eXBlD2xhc3RfZmVlX3VwZGF0ZRRibG9ja190aW1lc3RhbXBfdHlwZRNlb3Npb19nbG9iYWxfc3RhdGUyAAMObGFzdF9ibG9ja19udW0UYmxvY2tfdGltZXN0YW1wX3R5cGUcdG90YWxfcHJvZHVjZXJfdm90ZXBheV9zaGFyZQdmbG9hdDY0CHJldmlzaW9uBXVpbnQ4E2Vvc2lvX2dsb2JhbF9zdGF0ZTMAAhZsYXN0X3ZwYXlfc3RhdGVfdXBkYXRlCnRpbWVfcG9pbnQcdG90YWxfdnBheV9zaGFyZV9jaGFuZ2VfcmF0ZQdmbG9hdDY0BmluY3JhbQACCWFjY291bnRtbgRuYW1lBmFtb3VudAVpbnQ2NAxpbmhpYml0dW5sY2sAAgVvd25lcgRuYW1lBXZhbHVlBnVpbnQzMgRpbml0AAIHdmVyc2lvbgl2YXJ1aW50MzIEY29yZQZzeW1ib2wKa2V5X3dlaWdodAACA2tleQpwdWJsaWNfa2V5BndlaWdodAZ1aW50MTYIbGlua2F1dGgABQdhY2NvdW50BG5hbWUEY29kZQRuYW1lBHR5cGUEbmFtZQtyZXF1aXJlbWVudARuYW1lB21heF9mZWUGdWludDY0GGxvY2tlZF90b2tlbl9ob2xkZXJfaW5mbwAHBW93bmVyBG5hbWUSdG90YWxfZ3JhbnRfYW1vdW50BnVpbnQ2NBV1bmxvY2tlZF9wZXJpb2RfY291bnQGdWludDMyCmdyYW50X3R5cGUGdWludDMyEWluaGliaXRfdW5sb2NraW5nBnVpbnQzMhdyZW1haW5pbmdfbG9ja2VkX2Ftb3VudAZ1aW50NjQJdGltZXN0YW1wBnVpbnQzMhJsb2NrZWRfdG9rZW5zX2luZm8ACAJpZAVpbnQ2NA1vd25lcl9hY2NvdW50BG5hbWULbG9ja19hbW91bnQFaW50NjQRcGF5b3V0c19wZXJmb3JtZWQFaW50MzIIY2FuX3ZvdGUFaW50MzIHcGVyaW9kcw1sb2NrcGVyaW9kc1tdFXJlbWFpbmluZ19sb2NrX2Ftb3VudAVpbnQ2NAl0aW1lc3RhbXAGdWludDMyC2xvY2twZXJpb2RzAAIIZHVyYXRpb24FaW50NjQHcGVyY2VudAdmbG9hdDY0Cm5ld2FjY291bnQABAdjcmVhdG9yBG5hbWUEbmFtZQRuYW1lBW93bmVyCWF1dGhvcml0eQZhY3RpdmUJYXV0aG9yaXR5B29uYmxvY2sAAQZoZWFkZXIMYmxvY2tfaGVhZGVyB29uZXJyb3IAAglzZW5kZXJfaWQHdWludDEyOAhzZW50X3RyeAVieXRlcxBwZXJtaXNzaW9uX2xldmVsAAIFYWN0b3IEbmFtZQpwZXJtaXNzaW9uBG5hbWUXcGVybWlzc2lvbl9sZXZlbF93ZWlnaHQAAgpwZXJtaXNzaW9uEHBlcm1pc3Npb25fbGV2ZWwGd2VpZ2h0BnVpbnQxNg1wcm9kdWNlcl9pbmZvAAwCaWQGdWludDY0BW93bmVyBG5hbWULZmlvX2FkZHJlc3MGc3RyaW5nC2FkZHJlc3NoYXNoB3VpbnQxMjgLdG90YWxfdm90ZXMHZmxvYXQ2NBNwcm9kdWNlcl9wdWJsaWNfa2V5CnB1YmxpY19rZXkJaXNfYWN0aXZlBGJvb2wDdXJsBnN0cmluZw11bnBhaWRfYmxvY2tzBnVpbnQzMg9sYXN0X2NsYWltX3RpbWUKdGltZV9wb2ludAxsYXN0X2JwY2xhaW0GdWludDMyCGxvY2F0aW9uBnVpbnQxNgxwcm9kdWNlcl9rZXkAAg1wcm9kdWNlcl9uYW1lBG5hbWURYmxvY2tfc2lnbmluZ19rZXkKcHVibGljX2tleRFwcm9kdWNlcl9zY2hlZHVsZQACB3ZlcnNpb24GdWludDMyCXByb2R1Y2Vycw5wcm9kdWNlcl9rZXlbXQtyZWdwcm9kdWNlcgAGC2Zpb19hZGRyZXNzBnN0cmluZwtmaW9fcHViX2tleQZzdHJpbmcDdXJsBnN0cmluZwhsb2NhdGlvbgZ1aW50MTYFYWN0b3IEbmFtZQdtYXhfZmVlBWludDY0CHJlZ3Byb3h5AAMLZmlvX2FkZHJlc3MGc3RyaW5nBWFjdG9yBG5hbWUHbWF4X2ZlZQVpbnQ2NAlyZW1hY3Rpb24AAgZhY3Rpb24EbmFtZQVhY3RvcgRuYW1lCnJlc2V0Y2xhaW0AAQhwcm9kdWNlcgRuYW1lC3JtdnByb2R1Y2VyAAEIcHJvZHVjZXIEbmFtZQZzZXRhYmkAAgdhY2NvdW50BG5hbWUDYWJpBWJ5dGVzDHNldGF1dG9wcm94eQACBXByb3h5BG5hbWUFb3duZXIEbmFtZQdzZXRjb2RlAAQHYWNjb3VudARuYW1lBnZtdHlwZQV1aW50OAl2bXZlcnNpb24FdWludDgEY29kZQVieXRlcwlzZXRwYXJhbXMAAQZwYXJhbXMVYmxvY2tjaGFpbl9wYXJhbWV0ZXJzB3NldHByaXYAAgdhY2NvdW50BG5hbWUHaXNfcHJpdgV1aW50OA10b3BfcHJvZF9pbmZvAAEIcHJvZHVjZXIEbmFtZQp1bmxpbmthdXRoAAMHYWNjb3VudARuYW1lBGNvZGUEbmFtZQR0eXBlBG5hbWUMdW5sb2NrdG9rZW5zAAEFYWN0b3IEbmFtZQl1bnJlZ3Byb2QAAwtmaW9fYWRkcmVzcwZzdHJpbmcFYWN0b3IEbmFtZQdtYXhfZmVlBWludDY0CnVucmVncHJveHkAAwtmaW9fYWRkcmVzcwZzdHJpbmcFYWN0b3IEbmFtZQdtYXhfZmVlBWludDY0CnVwZGF0ZWF1dGgABQdhY2NvdW50BG5hbWUKcGVybWlzc2lvbgRuYW1lBnBhcmVudARuYW1lBGF1dGgJYXV0aG9yaXR5B21heF9mZWUGdWludDY0C3VwZGF0ZXBvd2VyAAIFdm90ZXIEbmFtZQp1cGRhdGVvbmx5BGJvb2wLdXBkbGJwY2xhaW0AAQhwcm9kdWNlcgRuYW1lCXVwZGxvY2tlZAACBW93bmVyBG5hbWUPYW1vdW50cmVtYWluaW5nBnVpbnQ2NAx1cGR0cmV2aXNpb24AAQhyZXZpc2lvbgV1aW50OA51c2VyX3Jlc291cmNlcwAEBW93bmVyBG5hbWUKbmV0X3dlaWdodAVhc3NldApjcHVfd2VpZ2h0BWFzc2V0CXJhbV9ieXRlcwVpbnQ2NAx2b3RlcHJvZHVjZXIABAlwcm9kdWNlcnMIc3RyaW5nW10LZmlvX2FkZHJlc3MGc3RyaW5nBWFjdG9yBG5hbWUHbWF4X2ZlZQVpbnQ2NAl2b3RlcHJveHkABAVwcm94eQZzdHJpbmcLZmlvX2FkZHJlc3MGc3RyaW5nBWFjdG9yBG5hbWUHbWF4X2ZlZQVpbnQ2NAp2b3Rlcl9pbmZvAAwCaWQGdWludDY0CmZpb2FkZHJlc3MGc3RyaW5nC2FkZHJlc3NoYXNoB3VpbnQxMjgFb3duZXIEbmFtZQVwcm94eQRuYW1lCXByb2R1Y2VycwZuYW1lW10QbGFzdF92b3RlX3dlaWdodAdmbG9hdDY0E3Byb3hpZWRfdm90ZV93ZWlnaHQHZmxvYXQ2NAhpc19wcm94eQRib29sDWlzX2F1dG9fcHJveHkEYm9vbAlyZXNlcnZlZDIGdWludDMyCXJlc2VydmVkMwVhc3NldAt3YWl0X3dlaWdodAACCHdhaXRfc2VjBnVpbnQzMgZ3ZWlnaHQGdWludDE2IwAAmNRlZFIyCWFkZGFjdGlvbgCQFEQ0TsVSMgxhZGRnZW5sb2NrZWQAAABICiIaUzIJYWRkbG9ja2VkAADApC4jM68+CmJ1cm5hY3Rpb24AALyJKkWFpkELY2FuY2VsZGVsYXkAAHynt9KszUULY3JhdXRvcHJveHkAAEDL2qisokoKZGVsZXRlYXV0aAAAAAAASHPRdAZpbmNyYW0AAFGcOrvj2nQMaW5oaWJpdHVubGNrAAAAAAAAkN10BGluaXQAAAAALWsDp4sIbGlua2F1dGgAAECemiJkuJoKbmV3YWNjb3VudAAAAAAAIhrPpAdvbmJsb2NrAAAAAODSe9WkB29uZXJyb3IAAK5COtFbmboLcmVncHJvZHVjZXIAAAAAvtNbmboIcmVncHJveHkAAACY1GVkpLoJcmVtYWN0aW9uAACAdCairLC6CnJlc2V0Y2xhaW0AAK5COtFbt7wLcm12cHJvZHVjZXIAAAAAALhjssIGc2V0YWJpAOA7vZVmbbLCDHNldGF1dG9wcm94eQAAAABAJYqywgdzZXRjb2RlAAAAwNJcU7PCCXNldHBhcmFtcwAAAABgu1uzwgdzZXRwcml2AABAy9rA6eLUCnVubGlua2F1dGgAgKeCNENE49QMdW5sb2NrdG9rZW5zAAAASPRWpu7UCXVucmVncHJvZAAAgO/0Vqbu1Ap1bnJlZ3Byb3h5AABAy9qobFLVCnVwZGF0ZWF1dGgAAK7itKpsUtULdXBkYXRlcG93ZXIAAKQzEdUTU9ULdXBkbGJwY2xhaW0AAABICiIaU9UJdXBkbG9ja2VkADCpw26rm1PVDHVwZHRyZXZpc2lvbgBwFdKJ3qoy3Qx2b3RlcHJvZHVjZXIAAADwnd6qMt0Jdm90ZXByb3h5AAoAAACgYdPcMQNpNjQAAAhhYmlfaGFzaAAAAABEc2hkA2k2NAAAEmVvc2lvX2dsb2JhbF9zdGF0ZQAAAEBEc2hkA2k2NAAAE2Vvc2lvX2dsb2JhbF9zdGF0ZTIAAABgRHNoZANpNjQAABNlb3Npb19nbG9iYWxfc3RhdGUzgKeCNCcFEY0DaTY0AAAYbG9ja2VkX3Rva2VuX2hvbGRlcl9pbmZvAACeCtIMEY0DaTY0AAASbG9ja2VkX3Rva2Vuc19pbmZvAADAVyGd6K0DaTY0AAANcHJvZHVjZXJfaW5mbwAAADjRWyvNA2k2NAAADXRvcF9wcm9kX2luZm8AAAAAq3sV1gNpNjQAAA51c2VyX3Jlc291cmNlcwAAAADgqzLdA2k2NAAACnZvdGVyX2luZm8AAAAA=",
128
- };
129
- case '{"account_name":"eosio.msig"}':
130
- return {
131
- account_name: "eosio.msig",
132
- code_hash: "f9eaecc20eeea9705e5e5a81777244281a4770e8ff8b377d76d032ad3163ca81",
133
- abi_hash: "a72cfc8faf3a10267d6b842f47b7d983889831b956b2c41e09f7044e338876de",
134
- abi: "DmVvc2lvOjphYmkvMS4xABAGYWN0aW9uAAQHYWNjb3VudARuYW1lBG5hbWUEbmFtZQ1hdXRob3JpemF0aW9uEnBlcm1pc3Npb25fbGV2ZWxbXQRkYXRhBWJ5dGVzCGFwcHJvdmFsAAIFbGV2ZWwQcGVybWlzc2lvbl9sZXZlbAR0aW1lCnRpbWVfcG9pbnQOYXBwcm92YWxzX2luZm8ABAd2ZXJzaW9uBXVpbnQ4DXByb3Bvc2FsX25hbWUEbmFtZRNyZXF1ZXN0ZWRfYXBwcm92YWxzCmFwcHJvdmFsW10ScHJvdmlkZWRfYXBwcm92YWxzCmFwcHJvdmFsW10HYXBwcm92ZQAFCHByb3Bvc2VyBG5hbWUNcHJvcG9zYWxfbmFtZQRuYW1lBWxldmVsEHBlcm1pc3Npb25fbGV2ZWwHbWF4X2ZlZQZ1aW50NjQNcHJvcG9zYWxfaGFzaAxjaGVja3N1bTI1NiQGY2FuY2VsAAQIcHJvcG9zZXIEbmFtZQ1wcm9wb3NhbF9uYW1lBG5hbWUIY2FuY2VsZXIEbmFtZQdtYXhfZmVlBnVpbnQ2NARleGVjAAQIcHJvcG9zZXIEbmFtZQ1wcm9wb3NhbF9uYW1lBG5hbWUHbWF4X2ZlZQZ1aW50NjQIZXhlY3V0ZXIEbmFtZQlleHRlbnNpb24AAgR0eXBlBnVpbnQxNgRkYXRhBWJ5dGVzCmludmFsaWRhdGUAAgdhY2NvdW50BG5hbWUHbWF4X2ZlZQZ1aW50NjQMaW52YWxpZGF0aW9uAAIHYWNjb3VudARuYW1lFmxhc3RfaW52YWxpZGF0aW9uX3RpbWUKdGltZV9wb2ludBJvbGRfYXBwcm92YWxzX2luZm8AAw1wcm9wb3NhbF9uYW1lBG5hbWUTcmVxdWVzdGVkX2FwcHJvdmFscxJwZXJtaXNzaW9uX2xldmVsW10ScHJvdmlkZWRfYXBwcm92YWxzEnBlcm1pc3Npb25fbGV2ZWxbXRBwZXJtaXNzaW9uX2xldmVsAAIFYWN0b3IEbmFtZQpwZXJtaXNzaW9uBG5hbWUIcHJvcG9zYWwAAg1wcm9wb3NhbF9uYW1lBG5hbWUScGFja2VkX3RyYW5zYWN0aW9uBWJ5dGVzB3Byb3Bvc2UABQhwcm9wb3NlcgRuYW1lDXByb3Bvc2FsX25hbWUEbmFtZQlyZXF1ZXN0ZWQScGVybWlzc2lvbl9sZXZlbFtdB21heF9mZWUGdWludDY0A3RyeAt0cmFuc2FjdGlvbgt0cmFuc2FjdGlvbhJ0cmFuc2FjdGlvbl9oZWFkZXIDFGNvbnRleHRfZnJlZV9hY3Rpb25zCGFjdGlvbltdB2FjdGlvbnMIYWN0aW9uW10WdHJhbnNhY3Rpb25fZXh0ZW5zaW9ucwtleHRlbnNpb25bXRJ0cmFuc2FjdGlvbl9oZWFkZXIABgpleHBpcmF0aW9uDnRpbWVfcG9pbnRfc2VjDXJlZl9ibG9ja19udW0GdWludDE2EHJlZl9ibG9ja19wcmVmaXgGdWludDMyE21heF9uZXRfdXNhZ2Vfd29yZHMJdmFydWludDMyEG1heF9jcHVfdXNhZ2VfbXMFdWludDgJZGVsYXlfc2VjCXZhcnVpbnQzMgl1bmFwcHJvdmUABAhwcm9wb3NlcgRuYW1lDXByb3Bvc2FsX25hbWUEbmFtZQVsZXZlbBBwZXJtaXNzaW9uX2xldmVsB21heF9mZWUGdWludDY0BgAAAEBtems1B2FwcHJvdmUAAAAAAESFpkEGY2FuY2VsAAAAAAAAgFRXBGV4ZWMAAIDKJrlo9nQKaW52YWxpZGF0ZQAAAABAYVrprQdwcm9wb3NlAAAAUJveWs3UCXVuYXBwcm92ZQAEAADA0Wx6azUDaTY0AAASb2xkX2FwcHJvdmFsc19pbmZvAIDA0Wx6azUDaTY0AAAOYXBwcm92YWxzX2luZm8AAAAA4Gj2dANpNjQAAAxpbnZhbGlkYXRpb24AAADRYFrprQNpNjQAAAhwcm9wb3NhbAAAAAA==",
135
- };
136
- default:
137
- throw new Error(`unrecognized get_raw_abi call: ${body}`);
138
- }
139
- },
140
- },
141
- }).startServer();
142
- afterEach(() => expect(mswMock).not.toHaveBeenCalled());
143
- const untouchable = require("untouchableMock");
144
- describe("NativeFioWalletInfo", () => {
145
- const info = native.info();
146
- it("should return some static metadata", () => __awaiter(void 0, void 0, void 0, function* () {
147
- expect(yield untouchable.call(info, "fioSupportsNetwork")).toBe(true);
148
- expect(yield untouchable.call(info, "fioSupportsSecureTransfer")).toBe(false);
149
- expect(untouchable.call(info, "fioSupportsNativeShapeShift")).toBe(false);
150
- }));
151
- it("should return the correct account paths", () => __awaiter(void 0, void 0, void 0, function* () {
152
- const paths = info.fioGetAccountPaths({ accountIdx: 0 });
153
- expect(paths).toMatchObject([{ addressNList: core.bip32ToAddressNList("m/44'/235'/0'/0/0") }]);
154
- }));
155
- it("does not support getting the next account path", () => __awaiter(void 0, void 0, void 0, function* () {
156
- expect(untouchable.call(info, "fioNextAccountPath", {})).toBe(undefined);
157
- }));
158
- });
159
- describe("NativeFioWallet", () => {
160
- let wallet;
161
- beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
162
- wallet = native.create({ deviceId: "native" });
163
- yield wallet.loadDevice({ mnemonic: MNEMONIC });
164
- expect(yield wallet.initialize()).toBe(true);
165
- }));
166
- describe("stuff that uses the network", () => {
167
- afterEach(() => {
168
- expect(mswMock.handlers.post["https://fio.eu.eosamsterdam.net/v1/chain/get_raw_abi"]).toHaveBeenCalledWith({
169
- account_name: "fio.address",
170
- });
171
- expect(mswMock.handlers.post["https://fio.eu.eosamsterdam.net/v1/chain/get_raw_abi"]).toHaveBeenCalledWith({
172
- account_name: "fio.reqobt",
173
- });
174
- expect(mswMock.handlers.post["https://fio.eu.eosamsterdam.net/v1/chain/get_raw_abi"]).toHaveBeenCalledWith({
175
- account_name: "fio.token",
176
- });
177
- expect(mswMock.handlers.post["https://fio.eu.eosamsterdam.net/v1/chain/get_raw_abi"]).toHaveBeenCalledWith({
178
- account_name: "eosio",
179
- });
180
- mswMock.clear();
181
- });
182
- it("should generate a correct FIO address", () => __awaiter(void 0, void 0, void 0, function* () {
183
- const address = yield wallet.fioGetAddress({ addressNList: core.bip32ToAddressNList("m/44'/235'/0'/0/0") });
184
- expect(address).toBe("FIO5NSKecB4CcMpUxtpHzG4u43SmcGMAjRbxyG38rE4HPegGpaHu9");
185
- }));
186
- it("should generate another correct FIO address", () => __awaiter(void 0, void 0, void 0, function* () {
187
- const address = yield wallet.fioGetAddress({ addressNList: core.bip32ToAddressNList("m/44'/235'/1337'/123/4") });
188
- expect(address).toBe("FIO8Pok1EBMsZWphhfUj2m3MXrxBZJq7erqyi7E1teAfZE18HyjK5");
189
- }));
190
- it("should generate a third correct FIO address", () => __awaiter(void 0, void 0, void 0, function* () {
191
- const address = yield wallet.fioGetAddress({ addressNList: core.bip32ToAddressNList("m/44'/235'/1'/0/0") });
192
- expect(address).toMatchInlineSnapshot(`"FIO8HiUzsRDYo69AEmUk39f7h7nawTjn9msbX6oUY5wrX6ERCh3rA"`);
193
- }));
194
- it("should expose the FIO SDK", () => __awaiter(void 0, void 0, void 0, function* () {
195
- expect(yield wallet.getFioSdk(core.bip32ToAddressNList("m/44'/235'/0'/0/0"))).toBeInstanceOf(fio.FIOSDK);
196
- }));
197
- it("should sign a message", () => __awaiter(void 0, void 0, void 0, function* () {
198
- const sig = yield wallet.fioSignTx({
199
- addressNList: core.bip32ToAddressNList("m/44'/235'/0'/0/0"),
200
- actions: [
201
- {
202
- account: "fio.address",
203
- name: "addaddress",
204
- data: {
205
- fio_address: "FIO5NSKecB4CcMpUxtpHzG4u43SmcGMAjRbxyG38rE4HPegGpaHu9",
206
- public_addresses: [
207
- {
208
- chain_code: "foo",
209
- token_code: "bar",
210
- public_address: "baz",
211
- },
212
- ],
213
- max_fee: 0,
214
- tpid: "FIO5NSKecB4CcMpUxtpHzG4u43SmcGMAjRbxyG38rE4HPegGpaHu9",
215
- },
216
- },
217
- ],
218
- });
219
- // This is the output of the native library's own signing function.
220
- /*expect(sig).toMatchInlineSnapshot(`
221
- Object {
222
- "serialized": "ee9952603aa2ef1c7ca90000000001003056372503a85b0000c6eaa66452320180f2f085077460fd00000000a8ed323289013546494f354e534b6563423443634d7055787470487a4734753433536d63474d416a5262787947333872453448506567477061487539010362617203666f6f0362617a000000000000000080f2f085077460fd3546494f354e534b6563423443634d7055787470487a4734753433536d63474d416a526278794733387245344850656747706148753900",
223
- "signature": "SIG_K1_JxgRLcqJHYjaqAhwHpsi8iGGkYVZRKMGT46xozonn2YwBF6vv3Jg7UZ95PsFKh9BFpHNTwhcLHhzyzhxdvw47zF12REeM2",
224
- }
225
- `);*/
226
- // This is the output from tiny-secp256k1.
227
- expect(sig).toMatchInlineSnapshot(`
228
- Object {
229
- "serialized": "ee9952603aa2ef1c7ca90000000001003056372503a85b0000c6eaa66452320180f2f085077460fd00000000a8ed323289013546494f354e534b6563423443634d7055787470487a4734753433536d63474d416a5262787947333872453448506567477061487539010362617203666f6f0362617a000000000000000080f2f085077460fd3546494f354e534b6563423443634d7055787470487a4734753433536d63474d416a526278794733387245344850656747706148753900",
230
- "signature": "SIG_K1_Kg5nEAYFbbTZGqKfsvAt1Jx4KwuRzmUiLRybv4tyJeHWwM17ch1SSW88rVcAv7m1V5EjqgCTbxLKCXUcqDofc1kqp3psmg",
231
- }
232
- `);
233
- expect(mswMock).toHaveBeenCalledWith("GET", "https://fio.eu.eosamsterdam.net/v1/chain/get_info");
234
- expect(mswMock).toHaveBeenCalledWith("POST", "https://fio.eu.eosamsterdam.net/v1/chain/get_block", {
235
- block_num_or_id: 61841978,
236
- });
237
- const chainId = Buffer.from(mswMock.handlers.get["https://fio.eu.eosamsterdam.net/v1/chain/get_info"].chain_id, "hex");
238
- const msgRaw = Buffer.concat([chainId, Buffer.from(sig.serialized, "hex"), Buffer.alloc(32)]);
239
- const msgHash = Buffer.from(Isolation.Core.Digest.Algorithms["sha256"](msgRaw));
240
- const pubKey = bs58.decode("FIO5NSKecB4CcMpUxtpHzG4u43SmcGMAjRbxyG38rE4HPegGpaHu9".slice(3)).slice(0, -4);
241
- const sigRaw = bs58.decode(sig.signature.slice(7)).slice(1, -4);
242
- expect(tinyecc.verify(msgHash, pubKey, sigRaw)).toBe(true);
243
- }));
244
- it("should encrypt a request", () => __awaiter(void 0, void 0, void 0, function* () {
245
- expect(yield wallet.fioEncryptRequestContent({
246
- addressNList: core.bip32ToAddressNList("m/44'/235'/0'/0/0"),
247
- content: {
248
- payee_public_address: "FIO5NSKecB4CcMpUxtpHzG4u43SmcGMAjRbxyG38rE4HPegGpaHu9",
249
- amount: "1234",
250
- chain_code: "foo",
251
- token_code: "bar",
252
- memo: "baz",
253
- hash: "bash",
254
- offline_url: "foobar",
255
- },
256
- publicKey: "FIO8HiUzsRDYo69AEmUk39f7h7nawTjn9msbX6oUY5wrX6ERCh3rA",
257
- contentType: core.FioEncryptionContentType.REQUEST,
258
- iv: Buffer.from("deadbeefdeadbeefdeadbeefdeadbeef", "hex"),
259
- })).toMatchInlineSnapshot(`"3q2+796tvu/erb7v3q2+7yeNoq+0I2pI2M5ylVEBuYkKwwHIJfKeuDZPp9bOLZNVbGtY7bfy/U9b7n316iuX1EQJHlIiHLOELx60jdWfF4A67x1T3WR8OW6lGBYCZDj8j50YbQM/oqcAIG5ND9MWK9U6Z2rcubAuZvQAcll1Jm4cIgVp49+ZxSKzEvH7Aasz"`);
260
- }));
261
- it("should decrypt a request", () => __awaiter(void 0, void 0, void 0, function* () {
262
- expect(yield wallet.fioDecryptRequestContent({
263
- addressNList: core.bip32ToAddressNList("m/44'/235'/1'/0/0"),
264
- content: "3q2+796tvu/erb7v3q2+7yeNoq+0I2pI2M5ylVEBuYkKwwHIJfKeuDZPp9bOLZNVbGtY7bfy/U9b7n316iuX1EQJHlIiHLOELx60jdWfF4A67x1T3WR8OW6lGBYCZDj8j50YbQM/oqcAIG5ND9MWK9U6Z2rcubAuZvQAcll1Jm4cIgVp49+ZxSKzEvH7Aasz",
265
- publicKey: "FIO5NSKecB4CcMpUxtpHzG4u43SmcGMAjRbxyG38rE4HPegGpaHu9",
266
- contentType: core.FioEncryptionContentType.REQUEST,
267
- })).toMatchInlineSnapshot(`
268
- Object {
269
- "amount": "1234",
270
- "chain_code": "foo",
271
- "hash": "bash",
272
- "memo": "baz",
273
- "offline_url": "foobar",
274
- "payee_public_address": "FIO5NSKecB4CcMpUxtpHzG4u43SmcGMAjRbxyG38rE4HPegGpaHu9",
275
- "token_code": "bar",
276
- }
277
- `);
278
- }));
279
- });
280
- });
281
- //# sourceMappingURL=fio.test.js.map