@aeternity/aepp-sdk 10.0.0 → 12.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 (424) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +15 -14
  3. package/dist/aepp-sdk.browser-script.js +1 -1
  4. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +13 -40
  5. package/dist/aepp-sdk.browser-script.js.map +1 -1
  6. package/dist/aepp-sdk.browser.js +1 -1
  7. package/dist/aepp-sdk.browser.js.map +1 -1
  8. package/dist/aepp-sdk.js +1 -1
  9. package/dist/aepp-sdk.js.map +1 -1
  10. package/es/AeSdk.d.ts +37 -0
  11. package/es/AeSdk.mjs +81 -0
  12. package/es/AeSdk.mjs.map +1 -0
  13. package/es/AeSdkAepp.d.ts +69 -0
  14. package/es/AeSdkAepp.mjs +175 -0
  15. package/es/AeSdkAepp.mjs.map +1 -0
  16. package/es/AeSdkBase.d.ts +212 -0
  17. package/es/AeSdkBase.mjs +310 -0
  18. package/es/AeSdkBase.mjs.map +1 -0
  19. package/es/AeSdkWallet.d.ts +103 -0
  20. package/es/AeSdkWallet.mjs +322 -0
  21. package/es/AeSdkWallet.mjs.map +1 -0
  22. package/es/Node.d.ts +44 -0
  23. package/es/Node.mjs +141 -0
  24. package/es/Node.mjs.map +1 -0
  25. package/es/account/Base.d.ts +65 -0
  26. package/es/account/Base.mjs +123 -0
  27. package/es/account/Base.mjs.map +1 -0
  28. package/es/account/Memory.d.ts +25 -0
  29. package/es/account/Memory.mjs +81 -0
  30. package/es/account/Memory.mjs.map +1 -0
  31. package/es/account/Rpc.d.ts +27 -0
  32. package/es/account/Rpc.mjs +79 -0
  33. package/es/account/Rpc.mjs.map +1 -0
  34. package/es/aens.d.ts +209 -0
  35. package/es/aens.mjs +332 -0
  36. package/es/aens.mjs.map +1 -0
  37. package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
  38. package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
  39. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
  41. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
  42. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
  44. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
  45. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
  46. package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
  47. package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
  48. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
  49. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -0
  50. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
  51. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
  52. package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
  53. package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
  54. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
  55. package/es/aepp-wallet-communication/schema.d.ts +118 -0
  56. package/es/aepp-wallet-communication/schema.mjs +214 -0
  57. package/es/aepp-wallet-communication/schema.mjs.map +1 -0
  58. package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
  59. package/es/aepp-wallet-communication/wallet-detector.mjs +63 -0
  60. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  61. package/es/apis/compiler/compiler.d.ts +92 -0
  62. package/es/apis/compiler/compiler.mjs +576 -0
  63. package/es/apis/compiler/compiler.mjs.map +1 -0
  64. package/es/apis/compiler/index.d.ts +2 -0
  65. package/es/apis/compiler/index.mjs +3 -0
  66. package/es/apis/compiler/index.mjs.map +1 -0
  67. package/es/apis/compiler/models/index.d.ts +248 -0
  68. package/es/apis/compiler/models/index.mjs +48 -0
  69. package/es/apis/compiler/models/index.mjs.map +1 -0
  70. package/es/apis/compiler/models/mappers.d.ts +23 -0
  71. package/es/apis/compiler/models/mappers.mjs +585 -0
  72. package/es/apis/compiler/models/mappers.mjs.map +1 -0
  73. package/es/apis/compiler/models/parameters.d.ts +13 -0
  74. package/es/apis/compiler/models/parameters.mjs +71 -0
  75. package/es/apis/compiler/models/parameters.mjs.map +1 -0
  76. package/es/apis/node/index.d.ts +2 -0
  77. package/es/apis/node/index.mjs +3 -0
  78. package/es/apis/node/index.mjs.map +1 -0
  79. package/es/apis/node/models/index.d.ts +1061 -0
  80. package/es/apis/node/models/index.mjs +2 -0
  81. package/es/apis/node/models/index.mjs.map +1 -0
  82. package/es/apis/node/models/mappers.d.ts +95 -0
  83. package/es/apis/node/models/mappers.mjs +4164 -0
  84. package/es/apis/node/models/mappers.mjs.map +1 -0
  85. package/es/apis/node/models/parameters.d.ts +17 -0
  86. package/es/apis/node/models/parameters.mjs +165 -0
  87. package/es/apis/node/models/parameters.mjs.map +1 -0
  88. package/es/apis/node/node.d.ts +215 -0
  89. package/es/apis/node/node.mjs +1165 -0
  90. package/es/apis/node/node.mjs.map +1 -0
  91. package/es/chain.d.ts +220 -0
  92. package/es/chain.mjs +524 -0
  93. package/es/chain.mjs.map +1 -0
  94. package/es/channel/handlers.d.ts +34 -0
  95. package/es/channel/{handlers.js → handlers.mjs} +163 -130
  96. package/es/channel/handlers.mjs.map +1 -0
  97. package/es/channel/index.d.ts +634 -0
  98. package/es/channel/index.mjs +978 -0
  99. package/es/channel/index.mjs.map +1 -0
  100. package/es/channel/internal.d.ts +100 -0
  101. package/es/channel/internal.mjs +328 -0
  102. package/es/channel/internal.mjs.map +1 -0
  103. package/es/contract/Compiler.d.ts +17 -0
  104. package/es/contract/Compiler.mjs +67 -0
  105. package/es/contract/Compiler.mjs.map +1 -0
  106. package/es/contract/aci.d.ts +125 -0
  107. package/es/contract/aci.mjs +496 -0
  108. package/es/contract/aci.mjs.map +1 -0
  109. package/es/contract/ga.d.ts +68 -0
  110. package/es/contract/ga.mjs +190 -0
  111. package/es/contract/ga.mjs.map +1 -0
  112. package/es/contract/methods.d.ts +68 -0
  113. package/es/contract/methods.mjs +101 -0
  114. package/es/contract/methods.mjs.map +1 -0
  115. package/es/index.d.ts +32 -0
  116. package/es/index.mjs +49 -0
  117. package/es/index.mjs.map +1 -0
  118. package/es/oracle.d.ts +154 -0
  119. package/es/oracle.mjs +288 -0
  120. package/es/oracle.mjs.map +1 -0
  121. package/es/spend.d.ts +61 -0
  122. package/es/spend.mjs +122 -0
  123. package/es/spend.mjs.map +1 -0
  124. package/es/tx/builder/constants.d.ts +41 -0
  125. package/es/tx/builder/constants.mjs +100 -0
  126. package/es/tx/builder/constants.mjs.map +1 -0
  127. package/es/tx/builder/field-types.d.ts +62 -0
  128. package/es/tx/builder/field-types.mjs +126 -0
  129. package/es/tx/builder/field-types.mjs.map +1 -0
  130. package/es/tx/builder/helpers.d.ts +131 -0
  131. package/es/tx/builder/helpers.mjs +223 -0
  132. package/es/tx/builder/helpers.mjs.map +1 -0
  133. package/es/tx/builder/index.d.ts +75 -0
  134. package/es/tx/builder/index.mjs +424 -0
  135. package/es/tx/builder/index.mjs.map +1 -0
  136. package/es/tx/builder/schema.d.ts +350 -0
  137. package/es/tx/builder/schema.mjs +320 -0
  138. package/es/tx/builder/schema.mjs.map +1 -0
  139. package/es/tx/index.d.ts +63 -0
  140. package/es/tx/index.mjs +209 -0
  141. package/es/tx/index.mjs.map +1 -0
  142. package/es/tx/min-fee.d.ts +20 -0
  143. package/es/tx/min-fee.mjs +148 -0
  144. package/es/tx/min-fee.mjs.map +1 -0
  145. package/es/tx/validator.d.ts +19 -0
  146. package/es/tx/validator.mjs +240 -0
  147. package/es/tx/validator.mjs.map +1 -0
  148. package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
  149. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
  150. package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
  151. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
  152. package/es/typings/bip32-path/index.d.mjs +2 -0
  153. package/es/typings/bip32-path/index.d.mjs.map +1 -0
  154. package/es/typings/blakejs/index.d.mjs +2 -0
  155. package/es/typings/blakejs/index.d.mjs.map +1 -0
  156. package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
  157. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
  158. package/es/utils/amount-formatter.d.ts +42 -0
  159. package/es/utils/{amount-formatter.js → amount-formatter.mjs} +38 -44
  160. package/es/utils/amount-formatter.mjs.map +1 -0
  161. package/es/utils/autorest.d.ts +6 -0
  162. package/es/utils/autorest.mjs +97 -0
  163. package/es/utils/autorest.mjs.map +1 -0
  164. package/es/utils/bignumber.d.ts +13 -0
  165. package/es/utils/bignumber.mjs +23 -0
  166. package/es/utils/bignumber.mjs.map +1 -0
  167. package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
  168. package/es/utils/{bytes.js → bytes.mjs} +26 -22
  169. package/es/utils/bytes.mjs.map +1 -0
  170. package/es/utils/crypto.d.ts +103 -0
  171. package/es/utils/crypto.mjs +221 -0
  172. package/es/utils/crypto.mjs.map +1 -0
  173. package/es/utils/encoder.d.ts +26 -0
  174. package/es/utils/encoder.mjs +102 -0
  175. package/es/utils/encoder.mjs.map +1 -0
  176. package/es/utils/errors.d.ts +481 -0
  177. package/es/utils/errors.mjs +882 -0
  178. package/es/utils/errors.mjs.map +1 -0
  179. package/es/utils/hd-wallet.d.ts +34 -0
  180. package/es/utils/hd-wallet.mjs +122 -0
  181. package/es/utils/hd-wallet.mjs.map +1 -0
  182. package/es/utils/json-big.d.ts +5 -0
  183. package/es/utils/json-big.mjs +41 -0
  184. package/es/utils/json-big.mjs.map +1 -0
  185. package/es/utils/keystore.d.ts +51 -0
  186. package/es/utils/keystore.mjs +145 -0
  187. package/es/utils/keystore.mjs.map +1 -0
  188. package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
  189. package/es/utils/{mptree.js → mptree.mjs} +33 -25
  190. package/es/utils/mptree.mjs.map +1 -0
  191. package/es/utils/other.d.ts +14 -0
  192. package/es/utils/other.mjs +28 -0
  193. package/es/utils/other.mjs.map +1 -0
  194. package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
  195. package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
  196. package/es/utils/semver-satisfies.mjs.map +1 -0
  197. package/es/utils/string.d.ts +24 -0
  198. package/es/utils/{string.js → string.mjs} +9 -11
  199. package/es/utils/string.mjs.map +1 -0
  200. package/package.json +67 -64
  201. package/src/AeSdk.ts +65 -0
  202. package/src/AeSdkAepp.ts +167 -0
  203. package/src/AeSdkBase.ts +320 -0
  204. package/src/AeSdkWallet.ts +332 -0
  205. package/src/Node.ts +167 -0
  206. package/src/account/Base.ts +114 -0
  207. package/src/account/Memory.ts +83 -0
  208. package/src/account/Rpc.ts +67 -0
  209. package/src/aens.ts +391 -0
  210. package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
  211. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
  212. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
  213. package/{es/utils/crypto-ts.js → src/aepp-wallet-communication/connection-proxy.ts} +16 -9
  214. package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
  215. package/src/aepp-wallet-communication/rpc/types.ts +66 -0
  216. package/src/aepp-wallet-communication/schema.ts +181 -0
  217. package/src/aepp-wallet-communication/wallet-detector.ts +71 -0
  218. package/src/apis/compiler/code-model-v4.yaml +2649 -0
  219. package/src/apis/compiler/compiler.ts +585 -0
  220. package/src/apis/compiler/index.ts +2 -0
  221. package/src/apis/compiler/models/index.ts +301 -0
  222. package/src/apis/compiler/models/mappers.ts +583 -0
  223. package/src/apis/compiler/models/parameters.ts +93 -0
  224. package/src/apis/node/code-model-v4.yaml +10046 -0
  225. package/src/apis/node/index.ts +2 -0
  226. package/src/apis/node/models/index.ts +1253 -0
  227. package/src/apis/node/models/mappers.ts +4278 -0
  228. package/src/apis/node/models/parameters.ts +188 -0
  229. package/src/apis/node/node.ts +1299 -0
  230. package/src/chain.ts +444 -0
  231. package/src/channel/{handlers.js → handlers.ts} +238 -143
  232. package/src/channel/index.ts +991 -0
  233. package/src/channel/internal.ts +345 -0
  234. package/src/contract/Compiler.ts +66 -0
  235. package/src/contract/aci.ts +529 -0
  236. package/src/contract/ga.ts +178 -0
  237. package/src/contract/methods.ts +118 -0
  238. package/src/index.ts +51 -0
  239. package/src/oracle.ts +342 -0
  240. package/src/spend.ts +152 -0
  241. package/src/tx/builder/constants.ts +96 -0
  242. package/src/tx/builder/field-types.ts +111 -0
  243. package/src/tx/builder/helpers.ts +253 -0
  244. package/src/tx/builder/index.ts +394 -0
  245. package/src/tx/builder/schema.ts +771 -0
  246. package/src/tx/index.ts +199 -0
  247. package/src/tx/min-fee.ts +136 -0
  248. package/src/tx/validator.ts +226 -0
  249. package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
  250. package/src/typings/@aeternity__uuid/index.d.ts +3 -0
  251. package/src/typings/bip32-path/index.d.ts +33 -0
  252. package/src/typings/tweetnacl-auth/index.d.ts +14 -0
  253. package/src/utils/amount-formatter.ts +29 -41
  254. package/src/utils/autorest.ts +90 -0
  255. package/src/utils/bignumber.ts +9 -19
  256. package/src/utils/bytes.ts +15 -16
  257. package/src/utils/crypto.ts +217 -0
  258. package/src/utils/encoder.ts +98 -0
  259. package/src/utils/errors.ts +817 -0
  260. package/src/utils/hd-wallet.ts +134 -0
  261. package/src/utils/json-big.ts +26 -0
  262. package/src/utils/keystore.ts +179 -0
  263. package/src/utils/mptree.ts +26 -20
  264. package/src/utils/other.ts +28 -43
  265. package/src/utils/string.ts +8 -10
  266. package/CHANGELOG.md +0 -1603
  267. package/es/account/base.js +0 -169
  268. package/es/account/base.js.map +0 -1
  269. package/es/account/memory.js +0 -84
  270. package/es/account/memory.js.map +0 -1
  271. package/es/account/multiple.js +0 -178
  272. package/es/account/multiple.js.map +0 -1
  273. package/es/ae/aens.js +0 -408
  274. package/es/ae/aens.js.map +0 -1
  275. package/es/ae/aepp.js +0 -45
  276. package/es/ae/aepp.js.map +0 -1
  277. package/es/ae/contract.js +0 -312
  278. package/es/ae/contract.js.map +0 -1
  279. package/es/ae/index.js +0 -206
  280. package/es/ae/index.js.map +0 -1
  281. package/es/ae/oracle.js +0 -322
  282. package/es/ae/oracle.js.map +0 -1
  283. package/es/ae/universal.js +0 -45
  284. package/es/ae/universal.js.map +0 -1
  285. package/es/ae/wallet.js +0 -50
  286. package/es/ae/wallet.js.map +0 -1
  287. package/es/amount-formatter.d.ts +0 -58
  288. package/es/bignumber.d.ts +0 -24
  289. package/es/chain/index.js +0 -256
  290. package/es/chain/index.js.map +0 -1
  291. package/es/chain/node.js +0 -394
  292. package/es/chain/node.js.map +0 -1
  293. package/es/channel/handlers.js.map +0 -1
  294. package/es/channel/index.js +0 -980
  295. package/es/channel/index.js.map +0 -1
  296. package/es/channel/internal.js +0 -266
  297. package/es/channel/internal.js.map +0 -1
  298. package/es/contract/aci/helpers.js +0 -298
  299. package/es/contract/aci/helpers.js.map +0 -1
  300. package/es/contract/aci/index.js +0 -361
  301. package/es/contract/aci/index.js.map +0 -1
  302. package/es/contract/aci/transformation.js +0 -66
  303. package/es/contract/aci/transformation.js.map +0 -1
  304. package/es/contract/compiler.js +0 -244
  305. package/es/contract/compiler.js.map +0 -1
  306. package/es/contract/ga/helpers.js +0 -22
  307. package/es/contract/ga/helpers.js.map +0 -1
  308. package/es/contract/ga/index.js +0 -170
  309. package/es/contract/ga/index.js.map +0 -1
  310. package/es/contract/index.js +0 -162
  311. package/es/contract/index.js.map +0 -1
  312. package/es/crypto-ts.d.ts +0 -9
  313. package/es/index.js +0 -57
  314. package/es/index.js.map +0 -1
  315. package/es/node-pool/index.js +0 -187
  316. package/es/node-pool/index.js.map +0 -1
  317. package/es/node.js +0 -132
  318. package/es/node.js.map +0 -1
  319. package/es/other.d.ts +0 -31
  320. package/es/string.d.ts +0 -26
  321. package/es/tx/builder/helpers.js +0 -305
  322. package/es/tx/builder/helpers.js.map +0 -1
  323. package/es/tx/builder/index.js +0 -595
  324. package/es/tx/builder/index.js.map +0 -1
  325. package/es/tx/builder/schema.js +0 -814
  326. package/es/tx/builder/schema.js.map +0 -1
  327. package/es/tx/index.js +0 -300
  328. package/es/tx/index.js.map +0 -1
  329. package/es/tx/tx-object.js +0 -276
  330. package/es/tx/tx-object.js.map +0 -1
  331. package/es/tx/tx.js +0 -937
  332. package/es/tx/tx.js.map +0 -1
  333. package/es/tx/validator.js +0 -208
  334. package/es/tx/validator.js.map +0 -1
  335. package/es/typings/blakejs/index.d.js +0 -2
  336. package/es/typings/blakejs/index.d.js.map +0 -1
  337. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -131
  338. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
  339. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -184
  340. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
  341. package/es/utils/aepp-wallet-communication/connection/index.js +0 -84
  342. package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
  343. package/es/utils/aepp-wallet-communication/content-script-bridge.js +0 -97
  344. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
  345. package/es/utils/aepp-wallet-communication/helpers.js +0 -103
  346. package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
  347. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -329
  348. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
  349. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -270
  350. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
  351. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -533
  352. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
  353. package/es/utils/aepp-wallet-communication/schema.js +0 -107
  354. package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
  355. package/es/utils/aepp-wallet-communication/wallet-detector.js +0 -109
  356. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
  357. package/es/utils/amount-formatter.js.map +0 -1
  358. package/es/utils/async-init.js +0 -67
  359. package/es/utils/async-init.js.map +0 -1
  360. package/es/utils/bignumber.js +0 -28
  361. package/es/utils/bignumber.js.map +0 -1
  362. package/es/utils/bytes.js.map +0 -1
  363. package/es/utils/crypto-ts.js.map +0 -1
  364. package/es/utils/crypto.js +0 -304
  365. package/es/utils/crypto.js.map +0 -1
  366. package/es/utils/hd-wallet.js +0 -112
  367. package/es/utils/hd-wallet.js.map +0 -1
  368. package/es/utils/json-big.js +0 -45
  369. package/es/utils/json-big.js.map +0 -1
  370. package/es/utils/keystore.js +0 -228
  371. package/es/utils/keystore.js.map +0 -1
  372. package/es/utils/mptree.js.map +0 -1
  373. package/es/utils/other.js +0 -43
  374. package/es/utils/other.js.map +0 -1
  375. package/es/utils/semver-satisfies.js.map +0 -1
  376. package/es/utils/string.js.map +0 -1
  377. package/es/utils/swagger.js +0 -132
  378. package/es/utils/swagger.js.map +0 -1
  379. package/src/account/base.js +0 -153
  380. package/src/account/memory.js +0 -78
  381. package/src/account/multiple.js +0 -154
  382. package/src/ae/aens.js +0 -366
  383. package/src/ae/aepp.js +0 -45
  384. package/src/ae/contract.js +0 -285
  385. package/src/ae/index.js +0 -167
  386. package/src/ae/oracle.js +0 -296
  387. package/src/ae/universal.js +0 -47
  388. package/src/ae/wallet.js +0 -50
  389. package/src/chain/index.js +0 -250
  390. package/src/chain/node.js +0 -293
  391. package/src/channel/index.js +0 -898
  392. package/src/channel/internal.js +0 -231
  393. package/src/contract/aci/index.js +0 -317
  394. package/src/contract/aci/transformation.js +0 -72
  395. package/src/contract/compiler.js +0 -195
  396. package/src/contract/ga/helpers.js +0 -17
  397. package/src/contract/ga/index.js +0 -147
  398. package/src/contract/index.js +0 -163
  399. package/src/index.js +0 -90
  400. package/src/node-pool/index.js +0 -171
  401. package/src/node.js +0 -118
  402. package/src/tx/builder/helpers.js +0 -325
  403. package/src/tx/builder/index.js +0 -460
  404. package/src/tx/builder/schema.js +0 -1211
  405. package/src/tx/index.js +0 -301
  406. package/src/tx/tx-object.js +0 -186
  407. package/src/tx/tx.js +0 -622
  408. package/src/tx/validator.js +0 -161
  409. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -114
  410. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -161
  411. package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
  412. package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -85
  413. package/src/utils/aepp-wallet-communication/helpers.js +0 -70
  414. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -268
  415. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -223
  416. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -390
  417. package/src/utils/aepp-wallet-communication/schema.js +0 -108
  418. package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -91
  419. package/src/utils/async-init.js +0 -41
  420. package/src/utils/crypto.js +0 -312
  421. package/src/utils/hd-wallet.js +0 -115
  422. package/src/utils/json-big.js +0 -26
  423. package/src/utils/keystore.js +0 -223
  424. package/src/utils/swagger.js +0 -133
@@ -0,0 +1,134 @@
1
+ import nacl from 'tweetnacl'
2
+ import { full as hmac } from 'tweetnacl-auth'
3
+ import { fromString } from 'bip32-path'
4
+ import { decryptKey, encryptKey } from './crypto'
5
+ import { encode } from './encoder'
6
+ import { CryptographyError } from './errors'
7
+ import { bytesToHex } from './bytes'
8
+ import { concatBuffers } from './other'
9
+
10
+ /**
11
+ * @category exception
12
+ */
13
+ export class DerivationError extends CryptographyError {
14
+ constructor (message: string) {
15
+ super(message)
16
+ this.name = 'DerivationError'
17
+ }
18
+ }
19
+
20
+ const ED25519_CURVE = Buffer.from('ed25519 seed')
21
+ const HARDENED_OFFSET = 0x80000000
22
+
23
+ interface KeyTreeNode {
24
+ secretKey: Uint8Array
25
+ chainCode: Uint8Array
26
+ }
27
+
28
+ interface HDWallet {
29
+ secretKey: string
30
+ chainCode: string
31
+ }
32
+
33
+ interface Account {
34
+ secretKey: string
35
+ publicKey: string
36
+ }
37
+
38
+ type Dec<N extends number> = [-1, 0, 1, 2, 3, 4][N]
39
+ type Bip32PathT<MaxLen extends number, H extends 'H' | 'h' | '\''> = MaxLen extends -1
40
+ ? `${number}${H}`
41
+ : Bip32PathT<Dec<MaxLen>, H> | `${Bip32PathT<Dec<MaxLen>, H>}/${number}${H}`
42
+ type Bip32Path<MaxLen extends number> =
43
+ '' | Bip32PathT<MaxLen, 'H'> | Bip32PathT<MaxLen, 'h'> | Bip32PathT<MaxLen, '\''>
44
+
45
+ export function derivePathFromKey (path: Bip32Path<5>, key: KeyTreeNode): KeyTreeNode {
46
+ const segments = path === '' ? [] : fromString(path).toPathArray()
47
+ segments.forEach((segment, i) => {
48
+ if (segment < HARDENED_OFFSET) {
49
+ throw new DerivationError(`Segment #${i + 1} is not hardened`)
50
+ }
51
+ })
52
+
53
+ return segments.reduce((parentKey, segment) => deriveChild(parentKey, segment), key)
54
+ }
55
+
56
+ export function derivePathFromSeed (path: 'm' | `m/${Bip32Path<5>}`, seed: Uint8Array): KeyTreeNode {
57
+ if (!['m', 'm/'].includes(path.slice(0, 2))) {
58
+ throw new DerivationError('Root element is required')
59
+ }
60
+ const masterKey = getMasterKeyFromSeed(seed)
61
+ return derivePathFromKey(path.slice(2) as Bip32Path<5>, masterKey)
62
+ }
63
+
64
+ function formatAccount (keys: nacl.SignKeyPair): Account {
65
+ const { secretKey, publicKey } = keys
66
+ return {
67
+ secretKey: bytesToHex(secretKey),
68
+ publicKey: encode(publicKey, 'ak')
69
+ }
70
+ }
71
+
72
+ export function getKeyPair (secretKey: Uint8Array): nacl.SignKeyPair {
73
+ return nacl.sign.keyPair.fromSeed(secretKey)
74
+ }
75
+
76
+ export function getMasterKeyFromSeed (seed: Uint8Array): KeyTreeNode {
77
+ const I = hmac(seed, ED25519_CURVE)
78
+ const IL = I.slice(0, 32)
79
+ const IR = I.slice(32)
80
+ return {
81
+ secretKey: IL,
82
+ chainCode: IR
83
+ }
84
+ }
85
+
86
+ export function deriveChild ({ secretKey, chainCode }: KeyTreeNode, index: number): KeyTreeNode {
87
+ if (index < HARDENED_OFFSET) {
88
+ throw new DerivationError(`Segment ${index} is not hardened`)
89
+ }
90
+ const indexBuffer = Buffer.allocUnsafe(4)
91
+ indexBuffer.writeUInt32BE(index, 0)
92
+
93
+ const data = concatBuffers([Buffer.alloc(1, 0), secretKey, indexBuffer])
94
+
95
+ const I = hmac(data, chainCode)
96
+ const IL = I.slice(0, 32)
97
+ const IR = I.slice(32)
98
+ return {
99
+ secretKey: IL,
100
+ chainCode: IR
101
+ }
102
+ }
103
+
104
+ export function generateSaveHDWalletFromSeed (seed: Uint8Array, password: string): HDWallet {
105
+ const walletKey = derivePathFromSeed('m/44h/457h', seed)
106
+ return {
107
+ secretKey: bytesToHex(encryptKey(password, walletKey.secretKey)),
108
+ chainCode: bytesToHex(encryptKey(password, walletKey.chainCode))
109
+ }
110
+ }
111
+
112
+ export function getSaveHDWalletAccounts (
113
+ saveHDWallet: HDWallet, password: string, accountCount: number
114
+ ): Account[] {
115
+ const walletKey = {
116
+ secretKey: decryptKey(password, Buffer.from(saveHDWallet.secretKey, 'hex')),
117
+ chainCode: decryptKey(password, Buffer.from(saveHDWallet.chainCode, 'hex'))
118
+ }
119
+ return (new Array(accountCount)).fill(undefined)
120
+ .map((_, idx) =>
121
+ formatAccount(getKeyPair(derivePathFromKey(`${idx}h/0h/0h`, walletKey).secretKey)))
122
+ }
123
+
124
+ export const getHdWalletAccountFromSeed = (
125
+ seed: Uint8Array, accountIdx: number
126
+ ): Account & { idx: number } => {
127
+ const walletKey = derivePathFromSeed('m/44h/457h', seed)
128
+ const derived = derivePathFromKey(`${accountIdx}h/0h/0h`, walletKey)
129
+ const keyPair = getKeyPair(derived.secretKey)
130
+ return {
131
+ ...formatAccount(keyPair),
132
+ idx: accountIdx
133
+ }
134
+ }
@@ -0,0 +1,26 @@
1
+ import JsonBig from 'json-bigint'
2
+ import BigNumber from 'bignumber.js'
3
+ import { mapObject } from './other'
4
+
5
+ const jsonBig = JsonBig({ storeAsString: true })
6
+
7
+ const convertValuesToBigNumbers = (value: any): any => {
8
+ if (typeof value === 'object' && value !== null && value.constructor === Object) {
9
+ return mapObject(value, ([key, value]) => [key, convertValuesToBigNumbers(value)])
10
+ }
11
+ if (Array.isArray(value)) {
12
+ return value.map(item => convertValuesToBigNumbers(item))
13
+ }
14
+ if (typeof value === 'string' && new BigNumber(value).toString(10) === value) {
15
+ const bn = new BigNumber(value)
16
+ bn.toJSON = () => bn.toString(10)
17
+ return bn
18
+ }
19
+ return value
20
+ }
21
+
22
+ export default {
23
+ stringify: (...args: Parameters<typeof JsonBig['stringify']>): string =>
24
+ jsonBig.stringify(convertValuesToBigNumbers(args[0]), ...args.slice(1)),
25
+ parse: jsonBig.parse
26
+ }
@@ -0,0 +1,179 @@
1
+ import nacl from 'tweetnacl'
2
+ import { v4 as uuid } from '@aeternity/uuid'
3
+ import { ArgonType, hash } from '@aeternity/argon2-browser/dist/argon2-bundled.min.js'
4
+ import { getAddressFromPriv } from './crypto'
5
+ import { bytesToHex, hexToBytes } from './bytes'
6
+ import { InvalidPasswordError } from './errors'
7
+
8
+ const DERIVED_KEY_FUNCTIONS = {
9
+ async argon2id (
10
+ pass: string | Uint8Array,
11
+ salt: string | Uint8Array,
12
+ params: Partial<Keystore['crypto']['kdf_params']>
13
+ ): Promise<Uint8Array> {
14
+ const { memlimit_kib: mem, opslimit: time } = params
15
+
16
+ return (await hash({
17
+ hashLen: 32,
18
+ pass,
19
+ salt,
20
+ time,
21
+ mem,
22
+ type: ArgonType.Argon2id
23
+ })).hash
24
+ }
25
+ }
26
+
27
+ const CRYPTO_FUNCTIONS = {
28
+ 'xsalsa20-poly1305': {
29
+ encrypt: nacl.secretbox,
30
+ decrypt (...args: Parameters<typeof nacl.secretbox.open>): Uint8Array {
31
+ const res = nacl.secretbox.open(...args)
32
+ if (res == null) throw new InvalidPasswordError()
33
+ return res
34
+ }
35
+ }
36
+ }
37
+
38
+ export interface Keystore {
39
+ name: string
40
+ version: 1
41
+ public_key: string
42
+ id: string
43
+ crypto: {
44
+ secret_type: 'ed25519'
45
+ symmetric_alg: keyof typeof CRYPTO_FUNCTIONS
46
+ ciphertext: string
47
+ cipher_params: {
48
+ nonce: string
49
+ }
50
+ kdf: keyof typeof DERIVED_KEY_FUNCTIONS
51
+ kdf_params: {
52
+ memlimit_kib: number
53
+ opslimit: number
54
+ parallelism: number
55
+ salt: string
56
+ }
57
+ }
58
+ }
59
+
60
+ const CRYPTO_DEFAULTS = {
61
+ secret_type: 'ed25519',
62
+ symmetric_alg: 'xsalsa20-poly1305',
63
+ kdf: 'argon2id',
64
+ kdf_params: {
65
+ memlimit_kib: 65536,
66
+ opslimit: 3,
67
+ parallelism: 1
68
+ }
69
+ } as const
70
+
71
+ /**
72
+ * Symmetric private key encryption using secret (derived) key.
73
+ * @param plaintext - Data to be encrypted.
74
+ * @param key - Secret key.
75
+ * @param nonce - Randomly generated nonce.
76
+ * @param algo - Encryption algorithm.
77
+ * @returns Encrypted data.
78
+ */
79
+ function encrypt (
80
+ plaintext: Uint8Array,
81
+ key: Uint8Array,
82
+ nonce: Uint8Array,
83
+ algo: keyof typeof CRYPTO_FUNCTIONS = CRYPTO_DEFAULTS.symmetric_alg
84
+ ): Uint8Array {
85
+ return CRYPTO_FUNCTIONS[algo].encrypt(plaintext, nonce, key)
86
+ }
87
+
88
+ /**
89
+ * Symmetric private key decryption using secret (derived) key.
90
+ * @param ciphertext - Data to be decrypted.
91
+ * @param key - Secret key.
92
+ * @param nonce - Nonce from key-object.
93
+ * @param algo - Encryption algorithm.
94
+ * @returns Decrypted data.
95
+ */
96
+ function decrypt (
97
+ ciphertext: Uint8Array,
98
+ key: Uint8Array,
99
+ nonce: Uint8Array,
100
+ algo: keyof typeof CRYPTO_FUNCTIONS = CRYPTO_DEFAULTS.symmetric_alg
101
+ ): Uint8Array {
102
+ return CRYPTO_FUNCTIONS[algo].decrypt(ciphertext, nonce, key)
103
+ }
104
+
105
+ /**
106
+ * Derive secret key from password with key derivation function.
107
+ * @param password - User-supplied password.
108
+ * @param nonce - Randomly generated nonce.
109
+ * @param kdf - Key derivation function.
110
+ * @param kdfParams - KDF parameters.
111
+ * @returns Secret key derived from password.
112
+ */
113
+ async function deriveKey (
114
+ password: string | Uint8Array,
115
+ nonce: string | Uint8Array,
116
+ kdf: Keystore['crypto']['kdf'],
117
+ kdfParams: Omit<Keystore['crypto']['kdf_params'], 'salt'>
118
+ ): Promise<Uint8Array> {
119
+ return await DERIVED_KEY_FUNCTIONS[kdf](password, nonce, kdfParams)
120
+ }
121
+
122
+ /**
123
+ * Recover plaintext private key from secret-storage key object.
124
+ * @param password - Keystore object password.
125
+ * @param keystore - Keystore object.
126
+ * @returns Plaintext private key.
127
+ */
128
+ export async function recover (
129
+ password: string | Uint8Array, { crypto }: Keystore
130
+ ): Promise<string> {
131
+ const salt = hexToBytes(crypto.kdf_params.salt)
132
+ return bytesToHex(decrypt(
133
+ hexToBytes(crypto.ciphertext),
134
+ await deriveKey(password, salt, crypto.kdf, crypto.kdf_params),
135
+ hexToBytes(crypto.cipher_params.nonce),
136
+ crypto.symmetric_alg
137
+ ))
138
+ }
139
+
140
+ /**
141
+ * Export private key to keystore secret-storage format.
142
+ * @param name - Key name.
143
+ * @param password - User-supplied password.
144
+ * @param privateKey - Private key as hex-string or a Buffer.
145
+ * @param nonce - Randomly generated 24byte nonce.
146
+ * @param salt - Randomly generated 16byte salt.
147
+ * @param options - Encryption parameters.
148
+ * @param options.kdf - Key derivation function.
149
+ * @param options.kdf_params - KDF parameters.
150
+ */
151
+ export async function dump (
152
+ name: string,
153
+ password: string | Uint8Array,
154
+ privateKey: string | Uint8Array,
155
+ nonce: Uint8Array = nacl.randomBytes(24),
156
+ salt: Uint8Array = nacl.randomBytes(16),
157
+ options?: Partial<Keystore['crypto']>
158
+ ): Promise<Keystore> {
159
+ const opt = { ...CRYPTO_DEFAULTS, ...options }
160
+ const derivedKey = await deriveKey(password, salt, opt.kdf, opt.kdf_params)
161
+ const payload = typeof privateKey === 'string' ? hexToBytes(privateKey) : privateKey
162
+ return {
163
+ name,
164
+ version: 1,
165
+ public_key: getAddressFromPriv(payload),
166
+ id: uuid(),
167
+ crypto: {
168
+ secret_type: opt.secret_type,
169
+ symmetric_alg: opt.symmetric_alg,
170
+ ciphertext: bytesToHex(encrypt(payload, derivedKey, nonce, opt.symmetric_alg)),
171
+ cipher_params: { nonce: bytesToHex(nonce) },
172
+ kdf: opt.kdf,
173
+ kdf_params: {
174
+ ...opt.kdf_params,
175
+ salt: bytesToHex(salt)
176
+ }
177
+ }
178
+ }
179
+ }
@@ -17,7 +17,13 @@
17
17
 
18
18
  import { encode as rlpEncode } from 'rlp'
19
19
  import type { Input } from 'rlp'
20
- import { hash } from './crypto-ts'
20
+ import { hash } from './crypto'
21
+ import {
22
+ MerkleTreeHashMismatchError,
23
+ MissingNodeInTreeError,
24
+ UnknownPathNibbleError,
25
+ UnknownNodeLengthError
26
+ } from './errors'
21
27
 
22
28
  enum NodeType {
23
29
  Branch,
@@ -37,9 +43,8 @@ export default class MPTree {
37
43
 
38
44
  /**
39
45
  * Deserialize Merkle Patricia Tree
40
- * @rtype (binary: Array) => MPTree
41
- * @param {Array} binary - Binary
42
- * @return {MPTree} Merkle Patricia Tree
46
+ * @param binary - Binary
47
+ * @returns Merkle Patricia Tree
43
48
  */
44
49
  constructor (binary: MPTreeBinary) {
45
50
  this.rootHash = binary[0].toString('hex')
@@ -47,9 +52,9 @@ export default class MPTree {
47
52
  binary[1].map((node) => [node[0].toString('hex'), node[1]])
48
53
  )
49
54
 
50
- if (this.nodes[this.rootHash] === undefined) throw new Error('Can\'t find a node by root hash')
55
+ if (this.nodes[this.rootHash] === undefined) throw new MissingNodeInTreeError('Can\'t find a node by root hash')
51
56
  Object.entries(this.nodes).forEach(([key, node]) => {
52
- if (MPTree.nodeHash(node) !== key) throw new Error('Node hash is not equal to provided one')
57
+ if (MPTree.nodeHash(node) !== key) throw new MerkleTreeHashMismatchError()
53
58
  const { type, payload } = MPTree.parseNode(node)
54
59
  switch (type) {
55
60
  case NodeType.Branch:
@@ -58,13 +63,13 @@ export default class MPTree {
58
63
  .filter(n => n.length)
59
64
  .forEach((n) => {
60
65
  if (this.nodes[n.toString('hex')] === undefined) {
61
- throw new Error('Can\'t find a node by hash in branch node')
66
+ throw new MissingNodeInTreeError('Can\'t find a node by hash in branch node')
62
67
  }
63
68
  })
64
69
  break
65
70
  case NodeType.Extension:
66
71
  if (this.nodes[payload[0].toString('hex')] === undefined) {
67
- throw new Error('Can\'t find a node by hash in extension node')
72
+ throw new MissingNodeInTreeError('Can\'t find a node by hash in extension node')
68
73
  }
69
74
  }
70
75
  })
@@ -74,27 +79,29 @@ export default class MPTree {
74
79
  return this.rootHash === tree.rootHash
75
80
  }
76
81
 
77
- private static parseNode (node: Buffer[]): { type: NodeType, payload: Buffer[], path: string | null } {
82
+ private static parseNode (node: Buffer[]): {
83
+ type: NodeType
84
+ payload: Buffer[]
85
+ path: string | null
86
+ } {
78
87
  switch (node.length) {
79
88
  case 17:
80
89
  return { type: NodeType.Branch, payload: node, path: null }
81
90
  case 2: {
82
- const path = node[0].toString('hex')
83
- const nibble = parseInt(path[0], 16)
84
- if (nibble > 3) throw new Error(`Unknown path nibble: ${nibble}`)
91
+ const nibble = node[0][0] >> 4
92
+ if (nibble > 3) throw new UnknownPathNibbleError(nibble)
85
93
  const type = nibble <= 1 ? NodeType.Extension : NodeType.Leaf
86
94
  const slice = [0, 2].includes(nibble) ? 2 : 1
87
- return { type, payload: [node[1]], path: path.slice(slice) }
95
+ return { type, payload: [node[1]], path: node[0].toString('hex').slice(slice) }
88
96
  }
89
97
  default:
90
- throw new Error(`Unknown node length: ${node.length}`)
98
+ throw new UnknownNodeLengthError(node.length)
91
99
  }
92
100
  }
93
101
 
94
102
  /**
95
103
  * Serialize Merkle Patricia Tree
96
- * @rtype () => Array
97
- * @return {Array} Binary
104
+ * @returns Binary
98
105
  */
99
106
  serialize (): MPTreeBinary {
100
107
  return [
@@ -108,9 +115,8 @@ export default class MPTree {
108
115
 
109
116
  /**
110
117
  * Retrieve value from Merkle Patricia Tree
111
- * @rtype (key: String) => Buffer
112
- * @param {String} key - The key of the element to retrieve
113
- * @return {Buffer} Value associated to the specified key
118
+ * @param key - The key of the element to retrieve
119
+ * @returns Value associated to the specified key
114
120
  */
115
121
  get (key: string): Buffer | undefined {
116
122
  let searchFrom = this.rootHash
@@ -119,7 +125,7 @@ export default class MPTree {
119
125
  switch (type) {
120
126
  case NodeType.Branch:
121
127
  if (key.length === 0) return payload[16]
122
- searchFrom = payload[parseInt(key[0], 16)].toString('hex')
128
+ searchFrom = payload[+`0x${key[0]}`].toString('hex')
123
129
  key = key.substr(1)
124
130
  break
125
131
  case NodeType.Extension:
@@ -1,51 +1,36 @@
1
- import { snakeToPascal, pascalToSnake } from './string'
2
-
3
1
  export const pause = async (duration: number): Promise<void> =>
4
2
  await new Promise(resolve => setTimeout(resolve, duration))
5
3
 
6
- export const mapObject = (
7
- object: object,
8
- fn: (value: [string, any], index: number, array: Array<[string, any]>) => Array<[string, any]>
9
- ): object => Object.fromEntries(Object.entries(object).map(fn))
10
-
11
- export const filterObject = (
12
- object: object,
13
- fn: (value: [string, any], index: number, array: Array<[string, any]>) => boolean
14
- ): object => Object.fromEntries(Object.entries(object).filter(fn))
4
+ export const mapObject = <InputV, OutputV>(
5
+ object: { [k: string]: InputV },
6
+ fn: (
7
+ value: [string, InputV], index: number, array: Array<[string, InputV]>
8
+ ) => [number | string, OutputV]
9
+ ): { [k: string]: OutputV } => Object.fromEntries(Object.entries(object).map(fn))
15
10
 
16
- /**
17
- * Key traversal metafunction
18
- * @static
19
- * @function
20
- * @rtype (fn: (s: String) => String) => (o: Object) => Object
21
- * @param {Function} fn - Key transformation function
22
- * @param {Object} object - Object to traverse
23
- * @return {Object} Transformed object
24
- */
25
- export const traverseKeys = (fn: Function, object: any): any => {
26
- if (typeof object !== 'object' || object === null) return object
27
- if (Array.isArray(object)) return object.map(i => traverseKeys(fn, i))
28
- return mapObject(object, ([key, value]: [string, any]) => [
29
- fn(key), traverseKeys(fn, value)
30
- ])
31
- }
11
+ // remove after dropping webpack4 support
12
+ const isWebpack4Buffer = (() => {
13
+ try {
14
+ Buffer.concat([Uint8Array.from([])])
15
+ return false
16
+ } catch (error) {
17
+ return true
18
+ }
19
+ })()
32
20
 
33
- /**
34
- * snake_case key traversal
35
- * @static
36
- * @rtype (o: Object) => Object
37
- * @param {Object} object - Object to traverse
38
- * @return {Object} Transformed object
39
- * @see pascalToSnake
40
- */
41
- export const snakizeKeys = traverseKeys.bind(null, pascalToSnake)
21
+ export const concatBuffers = isWebpack4Buffer
22
+ ? (list: readonly Uint8Array[], totalLength?: number): Buffer =>
23
+ Buffer.concat(list.map(el => Buffer.from(el)), totalLength)
24
+ : Buffer.concat
42
25
 
43
26
  /**
44
- * PascalCase key traversal
45
- * @static
46
- * @rtype (o: Object) => Object
47
- * @param {Object} object - Object to traverse
48
- * @return {Object} Transformed object
49
- * @see snakeToPascal
27
+ * Object key type guard
28
+ * @param key - Object key
29
+ * @param object - object
50
30
  */
51
- export const pascalizeKeys = traverseKeys.bind(null, snakeToPascal)
31
+ export function isKeyOfObject<T> (
32
+ key: string | number | symbol,
33
+ object: T
34
+ ): key is keyof T {
35
+ return key in object
36
+ }
@@ -17,9 +17,8 @@
17
17
 
18
18
  /**
19
19
  * Convert string from snake_case to PascalCase
20
- * @rtype (s: String) => String
21
- * @param {String} s - String to convert
22
- * @return {String} Converted string
20
+ * @param s - String to convert
21
+ * @returns Converted string
23
22
  */
24
23
  export function snakeToPascal (s: string): string {
25
24
  return s.replace(/_./g, match => match[1].toUpperCase())
@@ -27,9 +26,8 @@ export function snakeToPascal (s: string): string {
27
26
 
28
27
  /**
29
28
  * Convert string from PascalCase to snake_case
30
- * @rtype (s: String) => String
31
- * @param {String} s - String to convert
32
- * @return {String} Converted string
29
+ * @param s - String to convert
30
+ * @returns Converted string
33
31
  */
34
32
  export function pascalToSnake (s: string): string {
35
33
  return s.replace(/[A-Z]/g, match => `_${match.toLowerCase()}`)
@@ -37,8 +35,8 @@ export function pascalToSnake (s: string): string {
37
35
 
38
36
  /**
39
37
  * Check whether a string is valid hex.
40
- * @param {string} str String to validate.
41
- * @return {boolean} True if the string is valid hex, false otherwise.
38
+ * @param str - String to validate.
39
+ * @returns True if the string is valid hex, false otherwise.
42
40
  */
43
41
  export function isHex (str: string): boolean {
44
42
  return str.length % 2 === 0 && /^[0-9a-f]+$/i.test(str)
@@ -46,8 +44,8 @@ export function isHex (str: string): boolean {
46
44
 
47
45
  /**
48
46
  * Check whether a string is valid base-64.
49
- * @param {string} str String to validate.
50
- * @return {boolean} True if the string is valid base-64, false otherwise.
47
+ * @param str - String to validate.
48
+ * @returns True if the string is valid base-64, false otherwise.
51
49
  */
52
50
  export function isBase64 (str: string): boolean {
53
51
  if (str.length % 4 > 0 || /[^0-9a-z+/=]/i.test(str)) return false