@aeternity/aepp-sdk 9.0.1 → 11.0.0

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 (284) hide show
  1. package/README.md +15 -14
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +7 -36
  4. package/dist/aepp-sdk.browser-script.js.map +1 -1
  5. package/dist/aepp-sdk.browser.js +1 -1
  6. package/dist/aepp-sdk.browser.js.map +1 -1
  7. package/dist/aepp-sdk.js +1 -1
  8. package/dist/aepp-sdk.js.map +1 -1
  9. package/es/account/base.mjs +179 -0
  10. package/es/account/base.mjs.map +1 -0
  11. package/es/account/memory.mjs +99 -0
  12. package/es/account/memory.mjs.map +1 -0
  13. package/es/account/multiple.mjs +179 -0
  14. package/es/account/multiple.mjs.map +1 -0
  15. package/es/ae/aens.mjs +404 -0
  16. package/es/ae/aens.mjs.map +1 -0
  17. package/es/ae/{aepp.js → aepp.mjs} +9 -9
  18. package/es/ae/aepp.mjs.map +1 -0
  19. package/es/ae/contract.mjs +159 -0
  20. package/es/ae/contract.mjs.map +1 -0
  21. package/es/ae/index.mjs +207 -0
  22. package/es/ae/index.mjs.map +1 -0
  23. package/es/ae/oracle.mjs +339 -0
  24. package/es/ae/oracle.mjs.map +1 -0
  25. package/es/ae/{universal.js → universal.mjs} +10 -10
  26. package/es/ae/universal.mjs.map +1 -0
  27. package/es/ae/{wallet.js → wallet.mjs} +10 -10
  28. package/es/ae/wallet.mjs.map +1 -0
  29. package/es/aepp-wallet-communication/schema.d.ts +74 -0
  30. package/es/bignumber.d.ts +1 -7
  31. package/es/chain/{index.js → index.mjs} +29 -9
  32. package/es/chain/index.mjs.map +1 -0
  33. package/es/chain/node.mjs +442 -0
  34. package/es/chain/node.mjs.map +1 -0
  35. package/es/channel/handlers.mjs +1110 -0
  36. package/es/channel/handlers.mjs.map +1 -0
  37. package/es/channel/{index.js → index.mjs} +245 -472
  38. package/es/channel/index.mjs.map +1 -0
  39. package/es/channel/internal.mjs +283 -0
  40. package/es/channel/internal.mjs.map +1 -0
  41. package/es/contract/aci.mjs +477 -0
  42. package/es/contract/aci.mjs.map +1 -0
  43. package/es/contract/compiler.mjs +115 -0
  44. package/es/contract/compiler.mjs.map +1 -0
  45. package/es/contract/ga/helpers.mjs +30 -0
  46. package/es/contract/ga/helpers.mjs.map +1 -0
  47. package/es/contract/ga/index.mjs +178 -0
  48. package/es/contract/ga/index.mjs.map +1 -0
  49. package/es/errors.d.ts +284 -0
  50. package/es/index.mjs +57 -0
  51. package/es/index.mjs.map +1 -0
  52. package/es/node-pool/index.mjs +188 -0
  53. package/es/node-pool/index.mjs.map +1 -0
  54. package/es/node.mjs +133 -0
  55. package/es/node.mjs.map +1 -0
  56. package/es/other.d.ts +1 -1
  57. package/es/tx/builder/field-types.mjs +74 -0
  58. package/es/tx/builder/field-types.mjs.map +1 -0
  59. package/es/tx/builder/helpers.mjs +363 -0
  60. package/es/tx/builder/helpers.mjs.map +1 -0
  61. package/es/tx/builder/index.mjs +606 -0
  62. package/es/tx/builder/index.mjs.map +1 -0
  63. package/es/tx/builder/schema.mjs +760 -0
  64. package/es/tx/builder/schema.mjs.map +1 -0
  65. package/es/tx/{index.js → index.mjs} +107 -15
  66. package/es/tx/index.mjs.map +1 -0
  67. package/es/tx/tx-object.mjs +283 -0
  68. package/es/tx/tx-object.mjs.map +1 -0
  69. package/es/tx/tx.mjs +938 -0
  70. package/es/tx/tx.mjs.map +1 -0
  71. package/es/tx/validator.mjs +247 -0
  72. package/es/tx/validator.mjs.map +1 -0
  73. package/es/typings/blakejs/index.d.mjs +2 -0
  74. package/es/typings/blakejs/{index.d.js.map → index.d.mjs.map} +1 -1
  75. package/es/utils/aepp-wallet-communication/connection/{browser-runtime.js → browser-runtime.mjs} +27 -29
  76. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +1 -0
  77. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +183 -0
  78. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +1 -0
  79. package/es/utils/aepp-wallet-communication/connection/{index.js → index.mjs} +7 -3
  80. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +1 -0
  81. package/es/utils/aepp-wallet-communication/{content-script-bridge.js → content-script-bridge.mjs} +29 -23
  82. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +1 -0
  83. package/es/utils/aepp-wallet-communication/helpers.mjs +92 -0
  84. package/es/utils/aepp-wallet-communication/helpers.mjs.map +1 -0
  85. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +375 -0
  86. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +1 -0
  87. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +275 -0
  88. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +1 -0
  89. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +541 -0
  90. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +1 -0
  91. package/es/utils/aepp-wallet-communication/schema.mjs +102 -0
  92. package/es/utils/aepp-wallet-communication/schema.mjs.map +1 -0
  93. package/es/utils/aepp-wallet-communication/wallet-detector.mjs +110 -0
  94. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  95. package/es/utils/amount-formatter.mjs +139 -0
  96. package/es/utils/amount-formatter.mjs.map +1 -0
  97. package/es/utils/async-init.mjs +64 -0
  98. package/es/utils/async-init.mjs.map +1 -0
  99. package/es/utils/bignumber.mjs +21 -0
  100. package/es/utils/bignumber.mjs.map +1 -0
  101. package/es/utils/{bytes.js → bytes.mjs} +16 -12
  102. package/es/utils/bytes.mjs.map +1 -0
  103. package/es/utils/{crypto-ts.js → crypto-ts.mjs} +11 -3
  104. package/es/utils/crypto-ts.mjs.map +1 -0
  105. package/es/utils/crypto.mjs +239 -0
  106. package/es/utils/crypto.mjs.map +1 -0
  107. package/es/utils/errors.mjs +689 -0
  108. package/es/utils/errors.mjs.map +1 -0
  109. package/es/utils/hd-wallet.mjs +111 -0
  110. package/es/utils/hd-wallet.mjs.map +1 -0
  111. package/es/utils/json-big.mjs +45 -0
  112. package/es/utils/json-big.mjs.map +1 -0
  113. package/es/utils/keystore.mjs +240 -0
  114. package/es/utils/keystore.mjs.map +1 -0
  115. package/es/utils/mptree.mjs +161 -0
  116. package/es/utils/mptree.mjs.map +1 -0
  117. package/es/utils/other.mjs +43 -0
  118. package/es/utils/other.mjs.map +1 -0
  119. package/es/utils/semver-satisfies.mjs +16 -0
  120. package/es/utils/semver-satisfies.mjs.map +1 -0
  121. package/es/utils/{string.js → string.mjs} +5 -14
  122. package/es/utils/string.mjs.map +1 -0
  123. package/es/utils/swagger.mjs +164 -0
  124. package/es/utils/swagger.mjs.map +1 -0
  125. package/package.json +55 -62
  126. package/src/account/base.js +3 -1
  127. package/src/account/memory.js +13 -8
  128. package/src/account/multiple.js +31 -22
  129. package/src/ae/aens.js +75 -77
  130. package/src/ae/aepp.js +2 -2
  131. package/src/ae/contract.js +27 -291
  132. package/src/ae/index.js +9 -7
  133. package/src/ae/oracle.js +51 -28
  134. package/src/ae/universal.js +4 -2
  135. package/src/ae/wallet.js +2 -2
  136. package/src/chain/index.js +29 -6
  137. package/src/chain/node.js +95 -67
  138. package/src/channel/handlers.js +30 -21
  139. package/src/channel/index.js +44 -20
  140. package/src/channel/internal.js +30 -24
  141. package/src/contract/aci.js +376 -0
  142. package/src/contract/compiler.js +41 -91
  143. package/src/contract/ga/helpers.js +10 -13
  144. package/src/contract/ga/index.js +42 -33
  145. package/src/index.js +9 -10
  146. package/src/node-pool/index.js +29 -17
  147. package/src/node.js +33 -36
  148. package/src/tx/builder/field-types.js +61 -0
  149. package/src/tx/builder/helpers.js +126 -84
  150. package/src/tx/builder/index.js +83 -41
  151. package/src/tx/builder/schema.js +50 -40
  152. package/src/tx/index.js +101 -12
  153. package/src/tx/tx-object.js +35 -15
  154. package/src/tx/tx.js +232 -153
  155. package/src/tx/validator.js +34 -12
  156. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +11 -5
  157. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +35 -13
  158. package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
  159. package/src/utils/aepp-wallet-communication/content-script-bridge.js +14 -7
  160. package/src/utils/aepp-wallet-communication/helpers.js +6 -14
  161. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +107 -60
  162. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +24 -11
  163. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +98 -56
  164. package/src/utils/aepp-wallet-communication/schema.ts +80 -0
  165. package/src/utils/aepp-wallet-communication/wallet-detector.js +6 -2
  166. package/src/utils/amount-formatter.ts +4 -3
  167. package/src/utils/async-init.js +10 -6
  168. package/src/utils/bignumber.ts +3 -10
  169. package/src/utils/bytes.ts +3 -2
  170. package/src/utils/crypto-ts.ts +2 -2
  171. package/src/utils/crypto.js +10 -144
  172. package/src/utils/errors.ts +683 -0
  173. package/src/utils/hd-wallet.js +11 -26
  174. package/src/utils/keystore.js +57 -53
  175. package/src/utils/mptree.ts +12 -6
  176. package/src/utils/other.ts +1 -1
  177. package/src/utils/semver-satisfies.ts +1 -1
  178. package/src/utils/swagger.js +75 -45
  179. package/es/account/base.js +0 -259
  180. package/es/account/base.js.map +0 -1
  181. package/es/account/memory.js +0 -86
  182. package/es/account/memory.js.map +0 -1
  183. package/es/account/multiple.js +0 -267
  184. package/es/account/multiple.js.map +0 -1
  185. package/es/ae/aens.js +0 -829
  186. package/es/ae/aens.js.map +0 -1
  187. package/es/ae/aepp.js.map +0 -1
  188. package/es/ae/contract.js +0 -985
  189. package/es/ae/contract.js.map +0 -1
  190. package/es/ae/index.js +0 -442
  191. package/es/ae/index.js.map +0 -1
  192. package/es/ae/oracle.js +0 -690
  193. package/es/ae/oracle.js.map +0 -1
  194. package/es/ae/universal.js.map +0 -1
  195. package/es/ae/wallet.js.map +0 -1
  196. package/es/chain/index.js.map +0 -1
  197. package/es/chain/node.js +0 -1119
  198. package/es/chain/node.js.map +0 -1
  199. package/es/channel/handlers.js +0 -1601
  200. package/es/channel/handlers.js.map +0 -1
  201. package/es/channel/index.js.map +0 -1
  202. package/es/channel/internal.js +0 -438
  203. package/es/channel/internal.js.map +0 -1
  204. package/es/contract/aci/helpers.js +0 -298
  205. package/es/contract/aci/helpers.js.map +0 -1
  206. package/es/contract/aci/index.js +0 -517
  207. package/es/contract/aci/index.js.map +0 -1
  208. package/es/contract/aci/transformation.js +0 -742
  209. package/es/contract/aci/transformation.js.map +0 -1
  210. package/es/contract/compiler.js +0 -316
  211. package/es/contract/compiler.js.map +0 -1
  212. package/es/contract/ga/helpers.js +0 -120
  213. package/es/contract/ga/helpers.js.map +0 -1
  214. package/es/contract/ga/index.js +0 -307
  215. package/es/contract/ga/index.js.map +0 -1
  216. package/es/contract/index.js +0 -158
  217. package/es/contract/index.js.map +0 -1
  218. package/es/index.js +0 -57
  219. package/es/index.js.map +0 -1
  220. package/es/node-pool/index.js +0 -204
  221. package/es/node-pool/index.js.map +0 -1
  222. package/es/node.js +0 -228
  223. package/es/node.js.map +0 -1
  224. package/es/tx/builder/helpers.js +0 -355
  225. package/es/tx/builder/helpers.js.map +0 -1
  226. package/es/tx/builder/index.js +0 -686
  227. package/es/tx/builder/index.js.map +0 -1
  228. package/es/tx/builder/schema.js +0 -695
  229. package/es/tx/builder/schema.js.map +0 -1
  230. package/es/tx/index.js.map +0 -1
  231. package/es/tx/tx-object.js +0 -297
  232. package/es/tx/tx-object.js.map +0 -1
  233. package/es/tx/tx.js +0 -1757
  234. package/es/tx/tx.js.map +0 -1
  235. package/es/tx/validator.js +0 -344
  236. package/es/tx/validator.js.map +0 -1
  237. package/es/typings/blakejs/index.d.js +0 -2
  238. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
  239. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -211
  240. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
  241. package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
  242. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
  243. package/es/utils/aepp-wallet-communication/helpers.js +0 -148
  244. package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
  245. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -652
  246. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
  247. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -285
  248. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
  249. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -763
  250. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
  251. package/es/utils/aepp-wallet-communication/schema.js +0 -103
  252. package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
  253. package/es/utils/aepp-wallet-communication/wallet-detector.js +0 -135
  254. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
  255. package/es/utils/amount-formatter.js +0 -152
  256. package/es/utils/amount-formatter.js.map +0 -1
  257. package/es/utils/async-init.js +0 -103
  258. package/es/utils/async-init.js.map +0 -1
  259. package/es/utils/bignumber.js +0 -36
  260. package/es/utils/bignumber.js.map +0 -1
  261. package/es/utils/bytes.js.map +0 -1
  262. package/es/utils/crypto-ts.js.map +0 -1
  263. package/es/utils/crypto.js +0 -358
  264. package/es/utils/crypto.js.map +0 -1
  265. package/es/utils/hd-wallet.js +0 -148
  266. package/es/utils/hd-wallet.js.map +0 -1
  267. package/es/utils/json-big.js +0 -78
  268. package/es/utils/json-big.js.map +0 -1
  269. package/es/utils/keystore.js +0 -393
  270. package/es/utils/keystore.js.map +0 -1
  271. package/es/utils/mptree.js +0 -198
  272. package/es/utils/mptree.js.map +0 -1
  273. package/es/utils/other.js +0 -93
  274. package/es/utils/other.js.map +0 -1
  275. package/es/utils/semver-satisfies.js +0 -35
  276. package/es/utils/semver-satisfies.js.map +0 -1
  277. package/es/utils/string.js.map +0 -1
  278. package/es/utils/swagger.js +0 -269
  279. package/es/utils/swagger.js.map +0 -1
  280. package/src/contract/aci/helpers.js +0 -140
  281. package/src/contract/aci/index.js +0 -191
  282. package/src/contract/aci/transformation.js +0 -464
  283. package/src/contract/index.js +0 -159
  284. package/src/utils/aepp-wallet-communication/schema.js +0 -110
@@ -1,78 +0,0 @@
1
- import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
2
- import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
- import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
4
- import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
5
- import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
6
- import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
7
- import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
8
- import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
9
- import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
10
- import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
11
- import _typeof from "@babel/runtime-corejs3/helpers/typeof";
12
-
13
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) { symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14
-
15
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context4; _forEachInstanceProperty(_context4 = ownKeys(Object(source), true)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context5; _forEachInstanceProperty(_context5 = ownKeys(Object(source))).call(_context5, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
16
-
17
- import _reduceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/reduce";
18
- import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
19
- import _Object$entries from "@babel/runtime-corejs3/core-js-stable/object/entries";
20
- import _Array$isArray from "@babel/runtime-corejs3/core-js-stable/array/is-array";
21
- import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
22
- import JsonBig from '@aeternity/json-bigint';
23
- import BigNumber from 'bignumber.js';
24
- var jsonBig = JsonBig({
25
- storeAsString: true
26
- });
27
-
28
- var convertValuesToBigNumbers = function convertValuesToBigNumbers(value) {
29
- if (_typeof(value) === 'object' && value !== null && value.constructor === Object) {
30
- var _context, _context2;
31
-
32
- return _reduceInstanceProperty(_context = _mapInstanceProperty(_context2 = _Object$entries(value)).call(_context2, function (_ref) {
33
- var _ref2 = _slicedToArray(_ref, 2),
34
- key = _ref2[0],
35
- value = _ref2[1];
36
-
37
- return [key, convertValuesToBigNumbers(value)];
38
- })).call(_context, function (p, _ref3) {
39
- var _ref4 = _slicedToArray(_ref3, 2),
40
- k = _ref4[0],
41
- v = _ref4[1];
42
-
43
- return _objectSpread(_objectSpread({}, p), {}, _defineProperty({}, k, v));
44
- }, {});
45
- }
46
-
47
- if (_Array$isArray(value)) {
48
- return _mapInstanceProperty(value).call(value, function (item) {
49
- return convertValuesToBigNumbers(item);
50
- });
51
- }
52
-
53
- if (typeof value === 'string' && BigNumber(value).toString(10) === value) {
54
- var bn = BigNumber(value);
55
-
56
- bn.toJSON = function () {
57
- return bn.toString(10);
58
- };
59
-
60
- return bn;
61
- }
62
-
63
- return value;
64
- };
65
-
66
- export default {
67
- stringify: function stringify(object) {
68
- var _context3;
69
-
70
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
71
- args[_key - 1] = arguments[_key];
72
- }
73
-
74
- return jsonBig.stringify.apply(jsonBig, _concatInstanceProperty(_context3 = [convertValuesToBigNumbers(object)]).call(_context3, args));
75
- },
76
- parse: jsonBig.parse
77
- };
78
- //# sourceMappingURL=json-big.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/json-big.js"],"names":["JsonBig","BigNumber","jsonBig","storeAsString","convertValuesToBigNumbers","value","constructor","Object","key","p","k","v","item","toString","bn","toJSON","stringify","object","args","parse"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAOA,OAAP,MAAoB,wBAApB;AACA,OAAOC,SAAP,MAAsB,cAAtB;AAEA,IAAMC,OAAO,GAAGF,OAAO,CAAC;AAAEG,EAAAA,aAAa,EAAE;AAAjB,CAAD,CAAvB;;AAEA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAAC,KAAK,EAAI;AACzC,MAAI,QAAOA,KAAP,MAAiB,QAAjB,IAA6BA,KAAK,KAAK,IAAvC,IAA+CA,KAAK,CAACC,WAAN,KAAsBC,MAAzE,EAAiF;AAAA;;AAC/E,WAAO,oFAAeF,KAAf,mBACA;AAAA;AAAA,UAAEG,GAAF;AAAA,UAAOH,KAAP;;AAAA,aAAkB,CAACG,GAAD,EAAMJ,yBAAyB,CAACC,KAAD,CAA/B,CAAlB;AAAA,KADA,kBAEG,UAACI,CAAD;AAAA;AAAA,UAAKC,CAAL;AAAA,UAAQC,CAAR;;AAAA,6CAAqBF,CAArB,2BAAyBC,CAAzB,EAA6BC,CAA7B;AAAA,KAFH,EAEsC,EAFtC,CAAP;AAGD;;AACD,MAAI,eAAcN,KAAd,CAAJ,EAA0B;AACxB,WAAO,qBAAAA,KAAK,MAAL,CAAAA,KAAK,EAAK,UAAAO,IAAI;AAAA,aAAIR,yBAAyB,CAACQ,IAAD,CAA7B;AAAA,KAAT,CAAZ;AACD;;AACD,MAAI,OAAOP,KAAP,KAAiB,QAAjB,IAA6BJ,SAAS,CAACI,KAAD,CAAT,CAAiBQ,QAAjB,CAA0B,EAA1B,MAAkCR,KAAnE,EAA0E;AACxE,QAAMS,EAAE,GAAGb,SAAS,CAACI,KAAD,CAApB;;AACAS,IAAAA,EAAE,CAACC,MAAH,GAAY;AAAA,aAAMD,EAAE,CAACD,QAAH,CAAY,EAAZ,CAAN;AAAA,KAAZ;;AACA,WAAOC,EAAP;AACD;;AACD,SAAOT,KAAP;AACD,CAfD;;AAiBA,eAAe;AACbW,EAAAA,SAAS,EAAE,mBAACC,MAAD;AAAA;;AAAA,sCAAYC,IAAZ;AAAYA,MAAAA,IAAZ;AAAA;;AAAA,WAAqBhB,OAAO,CAACc,SAAR,OAAAd,OAAO,uCAAWE,yBAAyB,CAACa,MAAD,CAApC,mBAAiDC,IAAjD,EAA5B;AAAA,GADE;AAEbC,EAAAA,KAAK,EAAEjB,OAAO,CAACiB;AAFF,CAAf","sourcesContent":["import JsonBig from '@aeternity/json-bigint'\nimport BigNumber from 'bignumber.js'\n\nconst jsonBig = JsonBig({ storeAsString: true })\n\nconst convertValuesToBigNumbers = value => {\n if (typeof value === 'object' && value !== null && value.constructor === Object) {\n return Object.entries(value)\n .map(([key, value]) => [key, convertValuesToBigNumbers(value)])\n .reduce((p, [k, v]) => ({ ...p, [k]: v }), {})\n }\n if (Array.isArray(value)) {\n return value.map(item => convertValuesToBigNumbers(item))\n }\n if (typeof value === 'string' && BigNumber(value).toString(10) === value) {\n const bn = BigNumber(value)\n bn.toJSON = () => bn.toString(10)\n return bn\n }\n return value\n}\n\nexport default {\n stringify: (object, ...args) => jsonBig.stringify(convertValuesToBigNumbers(object), ...args),\n parse: jsonBig.parse\n}\n"],"file":"json-big.js"}
@@ -1,393 +0,0 @@
1
- import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
2
- import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
- import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
4
- import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
5
- import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
6
- import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
7
- import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
8
- import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
9
- import _asyncToGenerator from "@babel/runtime-corejs3/helpers/asyncToGenerator";
10
- import _regeneratorRuntime from "@babel/runtime-corejs3/regenerator";
11
-
12
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) { symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
13
-
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context6; _forEachInstanceProperty(_context6 = ownKeys(Object(source), true)).call(_context6, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context7; _forEachInstanceProperty(_context7 = ownKeys(Object(source))).call(_context7, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
15
-
16
- import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
17
- import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
18
- import nacl from 'tweetnacl';
19
- import { v4 as uuid } from 'uuid';
20
- import { encodeBase58Check } from './crypto';
21
- import { str2buf } from './bytes';
22
-
23
- var _sodium = require('libsodium-wrappers-sumo');
24
- /**
25
- * KeyStore module
26
- * @module @aeternity/aepp-sdk/es/utils/keystore
27
- * @example import { Keystore } from '@aeternity/aepp-sdk'
28
- * @example const { Keystore } = require('@aeternity/aepp-sdk')
29
- */
30
-
31
-
32
- var DEFAULTS = {
33
- crypto: {
34
- secret_type: 'ed25519',
35
- symmetric_alg: 'xsalsa20-poly1305',
36
- kdf: 'argon2id',
37
- kdf_params: {
38
- memlimit_kib: 65536,
39
- opslimit: 3,
40
- parallelism: 1
41
- }
42
- }
43
- }; // DERIVED KEY PART
44
-
45
- var DERIVED_KEY_FUNCTIONS = {
46
- argon2id: deriveKeyUsingArgon2id
47
- };
48
- export function deriveKeyUsingArgon2id(_x, _x2, _x3) {
49
- return _deriveKeyUsingArgon2id.apply(this, arguments);
50
- } // CRYPTO PART
51
-
52
- function _deriveKeyUsingArgon2id() {
53
- _deriveKeyUsingArgon2id = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(password, salt, options) {
54
- var _options$kdf_params, memoryCost, timeCost;
55
-
56
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
57
- while (1) {
58
- switch (_context2.prev = _context2.next) {
59
- case 0:
60
- _options$kdf_params = options.kdf_params, memoryCost = _options$kdf_params.memlimit_kib, timeCost = _options$kdf_params.opslimit; // const isBrowser = !(typeof module !== 'undefined' && module.exports)
61
-
62
- return _context2.abrupt("return", _sodium.ready.then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
63
- var sodium, result;
64
- return _regeneratorRuntime.wrap(function _callee$(_context) {
65
- while (1) {
66
- switch (_context.prev = _context.next) {
67
- case 0:
68
- // tslint:disable-next-line:typedef
69
- sodium = _sodium;
70
- result = sodium.crypto_pwhash(32, password, salt, timeCost, memoryCost * 1024, sodium.crypto_pwhash_ALG_ARGON2ID13);
71
- return _context.abrupt("return", Buffer.from(result));
72
-
73
- case 3:
74
- case "end":
75
- return _context.stop();
76
- }
77
- }
78
- }, _callee);
79
- }))));
80
-
81
- case 2:
82
- case "end":
83
- return _context2.stop();
84
- }
85
- }
86
- }, _callee2);
87
- }));
88
- return _deriveKeyUsingArgon2id.apply(this, arguments);
89
- }
90
-
91
- var CRYPTO_FUNCTIONS = {
92
- 'xsalsa20-poly1305': {
93
- encrypt: encryptXsalsa20Poly1305,
94
- decrypt: decryptXsalsa20Poly1305
95
- }
96
- };
97
-
98
- function encryptXsalsa20Poly1305(_ref) {
99
- var plaintext = _ref.plaintext,
100
- key = _ref.key,
101
- nonce = _ref.nonce;
102
- return nacl.secretbox(plaintext, nonce, key);
103
- }
104
-
105
- function decryptXsalsa20Poly1305(_ref2) {
106
- var ciphertext = _ref2.ciphertext,
107
- key = _ref2.key,
108
- nonce = _ref2.nonce;
109
- var res = nacl.secretbox.open(ciphertext, nonce, key);
110
- if (!res) throw new Error('Invalid password or nonce');
111
- return res;
112
- }
113
- /**
114
- * Symmetric private key encryption using secret (derived) key.
115
- * @param {buffer|string} plaintext Data to be encrypted.
116
- * @param {buffer|string} key Secret key.
117
- * @param {buffer|string} nonce Randomly generated nonce.
118
- * @param {string=} algo Encryption algorithm (default: DEFAULTS.crypto.symmetric_alg).
119
- * @return {buffer} Encrypted data.
120
- */
121
-
122
-
123
- function encrypt(plaintext, key, nonce) {
124
- var algo = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULTS.crypto.symmetric_alg;
125
- if (!CRYPTO_FUNCTIONS[algo]) throw new Error(algo + ' is not available');
126
- return CRYPTO_FUNCTIONS[algo].encrypt({
127
- plaintext: plaintext,
128
- nonce: nonce,
129
- key: key
130
- });
131
- }
132
- /**
133
- * Symmetric private key decryption using secret (derived) key.
134
- * @param {buffer|Uint8Array} ciphertext Data to be decrypted.
135
- * @param {buffer|Uint8Array} key Secret key.
136
- * @param {buffer|Uint8Array} nonce Nonce from key-object.
137
- * @param {string=} algo Encryption algorithm.
138
- * @return {buffer} Decrypted data.
139
- */
140
-
141
-
142
- function decrypt(ciphertext, key, nonce, algo) {
143
- if (!CRYPTO_FUNCTIONS[algo]) throw new Error(algo + ' is not available');
144
- return CRYPTO_FUNCTIONS[algo].decrypt({
145
- ciphertext: ciphertext,
146
- nonce: nonce,
147
- key: key
148
- });
149
- }
150
- /**
151
- * Derive secret key from password with key derivation function.
152
- * @param {string} password User-supplied password.
153
- * @param {buffer|Uint8Array} nonce Randomly generated nonce.
154
- * @param {Object=} options Encryption parameters.
155
- * @param {string=} options.kdf Key derivation function (default: DEFAULTS.crypto.kdf).
156
- * @param {Object=} options.kdf_params KDF parameters (default: DEFAULTS.crypto.kdf_params).
157
- * @return {buffer} Secret key derived from password.
158
- */
159
-
160
-
161
- function deriveKey(_x4, _x5) {
162
- return _deriveKey.apply(this, arguments);
163
- }
164
- /**
165
- * Assemble key data object in secret-storage format.
166
- * @param {buffer} name Key name.
167
- * @param {buffer} derivedKey Password-derived secret key.
168
- * @param {buffer} privateKey Private key.
169
- * @param {buffer} nonce Randomly generated 24byte nonce.
170
- * @param {buffer} salt Randomly generated 16byte salt.
171
- * @param {Object=} options Encryption parameters.
172
- * @param {string=} options.kdf Key derivation function (default: argon2id).
173
- * @param {string=} options.cipher Symmetric cipher (default: constants.cipher).
174
- * @param {Object=} options.kdf_params KDF parameters (default: constants.<kdf>).
175
- * @return {Object}
176
- */
177
-
178
-
179
- function _deriveKey() {
180
- _deriveKey = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(password, nonce) {
181
- var options,
182
- _args3 = arguments;
183
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
184
- while (1) {
185
- switch (_context3.prev = _context3.next) {
186
- case 0:
187
- options = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {
188
- kdf_params: DEFAULTS.crypto.kdf_params,
189
- kdf: DEFAULTS.crypto.kdf
190
- };
191
-
192
- if (!(typeof password === 'undefined' || password === null || !nonce)) {
193
- _context3.next = 3;
194
- break;
195
- }
196
-
197
- throw new Error('Must provide password and nonce to derive a key');
198
-
199
- case 3:
200
- if (Object.prototype.hasOwnProperty.call(DERIVED_KEY_FUNCTIONS, options.kdf)) {
201
- _context3.next = 5;
202
- break;
203
- }
204
-
205
- throw new Error('Unsupported kdf type');
206
-
207
- case 5:
208
- return _context3.abrupt("return", DERIVED_KEY_FUNCTIONS[options.kdf](password, nonce, options));
209
-
210
- case 6:
211
- case "end":
212
- return _context3.stop();
213
- }
214
- }
215
- }, _callee3);
216
- }));
217
- return _deriveKey.apply(this, arguments);
218
- }
219
-
220
- function marshal(name, derivedKey, privateKey, nonce, salt) {
221
- var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
222
-
223
- var opt = _Object$assign({}, DEFAULTS.crypto, options);
224
-
225
- return _Object$assign({
226
- name: name,
227
- version: 1,
228
- public_key: getAddressFromPriv(privateKey),
229
- id: uuid()
230
- }, {
231
- crypto: _Object$assign({
232
- secret_type: opt.secret_type,
233
- symmetric_alg: opt.symmetric_alg,
234
- ciphertext: Buffer.from(encrypt(Buffer.from(privateKey), derivedKey, nonce, opt.symmetric_alg)).toString('hex'),
235
- cipher_params: {
236
- nonce: Buffer.from(nonce).toString('hex')
237
- }
238
- }, {
239
- kdf: opt.kdf,
240
- kdf_params: _objectSpread(_objectSpread({}, opt.kdf_params), {}, {
241
- salt: Buffer.from(salt).toString('hex')
242
- })
243
- })
244
- });
245
- }
246
-
247
- export function getAddressFromPriv(secret) {
248
- var keys = nacl.sign.keyPair.fromSecretKey(str2buf(secret));
249
- var publicBuffer = Buffer.from(keys.publicKey);
250
- return "ak_".concat(encodeBase58Check(publicBuffer));
251
- }
252
- /**
253
- * Recover plaintext private key from secret-storage key object.
254
- * @param {String} password Keystore object password.
255
- * @param {Object} keyObject Keystore object.
256
- * @return {Buffer} Plaintext private key.
257
- */
258
-
259
- export function recover(_x6, _x7) {
260
- return _recover.apply(this, arguments);
261
- }
262
- /**
263
- * Export private key to keystore secret-storage format.
264
- * @param {String} name Key name.
265
- * @param {String} password User-supplied password.
266
- * @param {String} privateKey Private key.
267
- * @param {Buffer} nonce Randomly generated 24byte nonce.
268
- * @param {Buffer} salt Randomly generated 16byte salt.
269
- * @param {Object=} options Encryption parameters.
270
- * @param {String=} options.kdf Key derivation function (default: pbkdf2).
271
- * @param {String=} options.cipher Symmetric cipher (default: constants.cipher).
272
- * @param {Object=} options.kdfparams KDF parameters (default: constants.<kdf>).
273
- * @return {Object}
274
- */
275
-
276
- function _recover() {
277
- _recover = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(password, keyObject) {
278
- var nonce, salt, kdfParams, kdf, key;
279
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
280
- while (1) {
281
- switch (_context4.prev = _context4.next) {
282
- case 0:
283
- validateKeyObj(keyObject);
284
- nonce = Uint8Array.from(str2buf(keyObject.crypto.cipher_params.nonce));
285
- salt = Uint8Array.from(str2buf(keyObject.crypto.kdf_params.salt));
286
- kdfParams = keyObject.crypto.kdf_params;
287
- kdf = keyObject.crypto.kdf;
288
- _context4.t0 = decrypt;
289
- _context4.t1 = Uint8Array.from(str2buf(keyObject.crypto.ciphertext));
290
- _context4.next = 9;
291
- return deriveKey(password, salt, {
292
- kdf: kdf,
293
- kdf_params: kdfParams
294
- });
295
-
296
- case 9:
297
- _context4.t2 = _context4.sent;
298
- _context4.t3 = nonce;
299
- _context4.t4 = keyObject.crypto.symmetric_alg;
300
- _context4.next = 14;
301
- return (0, _context4.t0)(_context4.t1, _context4.t2, _context4.t3, _context4.t4);
302
-
303
- case 14:
304
- key = _context4.sent;
305
-
306
- if (key) {
307
- _context4.next = 17;
308
- break;
309
- }
310
-
311
- throw new Error('Invalid password');
312
-
313
- case 17:
314
- if (!(Buffer.from(key).length === 64)) {
315
- _context4.next = 19;
316
- break;
317
- }
318
-
319
- return _context4.abrupt("return", Buffer.from(key).toString('hex'));
320
-
321
- case 19:
322
- return _context4.abrupt("return", Buffer.from(key).toString('utf-8'));
323
-
324
- case 20:
325
- case "end":
326
- return _context4.stop();
327
- }
328
- }
329
- }, _callee4);
330
- }));
331
- return _recover.apply(this, arguments);
332
- }
333
-
334
- export function dump(_x8, _x9, _x10) {
335
- return _dump.apply(this, arguments);
336
- }
337
-
338
- function _dump() {
339
- _dump = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(name, password, privateKey) {
340
- var nonce,
341
- salt,
342
- options,
343
- opt,
344
- _args5 = arguments;
345
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
346
- while (1) {
347
- switch (_context5.prev = _context5.next) {
348
- case 0:
349
- nonce = _args5.length > 3 && _args5[3] !== undefined ? _args5[3] : nacl.randomBytes(24);
350
- salt = _args5.length > 4 && _args5[4] !== undefined ? _args5[4] : nacl.randomBytes(16);
351
- options = _args5.length > 5 && _args5[5] !== undefined ? _args5[5] : {};
352
- opt = _Object$assign({}, DEFAULTS.crypto, options);
353
- _context5.t0 = marshal;
354
- _context5.t1 = name;
355
- _context5.next = 8;
356
- return deriveKey(password, salt, opt);
357
-
358
- case 8:
359
- _context5.t2 = _context5.sent;
360
- _context5.t3 = privateKey;
361
- _context5.t4 = nonce;
362
- _context5.t5 = salt;
363
- _context5.t6 = opt;
364
- return _context5.abrupt("return", (0, _context5.t0)(_context5.t1, _context5.t2, _context5.t3, _context5.t4, _context5.t5, _context5.t6));
365
-
366
- case 14:
367
- case "end":
368
- return _context5.stop();
369
- }
370
- }
371
- }, _callee5);
372
- }));
373
- return _dump.apply(this, arguments);
374
- }
375
-
376
- export function validateKeyObj(obj) {
377
- var root = ['crypto', 'id', 'version', 'public_key'];
378
- var cryptoKeys = ['cipher_params', 'ciphertext', 'symmetric_alg', 'kdf', 'kdf_params'];
379
-
380
- var missingRootKeys = _filterInstanceProperty(root).call(root, function (key) {
381
- return !Object.prototype.hasOwnProperty.call(obj, key);
382
- });
383
-
384
- if (missingRootKeys.length) throw new Error("Invalid key file format. Require properties: ".concat(missingRootKeys));
385
-
386
- var missingCryptoKeys = _filterInstanceProperty(cryptoKeys).call(cryptoKeys, function (key) {
387
- return !Object.prototype.hasOwnProperty.call(obj.crypto, key);
388
- });
389
-
390
- if (missingCryptoKeys.length) throw new Error("Invalid key file format. Require properties: ".concat(missingCryptoKeys));
391
- return true;
392
- }
393
- //# sourceMappingURL=keystore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/keystore.js"],"names":["nacl","v4","uuid","encodeBase58Check","str2buf","_sodium","require","DEFAULTS","crypto","secret_type","symmetric_alg","kdf","kdf_params","memlimit_kib","opslimit","parallelism","DERIVED_KEY_FUNCTIONS","argon2id","deriveKeyUsingArgon2id","password","salt","options","memoryCost","timeCost","ready","then","sodium","result","crypto_pwhash","crypto_pwhash_ALG_ARGON2ID13","Buffer","from","CRYPTO_FUNCTIONS","encrypt","encryptXsalsa20Poly1305","decrypt","decryptXsalsa20Poly1305","plaintext","key","nonce","secretbox","ciphertext","res","open","Error","algo","deriveKey","Object","prototype","hasOwnProperty","call","marshal","name","derivedKey","privateKey","opt","version","public_key","getAddressFromPriv","id","toString","cipher_params","secret","keys","sign","keyPair","fromSecretKey","publicBuffer","publicKey","recover","keyObject","validateKeyObj","Uint8Array","kdfParams","length","dump","randomBytes","obj","root","cryptoKeys","missingRootKeys","missingCryptoKeys"],"mappings":"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","sourcesContent":["import nacl from 'tweetnacl'\nimport { v4 as uuid } from 'uuid'\n\nimport { encodeBase58Check } from './crypto'\nimport { str2buf } from './bytes'\n\nconst _sodium = require('libsodium-wrappers-sumo')\n\n/**\n * KeyStore module\n * @module @aeternity/aepp-sdk/es/utils/keystore\n * @example import { Keystore } from '@aeternity/aepp-sdk'\n * @example const { Keystore } = require('@aeternity/aepp-sdk')\n */\n\nconst DEFAULTS = {\n crypto: {\n secret_type: 'ed25519',\n symmetric_alg: 'xsalsa20-poly1305',\n kdf: 'argon2id',\n kdf_params: {\n memlimit_kib: 65536,\n opslimit: 3,\n parallelism: 1\n }\n }\n}\n\n// DERIVED KEY PART\nconst DERIVED_KEY_FUNCTIONS = {\n argon2id: deriveKeyUsingArgon2id\n}\n\nexport async function deriveKeyUsingArgon2id (password, salt, options) {\n const { memlimit_kib: memoryCost, opslimit: timeCost } = options.kdf_params\n // const isBrowser = !(typeof module !== 'undefined' && module.exports)\n\n return _sodium.ready.then(async () => {\n // tslint:disable-next-line:typedef\n const sodium = _sodium\n\n const result = sodium.crypto_pwhash(\n 32,\n password,\n salt,\n timeCost,\n memoryCost * 1024,\n sodium.crypto_pwhash_ALG_ARGON2ID13\n )\n return Buffer.from(result)\n })\n}\n\n// CRYPTO PART\nconst CRYPTO_FUNCTIONS = {\n 'xsalsa20-poly1305': { encrypt: encryptXsalsa20Poly1305, decrypt: decryptXsalsa20Poly1305 }\n}\n\nfunction encryptXsalsa20Poly1305 ({ plaintext, key, nonce }) {\n return nacl.secretbox(plaintext, nonce, key)\n}\n\nfunction decryptXsalsa20Poly1305 ({ ciphertext, key, nonce }) {\n const res = nacl.secretbox.open(ciphertext, nonce, key)\n if (!res) throw new Error('Invalid password or nonce')\n return res\n}\n\n/**\n * Symmetric private key encryption using secret (derived) key.\n * @param {buffer|string} plaintext Data to be encrypted.\n * @param {buffer|string} key Secret key.\n * @param {buffer|string} nonce Randomly generated nonce.\n * @param {string=} algo Encryption algorithm (default: DEFAULTS.crypto.symmetric_alg).\n * @return {buffer} Encrypted data.\n */\nfunction encrypt (plaintext, key, nonce, algo = DEFAULTS.crypto.symmetric_alg) {\n if (!CRYPTO_FUNCTIONS[algo]) throw new Error(algo + ' is not available')\n return CRYPTO_FUNCTIONS[algo].encrypt({ plaintext, nonce, key })\n}\n\n/**\n * Symmetric private key decryption using secret (derived) key.\n * @param {buffer|Uint8Array} ciphertext Data to be decrypted.\n * @param {buffer|Uint8Array} key Secret key.\n * @param {buffer|Uint8Array} nonce Nonce from key-object.\n * @param {string=} algo Encryption algorithm.\n * @return {buffer} Decrypted data.\n */\nfunction decrypt (ciphertext, key, nonce, algo) {\n if (!CRYPTO_FUNCTIONS[algo]) throw new Error(algo + ' is not available')\n return CRYPTO_FUNCTIONS[algo].decrypt({ ciphertext, nonce, key })\n}\n\n/**\n * Derive secret key from password with key derivation function.\n * @param {string} password User-supplied password.\n * @param {buffer|Uint8Array} nonce Randomly generated nonce.\n * @param {Object=} options Encryption parameters.\n * @param {string=} options.kdf Key derivation function (default: DEFAULTS.crypto.kdf).\n * @param {Object=} options.kdf_params KDF parameters (default: DEFAULTS.crypto.kdf_params).\n * @return {buffer} Secret key derived from password.\n */\nasync function deriveKey (password, nonce, options = {\n kdf_params: DEFAULTS.crypto.kdf_params,\n kdf: DEFAULTS.crypto.kdf\n}) {\n if (typeof password === 'undefined' || password === null || !nonce) {\n throw new Error('Must provide password and nonce to derive a key')\n }\n\n if (!Object.prototype.hasOwnProperty.call(DERIVED_KEY_FUNCTIONS, options.kdf)) throw new Error('Unsupported kdf type')\n\n return DERIVED_KEY_FUNCTIONS[options.kdf](password, nonce, options)\n}\n\n/**\n * Assemble key data object in secret-storage format.\n * @param {buffer} name Key name.\n * @param {buffer} derivedKey Password-derived secret key.\n * @param {buffer} privateKey Private key.\n * @param {buffer} nonce Randomly generated 24byte nonce.\n * @param {buffer} salt Randomly generated 16byte salt.\n * @param {Object=} options Encryption parameters.\n * @param {string=} options.kdf Key derivation function (default: argon2id).\n * @param {string=} options.cipher Symmetric cipher (default: constants.cipher).\n * @param {Object=} options.kdf_params KDF parameters (default: constants.<kdf>).\n * @return {Object}\n */\nfunction marshal (name, derivedKey, privateKey, nonce, salt, options = {}) {\n const opt = Object.assign({}, DEFAULTS.crypto, options)\n return Object.assign(\n { name, version: 1, public_key: getAddressFromPriv(privateKey), id: uuid() },\n {\n crypto: Object.assign(\n {\n secret_type: opt.secret_type,\n symmetric_alg: opt.symmetric_alg,\n ciphertext: Buffer.from(encrypt(Buffer.from(privateKey), derivedKey, nonce, opt.symmetric_alg)).toString('hex'),\n cipher_params: { nonce: Buffer.from(nonce).toString('hex') }\n },\n { kdf: opt.kdf, kdf_params: { ...opt.kdf_params, salt: Buffer.from(salt).toString('hex') } }\n )\n }\n )\n}\n\nexport function getAddressFromPriv (secret) {\n const keys = nacl.sign.keyPair.fromSecretKey(str2buf(secret))\n const publicBuffer = Buffer.from(keys.publicKey)\n return `ak_${encodeBase58Check(publicBuffer)}`\n}\n\n/**\n * Recover plaintext private key from secret-storage key object.\n * @param {String} password Keystore object password.\n * @param {Object} keyObject Keystore object.\n * @return {Buffer} Plaintext private key.\n */\nexport async function recover (password, keyObject) {\n validateKeyObj(keyObject)\n const nonce = Uint8Array.from(str2buf(keyObject.crypto.cipher_params.nonce))\n const salt = Uint8Array.from(str2buf(keyObject.crypto.kdf_params.salt))\n const kdfParams = keyObject.crypto.kdf_params\n const kdf = keyObject.crypto.kdf\n\n const key = await decrypt(\n Uint8Array.from(str2buf(keyObject.crypto.ciphertext)),\n await deriveKey(password, salt, { kdf, kdf_params: kdfParams }),\n nonce,\n keyObject.crypto.symmetric_alg\n )\n if (!key) throw new Error('Invalid password')\n\n if (Buffer.from(key).length === 64) return Buffer.from(key).toString('hex')\n return Buffer.from(key).toString('utf-8')\n}\n\n/**\n * Export private key to keystore secret-storage format.\n * @param {String} name Key name.\n * @param {String} password User-supplied password.\n * @param {String} privateKey Private key.\n * @param {Buffer} nonce Randomly generated 24byte nonce.\n * @param {Buffer} salt Randomly generated 16byte salt.\n * @param {Object=} options Encryption parameters.\n * @param {String=} options.kdf Key derivation function (default: pbkdf2).\n * @param {String=} options.cipher Symmetric cipher (default: constants.cipher).\n * @param {Object=} options.kdfparams KDF parameters (default: constants.<kdf>).\n * @return {Object}\n */\nexport async function dump (name, password, privateKey, nonce = nacl.randomBytes(24), salt = nacl.randomBytes(16), options = {}) {\n const opt = Object.assign({}, DEFAULTS.crypto, options)\n return marshal(\n name,\n await deriveKey(password, salt, opt),\n privateKey,\n nonce,\n salt,\n opt\n )\n}\n\nexport function validateKeyObj (obj) {\n const root = ['crypto', 'id', 'version', 'public_key']\n const cryptoKeys = ['cipher_params', 'ciphertext', 'symmetric_alg', 'kdf', 'kdf_params']\n\n const missingRootKeys = root.filter(key => !Object.prototype.hasOwnProperty.call(obj, key))\n if (missingRootKeys.length) throw new Error(`Invalid key file format. Require properties: ${missingRootKeys}`)\n\n const missingCryptoKeys = cryptoKeys.filter(key => !Object.prototype.hasOwnProperty.call(obj.crypto, key))\n if (missingCryptoKeys.length) throw new Error(`Invalid key file format. Require properties: ${missingCryptoKeys}`)\n\n return true\n}\n"],"file":"keystore.js"}