@aeternity/aepp-sdk 12.1.2 → 13.0.0-alpha.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 (475) hide show
  1. package/dist/aepp-sdk.browser-script.js +1 -1
  2. package/dist/aepp-sdk.browser-script.js.map +1 -1
  3. package/dist/aepp-sdk.browser.js +1 -1
  4. package/dist/aepp-sdk.browser.js.map +1 -1
  5. package/dist/aepp-sdk.js +6580 -8860
  6. package/dist/aepp-sdk.js.map +1 -1
  7. package/es/AeSdk.d.ts +7 -3
  8. package/es/AeSdk.mjs +17 -22
  9. package/es/AeSdk.mjs.map +1 -1
  10. package/es/AeSdkAepp.d.ts +6 -5
  11. package/es/AeSdkAepp.mjs +7 -30
  12. package/es/AeSdkAepp.mjs.map +1 -1
  13. package/es/AeSdkBase.d.ts +18 -140
  14. package/es/AeSdkBase.mjs +27 -185
  15. package/es/AeSdkBase.mjs.map +1 -1
  16. package/es/AeSdkMethods.d.ts +124 -0
  17. package/es/AeSdkMethods.mjs +122 -0
  18. package/es/AeSdkMethods.mjs.map +1 -0
  19. package/es/AeSdkWallet.d.ts +7 -21
  20. package/es/AeSdkWallet.mjs +38 -86
  21. package/es/AeSdkWallet.mjs.map +1 -1
  22. package/es/Node.d.ts +7 -12
  23. package/es/Node.mjs +34 -47
  24. package/es/Node.mjs.map +1 -1
  25. package/es/account/Base.d.ts +24 -40
  26. package/es/account/Base.mjs +1 -101
  27. package/es/account/Base.mjs.map +1 -1
  28. package/es/account/Generalized.d.ts +16 -0
  29. package/es/account/Generalized.mjs +111 -0
  30. package/es/account/Generalized.mjs.map +1 -0
  31. package/es/account/Ledger.d.ts +28 -0
  32. package/es/account/Ledger.mjs +101 -0
  33. package/es/account/Ledger.mjs.map +1 -0
  34. package/es/account/LedgerFactory.d.ts +39 -0
  35. package/es/account/LedgerFactory.mjs +81 -0
  36. package/es/account/LedgerFactory.mjs.map +1 -0
  37. package/es/account/Memory.d.ts +13 -17
  38. package/es/account/Memory.mjs +43 -65
  39. package/es/account/Memory.mjs.map +1 -1
  40. package/es/account/Rpc.d.ts +6 -8
  41. package/es/account/Rpc.mjs +14 -32
  42. package/es/account/Rpc.mjs.map +1 -1
  43. package/es/aens.d.ts +3 -3
  44. package/es/aens.mjs +42 -41
  45. package/es/aens.mjs.map +1 -1
  46. package/es/aepp-wallet-communication/connection/Browser.mjs +9 -13
  47. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  48. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +3 -7
  49. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  50. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +1 -1
  51. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -31
  52. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  53. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  54. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +3 -3
  55. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +4 -41
  56. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  57. package/es/aepp-wallet-communication/rpc/types.d.ts +7 -1
  58. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  59. package/es/aepp-wallet-communication/schema.mjs +14 -68
  60. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  61. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -3
  62. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  63. package/es/apis/compiler/compiler.d.ts +23 -29
  64. package/es/apis/compiler/compiler.mjs +128 -189
  65. package/es/apis/compiler/compiler.mjs.map +1 -1
  66. package/es/apis/compiler/index.mjs.map +1 -1
  67. package/es/apis/compiler/models/index.d.ts +82 -135
  68. package/es/apis/compiler/models/index.mjs +1 -47
  69. package/es/apis/compiler/models/index.mjs.map +1 -1
  70. package/es/apis/compiler/models/mappers.d.ts +8 -8
  71. package/es/apis/compiler/models/mappers.mjs +165 -183
  72. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  73. package/es/apis/compiler/models/parameters.d.ts +0 -1
  74. package/es/apis/compiler/models/parameters.mjs +5 -9
  75. package/es/apis/compiler/models/parameters.mjs.map +1 -1
  76. package/es/apis/node/index.mjs.map +1 -1
  77. package/es/apis/node/models/index.d.ts +48 -48
  78. package/es/apis/node/models/mappers.mjs +12 -6
  79. package/es/apis/node/models/mappers.mjs.map +1 -1
  80. package/es/apis/node/models/parameters.mjs.map +1 -1
  81. package/es/apis/node/node.mjs +43 -84
  82. package/es/apis/node/node.mjs.map +1 -1
  83. package/es/chain.d.ts +1 -1
  84. package/es/chain.mjs +33 -58
  85. package/es/chain.mjs.map +1 -1
  86. package/es/channel/Base.d.ts +195 -0
  87. package/es/channel/Base.mjs +290 -0
  88. package/es/channel/Base.mjs.map +1 -0
  89. package/es/channel/Contract.d.ts +247 -0
  90. package/es/channel/Contract.mjs +420 -0
  91. package/es/channel/Contract.mjs.map +1 -0
  92. package/es/channel/Spend.d.ts +217 -0
  93. package/es/channel/Spend.mjs +383 -0
  94. package/es/channel/Spend.mjs.map +1 -0
  95. package/es/channel/handlers.d.ts +8 -21
  96. package/es/channel/handlers.mjs +141 -891
  97. package/es/channel/handlers.mjs.map +1 -1
  98. package/es/channel/internal.d.ts +27 -21
  99. package/es/channel/internal.mjs +98 -190
  100. package/es/channel/internal.mjs.map +1 -1
  101. package/es/contract/{Compiler.d.ts → CompilerHttp.d.ts} +3 -3
  102. package/es/contract/{Compiler.mjs → CompilerHttp.mjs} +8 -13
  103. package/es/contract/CompilerHttp.mjs.map +1 -0
  104. package/es/contract/Contract.d.ts +235 -0
  105. package/es/contract/Contract.mjs +534 -0
  106. package/es/contract/Contract.mjs.map +1 -0
  107. package/es/contract/ga.d.ts +7 -33
  108. package/es/contract/ga.mjs +20 -112
  109. package/es/contract/ga.mjs.map +1 -1
  110. package/es/index.d.ts +9 -6
  111. package/es/index.mjs +8 -6
  112. package/es/index.mjs.map +1 -1
  113. package/es/oracle.d.ts +5 -5
  114. package/es/oracle.mjs +33 -39
  115. package/es/oracle.mjs.map +1 -1
  116. package/es/spend.d.ts +3 -3
  117. package/es/spend.mjs +17 -20
  118. package/es/spend.mjs.map +1 -1
  119. package/es/tx/builder/constants.d.ts +2 -1
  120. package/es/tx/builder/constants.mjs +12 -12
  121. package/es/tx/builder/constants.mjs.map +1 -1
  122. package/es/tx/builder/field-types/address.d.ts +15 -0
  123. package/es/tx/builder/field-types/address.mjs +42 -0
  124. package/es/tx/builder/field-types/address.mjs.map +1 -0
  125. package/es/tx/builder/field-types/addresses.d.ts +6 -0
  126. package/es/tx/builder/field-types/addresses.mjs +13 -0
  127. package/es/tx/builder/field-types/addresses.mjs.map +1 -0
  128. package/es/tx/builder/field-types/coin-amount.d.ts +1 -2
  129. package/es/tx/builder/field-types/coin-amount.mjs +4 -12
  130. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  131. package/es/tx/builder/field-types/deposit.d.ts +0 -1
  132. package/es/tx/builder/field-types/deposit.mjs +2 -4
  133. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  134. package/es/tx/builder/field-types/enumeration.d.ts +5 -0
  135. package/es/tx/builder/field-types/enumeration.mjs +21 -0
  136. package/es/tx/builder/field-types/enumeration.mjs.map +1 -0
  137. package/es/tx/builder/field-types/fee.d.ts +1 -9
  138. package/es/tx/builder/field-types/fee.mjs +9 -25
  139. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  140. package/es/tx/builder/field-types/field.mjs +0 -2
  141. package/es/tx/builder/field-types/field.mjs.map +1 -1
  142. package/es/tx/builder/field-types/gas-limit.mjs +4 -9
  143. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  144. package/es/tx/builder/field-types/gas-price.d.ts +1 -2
  145. package/es/tx/builder/field-types/gas-price.mjs +3 -7
  146. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  147. package/es/tx/builder/field-types/index.d.ts +23 -11
  148. package/es/tx/builder/field-types/index.mjs +10 -3
  149. package/es/tx/builder/field-types/index.mjs.map +1 -1
  150. package/es/tx/builder/field-types/name-fee.d.ts +0 -1
  151. package/es/tx/builder/field-types/name-fee.mjs +3 -5
  152. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  153. package/es/tx/builder/field-types/name-id.d.ts +1 -4
  154. package/es/tx/builder/field-types/name-id.mjs +4 -10
  155. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  156. package/es/tx/builder/field-types/name.mjs +0 -2
  157. package/es/tx/builder/field-types/name.mjs.map +1 -1
  158. package/es/tx/builder/field-types/pointers.d.ts +23 -0
  159. package/es/tx/builder/field-types/pointers.mjs +36 -0
  160. package/es/tx/builder/field-types/pointers.mjs.map +1 -0
  161. package/es/tx/builder/field-types/short-u-int.mjs +0 -2
  162. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  163. package/es/tx/builder/field-types/u-int.d.ts +1 -1
  164. package/es/tx/builder/field-types/u-int.mjs +3 -4
  165. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  166. package/es/tx/builder/helpers.d.ts +2 -32
  167. package/es/tx/builder/helpers.mjs +19 -71
  168. package/es/tx/builder/helpers.mjs.map +1 -1
  169. package/es/tx/builder/index.d.ts +1 -21
  170. package/es/tx/builder/index.mjs +29 -148
  171. package/es/tx/builder/index.mjs.map +1 -1
  172. package/es/tx/builder/schema.d.ts +336 -176
  173. package/es/tx/builder/schema.mjs +71 -78
  174. package/es/tx/builder/schema.mjs.map +1 -1
  175. package/es/tx/index.d.ts +3 -33
  176. package/es/tx/index.mjs +26 -43
  177. package/es/tx/index.mjs.map +1 -1
  178. package/es/tx/validator.d.ts +2 -2
  179. package/es/tx/validator.mjs +86 -59
  180. package/es/tx/validator.mjs.map +1 -1
  181. package/es/typings/{@aeternity__argon2-browser → @aeternity__aepp-calldata}/index.d.mjs +0 -0
  182. package/es/typings/@aeternity__aepp-calldata/index.d.mjs.map +1 -0
  183. package/es/utils/amount-formatter.mjs +4 -10
  184. package/es/utils/amount-formatter.mjs.map +1 -1
  185. package/es/utils/autorest.d.ts +1 -0
  186. package/es/utils/autorest.mjs +17 -19
  187. package/es/utils/autorest.mjs.map +1 -1
  188. package/es/utils/bignumber.mjs +4 -7
  189. package/es/utils/bignumber.mjs.map +1 -1
  190. package/es/utils/bytes.d.ts +0 -17
  191. package/es/utils/bytes.mjs +6 -35
  192. package/es/utils/bytes.mjs.map +1 -1
  193. package/es/utils/crypto.d.ts +15 -8
  194. package/es/utils/crypto.mjs +40 -40
  195. package/es/utils/crypto.mjs.map +1 -1
  196. package/es/utils/encoder-types.d.ts +28 -28
  197. package/es/utils/encoder-types.mjs +0 -1
  198. package/es/utils/encoder-types.mjs.map +1 -1
  199. package/es/utils/encoder.d.ts +0 -1
  200. package/es/utils/encoder.mjs +7 -15
  201. package/es/utils/encoder.mjs.map +1 -1
  202. package/es/utils/errors.d.ts +12 -6
  203. package/es/utils/errors.mjs +87 -163
  204. package/es/utils/errors.mjs.map +1 -1
  205. package/es/utils/hd-wallet.d.ts +27 -19
  206. package/es/utils/hd-wallet.mjs +42 -26
  207. package/es/utils/hd-wallet.mjs.map +1 -1
  208. package/es/utils/json-big.mjs +0 -8
  209. package/es/utils/json-big.mjs.map +1 -1
  210. package/es/utils/keystore.d.ts +2 -0
  211. package/es/utils/keystore.mjs +37 -36
  212. package/es/utils/keystore.mjs.map +1 -1
  213. package/es/utils/mptree.d.ts +1 -1
  214. package/es/utils/mptree.mjs +4 -26
  215. package/es/utils/mptree.mjs.map +1 -1
  216. package/es/utils/other.d.ts +3 -1
  217. package/es/utils/other.mjs +11 -7
  218. package/es/utils/other.mjs.map +1 -1
  219. package/es/utils/semver-satisfies.mjs +0 -3
  220. package/es/utils/semver-satisfies.mjs.map +1 -1
  221. package/es/utils/string.d.ts +0 -12
  222. package/es/utils/string.mjs +1 -21
  223. package/es/utils/string.mjs.map +1 -1
  224. package/package.json +87 -48
  225. package/src/AeSdk.ts +15 -11
  226. package/src/AeSdkAepp.ts +9 -7
  227. package/src/AeSdkBase.ts +28 -202
  228. package/src/AeSdkMethods.ts +170 -0
  229. package/src/AeSdkWallet.ts +16 -47
  230. package/src/Node.ts +11 -15
  231. package/src/account/Base.ts +29 -75
  232. package/src/account/Generalized.ts +98 -0
  233. package/src/account/Ledger.ts +131 -0
  234. package/src/account/LedgerFactory.ts +86 -0
  235. package/src/account/Memory.ts +46 -60
  236. package/src/account/Rpc.ts +17 -26
  237. package/src/aens.ts +10 -9
  238. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +5 -4
  239. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +3 -3
  240. package/src/aepp-wallet-communication/rpc/RpcClient.ts +2 -2
  241. package/src/aepp-wallet-communication/rpc/types.ts +11 -1
  242. package/src/aepp-wallet-communication/schema.ts +18 -18
  243. package/src/apis/compiler/code-model-v4.yaml +681 -888
  244. package/src/apis/compiler/compiler.ts +113 -154
  245. package/src/apis/compiler/models/index.ts +80 -140
  246. package/src/apis/compiler/models/mappers.ts +165 -183
  247. package/src/apis/compiler/models/parameters.ts +6 -12
  248. package/src/chain.ts +6 -3
  249. package/src/channel/Base.ts +327 -0
  250. package/src/channel/Contract.ts +487 -0
  251. package/src/channel/Spend.ts +403 -0
  252. package/src/channel/handlers.ts +154 -573
  253. package/src/channel/internal.ts +113 -142
  254. package/src/contract/{Compiler.ts → CompilerHttp.ts} +5 -5
  255. package/src/contract/Contract.ts +620 -0
  256. package/src/contract/ga.ts +18 -104
  257. package/src/index.ts +9 -8
  258. package/src/oracle.ts +7 -7
  259. package/src/spend.ts +5 -13
  260. package/src/tx/builder/constants.ts +1 -0
  261. package/src/tx/builder/field-types/address.ts +52 -0
  262. package/src/tx/builder/field-types/addresses.ts +18 -0
  263. package/src/tx/builder/field-types/coin-amount.ts +2 -8
  264. package/src/tx/builder/field-types/enumeration.ts +21 -0
  265. package/src/tx/builder/field-types/fee.ts +1 -3
  266. package/src/tx/builder/field-types/gas-limit.ts +2 -2
  267. package/src/tx/builder/field-types/gas-price.ts +0 -2
  268. package/src/tx/builder/field-types/index.ts +16 -6
  269. package/src/tx/builder/field-types/name-fee.ts +1 -1
  270. package/src/tx/builder/field-types/name-id.ts +7 -10
  271. package/src/tx/builder/field-types/pointers.ts +41 -0
  272. package/src/tx/builder/field-types/u-int.ts +3 -2
  273. package/src/tx/builder/helpers.ts +10 -60
  274. package/src/tx/builder/index.ts +6 -65
  275. package/src/tx/builder/schema.ts +89 -100
  276. package/src/tx/index.ts +19 -15
  277. package/src/tx/validator.ts +36 -18
  278. package/src/typings/@aeternity__aepp-calldata/index.d.ts +20 -0
  279. package/src/utils/autorest.ts +16 -1
  280. package/src/utils/bytes.ts +5 -33
  281. package/src/utils/crypto.ts +23 -16
  282. package/src/utils/encoder.ts +0 -1
  283. package/src/utils/errors.ts +18 -12
  284. package/src/utils/hd-wallet.ts +30 -9
  285. package/src/utils/keystore.ts +24 -21
  286. package/src/utils/other.ts +16 -1
  287. package/src/utils/string.ts +0 -20
  288. package/types-legacy/ts4.2/AeSdk.d.ts +41 -0
  289. package/types-legacy/ts4.2/AeSdkAepp.d.ts +71 -0
  290. package/types-legacy/ts4.2/AeSdkBase.d.ts +91 -0
  291. package/types-legacy/ts4.2/AeSdkMethods.d.ts +141 -0
  292. package/types-legacy/ts4.2/AeSdkWallet.d.ts +90 -0
  293. package/types-legacy/ts4.2/Node.d.ts +78 -0
  294. package/types-legacy/ts4.2/account/Base.d.ts +52 -0
  295. package/types-legacy/ts4.2/account/Generalized.d.ts +16 -0
  296. package/types-legacy/ts4.2/account/Ledger.d.ts +28 -0
  297. package/types-legacy/ts4.2/account/LedgerFactory.d.ts +39 -0
  298. package/types-legacy/ts4.2/account/Memory.d.ts +22 -0
  299. package/types-legacy/ts4.2/account/Rpc.d.ts +25 -0
  300. package/types-legacy/ts4.2/aens.d.ts +222 -0
  301. package/types-legacy/ts4.2/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  302. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
  303. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  304. package/types-legacy/ts4.2/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  305. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  306. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +83 -0
  307. package/types-legacy/ts4.2/aepp-wallet-communication/schema.d.ts +133 -0
  308. package/types-legacy/ts4.2/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  309. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +86 -0
  310. package/types-legacy/ts4.2/apis/compiler/index.d.ts +2 -0
  311. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +195 -0
  312. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +23 -0
  313. package/types-legacy/ts4.2/apis/compiler/models/parameters.d.ts +12 -0
  314. package/types-legacy/ts4.2/apis/node/index.d.ts +2 -0
  315. package/types-legacy/ts4.2/apis/node/models/index.d.ts +1065 -0
  316. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +95 -0
  317. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +17 -0
  318. package/types-legacy/ts4.2/apis/node/node.d.ts +215 -0
  319. package/types-legacy/ts4.2/chain.d.ts +248 -0
  320. package/types-legacy/ts4.2/channel/Base.d.ts +194 -0
  321. package/types-legacy/ts4.2/channel/Contract.d.ts +247 -0
  322. package/types-legacy/ts4.2/channel/Spend.d.ts +217 -0
  323. package/types-legacy/ts4.2/channel/handlers.d.ts +21 -0
  324. package/types-legacy/ts4.2/channel/internal.d.ts +107 -0
  325. package/types-legacy/ts4.2/contract/CompilerHttp.d.ts +18 -0
  326. package/types-legacy/ts4.2/contract/Contract.d.ts +237 -0
  327. package/types-legacy/ts4.2/contract/ga.d.ts +43 -0
  328. package/types-legacy/ts4.2/globals.d.ts +16 -0
  329. package/types-legacy/ts4.2/index.d.ts +39 -0
  330. package/types-legacy/ts4.2/oracle.d.ts +161 -0
  331. package/types-legacy/ts4.2/spend.d.ts +62 -0
  332. package/types-legacy/ts4.2/tx/builder/constants.d.ts +71 -0
  333. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +22 -0
  334. package/types-legacy/ts4.2/tx/builder/field-types/addresses.d.ts +6 -0
  335. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +12 -0
  336. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +14 -0
  337. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +5 -0
  338. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +17 -0
  339. package/types-legacy/ts4.2/tx/builder/field-types/field.d.ts +6 -0
  340. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +12 -0
  341. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +7 -0
  342. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +85 -0
  343. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +19 -0
  344. package/types-legacy/ts4.2/tx/builder/field-types/name-id.d.ts +11 -0
  345. package/types-legacy/ts4.2/tx/builder/field-types/name.d.ts +13 -0
  346. package/types-legacy/ts4.2/tx/builder/field-types/pointers.d.ts +26 -0
  347. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int.d.ts +6 -0
  348. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +8 -0
  349. package/types-legacy/ts4.2/tx/builder/helpers.d.ts +112 -0
  350. package/types-legacy/ts4.2/tx/builder/index.d.ts +68 -0
  351. package/types-legacy/ts4.2/tx/builder/schema.d.ts +2963 -0
  352. package/types-legacy/ts4.2/tx/index.d.ts +34 -0
  353. package/types-legacy/ts4.2/tx/validator.d.ts +20 -0
  354. package/types-legacy/ts4.2/utils/amount-formatter.d.ts +42 -0
  355. package/types-legacy/ts4.2/utils/autorest.d.ts +7 -0
  356. package/types-legacy/ts4.2/utils/bignumber.d.ts +13 -0
  357. package/types-legacy/ts4.2/utils/bytes.d.ts +9 -0
  358. package/types-legacy/ts4.2/utils/crypto.d.ts +95 -0
  359. package/types-legacy/ts4.2/utils/encoder-types.d.ts +61 -0
  360. package/types-legacy/ts4.2/utils/encoder.d.ts +24 -0
  361. package/types-legacy/ts4.2/utils/errors.d.ts +480 -0
  362. package/types-legacy/ts4.2/utils/hd-wallet.d.ts +65 -0
  363. package/types-legacy/ts4.2/utils/json-big.d.ts +5 -0
  364. package/types-legacy/ts4.2/utils/keystore.d.ts +53 -0
  365. package/types-legacy/ts4.2/utils/mptree.d.ts +32 -0
  366. package/types-legacy/ts4.2/utils/other.d.ts +31 -0
  367. package/types-legacy/ts4.2/utils/semver-satisfies.d.ts +1 -0
  368. package/types-legacy/ts4.2/utils/string.d.ts +12 -0
  369. package/types-legacy/ts4.5/AeSdk.d.ts +41 -0
  370. package/types-legacy/ts4.5/AeSdkAepp.d.ts +71 -0
  371. package/types-legacy/ts4.5/AeSdkBase.d.ts +91 -0
  372. package/types-legacy/ts4.5/AeSdkMethods.d.ts +141 -0
  373. package/types-legacy/ts4.5/AeSdkWallet.d.ts +90 -0
  374. package/types-legacy/ts4.5/Node.d.ts +78 -0
  375. package/types-legacy/ts4.5/account/Base.d.ts +52 -0
  376. package/types-legacy/ts4.5/account/Generalized.d.ts +16 -0
  377. package/types-legacy/ts4.5/account/Ledger.d.ts +28 -0
  378. package/types-legacy/ts4.5/account/LedgerFactory.d.ts +39 -0
  379. package/types-legacy/ts4.5/account/Memory.d.ts +22 -0
  380. package/types-legacy/ts4.5/account/Rpc.d.ts +25 -0
  381. package/types-legacy/ts4.5/aens.d.ts +222 -0
  382. package/types-legacy/ts4.5/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  383. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
  384. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  385. package/types-legacy/ts4.5/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  386. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -0
  387. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +83 -0
  388. package/types-legacy/ts4.5/aepp-wallet-communication/schema.d.ts +133 -0
  389. package/types-legacy/ts4.5/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  390. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +86 -0
  391. package/types-legacy/ts4.5/apis/compiler/index.d.ts +2 -0
  392. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +195 -0
  393. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +23 -0
  394. package/types-legacy/ts4.5/apis/compiler/models/parameters.d.ts +12 -0
  395. package/types-legacy/ts4.5/apis/node/index.d.ts +2 -0
  396. package/types-legacy/ts4.5/apis/node/models/index.d.ts +1065 -0
  397. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +95 -0
  398. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +17 -0
  399. package/types-legacy/ts4.5/apis/node/node.d.ts +215 -0
  400. package/types-legacy/ts4.5/chain.d.ts +248 -0
  401. package/types-legacy/ts4.5/channel/Base.d.ts +194 -0
  402. package/types-legacy/ts4.5/channel/Contract.d.ts +247 -0
  403. package/types-legacy/ts4.5/channel/Spend.d.ts +217 -0
  404. package/types-legacy/ts4.5/channel/handlers.d.ts +21 -0
  405. package/types-legacy/ts4.5/channel/internal.d.ts +107 -0
  406. package/types-legacy/ts4.5/contract/CompilerHttp.d.ts +18 -0
  407. package/types-legacy/ts4.5/contract/Contract.d.ts +237 -0
  408. package/types-legacy/ts4.5/contract/ga.d.ts +43 -0
  409. package/types-legacy/ts4.5/index.d.ts +38 -0
  410. package/types-legacy/ts4.5/oracle.d.ts +161 -0
  411. package/types-legacy/ts4.5/spend.d.ts +62 -0
  412. package/types-legacy/ts4.5/tx/builder/constants.d.ts +71 -0
  413. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +22 -0
  414. package/types-legacy/ts4.5/tx/builder/field-types/addresses.d.ts +6 -0
  415. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +12 -0
  416. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +14 -0
  417. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +5 -0
  418. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +17 -0
  419. package/types-legacy/ts4.5/tx/builder/field-types/field.d.ts +6 -0
  420. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +12 -0
  421. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +7 -0
  422. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +85 -0
  423. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +19 -0
  424. package/types-legacy/ts4.5/tx/builder/field-types/name-id.d.ts +11 -0
  425. package/types-legacy/ts4.5/tx/builder/field-types/name.d.ts +13 -0
  426. package/types-legacy/ts4.5/tx/builder/field-types/pointers.d.ts +26 -0
  427. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int.d.ts +6 -0
  428. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +8 -0
  429. package/types-legacy/ts4.5/tx/builder/helpers.d.ts +112 -0
  430. package/types-legacy/ts4.5/tx/builder/index.d.ts +68 -0
  431. package/types-legacy/ts4.5/tx/builder/schema.d.ts +2963 -0
  432. package/types-legacy/ts4.5/tx/index.d.ts +34 -0
  433. package/types-legacy/ts4.5/tx/validator.d.ts +20 -0
  434. package/types-legacy/ts4.5/utils/amount-formatter.d.ts +42 -0
  435. package/types-legacy/ts4.5/utils/autorest.d.ts +7 -0
  436. package/types-legacy/ts4.5/utils/bignumber.d.ts +13 -0
  437. package/types-legacy/ts4.5/utils/bytes.d.ts +9 -0
  438. package/types-legacy/ts4.5/utils/crypto.d.ts +95 -0
  439. package/types-legacy/ts4.5/utils/encoder-types.d.ts +61 -0
  440. package/types-legacy/ts4.5/utils/encoder.d.ts +24 -0
  441. package/types-legacy/ts4.5/utils/errors.d.ts +480 -0
  442. package/types-legacy/ts4.5/utils/hd-wallet.d.ts +65 -0
  443. package/types-legacy/ts4.5/utils/json-big.d.ts +5 -0
  444. package/types-legacy/ts4.5/utils/keystore.d.ts +53 -0
  445. package/types-legacy/ts4.5/utils/mptree.d.ts +32 -0
  446. package/types-legacy/ts4.5/utils/other.d.ts +31 -0
  447. package/types-legacy/ts4.5/utils/semver-satisfies.d.ts +1 -0
  448. package/types-legacy/ts4.5/utils/string.d.ts +12 -0
  449. package/es/channel/index.d.ts +0 -625
  450. package/es/channel/index.mjs +0 -975
  451. package/es/channel/index.mjs.map +0 -1
  452. package/es/contract/Compiler.mjs.map +0 -1
  453. package/es/contract/aci.d.ts +0 -127
  454. package/es/contract/aci.mjs +0 -509
  455. package/es/contract/aci.mjs.map +0 -1
  456. package/es/contract/methods.d.ts +0 -71
  457. package/es/contract/methods.mjs +0 -104
  458. package/es/contract/methods.mjs.map +0 -1
  459. package/es/deprecated/index.d.ts +0 -143
  460. package/es/deprecated/index.mjs +0 -162
  461. package/es/deprecated/index.mjs.map +0 -1
  462. package/es/deprecated/methods.d.ts +0 -18
  463. package/es/deprecated/methods.mjs +0 -26
  464. package/es/deprecated/methods.mjs.map +0 -1
  465. package/es/tx/builder/address.d.ts +0 -25
  466. package/es/tx/builder/address.mjs +0 -45
  467. package/es/tx/builder/address.mjs.map +0 -1
  468. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +0 -1
  469. package/src/channel/index.ts +0 -1025
  470. package/src/contract/aci.ts +0 -538
  471. package/src/contract/methods.ts +0 -123
  472. package/src/deprecated/index.ts +0 -172
  473. package/src/deprecated/methods.ts +0 -25
  474. package/src/tx/builder/address.ts +0 -50
  475. package/src/typings/@aeternity__argon2-browser/index.d.ts +0 -3
@@ -11,17 +11,11 @@ import {
11
11
  import { Tag } from './builder/constants';
12
12
  import { TxUnpacked, unpackTx } from './builder';
13
13
  import { UnsupportedProtocolError } from '../utils/errors';
14
- import { concatBuffers, isKeyOfObject } from '../utils/other';
15
- import {
16
- decode, encode, Encoded, Encoding,
17
- } from '../utils/encoder';
18
- import Node from '../Node';
19
-
20
- interface Account {
21
- balance: bigint;
22
- id: Encoded.AccountAddress;
23
- nonce: number;
24
- }
14
+ import { concatBuffers, isAccountNotFoundError, isKeyOfObject } from '../utils/other';
15
+ import { encode, Encoded, Encoding } from '../utils/encoder';
16
+ import Node, { TransformNodeType } from '../Node';
17
+ import { Account } from '../apis/node';
18
+ import { genAggressiveCacheGetResponsesPolicy } from '../utils/autorest';
25
19
 
26
20
  export interface ValidatorResult {
27
21
  message: string;
@@ -46,7 +40,8 @@ type Validator = (
46
40
  contractId?: Encoded.ContractAddress;
47
41
  },
48
42
  options: {
49
- account?: Account;
43
+ // TODO: remove after fixing node types
44
+ account?: TransformNodeType<Account> & { id: Encoded.AccountAddress };
50
45
  nodeNetworkId: string;
51
46
  parentTxTypes: Tag[];
52
47
  node: Node;
@@ -74,16 +69,25 @@ const getSenderAddress = (
74
69
  * to make sure it can be posted it to the chain
75
70
  * @category transaction builder
76
71
  * @param transaction - Base64Check-encoded transaction
77
- * @param node - Node to validate transaction against
72
+ * @param nodeNotCached - Node to validate transaction against
78
73
  * @param parentTxTypes - Types of parent transactions
79
74
  * @returns Array with verification errors
80
75
  * @example const errors = await verifyTransaction(transaction, node)
81
76
  */
82
77
  export default async function verifyTransaction(
83
78
  transaction: Encoded.Transaction | Encoded.Poi,
84
- node: Node,
79
+ nodeNotCached: Node,
85
80
  parentTxTypes: Tag[] = [],
86
81
  ): Promise<ValidatorResult[]> {
82
+ let node = nodeNotCached;
83
+ if (
84
+ !node.pipeline.getOrderedPolicies()
85
+ .some(({ name }) => name === 'aggressive-cache-get-responses')
86
+ ) {
87
+ node = new Node(nodeNotCached.$host, { ignoreVersion: true });
88
+ node.pipeline.addPolicy(genAggressiveCacheGetResponsesPolicy());
89
+ }
90
+
87
91
  const { tx, txType } = unpackTx<Tag.SignedTx>(transaction);
88
92
  const address = getSenderAddress(tx)
89
93
  ?? (txType === Tag.SignedTx ? getSenderAddress(tx.encodedTx.tx) : undefined);
@@ -91,7 +95,10 @@ export default async function verifyTransaction(
91
95
  address == null
92
96
  ? undefined
93
97
  : node.getAccountByPubkey(address)
94
- .catch(() => ({ id: address, balance: 0n, nonce: 0 }))
98
+ .catch((error) => {
99
+ if (!isAccountNotFoundError(error)) throw error;
100
+ return { id: address, balance: 0n, nonce: 0 };
101
+ })
95
102
  // TODO: remove after fixing https://github.com/aeternity/aepp-sdk-js/issues/1537
96
103
  .then((acc) => ({ ...acc, id: acc.id as Encoded.AccountAddress })),
97
104
  node.getCurrentKeyBlockHeight(),
@@ -119,9 +126,8 @@ validators.push(
119
126
  ].join('-'));
120
127
  const txWithNetworkId = concatBuffers([prefix, encodedTx.rlpEncoded]);
121
128
  const txHashWithNetworkId = concatBuffers([prefix, hash(encodedTx.rlpEncoded)]);
122
- const decodedPub = decode(account.id);
123
- if (verify(txWithNetworkId, signatures[0], decodedPub)
124
- || verify(txHashWithNetworkId, signatures[0], decodedPub)) return [];
129
+ if (verify(txWithNetworkId, signatures[0], account.id)
130
+ || verify(txHashWithNetworkId, signatures[0], account.id)) return [];
125
131
  return [{
126
132
  message: 'Signature cannot be verified, please ensure that you transaction have'
127
133
  + ' the correct prefix and the correct private key for the sender address',
@@ -163,6 +169,18 @@ validators.push(
163
169
  checkedKeys: ['amount', 'fee', 'nameFee'],
164
170
  }];
165
171
  },
172
+ ({ signatures }, { account, txType }) => {
173
+ if (account == null) return [];
174
+ let message;
175
+ if (txType === Tag.SignedTx && account.kind === 'generalized' && signatures.length !== 0) {
176
+ message = 'Generalized account can\'t be used to generate SignedTx with signatures';
177
+ }
178
+ if (txType === Tag.GaMetaTx && account.kind === 'basic') {
179
+ message = 'Basic account can\'t be used to generate GaMetaTx';
180
+ }
181
+ if (message == null) return [];
182
+ return [{ message, key: 'InvalidAccountType', checkedKeys: ['tag'] }];
183
+ },
166
184
  ({ nonce }, { account, parentTxTypes }) => {
167
185
  if (nonce == null || account == null || parentTxTypes.includes(Tag.GaMetaTx)) return [];
168
186
  nonce = +nonce;
@@ -0,0 +1,20 @@
1
+ declare module '@aeternity/aepp-calldata' {
2
+ // eslint-disable-next-line import/prefer-default-export
3
+ export class Encoder {
4
+ constructor(aci: object);
5
+
6
+ encode(contract: string, funName: string, args: any[]): `cb_${string}`;
7
+
8
+ decode(contract: string, funName: string, data: `cb_${string}`): any;
9
+
10
+ decodeString(data: `cb_${string}`): Uint8Array;
11
+
12
+ decodeFateString(data: `cb_${string}`): string;
13
+
14
+ decodeEvent(
15
+ contract: string,
16
+ encodedData: `cb_${string}`,
17
+ topics: BigInt[],
18
+ ): { [key: string]: any[] };
19
+ }
20
+ }
@@ -31,7 +31,7 @@ export const genCombineGetRequestsPolicy = (): AdditionalPolicyConfig => {
31
31
 
32
32
  return {
33
33
  policy: {
34
- name: 'combine-requests',
34
+ name: 'combine-get-requests',
35
35
  async sendRequest(request, next) {
36
36
  if (request.method !== 'GET') return next(request);
37
37
  const key = JSON.stringify([request.url, request.body]);
@@ -48,6 +48,21 @@ export const genCombineGetRequestsPolicy = (): AdditionalPolicyConfig => {
48
48
  };
49
49
  };
50
50
 
51
+ export const genAggressiveCacheGetResponsesPolicy = (): PipelinePolicy => {
52
+ const getRequests = new Map<string, Promise<PipelineResponse>>();
53
+
54
+ return {
55
+ name: 'aggressive-cache-get-responses',
56
+ async sendRequest(request, next) {
57
+ if (request.method !== 'GET') return next(request);
58
+ const key = JSON.stringify([request.url, request.body]);
59
+ const response = getRequests.get(key) ?? next(request);
60
+ getRequests.set(key, response);
61
+ return response;
62
+ },
63
+ };
64
+ };
65
+
51
66
  export const genErrorFormatterPolicy = (
52
67
  getMessage: (b: any) => string,
53
68
  ): AdditionalPolicyConfig => ({
@@ -16,19 +16,6 @@
16
16
  */
17
17
  import BigNumber from 'bignumber.js';
18
18
  import { NoSerializerFoundError, TypeError } from './errors';
19
- import { isBase64, isHex } from './string';
20
-
21
- /**
22
- * Convert bignumber to byte array
23
- * @param x - bignumber instance
24
- * @returns Buffer
25
- */
26
- export function bigNumberToByteArray(x: BigNumber): Buffer {
27
- if (!x.isInteger()) throw new TypeError(`Unexpected not integer value: ${x.toFixed()}`);
28
- let hexString = x.toString(16);
29
- if (hexString.length % 2 === 1) hexString = `0${hexString}`;
30
- return Buffer.from(hexString, 'hex');
31
- }
32
19
 
33
20
  /**
34
21
  * Convert string, number, or BigNumber to byte array
@@ -36,6 +23,7 @@ export function bigNumberToByteArray(x: BigNumber): Buffer {
36
23
  * @param big - enables force conversion to BigNumber
37
24
  * @returns Buffer
38
25
  */
26
+ // eslint-disable-next-line import/prefer-default-export
39
27
  export function toBytes(val?: null | string | number | BigNumber, big = false): Buffer {
40
28
  // Encode a value to bytes.
41
29
  // If the value is an int it will be encoded as bytes big endian
@@ -44,29 +32,13 @@ export function toBytes(val?: null | string | number | BigNumber, big = false):
44
32
  if (val === undefined || val === null) return Buffer.from([]);
45
33
  if (Number.isInteger(val) || BigNumber.isBigNumber(val) || big) {
46
34
  if (!BigNumber.isBigNumber(val)) val = new BigNumber(val);
47
- return bigNumberToByteArray(val);
35
+ if (!val.isInteger()) throw new TypeError(`Unexpected not integer value: ${val.toFixed()}`);
36
+ let hexString = val.toString(16);
37
+ if (hexString.length % 2 === 1) hexString = `0${hexString}`;
38
+ return Buffer.from(hexString, 'hex');
48
39
  }
49
40
  if (typeof val === 'string') {
50
41
  return Buffer.from(val);
51
42
  }
52
43
  throw new NoSerializerFoundError();
53
44
  }
54
-
55
- /**
56
- * Convert a string to a Buffer. If encoding is not specified, hex-encoding
57
- * will be used if the input is valid hex. If the input is valid base64 but
58
- * not valid hex, base64 will be used. Otherwise, utf8 will be used.
59
- * @param str - String to be converted.
60
- * @param enc - Encoding of the input string.
61
- * @returns Buffer containing the input data.
62
- */
63
- export function str2buf(str: string, enc?: BufferEncoding): Buffer {
64
- return Buffer.from(
65
- str,
66
- enc ?? (isHex(str) ? 'hex' : undefined) ?? (isBase64(str) ? 'base64' : undefined),
67
- );
68
- }
69
-
70
- export const bytesToHex = (b: Uint8Array): string => Buffer.from(b).toString('hex');
71
-
72
- export const hexToBytes = (s: string): Uint8Array => Buffer.from(s, 'hex');
@@ -20,7 +20,6 @@ import nacl, { SignKeyPair } from 'tweetnacl';
20
20
  import { blake2b } from 'blakejs/blake2b.js';
21
21
  import { encode as varuintEncode } from 'varuint-bitcoin';
22
22
 
23
- import { str2buf } from './bytes';
24
23
  import { concatBuffers } from './other';
25
24
  import {
26
25
  decode, encode, Encoded, Encoding,
@@ -28,11 +27,11 @@ import {
28
27
 
29
28
  /**
30
29
  * Generate address from secret key
31
- * @param secret - Private key
30
+ * @param secret - Private key as hex string
32
31
  * @returns Public key encoded as address
33
32
  */
34
33
  export function getAddressFromPriv(secret: string | Uint8Array): Encoded.AccountAddress {
35
- const secretBuffer = typeof secret === 'string' ? str2buf(secret) : secret;
34
+ const secretBuffer = typeof secret === 'string' ? Buffer.from(secret, 'hex') : secret;
36
35
  const keys = nacl.sign.keyPair.fromSecretKey(secretBuffer);
37
36
  return encode(keys.publicKey, Encoding.AccountAddress);
38
37
  }
@@ -60,7 +59,8 @@ export function isAddressValid(
60
59
  * @returns random salt
61
60
  */
62
61
  export function genSalt(): number {
63
- return Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER));
62
+ const [random] = new BigUint64Array(nacl.randomBytes(8).buffer);
63
+ return Number(random % BigInt(Number.MAX_SAFE_INTEGER));
64
64
  }
65
65
 
66
66
  /**
@@ -155,18 +155,17 @@ export function sign(data: string | Uint8Array, privateKey: string | Uint8Array)
155
155
 
156
156
  /**
157
157
  * Verify that signature was signed by public key
158
- * @param data - Data to verify
159
- * @param signature - Signature to verify
160
- * @param publicKey - Key to verify against
161
- * @returns Valid?
158
+ * @param data - Data that was signed
159
+ * @param signature - Signature of data
160
+ * @param address - Address to verify against
161
+ * @returns is data was signed by address
162
162
  */
163
163
  export function verify(
164
164
  data: Uint8Array,
165
165
  signature: Uint8Array,
166
- publicKey: string | Uint8Array,
166
+ address: Encoded.AccountAddress,
167
167
  ): boolean {
168
- const publicKeyBuffer = typeof publicKey === 'string' ? str2buf(publicKey) : publicKey;
169
- return nacl.sign.detached.verify(data, signature, publicKeyBuffer);
168
+ return nacl.sign.detached.verify(data, signature, decode(address));
170
169
  }
171
170
 
172
171
  export function messageToHash(message: string): Buffer {
@@ -179,12 +178,19 @@ export function signMessage(message: string, privateKey: string | Buffer): Uint8
179
178
  return sign(messageToHash(message), privateKey);
180
179
  }
181
180
 
181
+ /**
182
+ * Verify that message was signed by address
183
+ * @param message - Message that was signed
184
+ * @param signature - Signature of message
185
+ * @param address - Address to verify against
186
+ * @returns is data was signed by address
187
+ */
182
188
  export function verifyMessage(
183
- str: string,
189
+ message: string,
184
190
  signature: Uint8Array,
185
- publicKey: string | Uint8Array,
191
+ address: Encoded.AccountAddress,
186
192
  ): boolean {
187
- return verify(messageToHash(str), signature, publicKey);
193
+ return verify(messageToHash(message), signature, address);
188
194
  }
189
195
 
190
196
  /**
@@ -192,7 +198,7 @@ export function verifyMessage(
192
198
  *
193
199
  * Sign a message, and then verifying that signature
194
200
  * @param privateKey - Private key to verify
195
- * @param publicKey - Public key to verify
201
+ * @param publicKey - Public key to verify as hex string
196
202
  * @returns Valid?
197
203
  */
198
204
  export function isValidKeypair(
@@ -201,5 +207,6 @@ export function isValidKeypair(
201
207
  ): boolean {
202
208
  const message = Buffer.from('TheMessage');
203
209
  const signature = sign(message, privateKey);
204
- return verify(message, signature, publicKey);
210
+ const publicKeyBuffer = typeof publicKey === 'string' ? Buffer.from(publicKey, 'hex') : publicKey;
211
+ return verify(message, signature, encode(publicKeyBuffer, Encoding.AccountAddress));
205
212
  }
@@ -18,7 +18,6 @@ export { Encoded, Encoding };
18
18
  * Calculate SHA256 hash of `input`
19
19
  * @param input - Data to hash
20
20
  * @returns Hash
21
- * @deprecated use `SubtleCrypto.digest` or `sha.js` package instead
22
21
  */
23
22
  export function sha256hash(input: Uint8Array | string): Buffer {
24
23
  return new Sha256().update(input).digest();
@@ -265,16 +265,6 @@ export class UnexpectedTsError extends InternalError {
265
265
  }
266
266
  }
267
267
 
268
- /**
269
- * @category exception
270
- */
271
- export class InvalidKeypairError extends AccountError {
272
- constructor(message: string) {
273
- super(message);
274
- this.name = 'InvalidKeypairError';
275
- }
276
- }
277
-
278
268
  /**
279
269
  * @category exception
280
270
  */
@@ -405,6 +395,22 @@ export class UnexpectedChannelMessageError extends ChannelError {
405
395
  }
406
396
  }
407
397
 
398
+ /**
399
+ * @category exception
400
+ */
401
+ export class ChannelIncomingMessageError extends ChannelError {
402
+ handlerError: BaseError;
403
+
404
+ incomingMessage: { [key: string]: any };
405
+
406
+ constructor(handlerError: BaseError, incomingMessage: { [key: string]: any }) {
407
+ super(handlerError.message);
408
+ this.handlerError = handlerError;
409
+ this.incomingMessage = incomingMessage;
410
+ this.name = 'ChannelIncomingMessageError';
411
+ }
412
+ }
413
+
408
414
  /**
409
415
  * @category exception
410
416
  */
@@ -550,8 +556,8 @@ export class MissingEventDefinitionError extends ContractError {
550
556
  export class AmbiguousEventDefinitionError extends ContractError {
551
557
  constructor(eventAddress: string, matchedEvents: Array<[string, string]>) {
552
558
  super(
553
- `Found multiple definitions of "${matchedEvents[0][1]}" event emitted by ${eventAddress}`
554
- + ` in ${matchedEvents.map(([name]) => `"${name}"`).join(', ')} contracts`
559
+ `Found multiple definitions of "${matchedEvents[0][1]}" event with different types emitted by`
560
+ + ` ${eventAddress} in ${matchedEvents.map(([name]) => `"${name}"`).join(', ')} contracts`
555
561
  + ' (use contractAddressToName option to specify contract name corresponding to address)',
556
562
  );
557
563
  this.name = 'AmbiguousEventDefinitionError';
@@ -4,20 +4,18 @@ import { fromString } from 'bip32-path';
4
4
  import aesjs from 'aes-js';
5
5
  import { sha256hash, encode, Encoding } from './encoder';
6
6
  import { CryptographyError } from './errors';
7
- import { bytesToHex } from './bytes';
8
7
  import { concatBuffers } from './other';
9
8
 
10
9
  const Ecb = aesjs.ModeOfOperation.ecb;
11
10
 
12
- // TODO: at least don't export `encryptKey` and `decryptKey`
11
+ // TODO: use mnemonic encryption instead of AES
13
12
  /**
14
13
  * Encrypt given data using `password`
15
14
  * @param password - Password to encrypt with
16
15
  * @param binaryData - Data to encrypt
17
16
  * @returns Encrypted data
18
- * @deprecated use 'sha.js' and 'aes-js' packages directly instead
19
17
  */
20
- export function encryptKey(password: string, binaryData: Uint8Array): Uint8Array {
18
+ function encryptKey(password: string, binaryData: Uint8Array): Uint8Array {
21
19
  const hashedPasswordBytes = sha256hash(password);
22
20
  const aesEcb = new Ecb(hashedPasswordBytes);
23
21
  return aesEcb.encrypt(binaryData);
@@ -28,9 +26,8 @@ export function encryptKey(password: string, binaryData: Uint8Array): Uint8Array
28
26
  * @param password - Password to decrypt with
29
27
  * @param encrypted - Data to decrypt
30
28
  * @returns Decrypted data
31
- * @deprecated use 'sha.js' and 'aes-js' packages directly instead
32
29
  */
33
- export function decryptKey(password: string, encrypted: Uint8Array): Uint8Array {
30
+ function decryptKey(password: string, encrypted: Uint8Array): Uint8Array {
34
31
  const encryptedBytes = Buffer.from(encrypted);
35
32
  const hashedPasswordBytes = sha256hash(password);
36
33
  const aesEcb = new Ecb(hashedPasswordBytes);
@@ -72,6 +69,9 @@ type Bip32PathT<MaxLen extends number, H extends 'H' | 'h' | '\''> = MaxLen exte
72
69
  type Bip32Path<MaxLen extends number> =
73
70
  '' | Bip32PathT<MaxLen, 'H'> | Bip32PathT<MaxLen, 'h'> | Bip32PathT<MaxLen, '\''>;
74
71
 
72
+ /**
73
+ * @category hd-wallet
74
+ */
75
75
  export function deriveChild({ secretKey, chainCode }: KeyTreeNode, index: number): KeyTreeNode {
76
76
  if (index < HARDENED_OFFSET) {
77
77
  throw new DerivationError(`Segment ${index} is not hardened`);
@@ -90,6 +90,9 @@ export function deriveChild({ secretKey, chainCode }: KeyTreeNode, index: number
90
90
  };
91
91
  }
92
92
 
93
+ /**
94
+ * @category hd-wallet
95
+ */
93
96
  export function derivePathFromKey(path: Bip32Path<5>, key: KeyTreeNode): KeyTreeNode {
94
97
  const segments = path === '' ? [] : fromString(path).toPathArray();
95
98
  segments.forEach((segment, i) => {
@@ -101,6 +104,9 @@ export function derivePathFromKey(path: Bip32Path<5>, key: KeyTreeNode): KeyTree
101
104
  return segments.reduce((parentKey, segment) => deriveChild(parentKey, segment), key);
102
105
  }
103
106
 
107
+ /**
108
+ * @category hd-wallet
109
+ */
104
110
  export function getMasterKeyFromSeed(seed: Uint8Array): KeyTreeNode {
105
111
  const I = hmac(seed, ED25519_CURVE);
106
112
  const IL = I.slice(0, 32);
@@ -111,6 +117,9 @@ export function getMasterKeyFromSeed(seed: Uint8Array): KeyTreeNode {
111
117
  };
112
118
  }
113
119
 
120
+ /**
121
+ * @category hd-wallet
122
+ */
114
123
  export function derivePathFromSeed(path: 'm' | `m/${Bip32Path<5>}`, seed: Uint8Array): KeyTreeNode {
115
124
  if (!['m', 'm/'].includes(path.slice(0, 2))) {
116
125
  throw new DerivationError('Root element is required');
@@ -122,23 +131,32 @@ export function derivePathFromSeed(path: 'm' | `m/${Bip32Path<5>}`, seed: Uint8A
122
131
  function formatAccount(keys: nacl.SignKeyPair): Account {
123
132
  const { secretKey, publicKey } = keys;
124
133
  return {
125
- secretKey: bytesToHex(secretKey),
134
+ secretKey: Buffer.from(secretKey).toString('hex'),
126
135
  publicKey: encode(publicKey, Encoding.AccountAddress),
127
136
  };
128
137
  }
129
138
 
139
+ /**
140
+ * @category hd-wallet
141
+ */
130
142
  export function getKeyPair(secretKey: Uint8Array): nacl.SignKeyPair {
131
143
  return nacl.sign.keyPair.fromSeed(secretKey);
132
144
  }
133
145
 
146
+ /**
147
+ * @category hd-wallet
148
+ */
134
149
  export function generateSaveHDWalletFromSeed(seed: Uint8Array, password: string): HDWallet {
135
150
  const walletKey = derivePathFromSeed('m/44h/457h', seed);
136
151
  return {
137
- secretKey: bytesToHex(encryptKey(password, walletKey.secretKey)),
138
- chainCode: bytesToHex(encryptKey(password, walletKey.chainCode)),
152
+ secretKey: Buffer.from(encryptKey(password, walletKey.secretKey)).toString('hex'),
153
+ chainCode: Buffer.from(encryptKey(password, walletKey.chainCode)).toString('hex'),
139
154
  };
140
155
  }
141
156
 
157
+ /**
158
+ * @category hd-wallet
159
+ */
142
160
  export function getSaveHDWalletAccounts(
143
161
  saveHDWallet: HDWallet,
144
162
  password: string,
@@ -152,6 +170,9 @@ export function getSaveHDWalletAccounts(
152
170
  .map((_, idx) => formatAccount(getKeyPair(derivePathFromKey(`${idx}h/0h/0h`, walletKey).secretKey)));
153
171
  }
154
172
 
173
+ /**
174
+ * @category hd-wallet
175
+ */
155
176
  export const getHdWalletAccountFromSeed = (
156
177
  seed: Uint8Array,
157
178
  accountIdx: number,
@@ -1,10 +1,7 @@
1
1
  import nacl from 'tweetnacl';
2
2
  import { v4 as uuid } from '@aeternity/uuid';
3
- // js extension is required for mjs build
4
- // eslint-disable-next-line import/extensions
5
- import { ArgonType, hash } from '@aeternity/argon2-browser/dist/argon2-bundled.min.js';
3
+ import { hash, argon2id } from '@aeternity/argon2';
6
4
  import { getAddressFromPriv } from './crypto';
7
- import { bytesToHex, hexToBytes } from './bytes';
8
5
  import { InvalidPasswordError } from './errors';
9
6
 
10
7
  const DERIVED_KEY_FUNCTIONS = {
@@ -13,16 +10,15 @@ const DERIVED_KEY_FUNCTIONS = {
13
10
  salt: string | Uint8Array,
14
11
  params: Partial<Keystore['crypto']['kdf_params']>,
15
12
  ): Promise<Uint8Array> {
16
- const { memlimit_kib: mem, opslimit: time } = params;
13
+ const { memlimit_kib: memoryCost, opslimit: timeCost } = params;
17
14
 
18
- return (await hash({
19
- hashLen: 32,
20
- pass,
15
+ return hash(pass, {
16
+ hashLength: 32,
21
17
  salt,
22
- time,
23
- mem,
24
- type: ArgonType.Argon2id,
25
- })).hash;
18
+ timeCost,
19
+ memoryCost,
20
+ type: argon2id,
21
+ });
26
22
  },
27
23
  };
28
24
 
@@ -72,6 +68,7 @@ const CRYPTO_DEFAULTS = {
72
68
 
73
69
  /**
74
70
  * Symmetric private key encryption using secret (derived) key.
71
+ * @category keystore
75
72
  * @param plaintext - Data to be encrypted.
76
73
  * @param key - Secret key.
77
74
  * @param nonce - Randomly generated nonce.
@@ -89,6 +86,7 @@ function encrypt(
89
86
 
90
87
  /**
91
88
  * Symmetric private key decryption using secret (derived) key.
89
+ * @category keystore
92
90
  * @param ciphertext - Data to be decrypted.
93
91
  * @param key - Secret key.
94
92
  * @param nonce - Nonce from key-object.
@@ -106,6 +104,7 @@ function decrypt(
106
104
 
107
105
  /**
108
106
  * Derive secret key from password with key derivation function.
107
+ * @category keystore
109
108
  * @param password - User-supplied password.
110
109
  * @param nonce - Randomly generated nonce.
111
110
  * @param kdf - Key derivation function.
@@ -123,6 +122,7 @@ async function deriveKey(
123
122
 
124
123
  /**
125
124
  * Recover plaintext private key from secret-storage key object.
125
+ * @category keystore
126
126
  * @param password - Keystore object password.
127
127
  * @param keystore - Keystore object.
128
128
  * @returns Plaintext private key.
@@ -131,17 +131,18 @@ export async function recover(
131
131
  password: string | Uint8Array,
132
132
  { crypto }: Keystore,
133
133
  ): Promise<string> {
134
- const salt = hexToBytes(crypto.kdf_params.salt);
135
- return bytesToHex(decrypt(
136
- hexToBytes(crypto.ciphertext),
134
+ const salt = Buffer.from(crypto.kdf_params.salt, 'hex');
135
+ return Buffer.from(decrypt(
136
+ Buffer.from(crypto.ciphertext, 'hex'),
137
137
  await deriveKey(password, salt, crypto.kdf, crypto.kdf_params),
138
- hexToBytes(crypto.cipher_params.nonce),
138
+ Buffer.from(crypto.cipher_params.nonce, 'hex'),
139
139
  crypto.symmetric_alg,
140
- ));
140
+ )).toString('hex');
141
141
  }
142
142
 
143
143
  /**
144
144
  * Export private key to keystore secret-storage format.
145
+ * @category keystore
145
146
  * @param name - Key name.
146
147
  * @param password - User-supplied password.
147
148
  * @param privateKey - Private key as hex-string or a Buffer.
@@ -161,7 +162,7 @@ export async function dump(
161
162
  ): Promise<Keystore> {
162
163
  const opt = { ...CRYPTO_DEFAULTS, ...options };
163
164
  const derivedKey = await deriveKey(password, salt, opt.kdf, opt.kdf_params);
164
- const payload = typeof privateKey === 'string' ? hexToBytes(privateKey) : privateKey;
165
+ const payload = typeof privateKey === 'string' ? Buffer.from(privateKey, 'hex') : privateKey;
165
166
  return {
166
167
  name,
167
168
  version: 1,
@@ -170,12 +171,14 @@ export async function dump(
170
171
  crypto: {
171
172
  secret_type: opt.secret_type,
172
173
  symmetric_alg: opt.symmetric_alg,
173
- ciphertext: bytesToHex(encrypt(payload, derivedKey, nonce, opt.symmetric_alg)),
174
- cipher_params: { nonce: bytesToHex(nonce) },
174
+ ciphertext: Buffer.from(
175
+ encrypt(payload, derivedKey, nonce, opt.symmetric_alg),
176
+ ).toString('hex'),
177
+ cipher_params: { nonce: Buffer.from(nonce).toString('hex') },
175
178
  kdf: opt.kdf,
176
179
  kdf_params: {
177
180
  ...opt.kdf_params,
178
- salt: bytesToHex(salt),
181
+ salt: Buffer.from(salt).toString('hex'),
179
182
  },
180
183
  },
181
184
  };
@@ -1,3 +1,5 @@
1
+ import { RestError } from '@azure/core-rest-pipeline';
2
+
1
3
  export const pause = async (duration: number): Promise<void> => new Promise((resolve) => {
2
4
  setTimeout(resolve, duration);
3
5
  });
@@ -30,7 +32,10 @@ export const concatBuffers = isWebpack4Buffer
30
32
  * @param key - Maybe object key
31
33
  * @param object - Object
32
34
  */
33
- export function isKeyOfObject<T>(key: string | number | symbol, object: T): key is keyof T {
35
+ export function isKeyOfObject<T extends object>(
36
+ key: string | number | symbol,
37
+ object: T,
38
+ ): key is keyof T {
34
39
  return key in object;
35
40
  }
36
41
 
@@ -42,3 +47,13 @@ export function isKeyOfObject<T>(key: string | number | symbol, object: T): key
42
47
  export function isItemOfArray<T>(item: any, array: readonly T[]): item is T {
43
48
  return array.includes(item);
44
49
  }
50
+
51
+ export function isAccountNotFoundError(error: Error): boolean {
52
+ return error instanceof RestError && error.statusCode === 404
53
+ && error.message.includes('Account not found');
54
+ }
55
+
56
+ // based on https://stackoverflow.com/a/50375286/6176994
57
+ export type UnionToIntersection<Union> =
58
+ (Union extends any ? (k: Union) => void : never) extends ((k: infer Intersection) => void)
59
+ ? Intersection : never;
@@ -32,23 +32,3 @@ export function snakeToPascal(s: string): string {
32
32
  export function pascalToSnake(s: string): string {
33
33
  return s.replace(/[A-Z]/g, (match) => `_${match.toLowerCase()}`);
34
34
  }
35
-
36
- /**
37
- * Check whether a string is valid hex.
38
- * @param str - String to validate.
39
- * @returns True if the string is valid hex, false otherwise.
40
- */
41
- export function isHex(str: string): boolean {
42
- return str.length % 2 === 0 && /^[0-9a-f]+$/i.test(str);
43
- }
44
-
45
- /**
46
- * Check whether a string is valid base-64.
47
- * @param str - String to validate.
48
- * @returns True if the string is valid base-64, false otherwise.
49
- */
50
- export function isBase64(str: string): boolean {
51
- if (str.length % 4 > 0 || /[^0-9a-z+/=]/i.test(str)) return false;
52
- const index = str.indexOf('=');
53
- return index === -1 || /={1,2}/.test(str.slice(index));
54
- }